From ff90fc85aa61116166fed90c43c27e2047395e2b Mon Sep 17 00:00:00 2001 From: Terraform Team Automation Date: Thu, 9 Mar 2023 22:38:48 +0000 Subject: [PATCH 01/12] Bug Fix : Fixed response reordering issue in Network Firewall --- .../network_firewall_policy/main.tf | 11 +- ...k_firewall_network_firewall_policy_test.go | 148 ++++++++---- ...rewall_network_firewall_policy_resource.go | 228 +++++++++++++----- 3 files changed, 285 insertions(+), 102 deletions(-) diff --git a/examples/network_firewall/network_firewall_policy/main.tf b/examples/network_firewall/network_firewall_policy/main.tf index 506e1711c97..ab7481ed9b4 100644 --- a/examples/network_firewall/network_firewall_policy/main.tf +++ b/examples/network_firewall/network_firewall_policy/main.tf @@ -216,8 +216,6 @@ resource "oci_network_firewall_network_firewall_policy" "test_network_firewall_p application_values { type = var.network_firewall_policy_application_lists_type #Optional - icmp_type = var.network_firewall_policy_application_lists_icmp_type - icmp_code = var.network_firewall_policy_application_lists_icmp_code minimum_port = var.network_firewall_policy_application_lists_minimum_port maximum_port = var.network_firewall_policy_application_lists_maximum_port } @@ -286,6 +284,13 @@ resource "oci_network_firewall_network_firewall_policy" "test_network_firewall_p vault_secret_id = oci_vault_secret.test_secret.id version_number = var.network_firewall_policy_mapped_secrets_version_number } + mapped_secrets { + #Required + type = var.network_firewall_policy_mapped_secrets_type + key = var.network_firewall_policy_mapped_secrets_key + vault_secret_id = oci_vault_secret.test_secret.id + version_number = var.network_firewall_policy_mapped_secrets_version_number + } security_rules { #Required action = var.network_firewall_policy_security_rules_action @@ -330,4 +335,4 @@ data "oci_network_firewall_network_firewall_policies" "test_network_firewall_pol display_name = var.network_firewall_policy_display_name id = var.network_firewall_policy_id state = var.network_firewall_policy_state -} +} \ No newline at end of file diff --git a/internal/integrationtest/network_firewall_network_firewall_policy_test.go b/internal/integrationtest/network_firewall_network_firewall_policy_test.go index 7de32b929c9..544a5bb3947 100644 --- a/internal/integrationtest/network_firewall_network_firewall_policy_test.go +++ b/internal/integrationtest/network_firewall_network_firewall_policy_test.go @@ -52,16 +52,16 @@ var ( networkFirewallPolicyRepresentation = map[string]interface{}{ "compartment_id": acctest.Representation{RepType: acctest.Required, Create: `${var.compartment_id}`}, - "application_lists": []acctest.RepresentationGroup{{RepType: acctest.Optional, Group: networkFirewallApplicationListsRepresentation}}, - "decryption_profiles": []acctest.RepresentationGroup{{RepType: acctest.Optional, Group: networkFirewallPolicyDecryptionProfilesRepresentation1}}, - "decryption_rules": acctest.RepresentationGroup{RepType: acctest.Optional, Group: networkFirewallPolicyDecryptionRulesRepresentation}, - "defined_tags": acctest.Representation{RepType: acctest.Optional, Create: `${map("${oci_identity_tag_namespace.tag-namespace1.name}.${oci_identity_tag.tag1.name}", "value")}`, Update: `${map("${oci_identity_tag_namespace.tag-namespace1.name}.${oci_identity_tag.tag1.name}", "updatedValue")}`}, - "display_name": acctest.Representation{RepType: acctest.Optional, Create: `displayName`, Update: `displayName`}, - "freeform_tags": acctest.Representation{RepType: acctest.Optional, Create: map[string]string{"bar-key": "value"}, Update: map[string]string{"bar-key": "value"}}, - "ip_address_lists": []acctest.RepresentationGroup{{RepType: acctest.Optional, Group: networkFirewallIpAddressListsRepresentation}}, - "mapped_secrets": []acctest.RepresentationGroup{{RepType: acctest.Optional, Group: networkFirewallPolicyMappedSecretsRepresentation}}, - "security_rules": acctest.RepresentationGroup{RepType: acctest.Optional, Group: networkFirewallPolicySecurityRulesRepresentation}, - "url_lists": []acctest.RepresentationGroup{{RepType: acctest.Optional, Group: networkFirewallUrlListsRepresentation}}, + "application_lists": []acctest.RepresentationGroup{{RepType: acctest.Optional, Group: networkFirewallApplicationListsRepresentation}, {RepType: acctest.Optional, Group: networkFirewallApplicationListsRepresentation2}}, + "decryption_profiles": []acctest.RepresentationGroup{{RepType: acctest.Optional, Group: networkFirewallPolicyDecryptionProfilesRepresentation1}, {RepType: acctest.Optional, Group: networkFirewallPolicyDecryptionProfilesRepresentation2}}, + "decryption_rules": []acctest.RepresentationGroup{{RepType: acctest.Optional, Group: networkFirewallPolicyDecryptionRulesRepresentation}, {RepType: acctest.Optional, Group: networkFirewallPolicyDecryptionRulesRepresentation2}}, + //"defined_tags": acctest.Representation{RepType: acctest.Optional, Create: `${map("${oci_identity_tag_namespace.tag-namespace1.name}.${oci_identity_tag.tag1.name}", "value")}`, Update: `${map("${oci_identity_tag_namespace.tag-namespace1.name}.${oci_identity_tag.tag1.name}", "updatedValue")}`}, + "display_name": acctest.Representation{RepType: acctest.Optional, Create: `displayName`, Update: `displayName`}, + "freeform_tags": acctest.Representation{RepType: acctest.Optional, Create: map[string]string{"bar-key": "value"}, Update: map[string]string{"bar-key": "value"}}, + "ip_address_lists": []acctest.RepresentationGroup{{RepType: acctest.Optional, Group: networkFirewallIpAddressListsRepresentation}, {RepType: acctest.Optional, Group: networkFirewallIpAddressListsRepresentation2}}, + "mapped_secrets": []acctest.RepresentationGroup{{RepType: acctest.Optional, Group: networkFirewallPolicyMappedSecretsRepresentation}, {RepType: acctest.Optional, Group: networkFirewallPolicyMappedSecretsRepresentation2}}, + "security_rules": []acctest.RepresentationGroup{{RepType: acctest.Optional, Group: networkFirewallPolicySecurityRulesRepresentation}, {RepType: acctest.Optional, Group: networkFirewallPolicySecurityRulesRepresentation2}}, + "url_lists": []acctest.RepresentationGroup{{RepType: acctest.Optional, Group: networkFirewallUrlListsRepresentation}, {RepType: acctest.Optional, Group: networkFirewallUrlListsRepresentation2}}, } networkFirewallIpAddressListsRepresentation = map[string]interface{}{ @@ -70,14 +70,27 @@ var ( "10.22.2.2"}, Update: []string{"10.2.3.4/24", "10.22.2.2"}}, } + networkFirewallIpAddressListsRepresentation2 = map[string]interface{}{ + "ip_address_list_name": acctest.Representation{RepType: acctest.Required, Create: `hr_source2`, Update: `hr_source2`}, + "ip_address_list_value": acctest.Representation{RepType: acctest.Optional, Create: []string{"10.3.3.4/24"}, Update: []string{"10.2.3.4/24", + "10.22.2.2"}}, + } networkFirewallUrlListsRepresentation = map[string]interface{}{ "url_list_name": acctest.Representation{RepType: acctest.Required, Create: `hr`}, "url_list_values": []acctest.RepresentationGroup{{RepType: acctest.Optional, Group: networkFirewallUrlRepresentation}}, } + networkFirewallUrlListsRepresentation2 = map[string]interface{}{ + "url_list_name": acctest.Representation{RepType: acctest.Required, Create: `hr1`}, + "url_list_values": []acctest.RepresentationGroup{{RepType: acctest.Optional, Group: networkFirewallUrlRepresentation2}}, + } networkFirewallUrlRepresentation = map[string]interface{}{ "type": acctest.Representation{RepType: acctest.Required, Create: `SIMPLE`}, "pattern": acctest.Representation{RepType: acctest.Optional, Create: `google.com`}, } + networkFirewallUrlRepresentation2 = map[string]interface{}{ + "type": acctest.Representation{RepType: acctest.Required, Create: `SIMPLE`}, + "pattern": acctest.Representation{RepType: acctest.Optional, Create: `facebook.com`}, + } networkFirewallApplicationListsRepresentation = map[string]interface{}{ "application_list_name": acctest.Representation{RepType: acctest.Required, Create: `app-1`}, "application_values": []acctest.RepresentationGroup{{RepType: acctest.Optional, Group: networkFirewallApplicationRepresentation}}, @@ -90,8 +103,12 @@ var ( } networkFirewallApplicationListsRepresentation2 = map[string]interface{}{ + "application_list_name": acctest.Representation{RepType: acctest.Required, Create: `app-2`}, + "application_values": []acctest.RepresentationGroup{{RepType: acctest.Optional, Group: networkFirewallApplicationRepresentation2}}, + } + + networkFirewallApplicationRepresentation2 = map[string]interface{}{ "type": acctest.Representation{RepType: acctest.Required, Create: "ICMP"}, - "key": acctest.Representation{RepType: acctest.Required, Create: `app-2`}, "icmp_type": acctest.Representation{RepType: acctest.Optional, Create: `5`}, "icmp_code": acctest.Representation{RepType: acctest.Optional, Create: `2`}, } @@ -108,36 +125,77 @@ var ( "is_unknown_revocation_status_blocked": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `false`}, "is_untrusted_issuer_blocked": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `false`}, } + networkFirewallPolicyDecryptionProfilesRepresentation2 = map[string]interface{}{ + "key": acctest.Representation{RepType: acctest.Required, Create: `ssl-outbound-1`, Update: `ssl-outbound-1`}, + "is_out_of_capacity_blocked": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `false`}, + "is_unsupported_cipher_blocked": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `false`}, + "is_unsupported_version_blocked": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `false`}, + "type": acctest.Representation{RepType: acctest.Required, Create: `SSL_FORWARD_PROXY`, Update: `SSL_FORWARD_PROXY`}, + "are_certificate_extensions_restricted": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `false`}, + "is_auto_include_alt_name": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `false`}, + "is_expired_certificate_blocked": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `false`}, + "is_revocation_status_timeout_blocked": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `false`}, + "is_unknown_revocation_status_blocked": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `false`}, + "is_untrusted_issuer_blocked": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `false`}, + } networkFirewallPolicyDecryptionRulesRepresentation = map[string]interface{}{ "action": acctest.Representation{RepType: acctest.Required, Create: `DECRYPT`}, // Update: `DECRYPT` "condition": acctest.RepresentationGroup{RepType: acctest.Required, Group: networkFirewallPolicyDecryptionRulesConditionRepresentation}, - "name": acctest.Representation{RepType: acctest.Required, Create: `hr-inbound-inspect`, Update: `hr-inbound-inspect`}, + "name": acctest.Representation{RepType: acctest.Required, Create: `hr-inbound-decrypt`, Update: `hr-inbound-decrypt`}, "decryption_profile": acctest.Representation{RepType: acctest.Optional, Create: `ssl-inbound-1`, Update: `ssl-inbound-1`}, "secret": acctest.Representation{RepType: acctest.Optional, Create: `cert-inbound`, Update: `cert-inbound`}, } + networkFirewallPolicyDecryptionRulesRepresentation2 = map[string]interface{}{ + "action": acctest.Representation{RepType: acctest.Required, Create: `DECRYPT`}, // Update: `DECRYPT` + "condition": acctest.RepresentationGroup{RepType: acctest.Required, Group: networkFirewallPolicyDecryptionRulesConditionRepresentation2}, + "name": acctest.Representation{RepType: acctest.Required, Create: `hr-inbound-inspect`, Update: `hr-inbound-inspect`}, + "decryption_profile": acctest.Representation{RepType: acctest.Optional, Create: `ssl-outbound-1`, Update: `ssl-outbound-1`}, + "secret": acctest.Representation{RepType: acctest.Optional, Create: `outbound-1`, Update: `outbound-3`}, + } networkFirewallPolicyMappedSecretsRepresentation = map[string]interface{}{ "key": acctest.Representation{RepType: acctest.Required, Create: `cert-inbound`, Update: `cert-inbound`}, "type": acctest.Representation{RepType: acctest.Required, Create: `SSL_INBOUND_INSPECTION`, Update: `SSL_INBOUND_INSPECTION`}, "vault_secret_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_vault_secret.test_secret.id}`}, "version_number": acctest.Representation{RepType: acctest.Required, Create: `10`, Update: `10`}, } + networkFirewallPolicyMappedSecretsRepresentation2 = map[string]interface{}{ + "key": acctest.Representation{RepType: acctest.Required, Create: `outbound-1`, Update: `outbound-3`}, + "type": acctest.Representation{RepType: acctest.Required, Create: `SSL_FORWARD_PROXY`, Update: `SSL_FORWARD_PROXY`}, + "vault_secret_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_vault_secret.test_secret.id}`}, + "version_number": acctest.Representation{RepType: acctest.Required, Create: `10`, Update: `10`}, + } networkFirewallPolicySecurityRulesRepresentation = map[string]interface{}{ - "action": acctest.Representation{RepType: acctest.Required, Create: `INSPECT`, Update: `INSPECT`}, + "action": acctest.Representation{RepType: acctest.Required, Create: `ALLOW`, Update: `DROP`}, "condition": acctest.RepresentationGroup{RepType: acctest.Required, Group: networkFirewallPolicySecurityRulesConditionRepresentation}, "name": acctest.Representation{RepType: acctest.Required, Create: `hr_access`, Update: `hr_access`}, + "inspection": acctest.Representation{RepType: acctest.Optional, Create: ``, Update: ``}, + } + networkFirewallPolicySecurityRulesRepresentation2 = map[string]interface{}{ + "action": acctest.Representation{RepType: acctest.Required, Create: `INSPECT`, Update: `INSPECT`}, + "condition": acctest.RepresentationGroup{RepType: acctest.Required, Group: networkFirewallPolicySecurityRulesConditionRepresentation}, + "name": acctest.Representation{RepType: acctest.Required, Create: `hr_access2`, Update: `hr_access2`}, "inspection": acctest.Representation{RepType: acctest.Optional, Create: `INTRUSION_DETECTION`, Update: `INTRUSION_DETECTION`}, } networkFirewallPolicyDecryptionRulesConditionRepresentation = map[string]interface{}{ - "destinations": acctest.Representation{RepType: acctest.Optional, Create: []string{`hr_source`}, Update: []string{`hr_source`}}, - "sources": acctest.Representation{RepType: acctest.Optional, Create: []string{`hr_source`}, Update: []string{`hr_source`}}, + "destinations": acctest.Representation{RepType: acctest.Optional, Create: []string{`hr_source`}, Update: []string{`hr_source2`}}, + "sources": acctest.Representation{RepType: acctest.Optional, Create: []string{`hr_source`}, Update: []string{`hr_source2`}}, + } + networkFirewallPolicyDecryptionRulesConditionRepresentation2 = map[string]interface{}{ + "destinations": acctest.Representation{RepType: acctest.Optional, Create: []string{`hr_source2`}, Update: []string{`hr_source`}}, + "sources": acctest.Representation{RepType: acctest.Optional, Create: []string{`hr_source2`}, Update: []string{`hr_source`}}, } networkFirewallPolicySecurityRulesConditionRepresentation = map[string]interface{}{ - "applications": acctest.Representation{RepType: acctest.Optional, Create: []string{`app-1`}, Update: []string{`app-1`}}, + "applications": acctest.Representation{RepType: acctest.Optional, Create: []string{`app-1`}, Update: []string{`app-2`}}, "destinations": acctest.Representation{RepType: acctest.Optional, Create: []string{`hr_source`}, Update: []string{`hr_source`}}, "sources": acctest.Representation{RepType: acctest.Optional, Create: []string{`hr_source`}, Update: []string{`hr_source`}}, "urls": acctest.Representation{RepType: acctest.Optional, Create: []string{`hr`}, Update: []string{`hr`}}, } - + networkFirewallPolicySecurityRulesConditionRepresentation2 = map[string]interface{}{ + "applications": acctest.Representation{RepType: acctest.Optional, Create: []string{`app-2`}, Update: []string{`app-2`}}, + "destinations": acctest.Representation{RepType: acctest.Optional, Create: []string{`hr_source2`}, Update: []string{`hr_source2`}}, + "sources": acctest.Representation{RepType: acctest.Optional, Create: []string{`hr_source2`}, Update: []string{`hr_source2`}}, + "urls": acctest.Representation{RepType: acctest.Optional, Create: []string{`hr1`}, Update: []string{`hr1`}}, + } NetworkFirewallPolicyResourceDependencies = "" //DefinedTagsDependencies + //acctest.GenerateResourceFromRepresentationMap("oci_kms_vault", "test_vault", acctest.Required, acctest.Create, vaultRepresentation) + //acctest.GenerateResourceFromRepresentationMap("oci_vault_secret", "test_secret", acctest.Required, acctest.Create, secretRepresentation) @@ -195,37 +253,37 @@ func TestNetworkFirewallNetworkFirewallPolicyResource_basic(t *testing.T) { Config: config + vaultIdVariableStr + keyIdVariableStr + compartmentIdVariableStr + NetworkFirewallPolicyResourceDependencies + acctest.GenerateResourceFromRepresentationMap("oci_network_firewall_network_firewall_policy", "test_network_firewall_policy", acctest.Optional, acctest.Create, networkFirewallPolicyRepresentation), Check: acctest.ComposeAggregateTestCheckFuncWrapper( - resource.TestCheckResourceAttr(resourceName, "application_lists.#", "1"), + resource.TestCheckResourceAttr(resourceName, "application_lists.#", "2"), resource.TestCheckResourceAttr(resourceName, "application_lists.0.application_list_name", "app-1"), resource.TestCheckResourceAttr(resourceName, "application_lists.0.application_values.0.icmp_type", "5"), resource.TestCheckResourceAttr(resourceName, "application_lists.0.application_values.0.icmp_code", "2"), - resource.TestCheckResourceAttr(resourceName, "url_lists.#", "1"), + resource.TestCheckResourceAttr(resourceName, "url_lists.#", "2"), resource.TestCheckResourceAttr(resourceName, "url_lists.0.url_list_values.0.pattern", "google.com"), resource.TestCheckResourceAttr(resourceName, "compartment_id", compartmentId), - resource.TestCheckResourceAttr(resourceName, "decryption_profiles.#", "1"), - resource.TestCheckResourceAttr(resourceName, "decryption_rules.#", "1"), + resource.TestCheckResourceAttr(resourceName, "decryption_profiles.#", "2"), + resource.TestCheckResourceAttr(resourceName, "decryption_rules.#", "2"), resource.TestCheckResourceAttr(resourceName, "decryption_rules.0.action", "DECRYPT"), resource.TestCheckResourceAttr(resourceName, "decryption_rules.0.condition.#", "1"), resource.TestCheckResourceAttr(resourceName, "decryption_rules.0.condition.0.destinations.#", "1"), resource.TestCheckResourceAttr(resourceName, "decryption_rules.0.condition.0.sources.#", "1"), resource.TestCheckResourceAttr(resourceName, "decryption_rules.0.decryption_profile", "ssl-inbound-1"), - resource.TestCheckResourceAttr(resourceName, "decryption_rules.0.name", "hr-inbound-inspect"), + resource.TestCheckResourceAttr(resourceName, "decryption_rules.0.name", "hr-inbound-decrypt"), resource.TestCheckResourceAttr(resourceName, "decryption_rules.0.secret", "cert-inbound"), resource.TestCheckResourceAttr(resourceName, "display_name", "displayName"), resource.TestCheckResourceAttr(resourceName, "freeform_tags.%", "1"), resource.TestCheckResourceAttrSet(resourceName, "id"), - resource.TestCheckResourceAttr(resourceName, "ip_address_lists.#", "1"), + resource.TestCheckResourceAttr(resourceName, "ip_address_lists.#", "2"), resource.TestCheckResourceAttr(resourceName, "ip_address_lists.0.ip_address_list_name", "hr_source"), resource.TestCheckResourceAttrSet(resourceName, "is_firewall_attached"), - resource.TestCheckResourceAttr(resourceName, "mapped_secrets.#", "1"), - resource.TestCheckResourceAttr(resourceName, "security_rules.#", "1"), - resource.TestCheckResourceAttr(resourceName, "security_rules.0.action", "INSPECT"), + resource.TestCheckResourceAttr(resourceName, "mapped_secrets.#", "2"), + resource.TestCheckResourceAttr(resourceName, "security_rules.#", "2"), + resource.TestCheckResourceAttr(resourceName, "security_rules.0.action", "ALLOW"), + resource.TestCheckResourceAttr(resourceName, "security_rules.1.action", "INSPECT"), resource.TestCheckResourceAttr(resourceName, "security_rules.0.condition.#", "1"), resource.TestCheckResourceAttr(resourceName, "security_rules.0.condition.0.applications.#", "1"), resource.TestCheckResourceAttr(resourceName, "security_rules.0.condition.0.destinations.#", "1"), resource.TestCheckResourceAttr(resourceName, "security_rules.0.condition.0.sources.#", "1"), resource.TestCheckResourceAttr(resourceName, "security_rules.0.condition.0.urls.#", "1"), - resource.TestCheckResourceAttr(resourceName, "security_rules.0.inspection", "INTRUSION_DETECTION"), resource.TestCheckResourceAttr(resourceName, "security_rules.0.name", "hr_access"), resource.TestCheckResourceAttrSet(resourceName, "state"), resource.TestCheckResourceAttrSet(resourceName, "time_created"), @@ -252,27 +310,29 @@ func TestNetworkFirewallNetworkFirewallPolicyResource_basic(t *testing.T) { })), Check: acctest.ComposeAggregateTestCheckFuncWrapper( resource.TestCheckResourceAttr(resourceName, "compartment_id", compartmentIdU), - resource.TestCheckResourceAttr(resourceName, "decryption_rules.#", "1"), + resource.TestCheckResourceAttr(resourceName, "decryption_rules.#", "2"), resource.TestCheckResourceAttr(resourceName, "decryption_rules.0.action", "DECRYPT"), resource.TestCheckResourceAttr(resourceName, "decryption_rules.0.condition.#", "1"), resource.TestCheckResourceAttr(resourceName, "decryption_rules.0.condition.0.destinations.#", "1"), resource.TestCheckResourceAttr(resourceName, "decryption_rules.0.condition.0.sources.#", "1"), resource.TestCheckResourceAttr(resourceName, "decryption_rules.0.decryption_profile", "ssl-inbound-1"), - resource.TestCheckResourceAttr(resourceName, "decryption_rules.0.name", "hr-inbound-inspect"), + resource.TestCheckResourceAttr(resourceName, "decryption_rules.0.name", "hr-inbound-decrypt"), resource.TestCheckResourceAttr(resourceName, "decryption_rules.0.secret", "cert-inbound"), resource.TestCheckResourceAttr(resourceName, "display_name", "displayName"), resource.TestCheckResourceAttr(resourceName, "freeform_tags.%", "1"), resource.TestCheckResourceAttrSet(resourceName, "id"), - resource.TestCheckResourceAttr(resourceName, "ip_address_lists.#", "1"), + resource.TestCheckResourceAttr(resourceName, "ip_address_lists.#", "2"), resource.TestCheckResourceAttrSet(resourceName, "is_firewall_attached"), - resource.TestCheckResourceAttr(resourceName, "security_rules.#", "1"), - resource.TestCheckResourceAttr(resourceName, "security_rules.0.action", "INSPECT"), + resource.TestCheckResourceAttr(resourceName, "security_rules.#", "2"), + resource.TestCheckResourceAttr(resourceName, "security_rules.0.action", "ALLOW"), + resource.TestCheckResourceAttr(resourceName, "security_rules.1.action", "INSPECT"), resource.TestCheckResourceAttr(resourceName, "security_rules.0.condition.#", "1"), resource.TestCheckResourceAttr(resourceName, "security_rules.0.condition.0.applications.#", "1"), resource.TestCheckResourceAttr(resourceName, "security_rules.0.condition.0.destinations.#", "1"), resource.TestCheckResourceAttr(resourceName, "security_rules.0.condition.0.sources.#", "1"), resource.TestCheckResourceAttr(resourceName, "security_rules.0.condition.0.urls.#", "1"), - resource.TestCheckResourceAttr(resourceName, "security_rules.0.inspection", "INTRUSION_DETECTION"), + resource.TestCheckResourceAttr(resourceName, "security_rules.0.inspection", ""), + resource.TestCheckResourceAttr(resourceName, "security_rules.1.inspection", "INTRUSION_DETECTION"), resource.TestCheckResourceAttr(resourceName, "security_rules.0.name", "hr_access"), resource.TestCheckResourceAttrSet(resourceName, "state"), resource.TestCheckResourceAttrSet(resourceName, "time_created"), @@ -294,26 +354,25 @@ func TestNetworkFirewallNetworkFirewallPolicyResource_basic(t *testing.T) { acctest.GenerateResourceFromRepresentationMap("oci_network_firewall_network_firewall_policy", "test_network_firewall_policy", acctest.Optional, acctest.Update, networkFirewallPolicyRepresentation), Check: acctest.ComposeAggregateTestCheckFuncWrapper( resource.TestCheckResourceAttr(resourceName, "compartment_id", compartmentId), - resource.TestCheckResourceAttr(resourceName, "decryption_rules.#", "1"), + resource.TestCheckResourceAttr(resourceName, "decryption_rules.#", "2"), resource.TestCheckResourceAttr(resourceName, "decryption_rules.0.action", "DECRYPT"), resource.TestCheckResourceAttr(resourceName, "decryption_rules.0.condition.#", "1"), resource.TestCheckResourceAttr(resourceName, "decryption_rules.0.condition.0.destinations.#", "1"), resource.TestCheckResourceAttr(resourceName, "decryption_rules.0.condition.0.sources.#", "1"), resource.TestCheckResourceAttr(resourceName, "decryption_rules.0.decryption_profile", "ssl-inbound-1"), - resource.TestCheckResourceAttr(resourceName, "decryption_rules.0.name", "hr-inbound-inspect"), + resource.TestCheckResourceAttr(resourceName, "decryption_rules.0.name", "hr-inbound-decrypt"), resource.TestCheckResourceAttr(resourceName, "decryption_rules.0.secret", "cert-inbound"), resource.TestCheckResourceAttr(resourceName, "display_name", "displayName"), resource.TestCheckResourceAttr(resourceName, "freeform_tags.%", "1"), resource.TestCheckResourceAttrSet(resourceName, "id"), resource.TestCheckResourceAttrSet(resourceName, "is_firewall_attached"), - resource.TestCheckResourceAttr(resourceName, "security_rules.#", "1"), - resource.TestCheckResourceAttr(resourceName, "security_rules.0.action", "INSPECT"), + resource.TestCheckResourceAttr(resourceName, "security_rules.#", "2"), + resource.TestCheckResourceAttr(resourceName, "security_rules.0.action", "DROP"), resource.TestCheckResourceAttr(resourceName, "security_rules.0.condition.#", "1"), resource.TestCheckResourceAttr(resourceName, "security_rules.0.condition.0.applications.#", "1"), resource.TestCheckResourceAttr(resourceName, "security_rules.0.condition.0.destinations.#", "1"), resource.TestCheckResourceAttr(resourceName, "security_rules.0.condition.0.sources.#", "1"), resource.TestCheckResourceAttr(resourceName, "security_rules.0.condition.0.urls.#", "1"), - resource.TestCheckResourceAttr(resourceName, "security_rules.0.inspection", "INTRUSION_DETECTION"), resource.TestCheckResourceAttr(resourceName, "security_rules.0.name", "hr_access"), resource.TestCheckResourceAttrSet(resourceName, "state"), resource.TestCheckResourceAttrSet(resourceName, "time_created"), @@ -352,27 +411,28 @@ func TestNetworkFirewallNetworkFirewallPolicyResource_basic(t *testing.T) { Check: acctest.ComposeAggregateTestCheckFuncWrapper( resource.TestCheckResourceAttrSet(singularDatasourceName, "network_firewall_policy_id"), resource.TestCheckResourceAttr(singularDatasourceName, "compartment_id", compartmentId), - resource.TestCheckResourceAttr(singularDatasourceName, "decryption_rules.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "decryption_rules.#", "2"), resource.TestCheckResourceAttr(singularDatasourceName, "decryption_rules.0.action", "DECRYPT"), resource.TestCheckResourceAttr(singularDatasourceName, "decryption_rules.0.condition.#", "1"), resource.TestCheckResourceAttr(singularDatasourceName, "decryption_rules.0.condition.0.destinations.#", "1"), resource.TestCheckResourceAttr(singularDatasourceName, "decryption_rules.0.condition.0.sources.#", "1"), resource.TestCheckResourceAttr(singularDatasourceName, "decryption_rules.0.decryption_profile", "ssl-inbound-1"), - resource.TestCheckResourceAttr(singularDatasourceName, "decryption_rules.0.name", "hr-inbound-inspect"), + resource.TestCheckResourceAttr(singularDatasourceName, "decryption_rules.0.name", "hr-inbound-decrypt"), resource.TestCheckResourceAttr(singularDatasourceName, "decryption_rules.0.secret", "cert-inbound"), resource.TestCheckResourceAttr(singularDatasourceName, "display_name", "displayName"), resource.TestCheckResourceAttr(singularDatasourceName, "freeform_tags.%", "1"), resource.TestCheckResourceAttrSet(singularDatasourceName, "id"), - resource.TestCheckResourceAttr(singularDatasourceName, "ip_address_lists.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "ip_address_lists.#", "2"), resource.TestCheckResourceAttrSet(singularDatasourceName, "is_firewall_attached"), - resource.TestCheckResourceAttr(singularDatasourceName, "security_rules.#", "1"), - resource.TestCheckResourceAttr(singularDatasourceName, "security_rules.0.action", "INSPECT"), + resource.TestCheckResourceAttr(singularDatasourceName, "security_rules.#", "2"), + resource.TestCheckResourceAttr(singularDatasourceName, "security_rules.0.action", "DROP"), resource.TestCheckResourceAttr(singularDatasourceName, "security_rules.0.condition.#", "1"), resource.TestCheckResourceAttr(singularDatasourceName, "security_rules.0.condition.0.applications.#", "1"), resource.TestCheckResourceAttr(singularDatasourceName, "security_rules.0.condition.0.destinations.#", "1"), resource.TestCheckResourceAttr(singularDatasourceName, "security_rules.0.condition.0.sources.#", "1"), resource.TestCheckResourceAttr(singularDatasourceName, "security_rules.0.condition.0.urls.#", "1"), - resource.TestCheckResourceAttr(singularDatasourceName, "security_rules.0.inspection", "INTRUSION_DETECTION"), + resource.TestCheckResourceAttr(singularDatasourceName, "security_rules.0.inspection", ""), + resource.TestCheckResourceAttr(singularDatasourceName, "security_rules.1.inspection", "INTRUSION_DETECTION"), resource.TestCheckResourceAttr(singularDatasourceName, "security_rules.0.name", "hr_access"), resource.TestCheckResourceAttrSet(singularDatasourceName, "state"), resource.TestCheckResourceAttrSet(singularDatasourceName, "time_created"), diff --git a/internal/service/network_firewall/network_firewall_network_firewall_policy_resource.go b/internal/service/network_firewall/network_firewall_network_firewall_policy_resource.go index 403a1bec0b8..05972612d7a 100644 --- a/internal/service/network_firewall/network_firewall_network_firewall_policy_resource.go +++ b/internal/service/network_firewall/network_firewall_network_firewall_policy_resource.go @@ -4,12 +4,15 @@ package network_firewall import ( + "bytes" "context" "fmt" "log" "strings" "time" + "github.com/oracle/terraform-provider-oci/internal/utils" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" @@ -41,9 +44,10 @@ func NetworkFirewallNetworkFirewallPolicyResource() *schema.Resource { Required: true, }, "application_lists": { - Type: schema.TypeList, + Type: schema.TypeSet, Optional: true, Computed: true, + Set: applicationListsHashCodeForSets, Elem: &schema.Resource{ Schema: map[string]*schema.Schema{ //Required @@ -90,10 +94,10 @@ func NetworkFirewallNetworkFirewallPolicyResource() *schema.Resource { }, }, "decryption_profiles": { - Type: schema.TypeList, + Type: schema.TypeSet, Optional: true, Computed: true, - //Set: originsHashCodeForProfiles, + Set: decryptionProfilesHashCodeForSets, Elem: &schema.Resource{ Schema: map[string]*schema.Schema{ // Required @@ -228,9 +232,10 @@ func NetworkFirewallNetworkFirewallPolicyResource() *schema.Resource { Elem: schema.TypeString, }, "ip_address_lists": { - Type: schema.TypeList, + Type: schema.TypeSet, Optional: true, Computed: true, + Set: ipAddressListsHashCodeForSets, Elem: &schema.Resource{ Schema: map[string]*schema.Schema{ // Required @@ -250,10 +255,10 @@ func NetworkFirewallNetworkFirewallPolicyResource() *schema.Resource { }, }, "mapped_secrets": { - Type: schema.TypeList, + Type: schema.TypeSet, Optional: true, Computed: true, - //Set: mappedSecretsHashCodeForSets, + Set: mappedSecretsHashCodeForSets, Elem: &schema.Resource{ Schema: map[string]*schema.Schema{ // Required @@ -355,9 +360,10 @@ func NetworkFirewallNetworkFirewallPolicyResource() *schema.Resource { }, }, "url_lists": { - Type: schema.TypeList, + Type: schema.TypeSet, Optional: true, Computed: true, + Set: urlListsHashCodeForSets, Elem: &schema.Resource{ Schema: map[string]*schema.Schema{ "url_list_name": { @@ -600,32 +606,21 @@ func (s *NetworkFirewallNetworkFirewallPolicyResourceCrud) Create() error { func (s *NetworkFirewallNetworkFirewallPolicyResourceCrud) objectMapToDecryptionProfileMap(decryptionProfiles interface{}) (map[string]oci_network_firewall.DecryptionProfile, error) { resultMap := map[string]oci_network_firewall.DecryptionProfile{} - tmpList := decryptionProfiles.([]interface{}) - i := 0 + set := decryptionProfiles.(*schema.Set) + tmpList := set.List() for _, ifc := range tmpList { - fmt.Printf("current index %q", ifc) - fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "decryption_profiles", i) + stateDataIndex := decryptionProfilesHashCodeForSets(ifc) + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "decryption_profiles", stateDataIndex) converted, err := s.mapToDecryptionProfile(fieldKeyFormat) if err != nil { return nil, err } - if type_, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "type")); ok { - tmp := type_.(string) - switch tmp { - case "SSL_INBOUND_INSPECTION": - if key, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "key")); ok { - keyV := key.(string) - resultMap[keyV] = converted - } - case "SSL_FORWARD_PROXY": - if key, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "key")); ok { - keyV := key.(string) - resultMap[keyV] = converted - } - } + if key, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "key")); ok { + keyV := key.(string) + resultMap[keyV] = converted } - i++ + } return resultMap, nil @@ -634,34 +629,23 @@ func (s *NetworkFirewallNetworkFirewallPolicyResourceCrud) objectMapToDecryption func (s *NetworkFirewallNetworkFirewallPolicyResourceCrud) objectMapToMappedSecrets(mappedSecrets interface{}) (map[string]oci_network_firewall.MappedSecret, error) { resultMap := map[string]oci_network_firewall.MappedSecret{} - tmpList := mappedSecrets.([]interface{}) - i := 0 + set := mappedSecrets.(*schema.Set) + tmpList := set.List() + for _, ifc := range tmpList { - fmt.Printf("Current secret %q", ifc) - fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "mapped_secrets", i) + stateDataIndex := mappedSecretsHashCodeForSets(ifc) + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "mapped_secrets", stateDataIndex) converted, err := s.mapToMappedSecret(fieldKeyFormat) if err != nil { return nil, err } - if type_, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "type")); ok { - tmp := type_.(string) - switch tmp { - case "SSL_INBOUND_INSPECTION": - if key, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "key")); ok { - keyV := key.(string) - resultMap[keyV] = converted - } - case "SSL_FORWARD_PROXY": - if key, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "key")); ok { - keyV := key.(string) - resultMap[keyV] = converted - } - } + if key, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "key")); ok { + keyV := key.(string) + resultMap[keyV] = converted } - i++ - } + } return resultMap, nil } func (s *NetworkFirewallNetworkFirewallPolicyResourceCrud) mapToDecryptionProfile(fieldKeyFormat string) (oci_network_firewall.DecryptionProfile, error) { @@ -1037,13 +1021,13 @@ func (s *NetworkFirewallNetworkFirewallPolicyResourceCrud) Delete() error { func (s *NetworkFirewallNetworkFirewallPolicyResourceCrud) SetData() error { if s.Res.ApplicationLists != nil { - s.D.Set("application_lists", propertyApplicationListsToMap(s.Res.ApplicationLists)) + s.D.Set("application_lists", schema.NewSet(applicationListsHashCodeForSets, propertyApplicationListsToMap(s.Res.ApplicationLists))) } else { s.D.Set("application_lists", nil) } if s.Res.UrlLists != nil { - s.D.Set("url_lists", propertyUrlListsToMap(s.Res.UrlLists)) + s.D.Set("url_lists", schema.NewSet(urlListsHashCodeForSets, propertyUrlListsToMap(s.Res.UrlLists))) } else { s.D.Set("url_lists", nil) } @@ -1053,13 +1037,13 @@ func (s *NetworkFirewallNetworkFirewallPolicyResourceCrud) SetData() error { } if s.Res.DecryptionProfiles != nil { - s.D.Set("decryption_profiles", DecryptionProfileMapToMap(s.Res.DecryptionProfiles)) + s.D.Set("decryption_profiles", schema.NewSet(decryptionProfilesHashCodeForSets, DecryptionProfileMapToMap(s.Res.DecryptionProfiles))) } else { s.D.Set("decryption_profiles", nil) } if s.Res.MappedSecrets != nil { - s.D.Set("mapped_secrets", MappedSecretsToMap(s.Res.MappedSecrets)) + s.D.Set("mapped_secrets", schema.NewSet(mappedSecretsHashCodeForSets, MappedSecretsToMap(s.Res.MappedSecrets))) } else { s.D.Set("mapped_secrets", nil) } @@ -1081,7 +1065,7 @@ func (s *NetworkFirewallNetworkFirewallPolicyResourceCrud) SetData() error { s.D.Set("freeform_tags", s.Res.FreeformTags) if s.Res.IpAddressLists != nil { - s.D.Set("ip_address_lists", ipAddressListsToMap(s.Res.IpAddressLists)) + s.D.Set("ip_address_lists", schema.NewSet(ipAddressListsHashCodeForSets, ipAddressListsToMap(s.Res.IpAddressLists))) } else { s.D.Set("ip_address_lists", nil) } @@ -1248,6 +1232,136 @@ func MappedSecretToMap(obj oci_network_firewall.MappedSecret) map[string]interfa return result } +func ipAddressListsHashCodeForSets(v interface{}) int { + var buf bytes.Buffer + m := v.(map[string]interface{}) + if listName, ok := m["ip_address_list_name"]; ok && listName != "" { + buf.WriteString(fmt.Sprintf("%v-", listName)) + } + if listValue, ok := m["ip_address_list_value"]; ok && listValue != "" { + buf.WriteString(fmt.Sprintf("%v-", listValue)) + } + + return utils.GetStringHashcode(buf.String()) +} + +func mappedSecretsHashCodeForSets(v interface{}) int { + var buf bytes.Buffer + m := v.(map[string]interface{}) + if key, ok := m["key"]; ok && key != "" { + buf.WriteString(fmt.Sprintf("%v-", key)) + } + if type_, ok := m["type"]; ok && type_ != "" { + buf.WriteString(fmt.Sprintf("%v-", type_)) + } + if versionNumber, ok := m["is_out_of_capacity_blocked"]; ok && versionNumber != "" { + buf.WriteString(fmt.Sprintf("%v-", versionNumber)) + } + if versionSecretId, ok := m["vault_secret_id"]; ok && versionSecretId != "" { + buf.WriteString(fmt.Sprintf("%v-", versionSecretId)) + } + + return utils.GetStringHashcode(buf.String()) +} + +func decryptionProfilesHashCodeForSets(v interface{}) int { + var buf bytes.Buffer + m := v.(map[string]interface{}) + if key, ok := m["key"]; ok && key != "" { + buf.WriteString(fmt.Sprintf("%v-", key)) + } + if type_, ok := m["type"]; ok && type_ != "" { + buf.WriteString(fmt.Sprintf("%v-", type_)) + } + if isOutOfCapacityBlocked, ok := m["is_out_of_capacity_blocked"]; ok && isOutOfCapacityBlocked != "" { + buf.WriteString(fmt.Sprintf("%v-", isOutOfCapacityBlocked)) + } + if isAutoIncludeAltName, ok := m["is_auto_include_alt_name"]; ok && isAutoIncludeAltName != "" { + buf.WriteString(fmt.Sprintf("%v-", isAutoIncludeAltName)) + } + if areCertificateExtensionsRestricted, ok := m["are_certificate_extensions_restricted"]; ok && areCertificateExtensionsRestricted != "" { + buf.WriteString(fmt.Sprintf("%v-", areCertificateExtensionsRestricted)) + } + if isUnknownRevocationStatusBlocked, ok := m["is_unknown_revocation_status_blocked"]; ok && isUnknownRevocationStatusBlocked != "" { + buf.WriteString(fmt.Sprintf("%v-", isUnknownRevocationStatusBlocked)) + } + if isUnsupportedCipherBlocked, ok := m["is_unsupported_cipher_blocked"]; ok && isUnsupportedCipherBlocked != "" { + buf.WriteString(fmt.Sprintf("%v-", isUnsupportedCipherBlocked)) + } + if isUnsupportedVersionBlocked, ok := m["is_unsupported_version_blocked"]; ok && isUnsupportedVersionBlocked != "" { + buf.WriteString(fmt.Sprintf("%v-", isUnsupportedVersionBlocked)) + } + if isRevocationStatusTimeoutBlocked, ok := m["is_revocation_status_timeout_blocked"]; ok && isRevocationStatusTimeoutBlocked != "" { + buf.WriteString(fmt.Sprintf("%v-", isRevocationStatusTimeoutBlocked)) + } + if isUntrustedIssuerBlocked, ok := m["is_untrusted_issuer_blocked"]; ok && isUntrustedIssuerBlocked != "" { + buf.WriteString(fmt.Sprintf("%v-", isUntrustedIssuerBlocked)) + } + if isExpiredCertificateBlocked, ok := m["is_expired_certificate_blocked"]; ok && isExpiredCertificateBlocked != "" { + buf.WriteString(fmt.Sprintf("%v-", isExpiredCertificateBlocked)) + } + + return utils.GetStringHashcode(buf.String()) +} + +func urlListsHashCodeForSets(v interface{}) int { + var buf bytes.Buffer + m := v.(map[string]interface{}) + if urlListName, ok := m["url_list_name"]; ok && urlListName != "" { + buf.WriteString(fmt.Sprintf("%v-", urlListName)) + } + + if urlListValues, ok := m["url_list_values"]; ok && urlListValues != "" { + if tmpList := urlListValues.([]interface{}); len(tmpList) > 0 { + buf.WriteString("url_list_values-") + for _, urlListValuesRaw := range tmpList { + tmpMap := urlListValuesRaw.(map[string]interface{}) + if type_, ok := tmpMap["type"]; ok { + buf.WriteString(fmt.Sprintf("%v-", type_)) + } + if pattern, ok := tmpMap["pattern"]; ok { + buf.WriteString(fmt.Sprintf("%v-", pattern)) + } + } + } + } + + return utils.GetStringHashcode(buf.String()) +} + +func applicationListsHashCodeForSets(v interface{}) int { + var buf bytes.Buffer + m := v.(map[string]interface{}) + if applicationListName, ok := m["application_list_name"]; ok && applicationListName != "" { + buf.WriteString(fmt.Sprintf("%v-", applicationListName)) + } + + if applicationListValues, ok := m["application_values"]; ok && applicationListValues != "" { + if tmpList := applicationListValues.([]interface{}); len(tmpList) > 0 { + buf.WriteString("application_values-") + for _, appListValuesRaw := range tmpList { + tmpMap := appListValuesRaw.(map[string]interface{}) + if type_, ok := tmpMap["type"]; ok { + buf.WriteString(fmt.Sprintf("%v-", type_)) + } + if icmpType, ok := tmpMap["icmp_type"]; ok { + buf.WriteString(fmt.Sprintf("%v-", icmpType)) + } + if icmpCode, ok := tmpMap["icmp_code"]; ok { + buf.WriteString(fmt.Sprintf("%v-", icmpCode)) + } + if minPort, ok := tmpMap["minimum_port"]; ok { + buf.WriteString(fmt.Sprintf("%v-", minPort)) + } + if maxPort, ok := tmpMap["maximum_port"]; ok { + buf.WriteString(fmt.Sprintf("%v-", maxPort)) + } + } + } + } + + return utils.GetStringHashcode(buf.String()) +} func (s *NetworkFirewallNetworkFirewallPolicyResourceCrud) mapToDecryptionRule(fieldKeyFormat string) (oci_network_firewall.DecryptionRule, error) { result := oci_network_firewall.DecryptionRule{} @@ -1544,7 +1658,9 @@ type IpAddressObject struct { func (s *NetworkFirewallNetworkFirewallPolicyResourceCrud) objectMapToStringListMap(obj interface{}) map[string][]string { resultMap := make(map[string][]string) - IpAddrObjList := obj.([]interface{}) + + set := obj.(*schema.Set) + IpAddrObjList := set.List() for _, ipAddrObj := range IpAddrObjList { ipAddrActualObj := ipAddrObj.(map[string]interface{}) @@ -1562,9 +1678,10 @@ func (s *NetworkFirewallNetworkFirewallPolicyResourceCrud) objectMapToStringList func (s *NetworkFirewallNetworkFirewallPolicyResourceCrud) objectMapToUrlListsMap(urlLists interface{}) (map[string][]oci_network_firewall.UrlPattern, error) { resultMap := make(map[string][]oci_network_firewall.UrlPattern) - urlList := urlLists.([]interface{}) - + set := urlLists.(*schema.Set) + urlList := set.List() for _, list := range urlList { + urlListK := list.(map[string]interface{}) urlPatterns := urlListK["url_list_values"].([]interface{}) listKey := urlListK["url_list_name"].(string) @@ -1581,8 +1698,9 @@ func (s *NetworkFirewallNetworkFirewallPolicyResourceCrud) objectMapToUrlListsMa func (s *NetworkFirewallNetworkFirewallPolicyResourceCrud) objectMapToApplicationListsMap(applicationLists interface{}) (map[string][]oci_network_firewall.Application, error) { resultMap := make(map[string][]oci_network_firewall.Application) - applicationList := applicationLists.([]interface{}) + set := applicationLists.(*schema.Set) + applicationList := set.List() for _, list := range applicationList { applicationListK := list.(map[string]interface{}) applications := applicationListK["application_values"].([]interface{}) From fc9df7aa0f60a2f3d54a50f2fad3e26b2547c6f7 Mon Sep 17 00:00:00 2001 From: Terraform Team Automation Date: Fri, 10 Mar 2023 00:22:57 +0000 Subject: [PATCH 02/12] Bug Fix - Investigate Replication Resource Discovery --- internal/integrationtest/file_storage_replication_test.go | 2 +- internal/service/file_storage/file_storage_export.go | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/internal/integrationtest/file_storage_replication_test.go b/internal/integrationtest/file_storage_replication_test.go index fd68bdb3bf1..2f99dc2efc7 100644 --- a/internal/integrationtest/file_storage_replication_test.go +++ b/internal/integrationtest/file_storage_replication_test.go @@ -356,7 +356,7 @@ func getFileStorageReplicationIds(compartment string) ([]string, error) { listReplicationsResponse, err := fileStorageClient.ListReplications(context.Background(), listReplicationsRequest) if err != nil { - return resourceIds, fmt.Errorf("Error getting Replication list for compartment id : %s , %s \n", compartmentId, err) + return resourceIds, fmt.Errorf("Error getting Replication list for compartment id testing : %s , %s \n", compartmentId, err) } for _, replication := range listReplicationsResponse.Items { id := *replication.Id diff --git a/internal/service/file_storage/file_storage_export.go b/internal/service/file_storage/file_storage_export.go index 1a1244ef02e..8709ee6849b 100644 --- a/internal/service/file_storage/file_storage_export.go +++ b/internal/service/file_storage/file_storage_export.go @@ -87,6 +87,12 @@ var customAssociationFileStorageIdentityAvailabilityDwomain = []tf_export.Terraf "availability_domain": "name", }, }, + { + TerraformResourceHints: exportFileStorageReplicationHints, + DatasourceQueryParams: map[string]string{ + "availability_domain": "name", + }, + }, } var customAssociationFileStorageFileSystem = []tf_export.TerraformResourceAssociation{ From 9326bb796f2430df19b527ac2d6794518f77f010 Mon Sep 17 00:00:00 2001 From: Terraform Team Automation Date: Fri, 10 Mar 2023 01:01:19 +0000 Subject: [PATCH 03/12] Added - Support for BM/VM | OS Patching Support --- ...tabase_db_home_patch_history_entry_test.go | 50 ++++++++++++----- ...base_db_system_patch_history_entry_test.go | 53 +++++++++++-------- ..._home_patch_history_entries_data_source.go | 6 +++ ...ystem_patch_history_entries_data_source.go | 6 +++ .../database/database_db_system_resource.go | 8 +++ .../database_db_systems_data_source.go | 4 ++ ...b_home_patch_history_entries.html.markdown | 1 + ...system_patch_history_entries.html.markdown | 1 + .../docs/d/database_db_systems.html.markdown | 1 + .../docs/r/database_db_system.html.markdown | 1 + 10 files changed, 98 insertions(+), 33 deletions(-) diff --git a/internal/integrationtest/database_db_home_patch_history_entry_test.go b/internal/integrationtest/database_db_home_patch_history_entry_test.go index 7fd5d169e08..3cc847da215 100644 --- a/internal/integrationtest/database_db_home_patch_history_entry_test.go +++ b/internal/integrationtest/database_db_home_patch_history_entry_test.go @@ -4,22 +4,18 @@ package integrationtest import ( - "fmt" "testing" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" "github.com/oracle/terraform-provider-oci/httpreplay" "github.com/oracle/terraform-provider-oci/internal/acctest" - "github.com/oracle/terraform-provider-oci/internal/utils" ) var ( DatabaseDatabaseDbHomePatchHistoryEntryDataSourceRepresentation = map[string]interface{}{ "db_home_id": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_database_db_homes.t.db_homes.0.db_home_id}`}, } - - DatabaseDbHomePatchHistoryEntryResourceConfig = DbSystemResourceConfig ) // issue-routing-tag: database/default @@ -27,11 +23,6 @@ func TestDatabaseDbHomePatchHistoryEntryResource_basic(t *testing.T) { httpreplay.SetScenario("TestDatabaseDbHomePatchHistoryEntryResource_basic") defer httpreplay.SaveScenario() - config := acctest.ProviderTestConfig() - - compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid") - compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId) - datasourceName := "data.oci_database_db_home_patch_history_entries.test_db_home_patch_history_entries" acctest.SaveConfigContent("", "", "", t) @@ -39,9 +30,44 @@ func TestDatabaseDbHomePatchHistoryEntryResource_basic(t *testing.T) { acctest.ResourceTest(t, nil, []resource.TestStep{ // verify datasource { - Config: config + - acctest.GenerateDataSourceFromRepresentationMap("oci_database_db_home_patch_history_entries", "test_db_home_patch_history_entries", acctest.Required, acctest.Create, DatabaseDatabaseDbHomePatchHistoryEntryDataSourceRepresentation) + - compartmentIdVariableStr + DatabaseDbHomePatchHistoryEntryResourceConfig, + Config: ResourceDatabaseBaseConfig + + ` + resource "oci_database_db_system" "t" { + availability_domain = "${data.oci_identity_availability_domains.ADs.availability_domains.0.name}" + compartment_id = "${var.compartment_id}" + subnet_id = "${oci_core_subnet.t.id}" + database_edition = "ENTERPRISE_EDITION" + disk_redundancy = "NORMAL" + shape = "BM.DenseIO2.52" + cpu_core_count = "2" + ssh_public_keys = ["ssh-rsa KKKLK3NzaC1yc2EAAAADAQABAAABAQC+UC9MFNA55NIVtKPIBCNw7++ACXhD0hx+Zyj25JfHykjz/QU3Q5FAU3DxDbVXyubgXfb/GJnrKRY8O4QDdvnZZRvQFFEOaApThAmCAM5MuFUIHdFvlqP+0W+ZQnmtDhwVe2NCfcmOrMuaPEgOKO3DOW6I/qOOdO691Xe2S9NgT9HhN0ZfFtEODVgvYulgXuCCXsJs+NUqcHAOxxFUmwkbPvYi0P0e2DT8JKeiOOC8VKUEgvVx+GKmqasm+Y6zHFW7vv3g2GstE1aRs3mttHRoC/JPM86PRyIxeWXEMzyG5wHqUu4XZpDbnWNxi6ugxnAGiL3CrIFdCgRNgHz5qS1l MustWin"] + domain = "${oci_core_subnet.t.dns_label}.${oci_core_virtual_network.t.dns_label}.oraclevcn.com" + hostname = "myOracleDB" + data_storage_size_in_gb = "256" + license_model = "BRING_YOUR_OWN_LICENSE" + node_count = "1" + fault_domains = ["FAULT-DOMAIN-1"] + nsg_ids = ["${oci_core_network_security_group.test_network_security_group.id}"] + db_home { + db_version = "12.1.0.2" + display_name = "TFTestDbHome1" + database { + admin_password = "BEstrO0ng_#11" + tde_wallet_password = "BEstrO0ng_#11" + db_name = "aTFdb" + } + } + } + + data "oci_database_db_homes" "t" { + compartment_id = "${var.compartment_id}" + db_system_id = "${oci_database_db_system.t.id}" + filter { + name = "display_name" + values = ["TFTestDbHome1"] + } + }` + + acctest.GenerateDataSourceFromRepresentationMap("oci_database_db_home_patch_history_entries", "test_db_home_patch_history_entries", acctest.Required, acctest.Create, DatabaseDatabaseDbHomePatchHistoryEntryDataSourceRepresentation), Check: acctest.ComposeAggregateTestCheckFuncWrapper( resource.TestCheckResourceAttrSet(datasourceName, "db_home_id"), resource.TestCheckResourceAttr(datasourceName, "patch_history_entries.#", "0"), diff --git a/internal/integrationtest/database_db_system_patch_history_entry_test.go b/internal/integrationtest/database_db_system_patch_history_entry_test.go index 80aa06f124f..56f715693a4 100644 --- a/internal/integrationtest/database_db_system_patch_history_entry_test.go +++ b/internal/integrationtest/database_db_system_patch_history_entry_test.go @@ -4,23 +4,18 @@ package integrationtest import ( - "fmt" "testing" - "github.com/oracle/terraform-provider-oci/internal/acctest" - "github.com/oracle/terraform-provider-oci/internal/utils" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/oracle/terraform-provider-oci/internal/acctest" "github.com/oracle/terraform-provider-oci/httpreplay" ) var ( DatabaseDatabaseDbSystemPatchHistoryEntryDataSourceRepresentation = map[string]interface{}{ - "db_system_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_database_db_system.test_db_system.id}`}, + "db_system_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_database_db_system.t.id}`}, } - - DatabaseDbSystemPatchHistoryEntryResourceConfig = DbSystemResourceConfig ) // issue-routing-tag: database/default @@ -28,11 +23,6 @@ func TestDatabaseDbSystemPatchHistoryEntryResource_basic(t *testing.T) { httpreplay.SetScenario("TestDatabaseDbSystemPatchHistoryEntryResource_basic") defer httpreplay.SaveScenario() - config := acctest.ProviderTestConfig() - - compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid") - compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId) - datasourceName := "data.oci_database_db_system_patch_history_entries.test_db_system_patch_history_entries" acctest.SaveConfigContent("", "", "", t) @@ -40,17 +30,38 @@ func TestDatabaseDbSystemPatchHistoryEntryResource_basic(t *testing.T) { acctest.ResourceTest(t, nil, []resource.TestStep{ // verify datasource { - Config: config + - acctest.GenerateDataSourceFromRepresentationMap("oci_database_db_system_patch_history_entries", "test_db_system_patch_history_entries", acctest.Required, acctest.Create, DatabaseDatabaseDbSystemPatchHistoryEntryDataSourceRepresentation) + - compartmentIdVariableStr + DatabaseDbSystemPatchHistoryEntryResourceConfig, + Config: ResourceDatabaseBaseConfig + + ` + resource "oci_database_db_system" "t" { + availability_domain = "${data.oci_identity_availability_domains.ADs.availability_domains.0.name}" + compartment_id = "${var.compartment_id}" + subnet_id = "${oci_core_subnet.t.id}" + database_edition = "ENTERPRISE_EDITION" + disk_redundancy = "NORMAL" + shape = "BM.DenseIO2.52" + cpu_core_count = "2" + ssh_public_keys = ["ssh-rsa KKKLK3NzaC1yc2EAAAADAQABAAABAQC+UC9MFNA55NIVtKPIBCNw7++ACXhD0hx+Zyj25JfHykjz/QU3Q5FAU3DxDbVXyubgXfb/GJnrKRY8O4QDdvnZZRvQFFEOaApThAmCAM5MuFUIHdFvlqP+0W+ZQnmtDhwVe2NCfcmOrMuaPEgOKO3DOW6I/qOOdO691Xe2S9NgT9HhN0ZfFtEODVgvYulgXuCCXsJs+NUqcHAOxxFUmwkbPvYi0P0e2DT8JKeiOOC8VKUEgvVx+GKmqasm+Y6zHFW7vv3g2GstE1aRs3mttHRoC/JPM86PRyIxeWXEMzyG5wHqUu4XZpDbnWNxi6ugxnAGiL3CrIFdCgRNgHz5qS1l MustWin"] + domain = "${oci_core_subnet.t.dns_label}.${oci_core_virtual_network.t.dns_label}.oraclevcn.com" + hostname = "myOracleDB" + data_storage_size_in_gb = "256" + license_model = "BRING_YOUR_OWN_LICENSE" + node_count = "1" + fault_domains = ["FAULT-DOMAIN-1"] + nsg_ids = ["${oci_core_network_security_group.test_network_security_group.id}"] + db_home { + db_version = "12.1.0.2" + database { + admin_password = "BEstrO0ng_#11" + tde_wallet_password = "BEstrO0ng_#11" + db_name = "aTFdb" + } + } + }` + + acctest.GenerateDataSourceFromRepresentationMap("oci_database_db_system_patch_history_entries", "test_db_system_patch_history_entries", acctest.Required, acctest.Create, DatabaseDatabaseDbSystemPatchHistoryEntryDataSourceRepresentation), + //compartmentIdVariableStr + DatabaseDbSystemPatchHistoryEntryResourceConfig, Check: acctest.ComposeAggregateTestCheckFuncWrapper( resource.TestCheckResourceAttrSet(datasourceName, "db_system_id"), - - resource.TestCheckResourceAttrSet(datasourceName, "patch_history_entries.#"), - resource.TestCheckResourceAttrSet(datasourceName, "patch_history_entries.0.id"), - resource.TestCheckResourceAttrSet(datasourceName, "patch_history_entries.0.patch_id"), - resource.TestCheckResourceAttrSet(datasourceName, "patch_history_entries.0.state"), - resource.TestCheckResourceAttrSet(datasourceName, "patch_history_entries.0.time_started"), + resource.TestCheckResourceAttr(datasourceName, "patch_history_entries.#", "0"), ), }, }) diff --git a/internal/service/database/database_db_home_patch_history_entries_data_source.go b/internal/service/database/database_db_home_patch_history_entries_data_source.go index 4bca833179f..c5fb81a5272 100644 --- a/internal/service/database/database_db_home_patch_history_entries_data_source.go +++ b/internal/service/database/database_db_home_patch_history_entries_data_source.go @@ -48,6 +48,10 @@ func DatabaseDbHomePatchHistoryEntriesDataSource() *schema.Resource { Type: schema.TypeString, Computed: true, }, + "patch_type": { + Type: schema.TypeString, + Computed: true, + }, "state": { Type: schema.TypeString, Computed: true, @@ -141,6 +145,8 @@ func (s *DatabaseDbHomePatchHistoryEntriesDataSourceCrud) SetData() error { dbHomePatchHistoryEntry["patch_id"] = *r.PatchId } + dbHomePatchHistoryEntry["patch_type"] = r.PatchType + dbHomePatchHistoryEntry["state"] = r.LifecycleState if r.TimeEnded != nil { diff --git a/internal/service/database/database_db_system_patch_history_entries_data_source.go b/internal/service/database/database_db_system_patch_history_entries_data_source.go index e82c6efeb08..c217333d651 100644 --- a/internal/service/database/database_db_system_patch_history_entries_data_source.go +++ b/internal/service/database/database_db_system_patch_history_entries_data_source.go @@ -48,6 +48,10 @@ func DatabaseDbSystemPatchHistoryEntriesDataSource() *schema.Resource { Type: schema.TypeString, Computed: true, }, + "patch_type": { + Type: schema.TypeString, + Computed: true, + }, "state": { Type: schema.TypeString, Computed: true, @@ -141,6 +145,8 @@ func (s *DatabaseDbSystemPatchHistoryEntriesDataSourceCrud) SetData() error { dbSystemPatchHistoryEntry["patch_id"] = *r.PatchId } + dbSystemPatchHistoryEntry["patch_type"] = r.PatchType + dbSystemPatchHistoryEntry["state"] = r.LifecycleState if r.TimeEnded != nil { diff --git a/internal/service/database/database_db_system_resource.go b/internal/service/database/database_db_system_resource.go index 8e784ad1448..f4bdd728ede 100644 --- a/internal/service/database/database_db_system_resource.go +++ b/internal/service/database/database_db_system_resource.go @@ -859,6 +859,10 @@ func DatabaseDbSystemResource() *schema.Resource { Type: schema.TypeString, Computed: true, }, + "os_version": { + Type: schema.TypeString, + Computed: true, + }, "point_in_time_data_disk_clone_timestamp": { Type: schema.TypeString, Computed: true, @@ -1365,6 +1369,10 @@ func (s *DatabaseDbSystemResourceCrud) SetData() error { s.D.Set("nsg_ids", schema.NewSet(tfresource.LiteralTypeHashCodeForSets, nsgIds)) } + if s.Res.OsVersion != nil { + s.D.Set("os_version", *s.Res.OsVersion) + } + if s.Res.PointInTimeDataDiskCloneTimestamp != nil { s.D.Set("point_in_time_data_disk_clone_timestamp", s.Res.PointInTimeDataDiskCloneTimestamp.String()) } diff --git a/internal/service/database/database_db_systems_data_source.go b/internal/service/database/database_db_systems_data_source.go index 52c44e0a40c..cb5a77ebe32 100644 --- a/internal/service/database/database_db_systems_data_source.go +++ b/internal/service/database/database_db_systems_data_source.go @@ -236,6 +236,10 @@ func (s *DatabaseDbSystemsDataSourceCrud) SetData() error { dbSystem["nsg_ids"] = r.NsgIds + if r.OsVersion != nil { + dbSystem["os_version"] = *r.OsVersion + } + if r.PointInTimeDataDiskCloneTimestamp != nil { dbSystem["point_in_time_data_disk_clone_timestamp"] = r.PointInTimeDataDiskCloneTimestamp.String() } diff --git a/website/docs/d/database_db_home_patch_history_entries.html.markdown b/website/docs/d/database_db_home_patch_history_entries.html.markdown index c47e0e0882a..fa2d3d8c288 100644 --- a/website/docs/d/database_db_home_patch_history_entries.html.markdown +++ b/website/docs/d/database_db_home_patch_history_entries.html.markdown @@ -43,6 +43,7 @@ The following attributes are exported: * `id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the patch history entry. * `lifecycle_details` - A descriptive text associated with the lifecycleState. Typically contains additional displayable text. * `patch_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the patch. +* `patch_type` - The type of Patch operation. * `state` - The current state of the action. * `time_ended` - The date and time when the patch action completed * `time_started` - The date and time when the patch action started. diff --git a/website/docs/d/database_db_system_patch_history_entries.html.markdown b/website/docs/d/database_db_system_patch_history_entries.html.markdown index 7f11ca3320b..06a8b36e696 100644 --- a/website/docs/d/database_db_system_patch_history_entries.html.markdown +++ b/website/docs/d/database_db_system_patch_history_entries.html.markdown @@ -43,6 +43,7 @@ The following attributes are exported: * `id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the patch history entry. * `lifecycle_details` - A descriptive text associated with the lifecycleState. Typically contains additional displayable text. * `patch_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the patch. +* `patch_type` - The type of Patch operation. * `state` - The current state of the action. * `time_ended` - The date and time when the patch action completed * `time_started` - The date and time when the patch action started. diff --git a/website/docs/d/database_db_systems.html.markdown b/website/docs/d/database_db_systems.html.markdown index 4b20c257357..869594670fd 100644 --- a/website/docs/d/database_db_systems.html.markdown +++ b/website/docs/d/database_db_systems.html.markdown @@ -105,6 +105,7 @@ The following attributes are exported: * `node_count` - The number of nodes in the DB system. For RAC DB systems, the value is greater than 1. * `nsg_ids` - The list of [OCIDs](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) for the network security groups (NSGs) to which this resource belongs. Setting this to an empty list removes all resources from all NSGs. For more information about NSGs, see [Security Rules](https://docs.cloud.oracle.com/iaas/Content/Network/Concepts/securityrules.htm). **NsgIds restrictions:** * A network security group (NSG) is optional for Autonomous Databases with private access. The nsgIds list can be empty. +* `os_version` - The most recent OS Patch Version applied on the DB system. * `point_in_time_data_disk_clone_timestamp` - The point in time for a cloned database system when the data disks were cloned from the source database system, as described in [RFC 3339](https://tools.ietf.org/rfc/rfc3339). * `reco_storage_size_in_gb` - The RECO/REDO storage size, in gigabytes, that is currently allocated to the DB system. Applies only for virtual machine DB systems. * `scan_dns_name` - The FQDN of the DNS record for the SCAN IP addresses that are associated with the DB system. diff --git a/website/docs/r/database_db_system.html.markdown b/website/docs/r/database_db_system.html.markdown index e6b12be117a..4eac890a626 100644 --- a/website/docs/r/database_db_system.html.markdown +++ b/website/docs/r/database_db_system.html.markdown @@ -345,6 +345,7 @@ The following attributes are exported: * `node_count` - The number of nodes in the DB system. For RAC DB systems, the value is greater than 1. * `nsg_ids` - The list of [OCIDs](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) for the network security groups (NSGs) to which this resource belongs. Setting this to an empty list removes all resources from all NSGs. For more information about NSGs, see [Security Rules](https://docs.cloud.oracle.com/iaas/Content/Network/Concepts/securityrules.htm). **NsgIds restrictions:** * A network security group (NSG) is optional for Autonomous Databases with private access. The nsgIds list can be empty. +* `os_version` - The most recent OS Patch Version applied on the DB system. * `point_in_time_data_disk_clone_timestamp` - The point in time for a cloned database system when the data disks were cloned from the source database system, as described in [RFC 3339](https://tools.ietf.org/rfc/rfc3339). * `reco_storage_size_in_gb` - The RECO/REDO storage size, in gigabytes, that is currently allocated to the DB system. Applies only for virtual machine DB systems. * `scan_dns_name` - The FQDN of the DNS record for the SCAN IP addresses that are associated with the DB system. From 23fdd26f15c5af2441f520ef70097f4567f0aa2e Mon Sep 17 00:00:00 2001 From: Terraform Team Automation Date: Fri, 10 Mar 2023 01:46:00 +0000 Subject: [PATCH 04/12] Added - Support for SDK generation for IDCS APIs --- examples/identity_domains/api_key.tf | 87 + examples/identity_domains/auth_token.tf | 89 + .../authentication_factor_settings.tf | 492 + .../identity_domains/customer_secret_key.tf | 94 + .../dynamic_resource_group.tf | 113 + examples/identity_domains/group.tf | 214 + examples/identity_domains/identity_domain.tf | 8 + .../identity_domains/identity_provider.tf | 466 + examples/identity_domains/kmsi_setting.tf | 91 + examples/identity_domains/my_api_key.tf | 90 + examples/identity_domains/my_auth_token.tf | 89 + .../my_customer_secret_key.tf | 97 + examples/identity_domains/my_device.tf | 33 + examples/identity_domains/my_group.tf | 32 + .../my_oauth2client_credential.tf | 111 + .../identity_domains/my_smtp_credential.tf | 88 + .../identity_domains/my_support_account.tf | 89 + .../identity_domains/my_trusted_user_agent.tf | 35 + .../identity_domains/my_user_db_credential.tf | 94 + .../oauth2client_credential.tf | 111 + examples/identity_domains/password_policy.tf | 257 + examples/identity_domains/provider.tf | 34 + examples/identity_domains/smtp_credential.tf | 92 + examples/identity_domains/user.tf | 1099 +++ .../identity_domains/user_db_credential.tf | 94 + internal/client/identity_domains_clients.go | 34 + internal/client/provider_clients.go | 12 + .../identity_domains_api_key_test.go | 313 + .../identity_domains_auth_token_test.go | 312 + ...ains_authentication_factor_setting_test.go | 663 ++ ...entity_domains_customer_secret_key_test.go | 315 + ...ity_domains_dynamic_resource_group_test.go | 359 + .../identity_domains_group_test.go | 412 + ...identity_domains_identity_provider_test.go | 631 ++ .../identity_domains_kmsi_setting_test.go | 229 + .../identity_domains_my_api_key_test.go | 295 + .../identity_domains_my_auth_token_test.go | 288 + ...ity_domains_my_customer_secret_key_test.go | 290 + .../identity_domains_my_device_test.go | 154 + .../identity_domains_my_group_test.go | 63 + ...domains_my_oauth2client_credential_test.go | 308 + ...dentity_domains_my_smtp_credential_test.go | 288 + ...dentity_domains_my_support_account_test.go | 290 + ...tity_domains_my_trusted_user_agent_test.go | 164 + ...tity_domains_my_user_db_credential_test.go | 292 + ...ty_domains_oauth2client_credential_test.go | 333 + .../identity_domains_password_policy_test.go | 454 + .../identity_domains_smtp_credential_test.go | 311 + .../identity_domains_test_helpers.go | 37 + ...dentity_domains_user_db_credential_test.go | 325 + .../identity_domains_user_test.go | 819 ++ internal/provider/register_datasource.go | 2 + internal/provider/register_resource.go | 2 + .../identity_domains_api_key_data_source.go | 207 + .../identity_domains_api_key_resource.go | 855 ++ .../identity_domains_api_keys_data_source.go | 229 + ...identity_domains_auth_token_data_source.go | 205 + .../identity_domains_auth_token_resource.go | 866 ++ ...dentity_domains_auth_tokens_data_source.go | 227 + ...thentication_factor_setting_data_source.go | 303 + ..._authentication_factor_setting_resource.go | 2473 +++++ ...hentication_factor_settings_data_source.go | 172 + ...domains_customer_secret_key_data_source.go | 213 + ...ty_domains_customer_secret_key_resource.go | 897 ++ ...omains_customer_secret_keys_data_source.go | 227 + ...ains_dynamic_resource_group_data_source.go | 213 + ...domains_dynamic_resource_group_resource.go | 1122 +++ ...ins_dynamic_resource_groups_data_source.go | 226 + .../identity_domains_export.go | 480 + .../identity_domains_group_data_source.go | 237 + .../identity_domains_group_resource.go | 2163 +++++ .../identity_domains_groups_data_source.go | 216 + ...y_domains_identity_provider_data_source.go | 360 + ...tity_domains_identity_provider_resource.go | 2578 ++++++ ..._domains_identity_providers_data_source.go | 226 + ...entity_domains_kmsi_setting_data_source.go | 215 + .../identity_domains_kmsi_setting_resource.go | 874 ++ ...ntity_domains_kmsi_settings_data_source.go | 172 + ...identity_domains_my_api_key_data_source.go | 172 + .../identity_domains_my_api_key_resource.go | 760 ++ ...dentity_domains_my_api_keys_data_source.go | 198 + ...ntity_domains_my_auth_token_data_source.go | 170 + ...identity_domains_my_auth_token_resource.go | 763 ++ ...tity_domains_my_auth_tokens_data_source.go | 197 + ...ains_my_customer_secret_key_data_source.go | 178 + ...domains_my_customer_secret_key_resource.go | 794 ++ ...ins_my_customer_secret_keys_data_source.go | 197 + .../identity_domains_my_device_data_source.go | 687 ++ ...identity_domains_my_devices_data_source.go | 482 + .../identity_domains_my_groups_data_source.go | 772 ++ ..._my_oauth2client_credential_data_source.go | 184 + ...ins_my_oauth2client_credential_resource.go | 883 ++ ...my_oauth2client_credentials_data_source.go | 197 + ..._domains_my_smtp_credential_data_source.go | 174 + ...ity_domains_my_smtp_credential_resource.go | 775 ++ ...domains_my_smtp_credentials_data_source.go | 197 + ..._domains_my_support_account_data_source.go | 170 + ...ity_domains_my_support_account_resource.go | 748 ++ ...domains_my_support_accounts_data_source.go | 197 + ...mains_my_trusted_user_agent_data_source.go | 465 + ...ains_my_trusted_user_agents_data_source.go | 358 + ...mains_my_user_db_credential_data_source.go | 198 + ..._domains_my_user_db_credential_resource.go | 853 ++ ...ains_my_user_db_credentials_data_source.go | 197 + ...ins_oauth2client_credential_data_source.go | 219 + ...omains_oauth2client_credential_resource.go | 987 ++ ...ns_oauth2client_credentials_data_source.go | 228 + ...y_domains_password_policies_data_source.go | 224 + ...ity_domains_password_policy_data_source.go | 328 + ...entity_domains_password_policy_resource.go | 1669 ++++ ...ity_domains_smtp_credential_data_source.go | 209 + ...entity_domains_smtp_credential_resource.go | 879 ++ ...ty_domains_smtp_credentials_data_source.go | 226 + .../identity_domains_user_data_source.go | 413 + ..._domains_user_db_credential_data_source.go | 233 + ...ity_domains_user_db_credential_resource.go | 958 ++ ...domains_user_db_credentials_data_source.go | 227 + .../identity_domains_user_resource.go | 7159 +++++++++++++++ .../identity_domains_users_data_source.go | 227 + .../identity_domains/identity_domains_util.go | 65 + .../identity_domains/register_datasource.go | 54 + .../identity_domains/register_resource.go | 29 + .../d/identity_domains_api_key.html.markdown | 481 + .../d/identity_domains_api_keys.html.markdown | 491 + .../identity_domains_auth_token.html.markdown | 485 + ...identity_domains_auth_tokens.html.markdown | 495 + ...uthentication_factor_setting.html.markdown | 1329 +++ ...thentication_factor_settings.html.markdown | 1333 +++ ..._domains_customer_secret_key.html.markdown | 499 + ...domains_customer_secret_keys.html.markdown | 509 + ...mains_dynamic_resource_group.html.markdown | 644 ++ ...ains_dynamic_resource_groups.html.markdown | 654 ++ .../d/identity_domains_group.html.markdown | 1124 +++ .../d/identity_domains_groups.html.markdown | 1134 +++ ...ty_domains_identity_provider.html.markdown | 1435 +++ ...y_domains_identity_providers.html.markdown | 1445 +++ ...dentity_domains_kmsi_setting.html.markdown | 459 + ...entity_domains_kmsi_settings.html.markdown | 463 + .../identity_domains_my_api_key.html.markdown | 464 + ...identity_domains_my_api_keys.html.markdown | 474 + ...entity_domains_my_auth_token.html.markdown | 468 + ...ntity_domains_my_auth_tokens.html.markdown | 478 + ...mains_my_customer_secret_key.html.markdown | 482 + ...ains_my_customer_secret_keys.html.markdown | 492 + .../identity_domains_my_device.html.markdown | 854 ++ .../identity_domains_my_devices.html.markdown | 864 ++ .../identity_domains_my_groups.html.markdown | 901 ++ ...s_my_oauth2client_credential.html.markdown | 517 ++ ..._my_oauth2client_credentials.html.markdown | 527 ++ ...y_domains_my_smtp_credential.html.markdown | 474 + ..._domains_my_smtp_credentials.html.markdown | 484 + ...y_domains_my_support_account.html.markdown | 469 + ..._domains_my_support_accounts.html.markdown | 479 + ...omains_my_trusted_user_agent.html.markdown | 557 ++ ...mains_my_trusted_user_agents.html.markdown | 567 ++ ...omains_my_user_db_credential.html.markdown | 519 ++ ...mains_my_user_db_credentials.html.markdown | 529 ++ ...ains_oauth2client_credential.html.markdown | 534 ++ ...ins_oauth2client_credentials.html.markdown | 544 ++ ...ty_domains_password_policies.html.markdown | 807 ++ ...tity_domains_password_policy.html.markdown | 797 ++ ...tity_domains_smtp_credential.html.markdown | 491 + ...ity_domains_smtp_credentials.html.markdown | 501 + .../d/identity_domains_user.html.markdown | 3926 ++++++++ ...y_domains_user_db_credential.html.markdown | 536 ++ ..._domains_user_db_credentials.html.markdown | 546 ++ .../d/identity_domains_users.html.markdown | 3936 ++++++++ .../guides/resource_discovery.html.markdown | 24 + .../r/identity_domains_api_key.html.markdown | 953 ++ .../identity_domains_auth_token.html.markdown | 962 ++ ...uthentication_factor_setting.html.markdown | 2754 ++++++ ..._domains_customer_secret_key.html.markdown | 991 ++ ...mains_dynamic_resource_group.html.markdown | 1284 +++ .../r/identity_domains_group.html.markdown | 2279 +++++ ...ty_domains_identity_provider.html.markdown | 2948 ++++++ ...dentity_domains_kmsi_setting.html.markdown | 906 ++ .../identity_domains_my_api_key.html.markdown | 918 ++ ...entity_domains_my_auth_token.html.markdown | 927 ++ ...mains_my_customer_secret_key.html.markdown | 956 ++ ...s_my_oauth2client_credential.html.markdown | 1032 +++ ...y_domains_my_smtp_credential.html.markdown | 939 ++ ...y_domains_my_support_account.html.markdown | 927 ++ ...omains_my_user_db_credential.html.markdown | 1031 +++ ...ains_oauth2client_credential.html.markdown | 1067 +++ ...tity_domains_password_policy.html.markdown | 1610 ++++ ...tity_domains_smtp_credential.html.markdown | 974 ++ .../r/identity_domains_user.html.markdown | 8172 +++++++++++++++++ ...y_domains_user_db_credential.html.markdown | 1066 +++ 188 files changed, 122267 insertions(+) create mode 100644 examples/identity_domains/api_key.tf create mode 100644 examples/identity_domains/auth_token.tf create mode 100644 examples/identity_domains/authentication_factor_settings.tf create mode 100644 examples/identity_domains/customer_secret_key.tf create mode 100644 examples/identity_domains/dynamic_resource_group.tf create mode 100644 examples/identity_domains/group.tf create mode 100644 examples/identity_domains/identity_domain.tf create mode 100644 examples/identity_domains/identity_provider.tf create mode 100644 examples/identity_domains/kmsi_setting.tf create mode 100644 examples/identity_domains/my_api_key.tf create mode 100644 examples/identity_domains/my_auth_token.tf create mode 100644 examples/identity_domains/my_customer_secret_key.tf create mode 100644 examples/identity_domains/my_device.tf create mode 100644 examples/identity_domains/my_group.tf create mode 100644 examples/identity_domains/my_oauth2client_credential.tf create mode 100644 examples/identity_domains/my_smtp_credential.tf create mode 100644 examples/identity_domains/my_support_account.tf create mode 100644 examples/identity_domains/my_trusted_user_agent.tf create mode 100644 examples/identity_domains/my_user_db_credential.tf create mode 100644 examples/identity_domains/oauth2client_credential.tf create mode 100644 examples/identity_domains/password_policy.tf create mode 100644 examples/identity_domains/provider.tf create mode 100644 examples/identity_domains/smtp_credential.tf create mode 100644 examples/identity_domains/user.tf create mode 100644 examples/identity_domains/user_db_credential.tf create mode 100644 internal/client/identity_domains_clients.go create mode 100644 internal/integrationtest/identity_domains_api_key_test.go create mode 100644 internal/integrationtest/identity_domains_auth_token_test.go create mode 100644 internal/integrationtest/identity_domains_authentication_factor_setting_test.go create mode 100644 internal/integrationtest/identity_domains_customer_secret_key_test.go create mode 100644 internal/integrationtest/identity_domains_dynamic_resource_group_test.go create mode 100644 internal/integrationtest/identity_domains_group_test.go create mode 100644 internal/integrationtest/identity_domains_identity_provider_test.go create mode 100644 internal/integrationtest/identity_domains_kmsi_setting_test.go create mode 100644 internal/integrationtest/identity_domains_my_api_key_test.go create mode 100644 internal/integrationtest/identity_domains_my_auth_token_test.go create mode 100644 internal/integrationtest/identity_domains_my_customer_secret_key_test.go create mode 100644 internal/integrationtest/identity_domains_my_device_test.go create mode 100644 internal/integrationtest/identity_domains_my_group_test.go create mode 100644 internal/integrationtest/identity_domains_my_oauth2client_credential_test.go create mode 100644 internal/integrationtest/identity_domains_my_smtp_credential_test.go create mode 100644 internal/integrationtest/identity_domains_my_support_account_test.go create mode 100644 internal/integrationtest/identity_domains_my_trusted_user_agent_test.go create mode 100644 internal/integrationtest/identity_domains_my_user_db_credential_test.go create mode 100644 internal/integrationtest/identity_domains_oauth2client_credential_test.go create mode 100644 internal/integrationtest/identity_domains_password_policy_test.go create mode 100644 internal/integrationtest/identity_domains_smtp_credential_test.go create mode 100644 internal/integrationtest/identity_domains_test_helpers.go create mode 100644 internal/integrationtest/identity_domains_user_db_credential_test.go create mode 100644 internal/integrationtest/identity_domains_user_test.go create mode 100644 internal/service/identity_domains/identity_domains_api_key_data_source.go create mode 100644 internal/service/identity_domains/identity_domains_api_key_resource.go create mode 100644 internal/service/identity_domains/identity_domains_api_keys_data_source.go create mode 100644 internal/service/identity_domains/identity_domains_auth_token_data_source.go create mode 100644 internal/service/identity_domains/identity_domains_auth_token_resource.go create mode 100644 internal/service/identity_domains/identity_domains_auth_tokens_data_source.go create mode 100644 internal/service/identity_domains/identity_domains_authentication_factor_setting_data_source.go create mode 100644 internal/service/identity_domains/identity_domains_authentication_factor_setting_resource.go create mode 100644 internal/service/identity_domains/identity_domains_authentication_factor_settings_data_source.go create mode 100644 internal/service/identity_domains/identity_domains_customer_secret_key_data_source.go create mode 100644 internal/service/identity_domains/identity_domains_customer_secret_key_resource.go create mode 100644 internal/service/identity_domains/identity_domains_customer_secret_keys_data_source.go create mode 100644 internal/service/identity_domains/identity_domains_dynamic_resource_group_data_source.go create mode 100644 internal/service/identity_domains/identity_domains_dynamic_resource_group_resource.go create mode 100644 internal/service/identity_domains/identity_domains_dynamic_resource_groups_data_source.go create mode 100644 internal/service/identity_domains/identity_domains_export.go create mode 100644 internal/service/identity_domains/identity_domains_group_data_source.go create mode 100644 internal/service/identity_domains/identity_domains_group_resource.go create mode 100644 internal/service/identity_domains/identity_domains_groups_data_source.go create mode 100644 internal/service/identity_domains/identity_domains_identity_provider_data_source.go create mode 100644 internal/service/identity_domains/identity_domains_identity_provider_resource.go create mode 100644 internal/service/identity_domains/identity_domains_identity_providers_data_source.go create mode 100644 internal/service/identity_domains/identity_domains_kmsi_setting_data_source.go create mode 100644 internal/service/identity_domains/identity_domains_kmsi_setting_resource.go create mode 100644 internal/service/identity_domains/identity_domains_kmsi_settings_data_source.go create mode 100644 internal/service/identity_domains/identity_domains_my_api_key_data_source.go create mode 100644 internal/service/identity_domains/identity_domains_my_api_key_resource.go create mode 100644 internal/service/identity_domains/identity_domains_my_api_keys_data_source.go create mode 100644 internal/service/identity_domains/identity_domains_my_auth_token_data_source.go create mode 100644 internal/service/identity_domains/identity_domains_my_auth_token_resource.go create mode 100644 internal/service/identity_domains/identity_domains_my_auth_tokens_data_source.go create mode 100644 internal/service/identity_domains/identity_domains_my_customer_secret_key_data_source.go create mode 100644 internal/service/identity_domains/identity_domains_my_customer_secret_key_resource.go create mode 100644 internal/service/identity_domains/identity_domains_my_customer_secret_keys_data_source.go create mode 100644 internal/service/identity_domains/identity_domains_my_device_data_source.go create mode 100644 internal/service/identity_domains/identity_domains_my_devices_data_source.go create mode 100644 internal/service/identity_domains/identity_domains_my_groups_data_source.go create mode 100644 internal/service/identity_domains/identity_domains_my_oauth2client_credential_data_source.go create mode 100644 internal/service/identity_domains/identity_domains_my_oauth2client_credential_resource.go create mode 100644 internal/service/identity_domains/identity_domains_my_oauth2client_credentials_data_source.go create mode 100644 internal/service/identity_domains/identity_domains_my_smtp_credential_data_source.go create mode 100644 internal/service/identity_domains/identity_domains_my_smtp_credential_resource.go create mode 100644 internal/service/identity_domains/identity_domains_my_smtp_credentials_data_source.go create mode 100644 internal/service/identity_domains/identity_domains_my_support_account_data_source.go create mode 100644 internal/service/identity_domains/identity_domains_my_support_account_resource.go create mode 100644 internal/service/identity_domains/identity_domains_my_support_accounts_data_source.go create mode 100644 internal/service/identity_domains/identity_domains_my_trusted_user_agent_data_source.go create mode 100644 internal/service/identity_domains/identity_domains_my_trusted_user_agents_data_source.go create mode 100644 internal/service/identity_domains/identity_domains_my_user_db_credential_data_source.go create mode 100644 internal/service/identity_domains/identity_domains_my_user_db_credential_resource.go create mode 100644 internal/service/identity_domains/identity_domains_my_user_db_credentials_data_source.go create mode 100644 internal/service/identity_domains/identity_domains_oauth2client_credential_data_source.go create mode 100644 internal/service/identity_domains/identity_domains_oauth2client_credential_resource.go create mode 100644 internal/service/identity_domains/identity_domains_oauth2client_credentials_data_source.go create mode 100644 internal/service/identity_domains/identity_domains_password_policies_data_source.go create mode 100644 internal/service/identity_domains/identity_domains_password_policy_data_source.go create mode 100644 internal/service/identity_domains/identity_domains_password_policy_resource.go create mode 100644 internal/service/identity_domains/identity_domains_smtp_credential_data_source.go create mode 100644 internal/service/identity_domains/identity_domains_smtp_credential_resource.go create mode 100644 internal/service/identity_domains/identity_domains_smtp_credentials_data_source.go create mode 100644 internal/service/identity_domains/identity_domains_user_data_source.go create mode 100644 internal/service/identity_domains/identity_domains_user_db_credential_data_source.go create mode 100644 internal/service/identity_domains/identity_domains_user_db_credential_resource.go create mode 100644 internal/service/identity_domains/identity_domains_user_db_credentials_data_source.go create mode 100644 internal/service/identity_domains/identity_domains_user_resource.go create mode 100644 internal/service/identity_domains/identity_domains_users_data_source.go create mode 100644 internal/service/identity_domains/identity_domains_util.go create mode 100644 internal/service/identity_domains/register_datasource.go create mode 100644 internal/service/identity_domains/register_resource.go create mode 100644 website/docs/d/identity_domains_api_key.html.markdown create mode 100644 website/docs/d/identity_domains_api_keys.html.markdown create mode 100644 website/docs/d/identity_domains_auth_token.html.markdown create mode 100644 website/docs/d/identity_domains_auth_tokens.html.markdown create mode 100644 website/docs/d/identity_domains_authentication_factor_setting.html.markdown create mode 100644 website/docs/d/identity_domains_authentication_factor_settings.html.markdown create mode 100644 website/docs/d/identity_domains_customer_secret_key.html.markdown create mode 100644 website/docs/d/identity_domains_customer_secret_keys.html.markdown create mode 100644 website/docs/d/identity_domains_dynamic_resource_group.html.markdown create mode 100644 website/docs/d/identity_domains_dynamic_resource_groups.html.markdown create mode 100644 website/docs/d/identity_domains_group.html.markdown create mode 100644 website/docs/d/identity_domains_groups.html.markdown create mode 100644 website/docs/d/identity_domains_identity_provider.html.markdown create mode 100644 website/docs/d/identity_domains_identity_providers.html.markdown create mode 100644 website/docs/d/identity_domains_kmsi_setting.html.markdown create mode 100644 website/docs/d/identity_domains_kmsi_settings.html.markdown create mode 100644 website/docs/d/identity_domains_my_api_key.html.markdown create mode 100644 website/docs/d/identity_domains_my_api_keys.html.markdown create mode 100644 website/docs/d/identity_domains_my_auth_token.html.markdown create mode 100644 website/docs/d/identity_domains_my_auth_tokens.html.markdown create mode 100644 website/docs/d/identity_domains_my_customer_secret_key.html.markdown create mode 100644 website/docs/d/identity_domains_my_customer_secret_keys.html.markdown create mode 100644 website/docs/d/identity_domains_my_device.html.markdown create mode 100644 website/docs/d/identity_domains_my_devices.html.markdown create mode 100644 website/docs/d/identity_domains_my_groups.html.markdown create mode 100644 website/docs/d/identity_domains_my_oauth2client_credential.html.markdown create mode 100644 website/docs/d/identity_domains_my_oauth2client_credentials.html.markdown create mode 100644 website/docs/d/identity_domains_my_smtp_credential.html.markdown create mode 100644 website/docs/d/identity_domains_my_smtp_credentials.html.markdown create mode 100644 website/docs/d/identity_domains_my_support_account.html.markdown create mode 100644 website/docs/d/identity_domains_my_support_accounts.html.markdown create mode 100644 website/docs/d/identity_domains_my_trusted_user_agent.html.markdown create mode 100644 website/docs/d/identity_domains_my_trusted_user_agents.html.markdown create mode 100644 website/docs/d/identity_domains_my_user_db_credential.html.markdown create mode 100644 website/docs/d/identity_domains_my_user_db_credentials.html.markdown create mode 100644 website/docs/d/identity_domains_oauth2client_credential.html.markdown create mode 100644 website/docs/d/identity_domains_oauth2client_credentials.html.markdown create mode 100644 website/docs/d/identity_domains_password_policies.html.markdown create mode 100644 website/docs/d/identity_domains_password_policy.html.markdown create mode 100644 website/docs/d/identity_domains_smtp_credential.html.markdown create mode 100644 website/docs/d/identity_domains_smtp_credentials.html.markdown create mode 100644 website/docs/d/identity_domains_user.html.markdown create mode 100644 website/docs/d/identity_domains_user_db_credential.html.markdown create mode 100644 website/docs/d/identity_domains_user_db_credentials.html.markdown create mode 100644 website/docs/d/identity_domains_users.html.markdown create mode 100644 website/docs/r/identity_domains_api_key.html.markdown create mode 100644 website/docs/r/identity_domains_auth_token.html.markdown create mode 100644 website/docs/r/identity_domains_authentication_factor_setting.html.markdown create mode 100644 website/docs/r/identity_domains_customer_secret_key.html.markdown create mode 100644 website/docs/r/identity_domains_dynamic_resource_group.html.markdown create mode 100644 website/docs/r/identity_domains_group.html.markdown create mode 100644 website/docs/r/identity_domains_identity_provider.html.markdown create mode 100644 website/docs/r/identity_domains_kmsi_setting.html.markdown create mode 100644 website/docs/r/identity_domains_my_api_key.html.markdown create mode 100644 website/docs/r/identity_domains_my_auth_token.html.markdown create mode 100644 website/docs/r/identity_domains_my_customer_secret_key.html.markdown create mode 100644 website/docs/r/identity_domains_my_oauth2client_credential.html.markdown create mode 100644 website/docs/r/identity_domains_my_smtp_credential.html.markdown create mode 100644 website/docs/r/identity_domains_my_support_account.html.markdown create mode 100644 website/docs/r/identity_domains_my_user_db_credential.html.markdown create mode 100644 website/docs/r/identity_domains_oauth2client_credential.html.markdown create mode 100644 website/docs/r/identity_domains_password_policy.html.markdown create mode 100644 website/docs/r/identity_domains_smtp_credential.html.markdown create mode 100644 website/docs/r/identity_domains_user.html.markdown create mode 100644 website/docs/r/identity_domains_user_db_credential.html.markdown diff --git a/examples/identity_domains/api_key.tf b/examples/identity_domains/api_key.tf new file mode 100644 index 00000000000..8bd79797f5f --- /dev/null +++ b/examples/identity_domains/api_key.tf @@ -0,0 +1,87 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +variable "api_key_api_key_count" { + default = 10 +} + +variable "api_key_authorization" { + default = "authorization" +} + +variable "api_key_description" { + default = "description" +} + +variable "api_key_fingerprint" { + default = "fingerprint" +} + +#provide the public key +variable "api_key_key" { + default = "" +} + +variable "api_key_start_index" { + default = 1 +} + +variable "api_key_tags_key" { + default = "key" +} + +variable "api_key_tags_value" { + default = "value" +} + +variable "api_key_urnietfparamsscimschemasoracleidcsextensionself_change_user_allow_self_change" { + default = false +} + + +resource "oci_identity_domains_api_key" "test_api_key" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + key = var.api_key_key + schemas = ["urn:ietf:params:scim:schemas:oracle:idcs:apikey"] + + #Optional + attribute_sets = [] + attributes = "" + authorization = var.api_key_authorization + description = var.api_key_description + tags { + #Required + key = var.api_key_tags_key + value = var.api_key_tags_value + } + urnietfparamsscimschemasoracleidcsextensionself_change_user { + + #Optional + allow_self_change = var.api_key_urnietfparamsscimschemasoracleidcsextensionself_change_user_allow_self_change + } + user { + + #Optional + #use the ocid of the same user set in value + ocid = oci_identity_domains_user.test_user.ocid + #must be a user that exists + value = oci_identity_domains_user.test_user.id + } +} + +data "oci_identity_domains_api_keys" "test_api_keys" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + + #Optional + api_key_count = var.api_key_api_key_count + api_key_filter = "user.value eq \"${oci_identity_domains_user.test_user.id}\"" + attribute_sets = [] + attributes = "" + authorization = var.api_key_authorization + #use the latest if not provided + # resource_type_schema_version = var.user_resource_type_schema_version + start_index = var.api_key_start_index +} + diff --git a/examples/identity_domains/auth_token.tf b/examples/identity_domains/auth_token.tf new file mode 100644 index 00000000000..9d5a22a65c1 --- /dev/null +++ b/examples/identity_domains/auth_token.tf @@ -0,0 +1,89 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +variable "auth_token_auth_token_count" { + default = 10 +} + +variable "auth_token_authorization" { + default = "authorization" +} + +variable "auth_token_description" { + default = "description" +} + +variable "auth_token_expires_on" { + default = "2030-01-01T00:00:00Z" +} + +variable "auth_token_start_index" { + default = 1 +} + +variable "auth_token_status" { + default = "ACTIVE" +} + +variable "auth_token_tags_key" { + default = "key" +} + +variable "auth_token_tags_value" { + default = "value" +} + +variable "auth_token_urnietfparamsscimschemasoracleidcsextensionself_change_user_allow_self_change" { + default = false +} + + +resource "oci_identity_domains_auth_token" "test_auth_token" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + schemas = ["urn:ietf:params:scim:schemas:oracle:idcs:authToken"] + + #Optional + attribute_sets = [] + attributes = "" + authorization = var.auth_token_authorization + description = var.auth_token_description + expires_on = var.auth_token_expires_on + #use the latest if not provided + # resource_type_schema_version = var.auth_token_resource_type_schema_version + status = var.auth_token_status + tags { + #Required + key = var.auth_token_tags_key + value = var.auth_token_tags_value + } + urnietfparamsscimschemasoracleidcsextensionself_change_user { + + #Optional + allow_self_change = var.auth_token_urnietfparamsscimschemasoracleidcsextensionself_change_user_allow_self_change + } + user { + + #Optional + #use the ocid of the same user set in value + ocid = oci_identity_domains_user.test_user.ocid + #must be a user that exists + value = oci_identity_domains_user.test_user.id + } +} + +data "oci_identity_domains_auth_tokens" "test_auth_tokens" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + + #Optional + auth_token_count = var.auth_token_auth_token_count + auth_token_filter = "user.value eq \"${oci_identity_domains_user.test_user.id}\"" + attribute_sets = [] + attributes = "" + authorization = var.auth_token_authorization + #use the latest if not provided + # resource_type_schema_version = var.auth_token_resource_type_schema_version + start_index = var.auth_token_start_index +} + diff --git a/examples/identity_domains/authentication_factor_settings.tf b/examples/identity_domains/authentication_factor_settings.tf new file mode 100644 index 00000000000..9c8aa28367e --- /dev/null +++ b/examples/identity_domains/authentication_factor_settings.tf @@ -0,0 +1,492 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +variable "authentication_factor_setting_authorization" { + default = "authorization" +} + +variable "authentication_factor_setting_auto_enroll_email_factor_disabled" { + default = false +} + +variable "authentication_factor_setting_bypass_code_enabled" { + default = false +} + +variable "authentication_factor_setting_bypass_code_settings_help_desk_code_expiry_in_mins" { + default = 10 +} + +variable "authentication_factor_setting_bypass_code_settings_help_desk_generation_enabled" { + default = false +} + +variable "authentication_factor_setting_bypass_code_settings_help_desk_max_usage" { + default = 10 +} + +variable "authentication_factor_setting_bypass_code_settings_length" { + default = 10 +} + +variable "authentication_factor_setting_bypass_code_settings_max_active" { + default = "5" +} + +variable "authentication_factor_setting_bypass_code_settings_self_service_generation_enabled" { + default = false +} + +variable "authentication_factor_setting_client_app_settings_device_protection_policy" { + default = "APP_PIN" +} + +variable "authentication_factor_setting_client_app_settings_initial_lockout_period_in_secs" { + default = "60" +} + +variable "authentication_factor_setting_client_app_settings_key_pair_length" { + default = "32" +} + +variable "authentication_factor_setting_client_app_settings_lockout_escalation_pattern" { + default = "Linear" +} + +variable "authentication_factor_setting_client_app_settings_max_failures_before_lockout" { + default = "5" +} + +variable "authentication_factor_setting_client_app_settings_max_failures_before_warning" { + default = "0" +} + +variable "authentication_factor_setting_client_app_settings_max_lockout_interval_in_secs" { + default = "90" +} + +variable "authentication_factor_setting_client_app_settings_min_pin_length" { + default = "10" +} + +variable "authentication_factor_setting_client_app_settings_policy_update_freq_in_days" { + default = 10 +} + +variable "authentication_factor_setting_client_app_settings_request_signing_algo" { + default = "SHA256withRSA" +} + +variable "authentication_factor_setting_client_app_settings_shared_secret_encoding" { + default = "Base32" +} + +variable "authentication_factor_setting_client_app_settings_unlock_app_for_each_request_enabled" { + default = "true" +} + +variable "authentication_factor_setting_client_app_settings_unlock_app_interval_in_secs" { + default = "0" +} + +variable "authentication_factor_setting_client_app_settings_unlock_on_app_foreground_enabled" { + default = "true" +} + +variable "authentication_factor_setting_client_app_settings_unlock_on_app_start_enabled" { + default = "true" +} + +variable "authentication_factor_setting_email_enabled" { + default = false +} + +variable "authentication_factor_setting_email_settings_email_link_custom_url" { + default = "emailLinkCustomUrl" +} + +variable "authentication_factor_setting_email_settings_email_link_enabled" { + default = false +} + +variable "authentication_factor_setting_endpoint_restrictions_max_endpoint_trust_duration_in_days" { + default = 10 +} + +variable "authentication_factor_setting_endpoint_restrictions_max_enrolled_devices" { + default = 10 +} + +variable "authentication_factor_setting_endpoint_restrictions_max_incorrect_attempts" { + default = 10 +} + +variable "authentication_factor_setting_endpoint_restrictions_max_trusted_endpoints" { + default = 10 +} + +variable "authentication_factor_setting_endpoint_restrictions_trusted_endpoints_enabled" { + default = false +} + +variable "authentication_factor_setting_fido_authenticator_enabled" { + default = false +} + +variable "authentication_factor_setting_hide_backup_factor_enabled" { + default = false +} + +variable "authentication_factor_setting_identity_store_settings_mobile_number_enabled" { + default = false +} + +variable "authentication_factor_setting_identity_store_settings_mobile_number_update_enabled" { + default = false +} + +variable "authentication_factor_setting_mfa_enrollment_type" { + default = "Optional" +} + +variable "authentication_factor_setting_notification_settings_pull_enabled" { + default = false +} + +variable "authentication_factor_setting_phone_call_enabled" { + default = "false" +} + +variable "authentication_factor_setting_push_enabled" { + default = false +} + +variable "authentication_factor_setting_security_questions_enabled" { + default = false +} + +variable "authentication_factor_setting_sms_enabled" { + default = "true" +} + +variable "authentication_factor_setting_tags_key" { + default = "key" +} + +variable "authentication_factor_setting_tags_value" { + default = "value" +} + +variable "authentication_factor_setting_tenancy_ocid" { + default = "tenancyOcid" +} + +variable "authentication_factor_setting_third_party_factor_duo_security" { + default = false +} + +variable "authentication_factor_setting_totp_enabled" { + default = false +} + +variable "authentication_factor_setting_totp_settings_email_otp_validity_duration_in_mins" { + default = 10 +} + +variable "authentication_factor_setting_totp_settings_email_passcode_length" { + default = 10 +} + +variable "authentication_factor_setting_totp_settings_hashing_algorithm" { + default = "SHA1" +} + +variable "authentication_factor_setting_totp_settings_jwt_validity_duration_in_secs" { + default = "30" +} + +variable "authentication_factor_setting_totp_settings_key_refresh_interval_in_days" { + default = "30" +} + +variable "authentication_factor_setting_totp_settings_passcode_length" { + default = 10 +} + +variable "authentication_factor_setting_totp_settings_sms_otp_validity_duration_in_mins" { + default = 10 +} + +variable "authentication_factor_setting_totp_settings_sms_passcode_length" { + default = 10 +} + +variable "authentication_factor_setting_totp_settings_time_step_in_secs" { + default = "300" +} + +variable "authentication_factor_setting_totp_settings_time_step_tolerance" { + default = "2" +} + +variable "authentication_factor_setting_urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings_attestation" { + default = "DIRECT" +} + +variable "authentication_factor_setting_urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings_authenticator_selection_attachment" { + default = "PLATFORM" +} + +variable "authentication_factor_setting_urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings_authenticator_selection_require_resident_key" { + default = "true" +} + +variable "authentication_factor_setting_urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings_authenticator_selection_resident_key" { + default = "REQUIRED" +} + +variable "authentication_factor_setting_urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings_authenticator_selection_user_verification" { + default = "REQUIRED" +} + +variable "authentication_factor_setting_urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings_domain_validation_level" { + default = "0" +} + +variable "authentication_factor_setting_urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings_exclude_credentials" { + default = "true" +} + +variable "authentication_factor_setting_urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings_timeout" { + default = "10000" +} + +variable "authentication_factor_setting_urnietfparamsscimschemasoracleidcsextensionthird_party_authentication_factor_settings_duo_security_settings_api_hostname" { + default = "apiHostname" +} + +variable "authentication_factor_setting_urnietfparamsscimschemasoracleidcsextensionthird_party_authentication_factor_settings_duo_security_settings_attestation_key" { + default = "attestationKey" +} + +variable "authentication_factor_setting_urnietfparamsscimschemasoracleidcsextensionthird_party_authentication_factor_settings_duo_security_settings_integration_key" { + default = "integrationKey" +} + +variable "authentication_factor_setting_urnietfparamsscimschemasoracleidcsextensionthird_party_authentication_factor_settings_duo_security_settings_secret_key" { + default = "secretKey" +} + +variable "authentication_factor_setting_urnietfparamsscimschemasoracleidcsextensionthird_party_authentication_factor_settings_duo_security_settings_user_mapping_attribute" { + default = "primaryEmail" +} + +variable "authentication_factor_setting_user_enrollment_disabled_factors" { + default = [] +} + +variable "authentication_factor_setting_yubico_otp_enabled" { + default = false +} + + +resource "oci_identity_domains_authentication_factor_setting" "test_authentication_factor_setting" { + #Required + authentication_factor_setting_id = "AuthenticationFactorSettings" + bypass_code_enabled = var.authentication_factor_setting_bypass_code_enabled + bypass_code_settings { + #Required + help_desk_code_expiry_in_mins = var.authentication_factor_setting_bypass_code_settings_help_desk_code_expiry_in_mins + help_desk_generation_enabled = var.authentication_factor_setting_bypass_code_settings_help_desk_generation_enabled + help_desk_max_usage = var.authentication_factor_setting_bypass_code_settings_help_desk_max_usage + length = var.authentication_factor_setting_bypass_code_settings_length + max_active = "6" + self_service_generation_enabled = var.authentication_factor_setting_bypass_code_settings_self_service_generation_enabled + } + client_app_settings { + #Required + device_protection_policy = "NONE" + initial_lockout_period_in_secs = "30" + key_pair_length = "2048" + lockout_escalation_pattern = "Constant" + max_failures_before_lockout = "10" + max_failures_before_warning = "5" + max_lockout_interval_in_secs = "86400" + min_pin_length = "6" + policy_update_freq_in_days = var.authentication_factor_setting_client_app_settings_policy_update_freq_in_days + request_signing_algo = var.authentication_factor_setting_client_app_settings_request_signing_algo + shared_secret_encoding = var.authentication_factor_setting_client_app_settings_shared_secret_encoding + unlock_app_for_each_request_enabled = "false" + unlock_app_interval_in_secs = "300" + unlock_on_app_foreground_enabled = "false" + unlock_on_app_start_enabled = "false" + } + compliance_policy { + #Required + action = "Allow" + name = "lockScreenRequired" + value = "false" + } + compliance_policy { + #Required + action = "Allow" + name = "lockScreenRequiredUnknown" + value = "false" + } + compliance_policy { + #Required + action = "Allow" + name = "jailBrokenDevice" + value = "false" + } + compliance_policy { + #Required + action = "Allow" + name = "jailBrokenDeviceUnknown" + value = "false" + } + compliance_policy { + #Required + action = "Allow" + name = "minWindowsVersion" + value = "8.1" + } + compliance_policy { + #Required + action = "Allow" + name = "minIosVersion" + value = "7.1" + } + compliance_policy { + #Required + action = "Allow" + name = "minAndroidVersion" + value = "4.1" + } + compliance_policy { + #Required + action = "Allow" + name = "minIosAppVersion" + value = "4.0" + } + compliance_policy { + #Required + action = "Allow" + name = "minAndroidAppVersion" + value = "8.0" + } + compliance_policy { + #Required + action = "Allow" + name = "minWindowsAppVersion" + value = "1.0" + } + + endpoint_restrictions { + #Required + max_endpoint_trust_duration_in_days = "180" + max_enrolled_devices = var.authentication_factor_setting_endpoint_restrictions_max_enrolled_devices + max_incorrect_attempts = "20" + max_trusted_endpoints = "20" + trusted_endpoints_enabled = var.authentication_factor_setting_endpoint_restrictions_trusted_endpoints_enabled + } + idcs_endpoint = data.oci_identity_domain.test_domain.url + mfa_enrollment_type = var.authentication_factor_setting_mfa_enrollment_type + notification_settings { + #Required + pull_enabled = var.authentication_factor_setting_notification_settings_pull_enabled + } + push_enabled = var.authentication_factor_setting_push_enabled + schemas = ["urn:ietf:params:scim:schemas:oracle:idcs:AuthenticationFactorSettings"] + security_questions_enabled = var.authentication_factor_setting_security_questions_enabled + sms_enabled = var.authentication_factor_setting_sms_enabled + totp_enabled = var.authentication_factor_setting_totp_enabled + totp_settings { + #Required + email_otp_validity_duration_in_mins = var.authentication_factor_setting_totp_settings_email_otp_validity_duration_in_mins + email_passcode_length = "6" + hashing_algorithm = var.authentication_factor_setting_totp_settings_hashing_algorithm + jwt_validity_duration_in_secs = "300" + key_refresh_interval_in_days = "60" + passcode_length = "6" + sms_otp_validity_duration_in_mins = "6" + sms_passcode_length = "6" + time_step_in_secs = "30" + time_step_tolerance = "3" + } + + #Optional + attribute_sets = [] + attributes = "" + authorization = var.authentication_factor_setting_authorization + auto_enroll_email_factor_disabled = var.authentication_factor_setting_auto_enroll_email_factor_disabled + email_enabled = var.authentication_factor_setting_email_enabled + email_settings { + #Required + email_link_enabled = var.authentication_factor_setting_email_settings_email_link_enabled + + #Optional + email_link_custom_url = var.authentication_factor_setting_email_settings_email_link_custom_url + } + fido_authenticator_enabled = var.authentication_factor_setting_fido_authenticator_enabled + hide_backup_factor_enabled = var.authentication_factor_setting_hide_backup_factor_enabled + identity_store_settings { + + #Optional + mobile_number_enabled = var.authentication_factor_setting_identity_store_settings_mobile_number_enabled + mobile_number_update_enabled = var.authentication_factor_setting_identity_store_settings_mobile_number_update_enabled + } + phone_call_enabled = var.authentication_factor_setting_phone_call_enabled + # tags { + # #Required + # key = var.authentication_factor_setting_tags_key + # value = var.authentication_factor_setting_tags_value + # } + third_party_factor { + #Required + duo_security = var.authentication_factor_setting_third_party_factor_duo_security + } + urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings { + #Required + attestation = "NONE" + authenticator_selection_attachment = "BOTH" + authenticator_selection_require_resident_key = "false" + authenticator_selection_resident_key = "NONE" + authenticator_selection_user_verification = var.authentication_factor_setting_urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings_authenticator_selection_user_verification + exclude_credentials = "false" + public_key_types = ["RS1"] + timeout = "60000" + + #Optional + domain_validation_level = "1" + } + urnietfparamsscimschemasoracleidcsextensionthird_party_authentication_factor_settings { + + #Optional + duo_security_settings { + #Required + api_hostname = var.authentication_factor_setting_urnietfparamsscimschemasoracleidcsextensionthird_party_authentication_factor_settings_duo_security_settings_api_hostname + integration_key = var.authentication_factor_setting_urnietfparamsscimschemasoracleidcsextensionthird_party_authentication_factor_settings_duo_security_settings_integration_key + secret_key = var.authentication_factor_setting_urnietfparamsscimschemasoracleidcsextensionthird_party_authentication_factor_settings_duo_security_settings_secret_key + user_mapping_attribute = var.authentication_factor_setting_urnietfparamsscimschemasoracleidcsextensionthird_party_authentication_factor_settings_duo_security_settings_user_mapping_attribute + + #Optional + #this field is never returned + # attestation_key = var.authentication_factor_setting_urnietfparamsscimschemasoracleidcsextensionthird_party_authentication_factor_settings_duo_security_settings_attestation_key + } + } + user_enrollment_disabled_factors = var.authentication_factor_setting_user_enrollment_disabled_factors + yubico_otp_enabled = var.authentication_factor_setting_yubico_otp_enabled +} + +data "oci_identity_domains_authentication_factor_settings" "test_authentication_factor_settings" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + + #Optional + attribute_sets = [] + attributes = "" + authorization = var.authentication_factor_setting_authorization + #use the latest if not provided + # resource_type_schema_version = var.authentication_factor_setting_resource_type_schema_version +} diff --git a/examples/identity_domains/customer_secret_key.tf b/examples/identity_domains/customer_secret_key.tf new file mode 100644 index 00000000000..3be22d2078d --- /dev/null +++ b/examples/identity_domains/customer_secret_key.tf @@ -0,0 +1,94 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +variable "customer_secret_key_customer_secret_key_count" { + default = 10 +} + +variable "customer_secret_key_authorization" { + default = "authorization" +} + +variable "customer_secret_key_description" { + default = "description" +} + +variable "customer_secret_key_display_name" { + default = "displayName" +} + +variable "customer_secret_key_expires_on" { + default = "2030-01-01T00:00:00Z" +} + +variable "customer_secret_key_start_index" { + default = 1 +} + +variable "customer_secret_key_status" { + default = "ACTIVE" +} + +variable "customer_secret_key_tags_key" { + default = "key" +} + +variable "customer_secret_key_tags_value" { + default = "value" +} + +variable "customer_secret_key_urnietfparamsscimschemasoracleidcsextensionself_change_user_allow_self_change" { + default = false +} + + +resource "oci_identity_domains_customer_secret_key" "test_customer_secret_key" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + schemas = ["urn:ietf:params:scim:schemas:oracle:idcs:customerSecretKey"] + + #Optional + attribute_sets = [] + attributes = "" + authorization = var.customer_secret_key_authorization + description = var.customer_secret_key_description + display_name = var.customer_secret_key_display_name + expires_on = var.customer_secret_key_expires_on + #use the latest if not provided + # resource_type_schema_version = var.customer_secret_key_resource_type_schema_version + status = var.customer_secret_key_status + tags { + #Required + key = var.customer_secret_key_tags_key + value = var.customer_secret_key_tags_value + } + urnietfparamsscimschemasoracleidcsextensionself_change_user { + + #Optional + allow_self_change = var.customer_secret_key_urnietfparamsscimschemasoracleidcsextensionself_change_user_allow_self_change + } + user { + + #Optional + #use the ocid of the same user set in value + ocid = oci_identity_domains_user.test_user.ocid + #must be a user that exists + value = oci_identity_domains_user.test_user.id + } +} + +data "oci_identity_domains_customer_secret_keys" "test_customer_secret_keys" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + + #Optional + customer_secret_key_count = var.customer_secret_key_customer_secret_key_count + customer_secret_key_filter = "user.value eq \"${oci_identity_domains_user.test_user.id}\"" + attribute_sets = [] + attributes = "" + authorization = var.customer_secret_key_authorization + #use the latest if not provided + # resource_type_schema_version = var.customer_secret_key_resource_type_schema_version + start_index = var.customer_secret_key_start_index +} + diff --git a/examples/identity_domains/dynamic_resource_group.tf b/examples/identity_domains/dynamic_resource_group.tf new file mode 100644 index 00000000000..44945ace7c8 --- /dev/null +++ b/examples/identity_domains/dynamic_resource_group.tf @@ -0,0 +1,113 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +variable "dynamic_resource_group_dynamic_resource_group_count" { + default = 10 +} + +variable "dynamic_resource_group_dynamic_resource_group_filter" { + default = "" +} + +variable "dynamic_resource_group_authorization" { + default = "authorization" +} + +variable "dynamic_resource_group_description" { + default = "description" +} + +variable "dynamic_resource_group_display_name" { + default = "displayName" +} + +variable "dynamic_resource_group_matching_rule" { + default = "Any {Any {instance.id = \"instance.id\", instance.compartment.id = \"instance.compartment.id\"}}" +} + +variable "dynamic_resource_group_start_index" { + default = 1 +} + +variable "dynamic_resource_group_tags_key" { + default = "key" +} + +variable "dynamic_resource_group_tags_value" { + default = "value" +} + +variable "dynamic_resource_group_urnietfparamsscimschemasoracleidcsextension_oci_tags_defined_tags_key" { + default = "key" +} + +variable "dynamic_resource_group_urnietfparamsscimschemasoracleidcsextension_oci_tags_defined_tags_namespace" { + default = "namespace" +} + +variable "dynamic_resource_group_urnietfparamsscimschemasoracleidcsextension_oci_tags_defined_tags_value" { + default = "value" +} + +variable "dynamic_resource_group_urnietfparamsscimschemasoracleidcsextension_oci_tags_freeform_tags_key" { + default = "freeformKey" +} + +variable "dynamic_resource_group_urnietfparamsscimschemasoracleidcsextension_oci_tags_freeform_tags_value" { + default = "freeformValue" +} + + +resource "oci_identity_domains_dynamic_resource_group" "test_dynamic_resource_group" { + #Required + display_name = var.dynamic_resource_group_display_name + idcs_endpoint = data.oci_identity_domain.test_domain.url + matching_rule = var.dynamic_resource_group_matching_rule + schemas = ["urn:ietf:params:scim:schemas:oracle:idcs:DynamicResourceGroup"] + + #Optional + attribute_sets = [] + attributes = "" + authorization = var.dynamic_resource_group_authorization + description = var.dynamic_resource_group_description + #use the latest if not provided + # resource_type_schema_version = var.dynamic_resource_group_resource_type_schema_version + tags { + #Required + key = var.dynamic_resource_group_tags_key + value = var.dynamic_resource_group_tags_value + } + urnietfparamsscimschemasoracleidcsextension_oci_tags { + + #Optional + /* #create tagNamespace to use defined tags + defined_tags { + #Required + key = var.dynamic_resource_group_urnietfparamsscimschemasoracleidcsextension_oci_tags_defined_tags_key + namespace = var.dynamic_resource_group_urnietfparamsscimschemasoracleidcsextension_oci_tags_defined_tags_namespace + value = var.dynamic_resource_group_urnietfparamsscimschemasoracleidcsextension_oci_tags_defined_tags_value + } + */ + freeform_tags { + #Required + key = var.dynamic_resource_group_urnietfparamsscimschemasoracleidcsextension_oci_tags_freeform_tags_key + value = var.dynamic_resource_group_urnietfparamsscimschemasoracleidcsextension_oci_tags_freeform_tags_value + } + } +} + +data "oci_identity_domains_dynamic_resource_groups" "test_dynamic_resource_groups" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + + #Optional + dynamic_resource_group_count = var.dynamic_resource_group_dynamic_resource_group_count + dynamic_resource_group_filter = var.dynamic_resource_group_dynamic_resource_group_filter + attribute_sets = [] + attributes = "" + authorization = var.dynamic_resource_group_authorization + #use the latest if not provided + # resource_type_schema_version = var.dynamic_resource_group_resource_type_schema_version + start_index = var.dynamic_resource_group_start_index +} + diff --git a/examples/identity_domains/group.tf b/examples/identity_domains/group.tf new file mode 100644 index 00000000000..13bd251a4e4 --- /dev/null +++ b/examples/identity_domains/group.tf @@ -0,0 +1,214 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +variable "group_group_count" { + default = 10 +} + +variable "group_group_filter" { + default = "" +} + +variable "group_authorization" { + default = "authorization" +} + +variable "group_display_name" { + default = "displayName" +} + +variable "group_members_date_added" { + default = "dateAdded" +} + +variable "group_members_display" { + default = "display" +} + +variable "group_members_membership_ocid" { + default = "membershipOcid" +} + +variable "group_members_name" { + default = "name" +} + +variable "group_members_ocid" { + default = "ocid" +} + +variable "group_members_ref" { + default = "ref" +} + +variable "group_members_type" { + default = "User" +} + +variable "group_members_value" { + default = "value" +} + +variable "group_non_unique_display_name" { + default = "nonUniqueDisplayName" +} + +variable "group_start_index" { + default = 1 +} + +variable "group_tags_key" { + default = "key" +} + +variable "group_tags_value" { + default = "value" +} + +variable "group_urnietfparamsscimschemasoracleidcsextension_oci_tags_defined_tags_key" { + default = "key" +} + +variable "group_urnietfparamsscimschemasoracleidcsextension_oci_tags_defined_tags_namespace" { + default = "namespace" +} + +variable "group_urnietfparamsscimschemasoracleidcsextension_oci_tags_defined_tags_value" { + default = "value" +} + +variable "group_urnietfparamsscimschemasoracleidcsextension_oci_tags_freeform_tags_key" { + default = "freeformKey" +} + +variable "group_urnietfparamsscimschemasoracleidcsextension_oci_tags_freeform_tags_value" { + default = "freeformValue" +} + +variable "group_urnietfparamsscimschemasoracleidcsextensiondynamic_group_membership_rule" { + default = "membershipRule" +} + +variable "group_urnietfparamsscimschemasoracleidcsextensiondynamic_group_membership_type" { + default = "static" +} + +variable "group_urnietfparamsscimschemasoracleidcsextensiongroup_group_creation_mechanism" { + default = "api" +} + +variable "group_urnietfparamsscimschemasoracleidcsextensiongroup_group_description" { + default = "description" +} + +variable "group_urnietfparamsscimschemasoracleidcsextensiongroup_group_owners_display" { + default = "display" +} + +variable "group_urnietfparamsscimschemasoracleidcsextensiongroup_group_owners_type" { + default = "User" +} + +variable "group_urnietfparamsscimschemasoracleidcsextensiongroup_group_owners_value" { + default = "value" +} + +variable "group_urnietfparamsscimschemasoracleidcsextensionposix_group_gid_number" { + default = 500 +} + +variable "group_urnietfparamsscimschemasoracleidcsextensionrequestable_group_requestable" { + default = false +} + + +resource "oci_identity_domains_group" "test_group" { + #Required + display_name = var.group_display_name + idcs_endpoint = data.oci_identity_domain.test_domain.url + schemas = ["urn:ietf:params:scim:schemas:core:2.0:Group"] + + #Optional + attribute_sets = [] + attributes = "" + authorization = var.group_authorization + external_id = "externalId" + /* #provide user's id and/or ocid to add to this group + members { + #Required + type = var.group_members_type + value = var.group_members_value + + #Optional + ocid = var.group_members_ocid + } + */ + non_unique_display_name = var.group_non_unique_display_name + tags { + #Required + key = var.group_tags_key + value = var.group_tags_value + } + urnietfparamsscimschemasoracleidcsextension_oci_tags { + + #Optional + /* #create tagNamespace to use defined tags + defined_tags { + #Required + key = var.group_urnietfparamsscimschemasoracleidcsextension_oci_tags_defined_tags_key + namespace = var.group_urnietfparamsscimschemasoracleidcsextension_oci_tags_defined_tags_namespace + value = var.group_urnietfparamsscimschemasoracleidcsextension_oci_tags_defined_tags_value + } + */ + freeform_tags { + #Required + key = var.group_urnietfparamsscimschemasoracleidcsextension_oci_tags_freeform_tags_key + value = var.group_urnietfparamsscimschemasoracleidcsextension_oci_tags_freeform_tags_value + } + } + urnietfparamsscimschemasoracleidcsextensiondynamic_group { + + #Optional + #membership_rule can't be set for static groups + # membership_rule = var.group_urnietfparamsscimschemasoracleidcsextensiondynamic_group_membership_rule + membership_type = var.group_urnietfparamsscimschemasoracleidcsextensiondynamic_group_membership_type + } + urnietfparamsscimschemasoracleidcsextensiongroup_group { + + #Optional + creation_mechanism = var.group_urnietfparamsscimschemasoracleidcsextensiongroup_group_creation_mechanism + description = var.group_urnietfparamsscimschemasoracleidcsextensiongroup_group_description + /* #set value to id of user/app + owners { + #Required + type = var.group_urnietfparamsscimschemasoracleidcsextensiongroup_group_owners_type + value = var.group_urnietfparamsscimschemasoracleidcsextensiongroup_group_owners_value + } + */ + } + urnietfparamsscimschemasoracleidcsextensionposix_group { + + #Optional + gid_number = var.group_urnietfparamsscimschemasoracleidcsextensionposix_group_gid_number + } + urnietfparamsscimschemasoracleidcsextensionrequestable_group { + + #Optional + requestable = var.group_urnietfparamsscimschemasoracleidcsextensionrequestable_group_requestable + } +} + +data "oci_identity_domains_groups" "test_groups" { + #Required + # provider the idcs url of domain + idcs_endpoint = data.oci_identity_domain.test_domain.url + + #Optional + group_count = var.group_group_count + group_filter = var.group_group_filter + attribute_sets = [] + attributes = "" + authorization = var.group_authorization + start_index = var.group_start_index +} + diff --git a/examples/identity_domains/identity_domain.tf b/examples/identity_domains/identity_domain.tf new file mode 100644 index 00000000000..234f0d0d37f --- /dev/null +++ b/examples/identity_domains/identity_domain.tf @@ -0,0 +1,8 @@ +#provide the id of the identity domain to work on +variable "identity_domain_id" { + default = "" +} + +data "oci_identity_domain" "test_domain" { + domain_id = var.identity_domain_id +} diff --git a/examples/identity_domains/identity_provider.tf b/examples/identity_domains/identity_provider.tf new file mode 100644 index 00000000000..47bc4ac97f3 --- /dev/null +++ b/examples/identity_domains/identity_provider.tf @@ -0,0 +1,466 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +variable "identity_provider_identity_provider_count" { + default = 10 +} + +variable "identity_provider_identity_provider_filter" { + default = "" +} + +variable "identity_provider_assertion_attribute" { + default = "assertionAttribute" +} + +variable "identity_provider_authn_request_binding" { + default = "Redirect" +} + +variable "identity_provider_authorization" { + default = "authorization" +} + +variable "identity_provider_correlation_policy_display" { + default = "display" +} + +variable "identity_provider_correlation_policy_ref" { + default = "ref" +} + +variable "identity_provider_correlation_policy_type" { + default = "Policy" +} + +variable "identity_provider_correlation_policy_value" { + default = "value" +} + +variable "identity_provider_description" { + default = "description" +} + +#provide the IDP encryption cert +variable "identity_provider_encryption_certificate" { + default = "" +} + +variable "identity_provider_icon_url" { + default = "https://something.com/iconUrl.png" +} + +variable "identity_provider_idp_sso_url" { + default = "https://idpSsoUrl.com" +} + +variable "identity_provider_include_signing_cert_in_signature" { + default = false +} + +variable "identity_provider_jit_user_prov_assigned_groups_display" { + default = "display" +} + +variable "identity_provider_jit_user_prov_assigned_groups_value" { + default = "value" +} + +variable "identity_provider_jit_user_prov_attribute_update_enabled" { + default = false +} + +variable "identity_provider_jit_user_prov_attributes_value" { + default = "value" +} + +variable "identity_provider_jit_user_prov_create_user_enabled" { + default = false +} + +variable "identity_provider_jit_user_prov_enabled" { + default = false +} + +variable "identity_provider_jit_user_prov_group_assertion_attribute_enabled" { + default = false +} + +variable "identity_provider_jit_user_prov_group_assignment_method" { + default = "Overwrite" +} + +variable "identity_provider_jit_user_prov_group_mapping_mode" { + default = "implicit" +} + +variable "identity_provider_jit_user_prov_group_mappings_idp_group" { + default = "idpGroup" +} + +variable "identity_provider_jit_user_prov_group_mappings_value" { + default = "value" +} + +variable "identity_provider_jit_user_prov_group_saml_attribute_name" { + default = "jitUserProvGroupSAMLAttributeName" +} + +variable "identity_provider_jit_user_prov_group_static_list_enabled" { + default = false +} + +variable "identity_provider_jit_user_prov_ignore_error_on_absent_groups" { + default = false +} + +variable "identity_provider_logout_binding" { + default = "Redirect" +} + +variable "identity_provider_logout_enabled" { + default = false +} + +variable "identity_provider_logout_request_url" { + default = "https://logoutRequestUrl.com" +} + +variable "identity_provider_logout_response_url" { + default = "https://logoutResponseUrl.com" +} + +#provide the IDP metadata +variable "identity_provider_metadata" { + default = "" +} + +variable "identity_provider_name_id_format" { + default = "nameIdFormat" +} + +variable "identity_provider_partner_name" { + default = "partnerName" +} + +#provide the IDP partner provider id +variable "identity_provider_partner_provider_id" { + default = "" +} + +variable "identity_provider_requested_authentication_context" { + default = [] +} + +variable "identity_provider_require_force_authn" { + default = false +} + +variable "identity_provider_requires_encrypted_assertion" { + default = false +} + +variable "identity_provider_saml_ho_krequired" { + default = false +} + +variable "identity_provider_service_instance_identifier" { + default = "serviceInstanceIdentifier" +} + +variable "identity_provider_shown_on_login_page" { + default = false +} + +variable "identity_provider_signature_hash_algorithm" { + default = "SHA-1" +} + +#provide the IDP signing cert +variable "identity_provider_signing_certificate" { + default = "" +} + +variable "identity_provider_start_index" { + default = 1 +} + +variable "identity_provider_tags_key" { + default = "key" +} + +variable "identity_provider_tags_value" { + default = "value" +} + +variable "identity_provider_type" { + default = "SAML" +} + +variable "identity_provider_urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider_access_token_url" { + default = "accessTokenUrl" +} + +variable "identity_provider_urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider_account_linking_enabled" { + default = false +} + +variable "identity_provider_urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider_admin_scope" { + default = [] +} + +variable "identity_provider_urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider_authz_url" { + default = "authzUrl" +} + +variable "identity_provider_urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider_client_credential_in_payload" { + default = false +} + +variable "identity_provider_urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider_clock_skew_in_seconds" { + default = 10 +} + +variable "identity_provider_urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider_consumer_key" { + default = "consumerKey" +} + +variable "identity_provider_urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider_consumer_secret" { + default = "consumerSecret" +} + +variable "identity_provider_urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider_discovery_url" { + default = "discoveryUrl" +} + +variable "identity_provider_urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider_id_attribute" { + default = "idAttribute" +} + +variable "identity_provider_urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider_profile_url" { + default = "profileUrl" +} + +variable "identity_provider_urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider_redirect_url" { + default = "redirectUrl" +} + +variable "identity_provider_urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider_registration_enabled" { + default = false +} + +variable "identity_provider_urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider_scope" { + default = [] +} + +variable "identity_provider_urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider_service_provider_name" { + default = "serviceProviderName" +} + +variable "identity_provider_urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider_status" { + default = "created" +} + +variable "identity_provider_urnietfparamsscimschemasoracleidcsextensionx509identity_provider_cert_match_attribute" { + default = "certMatchAttribute" +} + +variable "identity_provider_urnietfparamsscimschemasoracleidcsextensionx509identity_provider_crl_check_on_ocsp_failure_enabled" { + default = false +} + +variable "identity_provider_urnietfparamsscimschemasoracleidcsextensionx509identity_provider_crl_enabled" { + default = false +} + +variable "identity_provider_urnietfparamsscimschemasoracleidcsextensionx509identity_provider_crl_location" { + default = "crlLocation" +} + +variable "identity_provider_urnietfparamsscimschemasoracleidcsextensionx509identity_provider_crl_reload_duration" { + default = 10 +} + +variable "identity_provider_urnietfparamsscimschemasoracleidcsextensionx509identity_provider_ocsp_allow_unknown_response_status" { + default = false +} + +variable "identity_provider_urnietfparamsscimschemasoracleidcsextensionx509identity_provider_ocsp_enable_signed_response" { + default = false +} + +variable "identity_provider_urnietfparamsscimschemasoracleidcsextensionx509identity_provider_ocsp_enabled" { + default = false +} + +variable "identity_provider_urnietfparamsscimschemasoracleidcsextensionx509identity_provider_ocsp_responder_url" { + default = "ocspResponderURL" +} + +variable "identity_provider_urnietfparamsscimschemasoracleidcsextensionx509identity_provider_ocsp_revalidate_time" { + default = 10 +} + +variable "identity_provider_urnietfparamsscimschemasoracleidcsextensionx509identity_provider_ocsp_server_name" { + default = "ocspServerName" +} + +variable "identity_provider_urnietfparamsscimschemasoracleidcsextensionx509identity_provider_ocsp_trust_cert_chain" { + default = [] +} + +variable "identity_provider_urnietfparamsscimschemasoracleidcsextensionx509identity_provider_other_cert_match_attribute" { + default = "otherCertMatchAttribute" +} + +variable "identity_provider_urnietfparamsscimschemasoracleidcsextensionx509identity_provider_user_match_attribute" { + default = "userMatchAttribute" +} + +variable "identity_provider_user_mapping_method" { + default = "NameIDToUserAttribute" +} + +variable "identity_provider_user_mapping_store_attribute" { + default = "userName" +} + + +resource "oci_identity_domains_identity_provider" "test_identity_provider" { + #Required + enabled = false + idcs_endpoint = data.oci_identity_domain.test_domain.url + partner_name = var.identity_provider_partner_name + schemas = ["urn:ietf:params:scim:schemas:oracle:idcs:IdentityProvider"] + + #Optional + assertion_attribute = var.identity_provider_assertion_attribute + attribute_sets = [] + attributes = "" + authn_request_binding = var.identity_provider_authn_request_binding + authorization = var.identity_provider_authorization + /* #set value to a Policy id to reference a Policy + correlation_policy { + #Required + type = var.identity_provider_correlation_policy_type + value = var.identity_provider_correlation_policy_value + } + */ + description = var.identity_provider_description + encryption_certificate = var.identity_provider_encryption_certificate + external_id = "externalId" + icon_url = var.identity_provider_icon_url + idp_sso_url = var.identity_provider_idp_sso_url + include_signing_cert_in_signature = var.identity_provider_include_signing_cert_in_signature + /* #set value to a Group id to reference a Group + jit_user_prov_assigned_groups { + #Required + value = var.identity_provider_jit_user_prov_assigned_groups_value + } + */ + jit_user_prov_attribute_update_enabled = var.identity_provider_jit_user_prov_attribute_update_enabled + /* #set value to a MappedAttribute id to reference a MappedAttribute + jit_user_prov_attributes { + #Required + value = var.identity_provider_jit_user_prov_attributes_value + } + */ + jit_user_prov_create_user_enabled = var.identity_provider_jit_user_prov_create_user_enabled + jit_user_prov_enabled = var.identity_provider_jit_user_prov_enabled + jit_user_prov_group_assertion_attribute_enabled = var.identity_provider_jit_user_prov_group_assertion_attribute_enabled + jit_user_prov_group_assignment_method = var.identity_provider_jit_user_prov_group_assignment_method + jit_user_prov_group_mapping_mode = var.identity_provider_jit_user_prov_group_mapping_mode + /* #set value to a Group id to reference a Group + jit_user_prov_group_mappings { + #Required + idp_group = var.identity_provider_jit_user_prov_group_mappings_idp_group + value = var.identity_provider_jit_user_prov_group_mappings_value + } + */ + jit_user_prov_group_saml_attribute_name = var.identity_provider_jit_user_prov_group_saml_attribute_name + jit_user_prov_group_static_list_enabled = var.identity_provider_jit_user_prov_group_static_list_enabled + jit_user_prov_ignore_error_on_absent_groups = var.identity_provider_jit_user_prov_ignore_error_on_absent_groups + logout_binding = var.identity_provider_logout_binding + logout_enabled = var.identity_provider_logout_enabled + logout_request_url = var.identity_provider_logout_request_url + logout_response_url = var.identity_provider_logout_response_url + metadata = var.identity_provider_metadata + name_id_format = var.identity_provider_name_id_format + partner_provider_id = var.identity_provider_partner_provider_id + requested_authentication_context = var.identity_provider_requested_authentication_context + require_force_authn = var.identity_provider_require_force_authn + requires_encrypted_assertion = var.identity_provider_requires_encrypted_assertion + #use the latest if not provided + # resource_type_schema_version = var.identity_provider_resource_type_schema_version + saml_ho_krequired = var.identity_provider_saml_ho_krequired + service_instance_identifier = var.identity_provider_service_instance_identifier + shown_on_login_page = var.identity_provider_shown_on_login_page + signature_hash_algorithm = var.identity_provider_signature_hash_algorithm + signing_certificate = var.identity_provider_signing_certificate + succinct_id = "succinctId" + tags { + #Required + key = var.identity_provider_tags_key + value = var.identity_provider_tags_value + } + type = var.identity_provider_type + urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider { + #Required + account_linking_enabled = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider_account_linking_enabled + consumer_key = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider_consumer_key + consumer_secret = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider_consumer_secret + registration_enabled = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider_registration_enabled + service_provider_name = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider_service_provider_name + + #Optional + access_token_url = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider_access_token_url + admin_scope = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider_admin_scope + authz_url = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider_authz_url + client_credential_in_payload = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider_client_credential_in_payload + clock_skew_in_seconds = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider_clock_skew_in_seconds + discovery_url = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider_discovery_url + id_attribute = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider_id_attribute + profile_url = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider_profile_url + redirect_url = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider_redirect_url + scope = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider_scope + status = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider_status + } + urnietfparamsscimschemasoracleidcsextensionx509identity_provider { + #Required + cert_match_attribute = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionx509identity_provider_cert_match_attribute + signing_certificate_chain = ["signingCertificateChain"] + user_match_attribute = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionx509identity_provider_user_match_attribute + + #Optional + crl_check_on_ocsp_failure_enabled = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionx509identity_provider_crl_check_on_ocsp_failure_enabled + crl_enabled = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionx509identity_provider_crl_enabled + crl_location = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionx509identity_provider_crl_location + crl_reload_duration = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionx509identity_provider_crl_reload_duration + ocsp_allow_unknown_response_status = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionx509identity_provider_ocsp_allow_unknown_response_status + ocsp_enable_signed_response = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionx509identity_provider_ocsp_enable_signed_response + ocsp_enabled = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionx509identity_provider_ocsp_enabled + ocsp_responder_url = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionx509identity_provider_ocsp_responder_url + ocsp_revalidate_time = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionx509identity_provider_ocsp_revalidate_time + ocsp_server_name = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionx509identity_provider_ocsp_server_name + ocsp_trust_cert_chain = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionx509identity_provider_ocsp_trust_cert_chain + other_cert_match_attribute = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionx509identity_provider_other_cert_match_attribute + } + user_mapping_method = var.identity_provider_user_mapping_method + user_mapping_store_attribute = var.identity_provider_user_mapping_store_attribute +} + +data "oci_identity_domains_identity_providers" "test_identity_providers" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + + #Optional + identity_provider_count = var.identity_provider_identity_provider_count + identity_provider_filter = var.identity_provider_identity_provider_filter + attribute_sets = [] + attributes = "" + authorization = var.identity_provider_authorization + #use the latest if not provided + # resource_type_schema_version = var.identity_provider_resource_type_schema_version + start_index = var.identity_provider_start_index +} + diff --git a/examples/identity_domains/kmsi_setting.tf b/examples/identity_domains/kmsi_setting.tf new file mode 100644 index 00000000000..d8aa31ff5eb --- /dev/null +++ b/examples/identity_domains/kmsi_setting.tf @@ -0,0 +1,91 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +variable "kmsi_setting_authorization" { + default = "authorization" +} + +variable "kmsi_setting_kmsi_feature_enabled" { + default = false +} + +variable "kmsi_setting_kmsi_prompt_enabled" { + default = false +} + +variable "kmsi_setting_last_enabled_on" { + default = "2022-01-01T00:00:00Z" +} + +variable "kmsi_setting_last_used_validity_in_days" { + default = 10 +} + +variable "kmsi_setting_max_allowed_sessions" { + default = 10 +} + +variable "kmsi_setting_schemas" { + default = [] +} + +variable "kmsi_setting_tags_key" { + default = "key" +} + +variable "kmsi_setting_tags_value" { + default = "value" +} + +variable "kmsi_setting_tenancy_ocid" { + default = "tenancyOcid" +} + +variable "kmsi_setting_token_validity_in_days" { + default = 10 +} + +variable "kmsi_setting_tou_prompt_disabled" { + default = false +} + + +resource "oci_identity_domains_kmsi_setting" "test_kmsi_setting" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + kmsi_setting_id = "KmsiSettings" + schemas = ["urn:ietf:params:scim:schemas:oracle:idcs:KmsiSettings"] + + #Optional + attribute_sets = [] + attributes = "" + authorization = var.kmsi_setting_authorization + external_id = "externalId" + kmsi_feature_enabled = var.kmsi_setting_kmsi_feature_enabled + kmsi_prompt_enabled = var.kmsi_setting_kmsi_prompt_enabled + last_enabled_on = var.kmsi_setting_last_enabled_on + last_used_validity_in_days = var.kmsi_setting_last_used_validity_in_days + max_allowed_sessions = var.kmsi_setting_max_allowed_sessions + #use the latest if not provided + # resource_type_schema_version = var.kmsi_setting_resource_type_schema_version + tags { + #Required + key = var.kmsi_setting_tags_key + value = var.kmsi_setting_tags_value + } + token_validity_in_days = var.kmsi_setting_token_validity_in_days + tou_prompt_disabled = var.kmsi_setting_tou_prompt_disabled +} + +data "oci_identity_domains_kmsi_settings" "test_kmsi_settings" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + + #Optional + attribute_sets = [] + attributes = "" + authorization = var.kmsi_setting_authorization + #use the latest if not provided + # resource_type_schema_version = var.kmsi_setting_resource_type_schema_version +} + diff --git a/examples/identity_domains/my_api_key.tf b/examples/identity_domains/my_api_key.tf new file mode 100644 index 00000000000..c1fdcd98697 --- /dev/null +++ b/examples/identity_domains/my_api_key.tf @@ -0,0 +1,90 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +variable "my_api_key_my_api_key_count" { + default = 10 +} + +variable "my_api_key_my_api_key_filter" { + default = "" +} + +variable "my_api_key_authorization" { + default = "authorization" +} + +variable "my_api_key_description" { + default = "description" +} + +variable "my_api_key_fingerprint" { + default = "fingerprint" +} + +#provide the public key +variable "my_api_key_key" { + default = "" +} + +variable "my_api_key_start_index" { + default = 1 +} + +variable "my_api_key_tags_key" { + default = "key" +} + +variable "my_api_key_tags_value" { + default = "value" +} + +variable "my_api_key_user_ocid" { + default = "ocid" +} + +variable "my_api_key_user_value" { + default = "value" +} + + +resource "oci_identity_domains_my_api_key" "test_my_api_key" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + key = var.my_api_key_key + schemas = ["urn:ietf:params:scim:schemas:oracle:idcs:apikey"] + + #Optional + authorization = var.my_api_key_authorization + description = var.my_api_key_description + #use the latest if not provided + # resource_type_schema_version = var.my_api_key_resource_type_schema_version + tags { + #Required + key = var.my_api_key_tags_key + value = var.my_api_key_tags_value + } + + /* #for my_* resources, `user` can only be set to current user + user { + + #Optional + ocid = var.my_api_key_user_ocid + value = var.my_api_key_user_value + } + */ + +} + +data "oci_identity_domains_my_api_keys" "test_my_api_keys" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + + #Optional + my_api_key_count = var.my_api_key_my_api_key_count + my_api_key_filter = var.my_api_key_my_api_key_filter + authorization = var.my_api_key_authorization + #use the latest if not provided + # resource_type_schema_version = var.my_api_key_resource_type_schema_version + start_index = var.my_api_key_start_index +} + diff --git a/examples/identity_domains/my_auth_token.tf b/examples/identity_domains/my_auth_token.tf new file mode 100644 index 00000000000..850b1544816 --- /dev/null +++ b/examples/identity_domains/my_auth_token.tf @@ -0,0 +1,89 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +variable "my_auth_token_my_auth_token_count" { + default = 10 +} + +variable "my_auth_token_my_auth_token_filter" { + default = "" +} + +variable "my_auth_token_authorization" { + default = "authorization" +} + +variable "my_auth_token_description" { + default = "description" +} + +variable "my_auth_token_expires_on" { + default = "2030-01-01T00:00:00Z" +} + +variable "my_auth_token_start_index" { + default = 1 +} + +variable "my_auth_token_status" { + default = "ACTIVE" +} + +variable "my_auth_token_tags_key" { + default = "key" +} + +variable "my_auth_token_tags_value" { + default = "value" +} + +variable "my_auth_token_user_ocid" { + default = "ocid" +} + +variable "my_auth_token_user_value" { + default = "value" +} + + +resource "oci_identity_domains_my_auth_token" "test_my_auth_token" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + schemas = ["urn:ietf:params:scim:schemas:oracle:idcs:authToken"] + + #Optional + authorization = var.my_auth_token_authorization + description = var.my_auth_token_description + expires_on = var.my_auth_token_expires_on + #use the latest if not provided + # resource_type_schema_version = var.my_auth_token_resource_type_schema_version + status = var.my_auth_token_status + tags { + #Required + key = var.my_auth_token_tags_key + value = var.my_auth_token_tags_value + } + + /* #for my_* resources, `user` can only be set to current user + user { + + #Optional + ocid = var.my_auth_token_user_ocid + value = var.my_auth_token_user_value + } + */ +} + +data "oci_identity_domains_my_auth_tokens" "test_my_auth_tokens" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + + #Optional + my_auth_token_count = var.my_auth_token_my_auth_token_count + my_auth_token_filter = var.my_auth_token_my_auth_token_filter + authorization = var.my_auth_token_authorization + #use the latest if not provided + # resource_type_schema_version = var.my_auth_token_resource_type_schema_version + start_index = var.my_auth_token_start_index +} + diff --git a/examples/identity_domains/my_customer_secret_key.tf b/examples/identity_domains/my_customer_secret_key.tf new file mode 100644 index 00000000000..1d9ca7e6c8a --- /dev/null +++ b/examples/identity_domains/my_customer_secret_key.tf @@ -0,0 +1,97 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +variable "my_customer_secret_key_my_customer_secret_key_count" { + default = 10 +} + +variable "my_customer_secret_key_my_customer_secret_key_filter" { + default = "" +} + +variable "my_customer_secret_key_access_key" { + default = "accessKey" +} + +variable "my_customer_secret_key_authorization" { + default = "authorization" +} + +variable "my_customer_secret_key_description" { + default = "description" +} + +variable "my_customer_secret_key_display_name" { + default = "displayName" +} + +variable "my_customer_secret_key_expires_on" { + default = "2030-01-01T00:00:00Z" +} + +variable "my_customer_secret_key_start_index" { + default = 1 +} + +variable "my_customer_secret_key_status" { + default = "ACTIVE" +} + +variable "my_customer_secret_key_tags_key" { + default = "key" +} + +variable "my_customer_secret_key_tags_value" { + default = "value" +} + +variable "my_customer_secret_key_user_ocid" { + default = "ocid" +} + +variable "my_customer_secret_key_user_value" { + default = "value" +} + + +resource "oci_identity_domains_my_customer_secret_key" "test_my_customer_secret_key" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + schemas = ["urn:ietf:params:scim:schemas:oracle:idcs:customerSecretKey"] + + #Optional + authorization = var.my_customer_secret_key_authorization + description = var.my_customer_secret_key_description + display_name = var.my_customer_secret_key_display_name + expires_on = var.my_customer_secret_key_expires_on + #use the latest if not provided + # resource_type_schema_version = var.my_customer_secret_key_resource_type_schema_version + status = var.my_customer_secret_key_status + tags { + #Required + key = var.my_customer_secret_key_tags_key + value = var.my_customer_secret_key_tags_value + } + /* #for my_* resources, `user` can only be set to current user + user { + + #Optional + ocid = var.my_customer_secret_key_user_ocid + value = var.my_customer_secret_key_user_value + } + */ +} + +data "oci_identity_domains_my_customer_secret_keys" "test_my_customer_secret_keys" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + + #Optional + my_customer_secret_key_count = var.my_customer_secret_key_my_customer_secret_key_count + my_customer_secret_key_filter = var.my_customer_secret_key_my_customer_secret_key_filter + authorization = var.my_customer_secret_key_authorization + #use the latest if not provided + # resource_type_schema_version = var.my_customer_secret_key_resource_type_schema_version + start_index = var.my_customer_secret_key_start_index +} + diff --git a/examples/identity_domains/my_device.tf b/examples/identity_domains/my_device.tf new file mode 100644 index 00000000000..d1beae136a4 --- /dev/null +++ b/examples/identity_domains/my_device.tf @@ -0,0 +1,33 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +variable "my_device_my_device_count" { + default = 10 +} + +variable "my_device_my_device_filter" { + default = "" +} + +variable "my_device_authorization" { + default = "authorization" +} + +variable "my_device_start_index" { + default = 1 +} + + +data "oci_identity_domains_my_devices" "test_my_devices" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + + #Optional + my_device_count = var.my_device_my_device_count + my_device_filter = var.my_device_my_device_filter + attribute_sets = [] + attributes = "" + authorization = var.my_device_authorization + start_index = var.my_device_start_index +} + diff --git a/examples/identity_domains/my_group.tf b/examples/identity_domains/my_group.tf new file mode 100644 index 00000000000..a865400bf82 --- /dev/null +++ b/examples/identity_domains/my_group.tf @@ -0,0 +1,32 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +variable "my_group_my_group_count" { + default = 10 +} + +variable "my_group_my_group_filter" { + default = "" +} + +variable "my_group_authorization" { + default = "authorization" +} + +variable "my_group_start_index" { + default = 1 +} + + +data "oci_identity_domains_my_groups" "test_my_groups" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + + #Optional + my_group_count = var.my_group_my_group_count + my_group_filter = var.my_group_my_group_filter + attribute_sets = [] + attributes = "" + authorization = var.my_group_authorization + start_index = var.my_group_start_index +} diff --git a/examples/identity_domains/my_oauth2client_credential.tf b/examples/identity_domains/my_oauth2client_credential.tf new file mode 100644 index 00000000000..e0e58b124f8 --- /dev/null +++ b/examples/identity_domains/my_oauth2client_credential.tf @@ -0,0 +1,111 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +variable "my_oauth2client_credential_my_oauth2client_credential_count" { + default = 10 +} + +variable "my_oauth2client_credential_my_oauth2client_credential_filter" { + default = "" +} + +variable "my_oauth2client_credential_authorization" { + default = "authorization" +} + +variable "my_oauth2client_credential_description" { + default = "description" +} + +variable "my_oauth2client_credential_expires_on" { + default = "2030-01-01T00:00:00Z" +} + +variable "my_oauth2client_credential_is_reset_secret" { + default = false +} + +variable "my_oauth2client_credential_name" { + default = "name" +} + +variable "my_oauth2client_credential_scopes_audience" { + default = "audience" +} + +variable "my_oauth2client_credential_scopes_scope" { + default = "scope" +} + +variable "my_oauth2client_credential_start_index" { + default = 1 +} + +variable "my_oauth2client_credential_status" { + default = "ACTIVE" +} + +variable "my_oauth2client_credential_tags_key" { + default = "key" +} + +variable "my_oauth2client_credential_tags_value" { + default = "value" +} + +variable "my_oauth2client_credential_user_ocid" { + default = "ocid" +} + +variable "my_oauth2client_credential_user_value" { + default = "value" +} + + +resource "oci_identity_domains_my_oauth2client_credential" "test_my_oauth2client_credential" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + name = var.my_oauth2client_credential_name + schemas = ["urn:ietf:params:scim:schemas:oracle:idcs:oauth2ClientCredential"] + scopes { + #Required + audience = var.my_oauth2client_credential_scopes_audience + scope = var.my_oauth2client_credential_scopes_scope + } + + #Optional + authorization = var.my_oauth2client_credential_authorization + description = var.my_oauth2client_credential_description + expires_on = var.my_oauth2client_credential_expires_on + is_reset_secret = var.my_oauth2client_credential_is_reset_secret + #use the latest if not provided + # resource_type_schema_version = var.my_oauth2client_credential_resource_type_schema_version + status = var.my_oauth2client_credential_status + tags { + #Required + key = var.my_oauth2client_credential_tags_key + value = var.my_oauth2client_credential_tags_value + } + /* #for my_* resources, `user` can only be set to current user + user { + + #Optional + ocid = var.my_oauth2client_credential_user_ocid + value = var.my_oauth2client_credential_user_value + } + */ +} + +data "oci_identity_domains_my_oauth2client_credentials" "test_my_oauth2client_credentials" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + + #Optional + my_oauth2client_credential_count = var.my_oauth2client_credential_my_oauth2client_credential_count + my_oauth2client_credential_filter = var.my_oauth2client_credential_my_oauth2client_credential_filter + authorization = var.my_oauth2client_credential_authorization + #use the latest if not provided + # resource_type_schema_version = var.my_oauth2client_credential_resource_type_schema_version + start_index = var.my_oauth2client_credential_start_index +} + diff --git a/examples/identity_domains/my_smtp_credential.tf b/examples/identity_domains/my_smtp_credential.tf new file mode 100644 index 00000000000..5d7c8c0626c --- /dev/null +++ b/examples/identity_domains/my_smtp_credential.tf @@ -0,0 +1,88 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +variable "my_smtp_credential_my_smtp_credential_count" { + default = 10 +} + +variable "my_smtp_credential_my_smtp_credential_filter" { + default = "" +} + +variable "my_smtp_credential_authorization" { + default = "authorization" +} + +variable "my_smtp_credential_description" { + default = "description" +} + +variable "my_smtp_credential_expires_on" { + default = "2030-01-01T00:00:00Z" +} + +variable "my_smtp_credential_start_index" { + default = 1 +} + +variable "my_smtp_credential_status" { + default = "ACTIVE" +} + +variable "my_smtp_credential_tags_key" { + default = "key" +} + +variable "my_smtp_credential_tags_value" { + default = "value" +} + +variable "my_smtp_credential_user_ocid" { + default = "ocid" +} + +variable "my_smtp_credential_user_value" { + default = "value" +} + + +resource "oci_identity_domains_my_smtp_credential" "test_my_smtp_credential" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + schemas = ["urn:ietf:params:scim:schemas:oracle:idcs:smtpCredential"] + + #Optional + authorization = var.my_smtp_credential_authorization + description = var.my_smtp_credential_description + expires_on = var.my_smtp_credential_expires_on + #use the latest if not provided + # resource_type_schema_version = var.my_smtp_credential_resource_type_schema_version + status = var.my_smtp_credential_status + tags { + #Required + key = var.my_smtp_credential_tags_key + value = var.my_smtp_credential_tags_value + } + /* #for my_* resources, `user` can only be set to current user + user { + + #Optional + ocid = var.my_smtp_credential_user_ocid + value = var.my_smtp_credential_user_value + } + */ +} + +data "oci_identity_domains_my_smtp_credentials" "test_my_smtp_credentials" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + + #Optional + my_smtp_credential_count = var.my_smtp_credential_my_smtp_credential_count + my_smtp_credential_filter = var.my_smtp_credential_my_smtp_credential_filter + authorization = var.my_smtp_credential_authorization + #use the latest if not provided + # resource_type_schema_version = var.my_smtp_credential_resource_type_schema_version + start_index = var.my_smtp_credential_start_index +} + diff --git a/examples/identity_domains/my_support_account.tf b/examples/identity_domains/my_support_account.tf new file mode 100644 index 00000000000..11a5ff435a8 --- /dev/null +++ b/examples/identity_domains/my_support_account.tf @@ -0,0 +1,89 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +variable "my_support_account_my_support_account_count" { + default = 10 +} + +variable "my_support_account_my_support_account_filter" { + default = "" +} + +variable "my_support_account_my_support_account_provider" { + default = "MOS" +} + +variable "my_support_account_authorization" { + default = "authorization" +} + +variable "my_support_account_start_index" { + default = 1 +} + +variable "my_support_account_tags_key" { + default = "key" +} + +variable "my_support_account_tags_value" { + default = "value" +} + +#provide the token +variable "my_support_account_token" { + default = "" +} + +variable "my_support_account_user_display" { + default = "display" +} + +variable "my_support_account_user_name" { + default = "name" +} + +variable "my_support_account_user_value" { + default = "value" +} + + +resource "oci_identity_domains_my_support_account" "test_my_support_account" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + schemas = ["urn:ietf:params:scim:schemas:oracle:idcs:supportAccount"] + token = var.my_support_account_token + + #Optional + authorization = var.my_support_account_authorization + #use the latest if not provided + # resource_type_schema_version = var.my_support_account_resource_type_schema_version + tags { + #Required + key = var.my_support_account_tags_key + value = var.my_support_account_tags_value + } + + /* #for my_* resources, `user` can only be set to current user + user { + + #Optional + ocid = var.my_support_account_user_ocid + value = var.my_support_account_user_value + } + */ + +} + +data "oci_identity_domains_my_support_accounts" "test_my_support_accounts" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + + #Optional + my_support_account_count = var.my_support_account_my_support_account_count + my_support_account_filter = var.my_support_account_my_support_account_filter + authorization = var.my_support_account_authorization + #use the latest if not provided + # resource_type_schema_version = var.my_support_account_resource_type_schema_version + start_index = var.my_support_account_start_index +} + diff --git a/examples/identity_domains/my_trusted_user_agent.tf b/examples/identity_domains/my_trusted_user_agent.tf new file mode 100644 index 00000000000..62e20e3265b --- /dev/null +++ b/examples/identity_domains/my_trusted_user_agent.tf @@ -0,0 +1,35 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +variable "my_trusted_user_agent_my_trusted_user_agent_count" { + default = 10 +} + +variable "my_trusted_user_agent_my_trusted_user_agent_filter" { + default = "" +} + +variable "my_trusted_user_agent_authorization" { + default = "authorization" +} + +variable "my_trusted_user_agent_start_index" { + default = 1 +} + + +data "oci_identity_domains_my_trusted_user_agents" "test_my_trusted_user_agents" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + + #Optional + my_trusted_user_agent_count = var.my_trusted_user_agent_my_trusted_user_agent_count + my_trusted_user_agent_filter = var.my_trusted_user_agent_my_trusted_user_agent_filter + attribute_sets = [] + attributes = "" + authorization = var.my_trusted_user_agent_authorization + #use the latest if not provided + # resource_type_schema_version = var.my_trusted_user_agent_resource_type_schema_version + start_index = var.my_trusted_user_agent_start_index +} + diff --git a/examples/identity_domains/my_user_db_credential.tf b/examples/identity_domains/my_user_db_credential.tf new file mode 100644 index 00000000000..dbfd18c2dd2 --- /dev/null +++ b/examples/identity_domains/my_user_db_credential.tf @@ -0,0 +1,94 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +variable "my_user_db_credential_my_user_db_credential_count" { + default = 10 +} + +variable "my_user_db_credential_my_user_db_credential_filter" { + default = "" +} + +variable "my_user_db_credential_authorization" { + default = "authorization" +} + +variable "my_user_db_credential_db_password" { + default = "dbPassword123456" +} + +variable "my_user_db_credential_description" { + default = "description" +} + +variable "my_user_db_credential_expires_on" { + default = "2030-01-01T00:00:00Z" +} + +variable "my_user_db_credential_start_index" { + default = 1 +} + +variable "my_user_db_credential_status" { + default = "ACTIVE" +} + +variable "my_user_db_credential_tags_key" { + default = "key" +} + +variable "my_user_db_credential_tags_value" { + default = "value" +} + +variable "my_user_db_credential_user_ocid" { + default = "ocid" +} + +variable "my_user_db_credential_user_value" { + default = "value" +} + + +resource "oci_identity_domains_my_user_db_credential" "test_my_user_db_credential" { + #Required + db_password = var.my_user_db_credential_db_password + idcs_endpoint = data.oci_identity_domain.test_domain.url + schemas = ["urn:ietf:params:scim:schemas:oracle:idcs:UserDbCredentials"] + + #Optional + authorization = var.my_user_db_credential_authorization + description = var.my_user_db_credential_description + expires_on = var.my_user_db_credential_expires_on + #use the latest if not provided + # resource_type_schema_version = var.my_user_db_credential_resource_type_schema_version + status = var.my_user_db_credential_status + tags { + #Required + key = var.my_user_db_credential_tags_key + value = var.my_user_db_credential_tags_value + } + /* #for my_* resources, `user` can only be set to current user + user { + #Required + value = var.my_user_db_credential_user_value + + #Optional + ocid = var.my_user_db_credential_user_ocid + } + */ +} + +data "oci_identity_domains_my_user_db_credentials" "test_my_user_db_credentials" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + + #Optional + my_user_db_credential_count = var.my_user_db_credential_my_user_db_credential_count + my_user_db_credential_filter = var.my_user_db_credential_my_user_db_credential_filter + authorization = var.my_user_db_credential_authorization + #use the latest if not provided + # resource_type_schema_version = var.my_user_db_credential_resource_type_schema_version + start_index = var.my_user_db_credential_start_index +} + diff --git a/examples/identity_domains/oauth2client_credential.tf b/examples/identity_domains/oauth2client_credential.tf new file mode 100644 index 00000000000..7642b66f86d --- /dev/null +++ b/examples/identity_domains/oauth2client_credential.tf @@ -0,0 +1,111 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +variable "oauth2client_credential_oauth2client_credential_count" { + default = 10 +} + +variable "oauth2client_credential_authorization" { + default = "authorization" +} + +variable "oauth2client_credential_description" { + default = "description" +} + +variable "oauth2client_credential_expires_on" { + default = "2030-01-01T00:00:00Z" +} + +variable "oauth2client_credential_is_reset_secret" { + default = false +} + +variable "oauth2client_credential_name" { + default = "name" +} + +variable "oauth2client_credential_scopes_audience" { + default = "audience" +} + +variable "oauth2client_credential_scopes_scope" { + default = "scope" +} + +variable "oauth2client_credential_start_index" { + default = 1 +} + +variable "oauth2client_credential_status" { + default = "ACTIVE" +} + +variable "oauth2client_credential_tags_key" { + default = "key" +} + +variable "oauth2client_credential_tags_value" { + default = "value" +} + +variable "oauth2client_credential_urnietfparamsscimschemasoracleidcsextensionself_change_user_allow_self_change" { + default = false +} + +resource "oci_identity_domains_oauth2client_credential" "test_oauth2client_credential" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + name = var.oauth2client_credential_name + schemas = ["urn:ietf:params:scim:schemas:oracle:idcs:oauth2ClientCredential"] + scopes { + #Required + audience = var.oauth2client_credential_scopes_audience + scope = var.oauth2client_credential_scopes_scope + } + + #Optional + attribute_sets = [] + attributes = "" + authorization = var.oauth2client_credential_authorization + description = var.oauth2client_credential_description + expires_on = var.oauth2client_credential_expires_on + is_reset_secret = var.oauth2client_credential_is_reset_secret + #use the latest if not provided + # resource_type_schema_version = var.oauth2client_credential_resource_type_schema_version + status = var.oauth2client_credential_status + tags { + #Required + key = var.oauth2client_credential_tags_key + value = var.oauth2client_credential_tags_value + } + urnietfparamsscimschemasoracleidcsextensionself_change_user { + + #Optional + allow_self_change = var.oauth2client_credential_urnietfparamsscimschemasoracleidcsextensionself_change_user_allow_self_change + } + user { + + #Optional + #use the ocid of the same user set in value + ocid = oci_identity_domains_user.test_user.ocid + #must be a user that exists + value = oci_identity_domains_user.test_user.id + } +} + +data "oci_identity_domains_oauth2client_credentials" "test_oauth2client_credentials" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + + #Optional + oauth2client_credential_count = var.oauth2client_credential_oauth2client_credential_count + oauth2client_credential_filter = "user.value eq \"${oci_identity_domains_user.test_user.id}\"" + attribute_sets = [] + attributes = "" + authorization = var.oauth2client_credential_authorization + #use the latest if not provided + # resource_type_schema_version = var.oauth2client_credential_resource_type_schema_version + start_index = var.oauth2client_credential_start_index +} + diff --git a/examples/identity_domains/password_policy.tf b/examples/identity_domains/password_policy.tf new file mode 100644 index 00000000000..4e2e620b9df --- /dev/null +++ b/examples/identity_domains/password_policy.tf @@ -0,0 +1,257 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +variable "password_policy_password_policy_count" { + default = 10 +} + +variable "password_policy_password_policy_filter" { + default = "" +} + +variable "password_policy_allowed_chars" { + default = "allowedChars" +} + +variable "password_policy_authorization" { + default = "authorization" +} + +variable "password_policy_configured_password_policy_rules_key" { + default = "key" +} + +variable "password_policy_configured_password_policy_rules_value" { + default = "value" +} + +variable "password_policy_delete_in_progress" { + default = false +} + +variable "password_policy_description" { + default = "description" +} + +variable "password_policy_dictionary_delimiter" { + default = "dictionaryDelimiter" +} + +variable "password_policy_dictionary_location" { + default = "dictionaryLocation" +} + +variable "password_policy_dictionary_word_disallowed" { + default = false +} + +variable "password_policy_disallowed_chars" { + default = "a,b,c" +} + +variable "password_policy_disallowed_substrings" { + default = [] +} + +variable "password_policy_first_name_disallowed" { + default = false +} + +variable "password_policy_force_password_reset" { + default = false +} + +variable "password_policy_groups_display" { + default = "display" +} + +variable "password_policy_groups_ref" { + default = "ref" +} + +variable "password_policy_groups_value" { + default = "value" +} + +variable "password_policy_last_name_disallowed" { + default = false +} + +variable "password_policy_lockout_duration" { + default = 10 +} + +variable "password_policy_max_incorrect_attempts" { + default = 10 +} + +variable "password_policy_max_length" { + default = 10 +} + +variable "password_policy_max_repeated_chars" { + default = 100 +} + +variable "password_policy_max_special_chars" { + default = 10 +} + +variable "password_policy_min_alpha_numerals" { + default = 1 +} + +variable "password_policy_min_alphas" { + default = 1 +} + +variable "password_policy_min_length" { + default = 1 +} + +variable "password_policy_min_lower_case" { + default = 1 +} + +variable "password_policy_min_numerals" { + default = 1 +} + +variable "password_policy_min_password_age" { + default = 10 +} + +variable "password_policy_min_special_chars" { + default = 1 +} + +variable "password_policy_min_unique_chars" { + default = 1 +} + +variable "password_policy_min_upper_case" { + default = 1 +} + +variable "password_policy_name" { + default = "name" +} + +variable "password_policy_num_passwords_in_history" { + default = 10 +} + +variable "password_policy_password_expire_warning" { + default = 10 +} + +variable "password_policy_password_expires_after" { + default = 10 +} + +variable "password_policy_password_strength" { + default = "Custom" +} + +variable "password_policy_priority" { + default = 10 +} + +variable "password_policy_required_chars" { + default = "x,y,z" +} + +variable "password_policy_start_index" { + default = 1 +} + +variable "password_policy_starts_with_alphabet" { + default = false +} + +variable "password_policy_tags_key" { + default = "key" +} + +variable "password_policy_tags_value" { + default = "value" +} + +variable "password_policy_user_name_disallowed" { + default = false +} + + +resource "oci_identity_domains_password_policy" "test_password_policy" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + name = var.password_policy_name + schemas = ["urn:ietf:params:scim:schemas:oracle:idcs:PasswordPolicy"] + + #Optional + allowed_chars = var.password_policy_allowed_chars + attribute_sets = [] + attributes = "" + authorization = var.password_policy_authorization + description = var.password_policy_description + dictionary_delimiter = var.password_policy_dictionary_delimiter + dictionary_location = var.password_policy_dictionary_location + dictionary_word_disallowed = var.password_policy_dictionary_word_disallowed + disallowed_chars = var.password_policy_disallowed_chars + disallowed_substrings = var.password_policy_disallowed_substrings + external_id = "externalId" + first_name_disallowed = var.password_policy_first_name_disallowed + force_password_reset = var.password_policy_force_password_reset + /* #provide group's id + groups { + #Required + value = oci_identity_domains_group.test_group.id + } + */ + last_name_disallowed = var.password_policy_last_name_disallowed + lockout_duration = var.password_policy_lockout_duration + max_incorrect_attempts = var.password_policy_max_incorrect_attempts + max_length = var.password_policy_max_length + max_repeated_chars = var.password_policy_max_repeated_chars + max_special_chars = var.password_policy_max_special_chars + min_alpha_numerals = var.password_policy_min_alpha_numerals + min_alphas = var.password_policy_min_alphas + min_length = var.password_policy_min_length + min_lower_case = var.password_policy_min_lower_case + min_numerals = var.password_policy_min_numerals + min_password_age = var.password_policy_min_password_age + min_special_chars = var.password_policy_min_special_chars + min_unique_chars = var.password_policy_min_unique_chars + min_upper_case = var.password_policy_min_upper_case + num_passwords_in_history = var.password_policy_num_passwords_in_history + password_expire_warning = var.password_policy_password_expire_warning + password_expires_after = var.password_policy_password_expires_after + password_strength = var.password_policy_password_strength + priority = var.password_policy_priority + required_chars = var.password_policy_required_chars + #use the latest if not provided + # resource_type_schema_version = var.password_policy_resource_type_schema_version + starts_with_alphabet = var.password_policy_starts_with_alphabet + tags { + #Required + key = var.password_policy_tags_key + value = var.password_policy_tags_value + } + user_name_disallowed = var.password_policy_user_name_disallowed +} + +data "oci_identity_domains_password_policies" "test_password_policies" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + + #Optional + password_policy_count = var.password_policy_password_policy_count + password_policy_filter = var.password_policy_password_policy_filter + attribute_sets = [] + attributes = "" + authorization = var.password_policy_authorization + #use the latest if not provided + # resource_type_schema_version = var.password_policy_resource_type_schema_version + start_index = var.password_policy_start_index +} + diff --git a/examples/identity_domains/provider.tf b/examples/identity_domains/provider.tf new file mode 100644 index 00000000000..b3eb02a9980 --- /dev/null +++ b/examples/identity_domains/provider.tf @@ -0,0 +1,34 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +/* + * This example file shows how to configure the oci provider to target a single region. + */ + +// These variables would commonly be defined as environment variables or sourced in a .env file +variable "tenancy_ocid" { +} + +variable "user_ocid" { +} + +variable "fingerprint" { +} + +variable "private_key_path" { +} + +variable "compartment_ocid" { +} + +variable "region" { +} + +provider "oci" { + region = var.region + tenancy_ocid = var.tenancy_ocid + user_ocid = var.user_ocid + fingerprint = var.fingerprint + private_key_path = var.private_key_path +} + diff --git a/examples/identity_domains/smtp_credential.tf b/examples/identity_domains/smtp_credential.tf new file mode 100644 index 00000000000..dae1ccd0175 --- /dev/null +++ b/examples/identity_domains/smtp_credential.tf @@ -0,0 +1,92 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +variable "smtp_credential_smtp_credential_count" { + default = 10 +} + +variable "smtp_credential_authorization" { + default = "authorization" +} + +variable "smtp_credential_description" { + default = "description" +} + +variable "smtp_credential_expires_on" { + default = "2030-01-01T00:00:00Z" +} + +variable "smtp_credential_idcs_created_by_display" { + default = "display" +} + +variable "smtp_credential_start_index" { + default = 1 +} + +variable "smtp_credential_status" { + default = "ACTIVE" +} + +variable "smtp_credential_tags_key" { + default = "key" +} + +variable "smtp_credential_tags_value" { + default = "value" +} + +variable "smtp_credential_urnietfparamsscimschemasoracleidcsextensionself_change_user_allow_self_change" { + default = false +} + +resource "oci_identity_domains_smtp_credential" "test_smtp_credential" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + schemas = ["urn:ietf:params:scim:schemas:oracle:idcs:smtpCredential"] + + #Optional + attribute_sets = [] + attributes = "" + authorization = var.smtp_credential_authorization + description = var.smtp_credential_description + expires_on = var.smtp_credential_expires_on + #use the latest if not provided + # resource_type_schema_version = var.smtp_credential_resource_type_schema_version + status = var.smtp_credential_status + tags { + #Required + key = var.smtp_credential_tags_key + value = var.smtp_credential_tags_value + } + urnietfparamsscimschemasoracleidcsextensionself_change_user { + + #Optional + allow_self_change = var.smtp_credential_urnietfparamsscimschemasoracleidcsextensionself_change_user_allow_self_change + } + user { + + #Optional + #use the ocid of the same user set in value + ocid = oci_identity_domains_user.test_user.ocid + #must be a user that exists + value = oci_identity_domains_user.test_user.id + } +} + +data "oci_identity_domains_smtp_credentials" "test_smtp_credentials" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + + #Optional + smtp_credential_count = var.smtp_credential_smtp_credential_count + smtp_credential_filter = "user.value eq \"${oci_identity_domains_user.test_user.id}\"" + attribute_sets = [] + attributes = "" + authorization = var.smtp_credential_authorization + #use the latest if not provided + # resource_type_schema_version = var.smtp_credential_resource_type_schema_version + start_index = var.smtp_credential_start_index +} + diff --git a/examples/identity_domains/user.tf b/examples/identity_domains/user.tf new file mode 100644 index 00000000000..f449d4fb6f5 --- /dev/null +++ b/examples/identity_domains/user.tf @@ -0,0 +1,1099 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +variable "user_user_count" { + default = 10 +} + +variable "user_user_filter" { + default = "" +} + +variable "user_active" { + default = "true" +} + +variable "user_addresses_country" { + default = "us" +} + +variable "user_addresses_formatted" { + default = "formatted" +} + +variable "user_addresses_locality" { + default = "locality" +} + +variable "user_addresses_postal_code" { + default = "postalCode" +} + +variable "user_addresses_primary" { + default = false +} + +variable "user_addresses_region" { + default = "region" +} + +variable "user_addresses_street_address" { + default = "streetAddress" +} + +variable "user_addresses_type" { + default = "work" +} + +variable "user_authorization" { + default = "authorization" +} + +variable "user_description" { + default = "description" +} + +variable "user_display_name" { + default = "displayName" +} + +variable "user_emails_primary" { + default = true +} + +variable "user_emails_secondary" { + default = false +} + +variable "user_emails_type" { + default = "work" +} + +variable "user_emails_value" { + default = "value@email.com" +} + +variable "user_emails_verified" { + default = false +} + +variable "user_entitlements_display" { + default = "display" +} + +variable "user_entitlements_primary" { + default = false +} + +variable "user_entitlements_type" { + default = "type" +} + +variable "user_entitlements_value" { + default = "value" +} + +variable "user_groups_date_added" { + default = "dateAdded" +} + +variable "user_groups_display" { + default = "display" +} + +variable "user_groups_membership_ocid" { + default = "membershipOcid" +} + +variable "user_groups_non_unique_display" { + default = "nonUniqueDisplay" +} + +variable "user_groups_type" { + default = "direct" +} + +variable "user_groups_value" { + default = "value" +} + +variable "user_ims_display" { + default = "display" +} + +variable "user_ims_primary" { + default = false +} + +variable "user_ims_type" { + default = "aim" +} + +variable "user_ims_value" { + default = "value" +} + +variable "user_locale" { + default = "en" +} + +variable "user_name_family_name" { + default = "familyName" +} + +variable "user_name_formatted" { + default = "formatted" +} + +variable "user_name_given_name" { + default = "givenName" +} + +variable "user_name_honorific_prefix" { + default = "honorificPrefix" +} + +variable "user_name_honorific_suffix" { + default = "honorificSuffix" +} + +variable "user_name_middle_name" { + default = "middleName" +} + +variable "user_nick_name" { + default = "nickName" +} + +variable "user_password" { + default = "BEstrO0ng_#11" +} + +variable "user_phone_numbers_display" { + default = "display" +} + +variable "user_phone_numbers_primary" { + default = false +} + +variable "user_phone_numbers_type" { + default = "work" +} + +variable "user_phone_numbers_value" { + default = "1112223333" +} + +variable "user_phone_numbers_verified" { + default = false +} + +variable "user_photos_display" { + default = "display" +} + +variable "user_photos_primary" { + default = false +} + +variable "user_photos_type" { + default = "photo" +} + +variable "user_photos_value" { + default = "https://value.com" +} + +variable "user_preferred_language" { + default = "en" +} + +variable "user_profile_url" { + default = "https://profileUrl.com" +} + +variable "user_roles_display" { + default = "display" +} + +variable "user_roles_primary" { + default = false +} + +variable "user_roles_type" { + default = "type" +} + +variable "user_roles_value" { + default = "value" +} + +variable "user_schemas" { + default = [] +} + +variable "user_start_index" { + default = 1 +} + +variable "user_tags_key" { + default = "key" +} + +variable "user_tags_value" { + default = "value" +} + +variable "user_timezone" { + default = "America/Los_Angeles" +} + +variable "user_title" { + default = "title" +} + +variable "user_urnietfparamsscimschemasextensionenterprise20user_cost_center" { + default = "costCenter" +} + +variable "user_urnietfparamsscimschemasextensionenterprise20user_department" { + default = "department" +} + +variable "user_urnietfparamsscimschemasextensionenterprise20user_division" { + default = "division" +} + +variable "user_urnietfparamsscimschemasextensionenterprise20user_employee_number" { + default = "employeeNumber" +} + +variable "user_urnietfparamsscimschemasextensionenterprise20user_manager_display_name" { + default = "displayName" +} + +variable "user_urnietfparamsscimschemasextensionenterprise20user_manager_value" { + default = "value" +} + +variable "user_urnietfparamsscimschemasextensionenterprise20user_organization" { + default = "organization" +} + +variable "user_urnietfparamsscimschemasoracleidcsextension_oci_tags_defined_tags_key" { + default = "key" +} + +variable "user_urnietfparamsscimschemasoracleidcsextension_oci_tags_defined_tags_namespace" { + default = "namespace" +} + +variable "user_urnietfparamsscimschemasoracleidcsextension_oci_tags_defined_tags_value" { + default = "value" +} + +variable "user_urnietfparamsscimschemasoracleidcsextension_oci_tags_freeform_tags_key" { + default = "freeformKey" +} + +variable "user_urnietfparamsscimschemasoracleidcsextension_oci_tags_freeform_tags_value" { + default = "freeformValue" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionadaptive_user_risk_level" { + default = "LOW" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionadaptive_user_risk_scores_last_update_timestamp" { + default = "lastUpdateTimestamp" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionadaptive_user_risk_scores_risk_level" { + default = "LOW" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionadaptive_user_risk_scores_score" { + default = 10 +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionadaptive_user_risk_scores_source" { + default = "source" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionadaptive_user_risk_scores_status" { + default = "status" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionadaptive_user_risk_scores_value" { + default = "value" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionkerberos_user_user_realm_users_principal_name" { + default = "principalName" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionkerberos_user_user_realm_users_realm_name" { + default = "realmName" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionkerberos_user_user_realm_users_value" { + default = "value" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionmfa_user_bypass_codes_value" { + default = "value" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionmfa_user_devices_authentication_method" { + default = "authenticationMethod" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionmfa_user_devices_display" { + default = "display" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionmfa_user_devices_factor_status" { + default = "factorStatus" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionmfa_user_devices_factor_type" { + default = "factorType" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionmfa_user_devices_last_sync_time" { + default = "lastSyncTime" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionmfa_user_devices_status" { + default = "status" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionmfa_user_devices_third_party_vendor_name" { + default = "thirdPartyVendorName" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionmfa_user_devices_value" { + default = "value" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionmfa_user_login_attempts" { + default = 10 +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionmfa_user_mfa_enabled_on" { + default = "mfaEnabledOn" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionmfa_user_mfa_ignored_apps" { + default = [] +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionmfa_user_mfa_status" { + default = "ENROLLED" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionmfa_user_preferred_authentication_factor" { + default = "EMAIL" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionmfa_user_preferred_authentication_method" { + default = "preferredAuthenticationMethod" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionmfa_user_preferred_device_display" { + default = "display" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionmfa_user_preferred_device_value" { + default = "value" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionmfa_user_preferred_third_party_vendor" { + default = "preferredThirdPartyVendor" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionmfa_user_trusted_user_agents_display" { + default = "display" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionmfa_user_trusted_user_agents_value" { + default = "value" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionpassword_state_user_applicable_password_policy_display" { + default = "display" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionpassword_state_user_applicable_password_policy_priority" { + default = 10 +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionpassword_state_user_applicable_password_policy_value" { + default = "value" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionpassword_state_user_cant_change" { + default = false +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionpassword_state_user_cant_expire" { + default = false +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionpassword_state_user_expired" { + default = false +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionpassword_state_user_last_failed_validation_date" { + default = "lastFailedValidationDate" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionpassword_state_user_last_successful_set_date" { + default = "lastSuccessfulSetDate" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionpassword_state_user_last_successful_validation_date" { + default = "lastSuccessfulValidationDate" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionpassword_state_user_must_change" { + default = false +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionpasswordless_user_factor_identifier_display" { + default = "display" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionpasswordless_user_factor_identifier_value" { + default = "value" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionpasswordless_user_factor_method" { + default = "factorMethod" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionpasswordless_user_factor_type" { + default = "EMAIL" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionposix_user_gecos" { + default = "gecos" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionposix_user_gid_number" { + default = 10 +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionposix_user_home_directory" { + default = "homeDirectory" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionposix_user_login_shell" { + default = "loginShell" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionposix_user_uid_number" { + default = 500 +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionsecurity_questions_user_sec_questions_answer" { + default = "answer" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionsecurity_questions_user_sec_questions_hint_text" { + default = "hintText" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionsecurity_questions_user_sec_questions_value" { + default = "value" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionself_change_user_allow_self_change" { + default = false +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionself_registration_user_consent_granted" { + default = false +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionself_registration_user_self_registration_profile_display" { + default = "display" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionself_registration_user_self_registration_profile_value" { + default = "value" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionself_registration_user_user_token" { + default = "userToken" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionsff_user_sff_auth_keys" { + default = "sffAuthKeys" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionsocial_account_user_social_accounts_display" { + default = "display" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionsocial_account_user_social_accounts_value" { + default = "value" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionterms_of_use_user_terms_of_use_consents_value" { + default = "value" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionuser_state_user_last_failed_login_date" { + default = "lastFailedLoginDate" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionuser_state_user_last_successful_login_date" { + default = "lastSuccessfulLoginDate" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionuser_state_user_locked_expired" { + default = false +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionuser_state_user_locked_lock_date" { + default = "lockDate" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionuser_state_user_locked_on" { + default = false +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionuser_state_user_locked_reason" { + default = 10 +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionuser_state_user_login_attempts" { + default = 10 +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionuser_state_user_max_concurrent_sessions" { + default = 10 +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionuser_state_user_previous_successful_login_date" { + default = "previousSuccessfulLoginDate" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionuser_state_user_recovery_attempts" { + default = 10 +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionuser_state_user_recovery_enroll_attempts" { + default = 10 +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionuser_state_user_recovery_locked_lock_date" { + default = "lockDate" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionuser_state_user_recovery_locked_on" { + default = false +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionuser_user_user_provider" { + default = "facebook" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionuser_user_account_recovery_required" { + default = true +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionuser_user_bypass_notification" { + default = false +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionuser_user_creation_mechanism" { + default = "api" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionuser_user_delegated_authentication_target_app_display" { + default = "display" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionuser_user_delegated_authentication_target_app_type" { + default = "App" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionuser_user_delegated_authentication_target_app_value" { + default = "value" +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionuser_user_do_not_show_getting_started" { + default = false +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionuser_user_is_authentication_delegated" { + default = false +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionuser_user_is_federated_user" { + default = false +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionuser_user_is_group_membership_normalized" { + default = false +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionuser_user_is_group_membership_synced_to_users_groups" { + default = false +} + +variable "user_urnietfparamsscimschemasoracleidcsextensionuser_user_user_flow_controlled_by_external_client" { + default = false +} + +variable "user_user_type" { + default = "Contractor" +} + +variable "user_x509certificates_display" { + default = "display" +} + +variable "user_x509certificates_primary" { + default = false +} + +variable "user_x509certificates_type" { + default = "type" +} + +variable "user_x509certificates_value" { + default = "" +} + +// CREATE/UPDATE a user +resource "oci_identity_domains_user" "test_user" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + name { + #Required + family_name = var.user_name_family_name + + #Optional + formatted = var.user_name_formatted + given_name = var.user_name_given_name + honorific_prefix = var.user_name_honorific_prefix + honorific_suffix = var.user_name_honorific_suffix + middle_name = var.user_name_middle_name + } + schemas = [ + #This is the required schema for User resource + "urn:ietf:params:scim:schemas:core:2.0:User", + /* #The following schemas are not required, but they will be returned because we are setting values on the corresponding attributes. + #If don't want to list them here, you can use "lifecycle" attritbute to "ignore_changes" on them, to avoid update when apply. + #Please see comments in the "lifecycle" block below. + "urn:ietf:params:scim:schemas:oracle:idcs:extension:passwordState:User", + "urn:ietf:params:scim:schemas:oracle:idcs:extension:userState:User", + "urn:ietf:params:scim:schemas:oracle:idcs:extension:passwordless:User", + "urn:ietf:params:scim:schemas:oracle:idcs:extension:OCITags", + "urn:ietf:params:scim:schemas:oracle:idcs:extension:sff:User", + "urn:ietf:params:scim:schemas:oracle:idcs:extension:capabilities:User", + "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User", + "urn:ietf:params:scim:schemas:oracle:idcs:extension:adaptive:User", + "urn:ietf:params:scim:schemas:oracle:idcs:extension:user:User", + "urn:ietf:params:scim:schemas:oracle:idcs:extension:dbCredentials:User", + "urn:ietf:params:scim:schemas:oracle:idcs:extension:posix:User", + */ + ] + user_name = "userName" + + #Optional + active = var.user_active + addresses { + #Required + type = var.user_addresses_type + + #Optional + country = var.user_addresses_country + formatted = var.user_addresses_formatted + locality = var.user_addresses_locality + postal_code = var.user_addresses_postal_code + primary = var.user_addresses_primary + region = var.user_addresses_region + street_address = var.user_addresses_street_address + } + attribute_sets = [] + attributes = "" + authorization = var.user_authorization + description = var.user_description + display_name = var.user_display_name + emails { + #Required + type = var.user_emails_type + value = var.user_emails_value + + #Optional + primary = var.user_emails_primary + secondary = var.user_emails_secondary + verified = var.user_emails_verified + } + entitlements { + #Required + type = var.user_entitlements_type + value = var.user_entitlements_value + + #Optional + display = var.user_entitlements_display + primary = var.user_entitlements_primary + } + external_id = "externalId" + ims { + #Required + type = var.user_ims_type + value = var.user_ims_value + + #Optional + display = var.user_ims_display + primary = var.user_ims_primary + } + locale = var.user_locale + nick_name = var.user_nick_name + password = var.user_password + phone_numbers { + #Required + type = var.user_phone_numbers_type + value = var.user_phone_numbers_value + + #Optional + primary = var.user_phone_numbers_primary + } + photos { + #Required + type = var.user_photos_type + value = var.user_photos_value + + #Optional + display = var.user_photos_display + primary = var.user_photos_primary + } + preferred_language = var.user_preferred_language + profile_url = var.user_profile_url + #use the latest if not provided + # resource_type_schema_version = var.user_resource_type_schema_version + roles { + #Required + type = var.user_roles_type + value = var.user_roles_value + + #Optional + display = var.user_roles_display + primary = var.user_roles_primary + } + tags { + #Required + key = var.user_tags_key + value = var.user_tags_value + } + timezone = var.user_timezone + title = var.user_title + urnietfparamsscimschemasextensionenterprise20user { + + #Optional + cost_center = var.user_urnietfparamsscimschemasextensionenterprise20user_cost_center + department = var.user_urnietfparamsscimschemasextensionenterprise20user_department + division = var.user_urnietfparamsscimschemasextensionenterprise20user_division + employee_number = var.user_urnietfparamsscimschemasextensionenterprise20user_employee_number + /* #provider manager user's id + manager { + + #Optional + value = var.user_urnietfparamsscimschemasextensionenterprise20user_manager_value + } + */ + organization = var.user_urnietfparamsscimschemasextensionenterprise20user_organization + } + urnietfparamsscimschemasoracleidcsextension_oci_tags { + + #Optional + /* #create tagNamespace to use defined tags + defined_tags { + #Required + key = var.user_urnietfparamsscimschemasoracleidcsextension_oci_tags_defined_tags_key + namespace = var.user_urnietfparamsscimschemasoracleidcsextension_oci_tags_defined_tags_namespace + value = var.user_urnietfparamsscimschemasoracleidcsextension_oci_tags_defined_tags_value + } + */ + freeform_tags { + #Required + key = var.user_urnietfparamsscimschemasoracleidcsextension_oci_tags_freeform_tags_key + value = var.user_urnietfparamsscimschemasoracleidcsextension_oci_tags_freeform_tags_value + } + } + urnietfparamsscimschemasoracleidcsextensionadaptive_user { + + #Optional + risk_level = var.user_urnietfparamsscimschemasoracleidcsextensionadaptive_user_risk_level + /* set it to a valid RiskProviderProfile + risk_scores { + #Reuired + last_update_timestamp = "2030-01-01T00:00:00Z" + risk_level = var.user_urnietfparamsscimschemasoracleidcsextensionadaptive_user_risk_scores_risk_level + score = var.user_urnietfparamsscimschemasoracleidcsextensionadaptive_user_risk_scores_score + value = var.user_urnietfparamsscimschemasoracleidcsextensionadaptive_user_risk_scores_value + + #Optional + source = var.user_urnietfparamsscimschemasoracleidcsextensionadaptive_user_risk_scores_source + status = var.user_urnietfparamsscimschemasoracleidcsextensionadaptive_user_risk_scores_status + } + */ + } + urnietfparamsscimschemasoracleidcsextensioncapabilities_user { + + #Optional + can_use_api_keys = true + can_use_auth_tokens = true + can_use_console_password = true + can_use_customer_secret_keys = true + can_use_db_credentials = true + can_use_oauth2client_credentials = true + can_use_smtp_credentials = true + } + urnietfparamsscimschemasoracleidcsextensiondb_credentials_user { + + #Optional + db_user_name = "dbUserName" + } + /* set value to valid Kerberos realm users id + urnietfparamsscimschemasoracleidcsextensionkerberos_user_user { + + #Optional + realm_users { + #Required + value = var.user_urnietfparamsscimschemasoracleidcsextensionkerberos_user_user_realm_users_value + + #Optional + principal_name = var.user_urnietfparamsscimschemasoracleidcsextensionkerberos_user_user_realm_users_principal_name + realm_name = var.user_urnietfparamsscimschemasoracleidcsextensionkerberos_user_user_realm_users_realm_name + } + } + */ + /* set mfa + urnietfparamsscimschemasoracleidcsextensionmfa_user { + + #Optional + bypass_codes { + #Required + value = var.user_urnietfparamsscimschemasoracleidcsextensionmfa_user_bypass_codes_value + } + devices { + #Required + value = var.user_urnietfparamsscimschemasoracleidcsextensionmfa_user_devices_value + + #Optional + authentication_method = var.user_urnietfparamsscimschemasoracleidcsextensionmfa_user_devices_authentication_method + display = var.user_urnietfparamsscimschemasoracleidcsextensionmfa_user_devices_display + factor_status = var.user_urnietfparamsscimschemasoracleidcsextensionmfa_user_devices_factor_status + factor_type = var.user_urnietfparamsscimschemasoracleidcsextensionmfa_user_devices_factor_type + last_sync_time = var.user_urnietfparamsscimschemasoracleidcsextensionmfa_user_devices_last_sync_time + status = var.user_urnietfparamsscimschemasoracleidcsextensionmfa_user_devices_status + third_party_vendor_name = var.user_urnietfparamsscimschemasoracleidcsextensionmfa_user_devices_third_party_vendor_name + } + login_attempts = var.user_urnietfparamsscimschemasoracleidcsextensionmfa_user_login_attempts + mfa_enabled_on = var.user_urnietfparamsscimschemasoracleidcsextensionmfa_user_mfa_enabled_on + mfa_ignored_apps = var.user_urnietfparamsscimschemasoracleidcsextensionmfa_user_mfa_ignored_apps + mfa_status = var.user_urnietfparamsscimschemasoracleidcsextensionmfa_user_mfa_status + preferred_authentication_factor = var.user_urnietfparamsscimschemasoracleidcsextensionmfa_user_preferred_authentication_factor + preferred_authentication_method = var.user_urnietfparamsscimschemasoracleidcsextensionmfa_user_preferred_authentication_method + preferred_device { + #Required + value = var.user_urnietfparamsscimschemasoracleidcsextensionmfa_user_preferred_device_value + + #Optional + display = var.user_urnietfparamsscimschemasoracleidcsextensionmfa_user_preferred_device_display + } + preferred_third_party_vendor = var.user_urnietfparamsscimschemasoracleidcsextensionmfa_user_preferred_third_party_vendor + trusted_user_agents { + #Required + value = var.user_urnietfparamsscimschemasoracleidcsextensionmfa_user_trusted_user_agents_value + + #Optional + display = var.user_urnietfparamsscimschemasoracleidcsextensionmfa_user_trusted_user_agents_display + } + } + */ + urnietfparamsscimschemasoracleidcsextensionpasswordless_user { + + #Optional + /* set value to factor id + factor_identifier { + #Required + value = var.user_urnietfparamsscimschemasoracleidcsextensionpasswordless_user_factor_identifier_value + + #Optional + display = var.user_urnietfparamsscimschemasoracleidcsextensionpasswordless_user_factor_identifier_display + } + */ + factor_method = var.user_urnietfparamsscimschemasoracleidcsextensionpasswordless_user_factor_method + factor_type = var.user_urnietfparamsscimschemasoracleidcsextensionpasswordless_user_factor_type + } + urnietfparamsscimschemasoracleidcsextensionposix_user { + + #Optional + gecos = var.user_urnietfparamsscimschemasoracleidcsextensionposix_user_gecos + #provide gid of a group + # gid_number = var.user_urnietfparamsscimschemasoracleidcsextensionposix_user_gid_number + home_directory = var.user_urnietfparamsscimschemasoracleidcsextensionposix_user_home_directory + login_shell = var.user_urnietfparamsscimschemasoracleidcsextensionposix_user_login_shell + uid_number = var.user_urnietfparamsscimschemasoracleidcsextensionposix_user_uid_number + } + /* set security questions + urnietfparamsscimschemasoracleidcsextensionsecurity_questions_user { + + #Optional + sec_questions { + #Required + answer = var.user_urnietfparamsscimschemasoracleidcsextensionsecurity_questions_user_sec_questions_answer + value = var.user_urnietfparamsscimschemasoracleidcsextensionsecurity_questions_user_sec_questions_value + + #Optional + hint_text = var.user_urnietfparamsscimschemasoracleidcsextensionsecurity_questions_user_sec_questions_hint_text + } + } + */ + urnietfparamsscimschemasoracleidcsextensionself_change_user { + + #Optional + allow_self_change = var.user_urnietfparamsscimschemasoracleidcsextensionself_change_user_allow_self_change + } + /* set value to SelfRegistration id + urnietfparamsscimschemasoracleidcsextensionself_registration_user { + #Required + self_registration_profile { + #Required + value = var.user_urnietfparamsscimschemasoracleidcsextensionself_registration_user_self_registration_profile_value + + #Optional + display = var.user_urnietfparamsscimschemasoracleidcsextensionself_registration_user_self_registration_profile_display + } + + #Optional + consent_granted = var.user_urnietfparamsscimschemasoracleidcsextensionself_registration_user_consent_granted + user_token = var.user_urnietfparamsscimschemasoracleidcsextensionself_registration_user_user_token + } + */ + urnietfparamsscimschemasoracleidcsextensionsff_user { + + #Optional + sff_auth_keys = var.user_urnietfparamsscimschemasoracleidcsextensionsff_user_sff_auth_keys + } + /* set value to SocialAccount id + urnietfparamsscimschemasoracleidcsextensionsocial_account_user { + + #Optional + social_accounts { + #Required + value = var.user_urnietfparamsscimschemasoracleidcsextensionsocial_account_user_social_accounts_value + + #Optional + display = var.user_urnietfparamsscimschemasoracleidcsextensionsocial_account_user_social_accounts_display + } + } + */ + /* set value to TermsOfUse id + urnietfparamsscimschemasoracleidcsextensionterms_of_use_user { + + #Optional + terms_of_use_consents { + #Required + value = var.user_urnietfparamsscimschemasoracleidcsextensionterms_of_use_user_terms_of_use_consents_value + } + } + */ + urnietfparamsscimschemasoracleidcsextensionuser_state_user { + + #Optional + /* set to lock/unlock user + locked { + + #Optional + expired = var.user_urnietfparamsscimschemasoracleidcsextensionuser_state_user_locked_expired + lock_date = "2020-01-01T00:00:00Z" + on = true + reason = 1 + } + */ + max_concurrent_sessions = var.user_urnietfparamsscimschemasoracleidcsextensionuser_state_user_max_concurrent_sessions + /* set to lock/unlock password recovery + recovery_locked { + + #Optional + lock_date = "2030-01-01T00:00:00Z" + on = var.user_urnietfparamsscimschemasoracleidcsextensionuser_state_user_recovery_locked_on + } + */ + } + urnietfparamsscimschemasoracleidcsextensionuser_user { + + #Optional + user_provider = var.user_urnietfparamsscimschemasoracleidcsextensionuser_user_user_provider + account_recovery_required = var.user_urnietfparamsscimschemasoracleidcsextensionuser_user_account_recovery_required + bypass_notification = var.user_urnietfparamsscimschemasoracleidcsextensionuser_user_bypass_notification + creation_mechanism = var.user_urnietfparamsscimschemasoracleidcsextensionuser_user_creation_mechanism + /*set value to target app id + delegated_authentication_target_app { + #Required + type = var.user_urnietfparamsscimschemasoracleidcsextensionuser_user_delegated_authentication_target_app_type + value = var.user_urnietfparamsscimschemasoracleidcsextensionuser_user_delegated_authentication_target_app_value + + #Optional + display = var.user_urnietfparamsscimschemasoracleidcsextensionuser_user_delegated_authentication_target_app_display + } + */ + do_not_show_getting_started = var.user_urnietfparamsscimschemasoracleidcsextensionuser_user_do_not_show_getting_started + is_authentication_delegated = var.user_urnietfparamsscimschemasoracleidcsextensionuser_user_is_authentication_delegated + is_federated_user = var.user_urnietfparamsscimschemasoracleidcsextensionuser_user_is_federated_user + is_group_membership_normalized = var.user_urnietfparamsscimschemasoracleidcsextensionuser_user_is_group_membership_normalized + is_group_membership_synced_to_users_groups = var.user_urnietfparamsscimschemasoracleidcsextensionuser_user_is_group_membership_synced_to_users_groups + /*set up email template id + notification_email_template_id = oci_identity_domains_notification_email_template.test_notification_email_template.id + */ + user_flow_controlled_by_external_client = var.user_urnietfparamsscimschemasoracleidcsextensionuser_user_user_flow_controlled_by_external_client + } + user_type = var.user_user_type + + /* #set value with the certificate + x509certificates { + #Required + value = var.user_x509certificates_value + + #Optional + display = var.user_x509certificates_display + primary = var.user_x509certificates_primary + type = var.user_x509certificates_type + } + */ + + lifecycle { + ignore_changes = [ + #adding "schemas" here to ignore any additional schemas returned + schemas, + #the field is never returned + urnietfparamsscimschemasoracleidcsextensionself_change_user + ] + } +} + +// GET list of users +data "oci_identity_domains_users" "test_users" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + + #Optional + user_count = var.user_user_count + user_filter = var.user_user_filter + attribute_sets = [] + attributes = "" + authorization = var.user_authorization + #use the latest if not provided + # resource_type_schema_version = var.user_resource_type_schema_version + start_index = var.user_start_index +} + diff --git a/examples/identity_domains/user_db_credential.tf b/examples/identity_domains/user_db_credential.tf new file mode 100644 index 00000000000..3aeb7d96341 --- /dev/null +++ b/examples/identity_domains/user_db_credential.tf @@ -0,0 +1,94 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +variable "user_db_credential_user_db_credential_count" { + default = 10 +} + +variable "user_db_credential_authorization" { + default = "authorization" +} + +variable "user_db_credential_db_password" { + default = "dbPassword123456" +} + +variable "user_db_credential_description" { + default = "description" +} + +variable "user_db_credential_expires_on" { + default = "2030-01-01T00:00:00Z" +} + +variable "user_db_credential_start_index" { + default = 1 +} + +variable "user_db_credential_status" { + default = "ACTIVE" +} + +variable "user_db_credential_tags_key" { + default = "key" +} + +variable "user_db_credential_tags_value" { + default = "value" +} + +variable "user_db_credential_urnietfparamsscimschemasoracleidcsextensionself_change_user_allow_self_change" { + default = false +} + +resource "oci_identity_domains_user_db_credential" "test_user_db_credential" { + #Required + db_password = var.user_db_credential_db_password + idcs_endpoint = data.oci_identity_domain.test_domain.url + schemas = ["urn:ietf:params:scim:schemas:oracle:idcs:UserDbCredentials"] + + #Optional + attribute_sets = [] + attributes = "" + authorization = var.user_db_credential_authorization + description = var.user_db_credential_description + expires_on = var.user_db_credential_expires_on + #use the latest if not provided + # resource_type_schema_version = var.user_db_credential_resource_type_schema_version + status = var.user_db_credential_status + tags { + #Required + key = var.user_db_credential_tags_key + value = var.user_db_credential_tags_value + } + urnietfparamsscimschemasoracleidcsextensionself_change_user { + + #Optional + allow_self_change = var.user_db_credential_urnietfparamsscimschemasoracleidcsextensionself_change_user_allow_self_change + } + user { + #Required + #must be a user that exists + value = oci_identity_domains_user.test_user.id + + #Optional + #use the ocid of the same user set in value + ocid = oci_identity_domains_user.test_user.ocid + } +} + +data "oci_identity_domains_user_db_credentials" "test_user_db_credentials" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + + #Optional + user_db_credential_count = var.user_db_credential_user_db_credential_count + user_db_credential_filter = "user.value eq \"${oci_identity_domains_user.test_user.id}\"" + attribute_sets = [] + attributes = "" + authorization = var.user_db_credential_authorization + #use the latest if not provided + # resource_type_schema_version = var.user_db_credential_resource_type_schema_version + start_index = var.user_db_credential_start_index +} + diff --git a/internal/client/identity_domains_clients.go b/internal/client/identity_domains_clients.go new file mode 100644 index 00000000000..8eb5feacd71 --- /dev/null +++ b/internal/client/identity_domains_clients.go @@ -0,0 +1,34 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package client + +import ( + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + oci_common "github.com/oracle/oci-go-sdk/v65/common" +) + +func init() { + RegisterOracleClient("oci_identity_domains.IdentityDomainsClient", &OracleClient{InitClientFn: initIdentitydomainsIdentityDomainsClient}) +} + +func initIdentitydomainsIdentityDomainsClient(configProvider oci_common.ConfigurationProvider, configureClient ConfigureClient, serviceClientOverrides ServiceClientOverrides) (interface{}, error) { + client, err := oci_identity_domains.NewIdentityDomainsClientWithConfigurationProvider(configProvider, "DUMMY_ENDPOINT") + if err != nil { + return nil, err + } + err = configureClient(&client.BaseClient) + if err != nil { + return nil, err + } + + if serviceClientOverrides.HostUrlOverride != "" { + client.Host = serviceClientOverrides.HostUrlOverride + } + return &client, nil +} + +func (m *OracleClients) IdentityDomainsClient() *oci_identity_domains.IdentityDomainsClient { + return m.GetClient("oci_identity_domains.IdentityDomainsClient").(*oci_identity_domains.IdentityDomainsClient) +} diff --git a/internal/client/provider_clients.go b/internal/client/provider_clients.go index f68f97b76d6..549ecc60ff4 100644 --- a/internal/client/provider_clients.go +++ b/internal/client/provider_clients.go @@ -5,6 +5,7 @@ package client import ( "fmt" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" "strings" oci_functions "github.com/oracle/oci-go-sdk/v65/functions" @@ -93,6 +94,17 @@ func (m *OracleClients) KmsManagementClientWithEndpoint(endpoint string) (*oci_k } } +func (m *OracleClients) IdentityDomainsClientWithEndpoint(endpoint string) (*oci_identity_domains.IdentityDomainsClient, error) { + if client, err := oci_identity_domains.NewIdentityDomainsClientWithConfigurationProvider(*m.IdentityDomainsClient().ConfigurationProvider(), endpoint); err == nil { + if err = ConfigureClientVar(&client.BaseClient); err != nil { + return nil, err + } + return &client, nil + } else { + return nil, err + } +} + func getClientHostOverrides() map[string]string { // Get the host URL override for clients clientHostOverrides := make(map[string]string) diff --git a/internal/integrationtest/identity_domains_api_key_test.go b/internal/integrationtest/identity_domains_api_key_test.go new file mode 100644 index 00000000000..4d09e298594 --- /dev/null +++ b/internal/integrationtest/identity_domains_api_key_test.go @@ -0,0 +1,313 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package integrationtest + +import ( + "context" + "fmt" + "log" + "strconv" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + "github.com/oracle/terraform-provider-oci/internal/resourcediscovery" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + "github.com/oracle/oci-go-sdk/v65/common" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/httpreplay" + "github.com/oracle/terraform-provider-oci/internal/acctest" + tf_client "github.com/oracle/terraform-provider-oci/internal/client" + + "github.com/oracle/terraform-provider-oci/internal/tfresource" + "github.com/oracle/terraform-provider-oci/internal/utils" +) + +var ( + IdentityDomainsApiKeyRequiredOnlyResource = IdentityDomainsApiKeyResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_api_key", "test_api_key", acctest.Required, acctest.Create, IdentityDomainsApiKeyRepresentation) + + IdentityDomainsApiKeyResourceConfig = IdentityDomainsApiKeyResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_api_key", "test_api_key", acctest.Optional, acctest.Update, IdentityDomainsApiKeyRepresentation) + + IdentityDomainsIdentityDomainsApiKeySingularDataSourceRepresentation = map[string]interface{}{ + "api_key_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_identity_domains_api_key.test_api_key.id}`}, + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "attribute_sets": acctest.Representation{RepType: acctest.Optional, Create: []string{`all`}}, + } + + IdentityDomainsIdentityDomainsApiKeyDataSourceRepresentation = map[string]interface{}{ + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "api_key_count": acctest.Representation{RepType: acctest.Optional, Create: `10`}, + "api_key_filter": acctest.Representation{RepType: acctest.Optional, Create: `user.value eq \"${oci_identity_domains_user.test_user.id}\"`}, + "attribute_sets": acctest.Representation{RepType: acctest.Optional, Create: []string{`all`}}, + "start_index": acctest.Representation{RepType: acctest.Optional, Create: `1`}, + } + + IdentityDomainsApiKeyRepresentation = map[string]interface{}{ + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "key": acctest.Representation{RepType: acctest.Required, Create: "-----BEGIN PUBLIC KEY-----\\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqWmqkNQKbC1hWnmf3Uov\\nH0BfH3WwJRC9Jd6/fo8oo/vhKAO5UsoiLup/7vMpHZq4KN5wXMkGtXlnyOn3KJA0\\nzv4Dni4/AmoODy56i5la4wFXLOIAbVl3QnWiw9ALw9YKKx4KYoixoc3h4MPHdxdR\\nmqb/B8Niq2OSS2eUsCcbAcC41eUIx2yySqA77Qy7lLjzBAE5QBZY0V1BduG/Xi9u\\nzXf6gHwXEszrKpyBIq4t5+g1sbiQWwJPtuVura8iH2gDkRKS/kRzLszn3vX0lePC\\nuCqFeTcOdOieuZndkCIzEMw0UUfdw2+qNOAtNi+mOPKl0h7sM21x3OA+fHmnn1fV\\nGwIDAQAB\\n-----END PUBLIC KEY-----"}, + "schemas": acctest.Representation{RepType: acctest.Required, Create: []string{`urn:ietf:params:scim:schemas:oracle:idcs:apikey`}}, + "attribute_sets": acctest.Representation{RepType: acctest.Optional, Create: []string{`all`}}, + "description": acctest.Representation{RepType: acctest.Optional, Create: `description`}, + "tags": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsApiKeyTagsRepresentation}, + "urnietfparamsscimschemasoracleidcsextensionself_change_user": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsApiKeyUrnietfparamsscimschemasoracleidcsextensionselfChangeUserRepresentation}, + "user": acctest.RepresentationGroup{RepType: acctest.Required, Group: IdentityDomainsApiKeyUserRepresentation}, + "lifecycle": acctest.RepresentationGroup{RepType: acctest.Optional, Group: ignoreChangeForIdentityDomainsApiKey}, + } + + ignoreChangeForIdentityDomainsApiKey = map[string]interface{}{ + "ignore_changes": acctest.Representation{RepType: acctest.Optional, Create: []string{ + // properties that are `returned:never` + `urnietfparamsscimschemasoracleidcsextensionself_change_user`, + }}, + } + IdentityDomainsApiKeyTagsRepresentation = map[string]interface{}{ + "key": acctest.Representation{RepType: acctest.Required, Create: `key`}, + "value": acctest.Representation{RepType: acctest.Required, Create: `value`}, + } + IdentityDomainsApiKeyUrnietfparamsscimschemasoracleidcsextensionselfChangeUserRepresentation = map[string]interface{}{ + "allow_self_change": acctest.Representation{RepType: acctest.Optional, Create: `false`}, + } + IdentityDomainsApiKeyUserRepresentation = map[string]interface{}{ + "value": acctest.Representation{RepType: acctest.Required, Create: `${oci_identity_domains_user.test_user.id}`}, + } + + IdentityDomainsApiKeyResourceDependencies = TestDomainDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_user", "test_user", acctest.Required, acctest.Create, IdentityDomainsUserRepresentation) +) + +// issue-routing-tag: identity_domains/default +func TestIdentityDomainsApiKeyResource_basic(t *testing.T) { + httpreplay.SetScenario("TestIdentityDomainsApiKeyResource_basic") + defer httpreplay.SaveScenario() + + config := acctest.ProviderTestConfig() + + compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid") + compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId) + + resourceName := "oci_identity_domains_api_key.test_api_key" + datasourceName := "data.oci_identity_domains_api_keys.test_api_keys" + singularDatasourceName := "data.oci_identity_domains_api_key.test_api_key" + + var resId string + // Save TF content to Create resource with optional properties. This has to be exactly the same as the config part in the "create with optionals" step in the test. + acctest.SaveConfigContent(config+compartmentIdVariableStr+IdentityDomainsApiKeyResourceDependencies+ + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_api_key", "test_api_key", acctest.Optional, acctest.Create, IdentityDomainsApiKeyRepresentation), "identitydomains", "apiKey", t) + + print(config + compartmentIdVariableStr + IdentityDomainsApiKeyResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_api_key", "test_api_key", acctest.Optional, acctest.Create, IdentityDomainsApiKeyRepresentation)) + + acctest.ResourceTest(t, testAccCheckIdentityDomainsApiKeyDestroy, []resource.TestStep{ + // verify Create + { + Config: config + compartmentIdVariableStr + IdentityDomainsApiKeyResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_api_key", "test_api_key", acctest.Required, acctest.Create, IdentityDomainsApiKeyRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttrSet(resourceName, "idcs_endpoint"), + resource.TestCheckResourceAttr(resourceName, "key", "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqWmqkNQKbC1hWnmf3Uov\nH0BfH3WwJRC9Jd6/fo8oo/vhKAO5UsoiLup/7vMpHZq4KN5wXMkGtXlnyOn3KJA0\nzv4Dni4/AmoODy56i5la4wFXLOIAbVl3QnWiw9ALw9YKKx4KYoixoc3h4MPHdxdR\nmqb/B8Niq2OSS2eUsCcbAcC41eUIx2yySqA77Qy7lLjzBAE5QBZY0V1BduG/Xi9u\nzXf6gHwXEszrKpyBIq4t5+g1sbiQWwJPtuVura8iH2gDkRKS/kRzLszn3vX0lePC\nuCqFeTcOdOieuZndkCIzEMw0UUfdw2+qNOAtNi+mOPKl0h7sM21x3OA+fHmnn1fV\nGwIDAQAB\n-----END PUBLIC KEY-----"), + resource.TestCheckResourceAttr(resourceName, "schemas.#", "1"), + ), + }, + + // delete before next Create + { + Config: config + compartmentIdVariableStr + IdentityDomainsApiKeyResourceDependencies, + }, + // verify Create with optionals + { + Config: config + compartmentIdVariableStr + IdentityDomainsApiKeyResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_api_key", "test_api_key", acctest.Optional, acctest.Create, IdentityDomainsApiKeyRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(resourceName, "attribute_sets.#", "1"), + resource.TestCheckResourceAttr(resourceName, "description", "description"), + resource.TestCheckResourceAttrSet(resourceName, "fingerprint"), + resource.TestCheckResourceAttrSet(resourceName, "id"), + resource.TestCheckResourceAttr(resourceName, "idcs_created_by.#", "1"), + resource.TestCheckResourceAttrSet(resourceName, "idcs_endpoint"), + resource.TestCheckResourceAttr(resourceName, "key", "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqWmqkNQKbC1hWnmf3Uov\nH0BfH3WwJRC9Jd6/fo8oo/vhKAO5UsoiLup/7vMpHZq4KN5wXMkGtXlnyOn3KJA0\nzv4Dni4/AmoODy56i5la4wFXLOIAbVl3QnWiw9ALw9YKKx4KYoixoc3h4MPHdxdR\nmqb/B8Niq2OSS2eUsCcbAcC41eUIx2yySqA77Qy7lLjzBAE5QBZY0V1BduG/Xi9u\nzXf6gHwXEszrKpyBIq4t5+g1sbiQWwJPtuVura8iH2gDkRKS/kRzLszn3vX0lePC\nuCqFeTcOdOieuZndkCIzEMw0UUfdw2+qNOAtNi+mOPKl0h7sM21x3OA+fHmnn1fV\nGwIDAQAB\n-----END PUBLIC KEY-----"), + resource.TestCheckResourceAttr(resourceName, "schemas.#", "1"), + resource.TestCheckResourceAttr(resourceName, "tags.#", "1"), + resource.TestCheckResourceAttr(resourceName, "tags.0.key", "key"), + resource.TestCheckResourceAttr(resourceName, "tags.0.value", "value"), + resource.TestCheckResourceAttr(resourceName, "user.#", "1"), + resource.TestCheckResourceAttrSet(resourceName, "user.0.value"), + + func(s *terraform.State) (err error) { + resId, err = acctest.FromInstanceState(s, resourceName, "id") + idcsEndpoint, err := acctest.FromInstanceState(s, "data.oci_identity_domain.test_domain", "url") + if err != nil { + return err + } + + compositeId := getIdentityDomainsCompositeId(idcsEndpoint, "apiKeys", resId) + log.Printf("[DEBUG] Composite ID to import: %s", compositeId) + if isEnableExportCompartment, _ := strconv.ParseBool(utils.GetEnvSettingWithDefault("enable_export_compartment", "true")); isEnableExportCompartment { + if errExport := resourcediscovery.TestExportCompartmentWithResourceName(&compositeId, &compartmentId, resourceName); errExport != nil { + return errExport + } + } + return err + }, + ), + }, + + // verify datasource + { + Config: config + + acctest.GenerateDataSourceFromRepresentationMap("oci_identity_domains_api_keys", "test_api_keys", acctest.Optional, acctest.Update, IdentityDomainsIdentityDomainsApiKeyDataSourceRepresentation) + + compartmentIdVariableStr + IdentityDomainsApiKeyResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_api_key", "test_api_key", acctest.Optional, acctest.Update, IdentityDomainsApiKeyRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(datasourceName, "api_key_count", "10"), + resource.TestCheckResourceAttr(datasourceName, "attribute_sets.#", "1"), + resource.TestCheckResourceAttr(datasourceName, "start_index", "1"), + + resource.TestCheckResourceAttr(datasourceName, "api_keys.#", "1"), + resource.TestCheckResourceAttr(datasourceName, "api_keys.0.schemas.#", "1"), + ), + }, + // verify singular datasource + { + Config: config + + acctest.GenerateDataSourceFromRepresentationMap("oci_identity_domains_api_key", "test_api_key", acctest.Required, acctest.Create, IdentityDomainsIdentityDomainsApiKeySingularDataSourceRepresentation) + + compartmentIdVariableStr + IdentityDomainsApiKeyResourceConfig, + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttrSet(singularDatasourceName, "api_key_id"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "idcs_endpoint"), + + resource.TestCheckResourceAttr(singularDatasourceName, "description", "description"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "fingerprint"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "id"), + resource.TestCheckResourceAttr(singularDatasourceName, "idcs_created_by.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "key", "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqWmqkNQKbC1hWnmf3Uov\nH0BfH3WwJRC9Jd6/fo8oo/vhKAO5UsoiLup/7vMpHZq4KN5wXMkGtXlnyOn3KJA0\nzv4Dni4/AmoODy56i5la4wFXLOIAbVl3QnWiw9ALw9YKKx4KYoixoc3h4MPHdxdR\nmqb/B8Niq2OSS2eUsCcbAcC41eUIx2yySqA77Qy7lLjzBAE5QBZY0V1BduG/Xi9u\nzXf6gHwXEszrKpyBIq4t5+g1sbiQWwJPtuVura8iH2gDkRKS/kRzLszn3vX0lePC\nuCqFeTcOdOieuZndkCIzEMw0UUfdw2+qNOAtNi+mOPKl0h7sM21x3OA+fHmnn1fV\nGwIDAQAB\n-----END PUBLIC KEY-----"), + resource.TestCheckResourceAttr(singularDatasourceName, "schemas.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "user.#", "1"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "user.0.value"), + ), + }, + // verify resource import + { + Config: config + IdentityDomainsApiKeyRequiredOnlyResource, + ImportState: true, + ImportStateVerify: true, + ImportStateIdFunc: getIdentityDomainsImportIdFn("oci_identity_domains_api_key", "apiKeys"), + ImportStateVerifyIgnore: []string{ + "attribute_sets", + "attributes", + "authorization", + "idcs_endpoint", + "resource_type_schema_version", + "tags", + }, + ResourceName: resourceName, + }, + }) +} + +func testAccCheckIdentityDomainsApiKeyDestroy(s *terraform.State) error { + noResourceFound := true + client := acctest.TestAccProvider.Meta().(*tf_client.OracleClients).IdentityDomainsClient() + for _, rs := range s.RootModule().Resources { + if rs.Type == "oci_identity_domains_api_key" { + noResourceFound = false + request := oci_identity_domains.GetApiKeyRequest{} + + tmp := rs.Primary.ID + request.ApiKeyId = &tmp + + if value, ok := rs.Primary.Attributes["authorization"]; ok { + request.Authorization = &value + } + + if value, ok := rs.Primary.Attributes["idcs_endpoint"]; ok { + client.Host = value + } + + if value, ok := rs.Primary.Attributes["resource_type_schema_version"]; ok { + request.ResourceTypeSchemaVersion = &value + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(true, "identity_domains") + + _, err := client.GetApiKey(context.Background(), request) + + if err == nil { + return fmt.Errorf("resource still exists") + } + + //Verify that exception is for '404 not found'. + if failure, isServiceError := common.IsServiceError(err); !isServiceError || failure.GetHTTPStatusCode() != 404 { + return err + } + } + } + if noResourceFound { + return fmt.Errorf("at least one resource was expected from the state file, but could not be found") + } + + return nil +} + +func init() { + if acctest.DependencyGraph == nil { + acctest.InitDependencyGraph() + } + if !acctest.InSweeperExcludeList("IdentityDomainsApiKey") { + resource.AddTestSweepers("IdentityDomainsApiKey", &resource.Sweeper{ + Name: "IdentityDomainsApiKey", + Dependencies: acctest.DependencyGraph["apiKey"], + F: sweepIdentityDomainsApiKeyResource, + }) + } +} + +func sweepIdentityDomainsApiKeyResource(compartment string) error { + identityDomainsClient := acctest.GetTestClients(&schema.ResourceData{}).IdentityDomainsClient() + apiKeyIds, err := getIdentityDomainsApiKeyIds(compartment) + if err != nil { + return err + } + for _, apiKeyId := range apiKeyIds { + if ok := acctest.SweeperDefaultResourceId[apiKeyId]; !ok { + deleteApiKeyRequest := oci_identity_domains.DeleteApiKeyRequest{} + + deleteApiKeyRequest.ApiKeyId = &apiKeyId + + deleteApiKeyRequest.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(true, "identity_domains") + _, error := identityDomainsClient.DeleteApiKey(context.Background(), deleteApiKeyRequest) + if error != nil { + fmt.Printf("Error deleting ApiKey %s %s, It is possible that the resource is already deleted. Please verify manually \n", apiKeyId, error) + continue + } + } + } + return nil +} + +func getIdentityDomainsApiKeyIds(compartment string) ([]string, error) { + ids := acctest.GetResourceIdsToSweep(compartment, "ApiKeyId") + if ids != nil { + return ids, nil + } + var resourceIds []string + compartmentId := compartment + identityDomainsClient := acctest.GetTestClients(&schema.ResourceData{}).IdentityDomainsClient() + + listApiKeysRequest := oci_identity_domains.ListApiKeysRequest{} + listApiKeysResponse, err := identityDomainsClient.ListApiKeys(context.Background(), listApiKeysRequest) + + if err != nil { + return resourceIds, fmt.Errorf("Error getting ApiKey list for compartment id : %s , %s \n", compartmentId, err) + } + for _, apiKey := range listApiKeysResponse.Resources { + id := *apiKey.Id + resourceIds = append(resourceIds, id) + acctest.AddResourceIdToSweeperResourceIdMap(compartmentId, "ApiKeyId", id) + } + return resourceIds, nil +} diff --git a/internal/integrationtest/identity_domains_auth_token_test.go b/internal/integrationtest/identity_domains_auth_token_test.go new file mode 100644 index 00000000000..3e311bdd22e --- /dev/null +++ b/internal/integrationtest/identity_domains_auth_token_test.go @@ -0,0 +1,312 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package integrationtest + +import ( + "context" + "fmt" + "log" + "strconv" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + "github.com/oracle/terraform-provider-oci/internal/resourcediscovery" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + "github.com/oracle/oci-go-sdk/v65/common" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/httpreplay" + "github.com/oracle/terraform-provider-oci/internal/acctest" + tf_client "github.com/oracle/terraform-provider-oci/internal/client" + + "github.com/oracle/terraform-provider-oci/internal/tfresource" + "github.com/oracle/terraform-provider-oci/internal/utils" +) + +var ( + IdentityDomainsAuthTokenRequiredOnlyResource = IdentityDomainsAuthTokenResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_auth_token", "test_auth_token", acctest.Required, acctest.Create, IdentityDomainsAuthTokenRepresentation) + + IdentityDomainsAuthTokenResourceConfig = IdentityDomainsAuthTokenResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_auth_token", "test_auth_token", acctest.Optional, acctest.Update, IdentityDomainsAuthTokenRepresentation) + + IdentityDomainsIdentityDomainsAuthTokenSingularDataSourceRepresentation = map[string]interface{}{ + "auth_token_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_identity_domains_auth_token.test_auth_token.id}`}, + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "attribute_sets": acctest.Representation{RepType: acctest.Optional, Create: []string{`all`}}, + } + + IdentityDomainsIdentityDomainsAuthTokenDataSourceRepresentation = map[string]interface{}{ + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "auth_token_count": acctest.Representation{RepType: acctest.Optional, Create: `10`}, + "auth_token_filter": acctest.Representation{RepType: acctest.Optional, Create: `user.value eq \"${oci_identity_domains_user.test_user.id}\"`}, + "attribute_sets": acctest.Representation{RepType: acctest.Optional, Create: []string{`all`}}, + "start_index": acctest.Representation{RepType: acctest.Optional, Create: `1`}, + } + + IdentityDomainsAuthTokenRepresentation = map[string]interface{}{ + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "schemas": acctest.Representation{RepType: acctest.Required, Create: []string{`urn:ietf:params:scim:schemas:oracle:idcs:authToken`}}, + "attribute_sets": acctest.Representation{RepType: acctest.Optional, Create: []string{`all`}}, + "description": acctest.Representation{RepType: acctest.Optional, Create: `description`}, + "expires_on": acctest.Representation{RepType: acctest.Optional, Create: `2030-01-01T00:00:00Z`}, + "status": acctest.Representation{RepType: acctest.Optional, Create: `ACTIVE`}, + "tags": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsAuthTokenTagsRepresentation}, + "urnietfparamsscimschemasoracleidcsextensionself_change_user": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsAuthTokenUrnietfparamsscimschemasoracleidcsextensionselfChangeUserRepresentation}, + "user": acctest.RepresentationGroup{RepType: acctest.Required, Group: IdentityDomainsAuthTokenUserRepresentation}, + "lifecycle": acctest.RepresentationGroup{RepType: acctest.Optional, Group: ignoreChangeForIdentityDomainsAuthToken}, + } + + ignoreChangeForIdentityDomainsAuthToken = map[string]interface{}{ + "ignore_changes": acctest.Representation{RepType: acctest.Optional, Create: []string{ + // properties that are `returned:never` + `status`, + `urnietfparamsscimschemasoracleidcsextensionself_change_user`, + }}, + } + IdentityDomainsAuthTokenTagsRepresentation = map[string]interface{}{ + "key": acctest.Representation{RepType: acctest.Required, Create: `key`}, + "value": acctest.Representation{RepType: acctest.Required, Create: `value`}, + } + IdentityDomainsAuthTokenUrnietfparamsscimschemasoracleidcsextensionselfChangeUserRepresentation = map[string]interface{}{ + "allow_self_change": acctest.Representation{RepType: acctest.Optional, Create: `false`}, + } + IdentityDomainsAuthTokenUserRepresentation = map[string]interface{}{ + "value": acctest.Representation{RepType: acctest.Required, Create: `${oci_identity_domains_user.test_user.id}`}, + } + + IdentityDomainsAuthTokenResourceDependencies = TestDomainDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_user", "test_user", acctest.Required, acctest.Create, IdentityDomainsUserRepresentation) +) + +// issue-routing-tag: identity_domains/default +func TestIdentityDomainsAuthTokenResource_basic(t *testing.T) { + httpreplay.SetScenario("TestIdentityDomainsAuthTokenResource_basic") + defer httpreplay.SaveScenario() + + config := acctest.ProviderTestConfig() + + compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid") + compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId) + + resourceName := "oci_identity_domains_auth_token.test_auth_token" + datasourceName := "data.oci_identity_domains_auth_tokens.test_auth_tokens" + singularDatasourceName := "data.oci_identity_domains_auth_token.test_auth_token" + + var resId string + // Save TF content to Create resource with optional properties. This has to be exactly the same as the config part in the "create with optionals" step in the test. + acctest.SaveConfigContent(config+compartmentIdVariableStr+IdentityDomainsAuthTokenResourceDependencies+ + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_auth_token", "test_auth_token", acctest.Optional, acctest.Create, IdentityDomainsAuthTokenRepresentation), "identitydomains", "authToken", t) + + print(config + compartmentIdVariableStr + IdentityDomainsAuthTokenResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_auth_token", "test_auth_token", acctest.Optional, acctest.Create, IdentityDomainsAuthTokenRepresentation)) + + acctest.ResourceTest(t, testAccCheckIdentityDomainsAuthTokenDestroy, []resource.TestStep{ + // verify Create + { + Config: config + compartmentIdVariableStr + IdentityDomainsAuthTokenResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_auth_token", "test_auth_token", acctest.Required, acctest.Create, IdentityDomainsAuthTokenRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttrSet(resourceName, "idcs_endpoint"), + resource.TestCheckResourceAttr(resourceName, "schemas.#", "1"), + ), + }, + + // delete before next Create + { + Config: config + compartmentIdVariableStr + IdentityDomainsAuthTokenResourceDependencies, + }, + // verify Create with optionals + { + Config: config + compartmentIdVariableStr + IdentityDomainsAuthTokenResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_auth_token", "test_auth_token", acctest.Optional, acctest.Create, IdentityDomainsAuthTokenRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(resourceName, "attribute_sets.#", "1"), + resource.TestCheckResourceAttr(resourceName, "description", "description"), + resource.TestCheckResourceAttr(resourceName, "expires_on", "2030-01-01T00:00:00Z"), + resource.TestCheckResourceAttrSet(resourceName, "id"), + resource.TestCheckResourceAttr(resourceName, "idcs_created_by.#", "1"), + resource.TestCheckResourceAttrSet(resourceName, "idcs_endpoint"), + resource.TestCheckResourceAttr(resourceName, "schemas.#", "1"), + resource.TestCheckResourceAttr(resourceName, "tags.#", "1"), + resource.TestCheckResourceAttr(resourceName, "tags.0.key", "key"), + resource.TestCheckResourceAttr(resourceName, "tags.0.value", "value"), + resource.TestCheckResourceAttr(resourceName, "user.#", "1"), + resource.TestCheckResourceAttrSet(resourceName, "user.0.value"), + + func(s *terraform.State) (err error) { + resId, err = acctest.FromInstanceState(s, resourceName, "id") + idcsEndpoint, err := acctest.FromInstanceState(s, "data.oci_identity_domain.test_domain", "url") + if err != nil { + return err + } + + compositeId := getIdentityDomainsCompositeId(idcsEndpoint, "authTokens", resId) + log.Printf("[DEBUG] Composite ID to import: %s", compositeId) + if isEnableExportCompartment, _ := strconv.ParseBool(utils.GetEnvSettingWithDefault("enable_export_compartment", "true")); isEnableExportCompartment { + if errExport := resourcediscovery.TestExportCompartmentWithResourceName(&compositeId, &compartmentId, resourceName); errExport != nil { + return errExport + } + } + return err + }, + ), + }, + + // verify datasource + { + Config: config + + acctest.GenerateDataSourceFromRepresentationMap("oci_identity_domains_auth_tokens", "test_auth_tokens", acctest.Optional, acctest.Update, IdentityDomainsIdentityDomainsAuthTokenDataSourceRepresentation) + + compartmentIdVariableStr + IdentityDomainsAuthTokenResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_auth_token", "test_auth_token", acctest.Optional, acctest.Update, IdentityDomainsAuthTokenRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(datasourceName, "auth_token_count", "10"), + resource.TestCheckResourceAttr(datasourceName, "attribute_sets.#", "1"), + resource.TestCheckResourceAttr(datasourceName, "start_index", "1"), + + resource.TestCheckResourceAttr(datasourceName, "auth_tokens.#", "1"), + resource.TestCheckResourceAttr(datasourceName, "auth_tokens.0.schemas.#", "1"), + ), + }, + // verify singular datasource + { + Config: config + + acctest.GenerateDataSourceFromRepresentationMap("oci_identity_domains_auth_token", "test_auth_token", acctest.Required, acctest.Create, IdentityDomainsIdentityDomainsAuthTokenSingularDataSourceRepresentation) + + compartmentIdVariableStr + IdentityDomainsAuthTokenResourceConfig, + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttrSet(singularDatasourceName, "auth_token_id"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "idcs_endpoint"), + + resource.TestCheckResourceAttr(singularDatasourceName, "description", "description"), + resource.TestCheckResourceAttr(singularDatasourceName, "expires_on", "2030-01-01T00:00:00Z"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "id"), + resource.TestCheckResourceAttr(singularDatasourceName, "idcs_created_by.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "schemas.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "user.#", "1"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "user.0.value"), + ), + }, + // verify resource import + { + Config: config + IdentityDomainsAuthTokenRequiredOnlyResource, + ImportState: true, + ImportStateVerify: true, + ImportStateIdFunc: getIdentityDomainsImportIdFn("oci_identity_domains_auth_token", "authTokens"), + ImportStateVerifyIgnore: []string{ + "attribute_sets", + "attributes", + "authorization", + "idcs_endpoint", + "resource_type_schema_version", + "tags", + }, + ResourceName: resourceName, + }, + }) +} + +func testAccCheckIdentityDomainsAuthTokenDestroy(s *terraform.State) error { + noResourceFound := true + client := acctest.TestAccProvider.Meta().(*tf_client.OracleClients).IdentityDomainsClient() + for _, rs := range s.RootModule().Resources { + if rs.Type == "oci_identity_domains_auth_token" { + noResourceFound = false + request := oci_identity_domains.GetAuthTokenRequest{} + + tmp := rs.Primary.ID + request.AuthTokenId = &tmp + + if value, ok := rs.Primary.Attributes["authorization"]; ok { + request.Authorization = &value + } + + if value, ok := rs.Primary.Attributes["idcs_endpoint"]; ok { + client.Host = value + } + + if value, ok := rs.Primary.Attributes["resource_type_schema_version"]; ok { + request.ResourceTypeSchemaVersion = &value + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(true, "identity_domains") + + _, err := client.GetAuthToken(context.Background(), request) + + if err == nil { + return fmt.Errorf("resource still exists") + } + + //Verify that exception is for '404 not found'. + if failure, isServiceError := common.IsServiceError(err); !isServiceError || failure.GetHTTPStatusCode() != 404 { + return err + } + } + } + if noResourceFound { + return fmt.Errorf("at least one resource was expected from the state file, but could not be found") + } + + return nil +} + +func init() { + if acctest.DependencyGraph == nil { + acctest.InitDependencyGraph() + } + if !acctest.InSweeperExcludeList("IdentityDomainsAuthToken") { + resource.AddTestSweepers("IdentityDomainsAuthToken", &resource.Sweeper{ + Name: "IdentityDomainsAuthToken", + Dependencies: acctest.DependencyGraph["authToken"], + F: sweepIdentityDomainsAuthTokenResource, + }) + } +} + +func sweepIdentityDomainsAuthTokenResource(compartment string) error { + identityDomainsClient := acctest.GetTestClients(&schema.ResourceData{}).IdentityDomainsClient() + authTokenIds, err := getIdentityDomainsAuthTokenIds(compartment) + if err != nil { + return err + } + for _, authTokenId := range authTokenIds { + if ok := acctest.SweeperDefaultResourceId[authTokenId]; !ok { + deleteAuthTokenRequest := oci_identity_domains.DeleteAuthTokenRequest{} + + deleteAuthTokenRequest.AuthTokenId = &authTokenId + + deleteAuthTokenRequest.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(true, "identity_domains") + _, error := identityDomainsClient.DeleteAuthToken(context.Background(), deleteAuthTokenRequest) + if error != nil { + fmt.Printf("Error deleting AuthToken %s %s, It is possible that the resource is already deleted. Please verify manually \n", authTokenId, error) + continue + } + } + } + return nil +} + +func getIdentityDomainsAuthTokenIds(compartment string) ([]string, error) { + ids := acctest.GetResourceIdsToSweep(compartment, "AuthTokenId") + if ids != nil { + return ids, nil + } + var resourceIds []string + compartmentId := compartment + identityDomainsClient := acctest.GetTestClients(&schema.ResourceData{}).IdentityDomainsClient() + + listAuthTokensRequest := oci_identity_domains.ListAuthTokensRequest{} + listAuthTokensResponse, err := identityDomainsClient.ListAuthTokens(context.Background(), listAuthTokensRequest) + + if err != nil { + return resourceIds, fmt.Errorf("Error getting AuthToken list for compartment id : %s , %s \n", compartmentId, err) + } + for _, authToken := range listAuthTokensResponse.Resources { + id := *authToken.Id + resourceIds = append(resourceIds, id) + acctest.AddResourceIdToSweeperResourceIdMap(compartmentId, "AuthTokenId", id) + } + return resourceIds, nil +} diff --git a/internal/integrationtest/identity_domains_authentication_factor_setting_test.go b/internal/integrationtest/identity_domains_authentication_factor_setting_test.go new file mode 100644 index 00000000000..f0278837fd4 --- /dev/null +++ b/internal/integrationtest/identity_domains_authentication_factor_setting_test.go @@ -0,0 +1,663 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package integrationtest + +import ( + "fmt" + "log" + "regexp" + "strconv" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + "github.com/oracle/terraform-provider-oci/internal/resourcediscovery" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/oracle/terraform-provider-oci/httpreplay" + "github.com/oracle/terraform-provider-oci/internal/acctest" + + "github.com/oracle/terraform-provider-oci/internal/utils" +) + +var ( + IdentityDomainsAuthenticationFactorSettingRequiredOnlyResource = IdentityDomainsAuthenticationFactorSettingResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_authentication_factor_setting", "test_authentication_factor_setting", acctest.Required, acctest.Create, IdentityDomainsAuthenticationFactorSettingRepresentation) + + IdentityDomainsAuthenticationFactorSettingResourceConfig = IdentityDomainsAuthenticationFactorSettingResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_authentication_factor_setting", "test_authentication_factor_setting", acctest.Optional, acctest.Update, IdentityDomainsAuthenticationFactorSettingRepresentation) + + IdentityDomainsIdentityDomainsAuthenticationFactorSettingSingularDataSourceRepresentation = map[string]interface{}{ + "authentication_factor_setting_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_identity_domains_authentication_factor_setting.test_authentication_factor_setting.id}`}, + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "attribute_sets": acctest.Representation{RepType: acctest.Optional, Create: []string{`all`}}, + } + + IdentityDomainsIdentityDomainsAuthenticationFactorSettingDataSourceRepresentation = map[string]interface{}{ + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "attribute_sets": acctest.Representation{RepType: acctest.Optional, Create: []string{`all`}}, + } + + IdentityDomainsAuthenticationFactorSettingRepresentation = map[string]interface{}{ + "authentication_factor_setting_id": acctest.Representation{RepType: acctest.Required, Create: `AuthenticationFactorSettings`}, + "bypass_code_enabled": acctest.Representation{RepType: acctest.Required, Create: `false`, Update: `true`}, + "bypass_code_settings": acctest.RepresentationGroup{RepType: acctest.Required, Group: IdentityDomainsAuthenticationFactorSettingBypassCodeSettingsRepresentation}, + "client_app_settings": acctest.RepresentationGroup{RepType: acctest.Required, Group: IdentityDomainsAuthenticationFactorSettingClientAppSettingsRepresentation}, + "compliance_policy": []acctest.RepresentationGroup{ + {RepType: acctest.Required, Group: IdentityDomainsAuthenticationFactorSettingCompliancePolicyRepresentation}, + {RepType: acctest.Required, Group: IdentityDomainsAuthenticationFactorSettingCompliancePolicyRepresentation1}, + {RepType: acctest.Required, Group: IdentityDomainsAuthenticationFactorSettingCompliancePolicyRepresentation2}, + {RepType: acctest.Required, Group: IdentityDomainsAuthenticationFactorSettingCompliancePolicyRepresentation3}, + {RepType: acctest.Required, Group: IdentityDomainsAuthenticationFactorSettingCompliancePolicyRepresentation4}, + {RepType: acctest.Required, Group: IdentityDomainsAuthenticationFactorSettingCompliancePolicyRepresentation5}, + {RepType: acctest.Required, Group: IdentityDomainsAuthenticationFactorSettingCompliancePolicyRepresentation6}, + {RepType: acctest.Required, Group: IdentityDomainsAuthenticationFactorSettingCompliancePolicyRepresentation7}, + {RepType: acctest.Required, Group: IdentityDomainsAuthenticationFactorSettingCompliancePolicyRepresentation8}, + {RepType: acctest.Required, Group: IdentityDomainsAuthenticationFactorSettingCompliancePolicyRepresentation9}, + }, + "endpoint_restrictions": acctest.RepresentationGroup{RepType: acctest.Required, Group: IdentityDomainsAuthenticationFactorSettingEndpointRestrictionsRepresentation}, + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "mfa_enrollment_type": acctest.Representation{RepType: acctest.Required, Create: `Optional`}, + "notification_settings": acctest.RepresentationGroup{RepType: acctest.Required, Group: IdentityDomainsAuthenticationFactorSettingNotificationSettingsRepresentation}, + "push_enabled": acctest.Representation{RepType: acctest.Required, Create: `false`, Update: `true`}, + "schemas": acctest.Representation{RepType: acctest.Required, Create: []string{`urn:ietf:params:scim:schemas:oracle:idcs:AuthenticationFactorSettings`}}, + "security_questions_enabled": acctest.Representation{RepType: acctest.Required, Create: `false`, Update: `true`}, + "sms_enabled": acctest.Representation{RepType: acctest.Required, Create: `true`}, + "totp_enabled": acctest.Representation{RepType: acctest.Required, Create: `false`, Update: `true`}, + "totp_settings": acctest.RepresentationGroup{RepType: acctest.Required, Group: IdentityDomainsAuthenticationFactorSettingTotpSettingsRepresentation}, + "attribute_sets": acctest.Representation{RepType: acctest.Optional, Create: []string{`all`}}, + "auto_enroll_email_factor_disabled": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `true`}, + "email_enabled": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `true`}, + "email_settings": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsAuthenticationFactorSettingEmailSettingsRepresentation}, + "fido_authenticator_enabled": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `true`}, + "hide_backup_factor_enabled": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `true`}, + "identity_store_settings": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsAuthenticationFactorSettingIdentityStoreSettingsRepresentation}, + "phone_call_enabled": acctest.Representation{RepType: acctest.Optional, Create: `false`}, + "tags": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsAuthenticationFactorSettingTagsRepresentation}, + "third_party_factor": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsAuthenticationFactorSettingThirdPartyFactorRepresentation}, + "urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsAuthenticationFactorSettingUrnietfparamsscimschemasoracleidcsextensionfidoAuthenticationFactorSettingsRepresentation}, + "urnietfparamsscimschemasoracleidcsextensionthird_party_authentication_factor_settings": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsAuthenticationFactorSettingUrnietfparamsscimschemasoracleidcsextensionthirdPartyAuthenticationFactorSettingsRepresentation}, + "lifecycle": acctest.RepresentationGroup{RepType: acctest.Required, Group: ignoreChangeForIdentityDomainsAuthenticationFactorSetting}, + } + + ignoreChangeForIdentityDomainsAuthenticationFactorSetting = map[string]interface{}{ + "ignore_changes": acctest.Representation{RepType: acctest.Required, Create: []string{ + `urnietfparamsscimschemasoracleidcsextensionthird_party_authentication_factor_settings[0].duo_security_settings[0].attestation_key`, + `schemas`, + }}, + } + IdentityDomainsAuthenticationFactorSettingBypassCodeSettingsRepresentation = map[string]interface{}{ + "help_desk_code_expiry_in_mins": acctest.Representation{RepType: acctest.Required, Create: `10`, Update: `11`}, + "help_desk_generation_enabled": acctest.Representation{RepType: acctest.Required, Create: `false`, Update: `true`}, + "help_desk_max_usage": acctest.Representation{RepType: acctest.Required, Create: `10`, Update: `11`}, + "length": acctest.Representation{RepType: acctest.Required, Create: `10`, Update: `11`}, + "max_active": acctest.Representation{RepType: acctest.Required, Create: `5`, Update: `6`}, + "self_service_generation_enabled": acctest.Representation{RepType: acctest.Required, Create: `false`, Update: `true`}, + } + IdentityDomainsAuthenticationFactorSettingClientAppSettingsRepresentation = map[string]interface{}{ + "device_protection_policy": acctest.Representation{RepType: acctest.Required, Create: `APP_PIN`, Update: `NONE`}, + "initial_lockout_period_in_secs": acctest.Representation{RepType: acctest.Required, Create: `60`, Update: `30`}, + "key_pair_length": acctest.Representation{RepType: acctest.Required, Create: `32`, Update: `2048`}, + "lockout_escalation_pattern": acctest.Representation{RepType: acctest.Required, Create: `Linear`, Update: `Constant`}, + "max_failures_before_lockout": acctest.Representation{RepType: acctest.Required, Create: `5`, Update: `10`}, + "max_failures_before_warning": acctest.Representation{RepType: acctest.Required, Create: `0`, Update: `5`}, + "max_lockout_interval_in_secs": acctest.Representation{RepType: acctest.Required, Create: `90`, Update: `86400`}, + "min_pin_length": acctest.Representation{RepType: acctest.Required, Create: `10`, Update: `6`}, + "policy_update_freq_in_days": acctest.Representation{RepType: acctest.Required, Create: `10`, Update: `11`}, + "request_signing_algo": acctest.Representation{RepType: acctest.Required, Create: `SHA256withRSA`, Update: `SHA384withRSA`}, + "shared_secret_encoding": acctest.Representation{RepType: acctest.Required, Create: `Base32`, Update: `Base64`}, + "unlock_app_for_each_request_enabled": acctest.Representation{RepType: acctest.Required, Create: `true`, Update: `false`}, + "unlock_app_interval_in_secs": acctest.Representation{RepType: acctest.Required, Create: `0`, Update: `300`}, + "unlock_on_app_foreground_enabled": acctest.Representation{RepType: acctest.Required, Create: `true`, Update: `false`}, + "unlock_on_app_start_enabled": acctest.Representation{RepType: acctest.Required, Create: `true`, Update: `false`}, + } + IdentityDomainsAuthenticationFactorSettingCompliancePolicyRepresentation = map[string]interface{}{ + "action": acctest.Representation{RepType: acctest.Required, Create: `Block`, Update: `Allow`}, + "name": acctest.Representation{RepType: acctest.Required, Create: `lockScreenRequired`}, + "value": acctest.Representation{RepType: acctest.Required, Create: `true`, Update: `false`}, + } + IdentityDomainsAuthenticationFactorSettingCompliancePolicyRepresentation1 = map[string]interface{}{ + "action": acctest.Representation{RepType: acctest.Required, Create: `Block`, Update: `Allow`}, + "name": acctest.Representation{RepType: acctest.Required, Create: `lockScreenRequiredUnknown`}, + "value": acctest.Representation{RepType: acctest.Required, Create: `true`, Update: `false`}, + } + IdentityDomainsAuthenticationFactorSettingCompliancePolicyRepresentation2 = map[string]interface{}{ + "action": acctest.Representation{RepType: acctest.Required, Create: `Block`, Update: `Allow`}, + "name": acctest.Representation{RepType: acctest.Required, Create: `jailBrokenDevice`}, + "value": acctest.Representation{RepType: acctest.Required, Create: `true`, Update: `false`}, + } + IdentityDomainsAuthenticationFactorSettingCompliancePolicyRepresentation3 = map[string]interface{}{ + "action": acctest.Representation{RepType: acctest.Required, Create: `Block`, Update: `Allow`}, + "name": acctest.Representation{RepType: acctest.Required, Create: `jailBrokenDeviceUnknown`}, + "value": acctest.Representation{RepType: acctest.Required, Create: `true`, Update: `false`}, + } + IdentityDomainsAuthenticationFactorSettingCompliancePolicyRepresentation4 = map[string]interface{}{ + "action": acctest.Representation{RepType: acctest.Required, Create: `Block`, Update: `Allow`}, + "name": acctest.Representation{RepType: acctest.Required, Create: `minWindowsVersion`}, + "value": acctest.Representation{RepType: acctest.Required, Create: `8.1`}, + } + IdentityDomainsAuthenticationFactorSettingCompliancePolicyRepresentation5 = map[string]interface{}{ + "action": acctest.Representation{RepType: acctest.Required, Create: `Block`, Update: `Allow`}, + "name": acctest.Representation{RepType: acctest.Required, Create: `minIosVersion`}, + "value": acctest.Representation{RepType: acctest.Required, Create: `7.1`}, + } + IdentityDomainsAuthenticationFactorSettingCompliancePolicyRepresentation6 = map[string]interface{}{ + "action": acctest.Representation{RepType: acctest.Required, Create: `Block`, Update: `Allow`}, + "name": acctest.Representation{RepType: acctest.Required, Create: `minAndroidVersion`}, + "value": acctest.Representation{RepType: acctest.Required, Create: `4.1`}, + } + IdentityDomainsAuthenticationFactorSettingCompliancePolicyRepresentation7 = map[string]interface{}{ + "action": acctest.Representation{RepType: acctest.Required, Create: `Block`, Update: `Allow`}, + "name": acctest.Representation{RepType: acctest.Required, Create: `minIosAppVersion`}, + "value": acctest.Representation{RepType: acctest.Required, Create: `4.0`}, + } + IdentityDomainsAuthenticationFactorSettingCompliancePolicyRepresentation8 = map[string]interface{}{ + "action": acctest.Representation{RepType: acctest.Required, Create: `Block`, Update: `Allow`}, + "name": acctest.Representation{RepType: acctest.Required, Create: `minAndroidAppVersion`}, + "value": acctest.Representation{RepType: acctest.Required, Create: `8.0`}, + } + IdentityDomainsAuthenticationFactorSettingCompliancePolicyRepresentation9 = map[string]interface{}{ + "action": acctest.Representation{RepType: acctest.Required, Create: `Block`, Update: `Allow`}, + "name": acctest.Representation{RepType: acctest.Required, Create: `minWindowsAppVersion`}, + "value": acctest.Representation{RepType: acctest.Required, Create: `1.0`}, + } + IdentityDomainsAuthenticationFactorSettingEndpointRestrictionsRepresentation = map[string]interface{}{ + "max_endpoint_trust_duration_in_days": acctest.Representation{RepType: acctest.Required, Create: `10`, Update: `180`}, + "max_enrolled_devices": acctest.Representation{RepType: acctest.Required, Create: `10`, Update: `11`}, + "max_incorrect_attempts": acctest.Representation{RepType: acctest.Required, Create: `10`, Update: `20`}, + "max_trusted_endpoints": acctest.Representation{RepType: acctest.Required, Create: `10`, Update: `20`}, + "trusted_endpoints_enabled": acctest.Representation{RepType: acctest.Required, Create: `false`, Update: `true`}, + } + IdentityDomainsAuthenticationFactorSettingNotificationSettingsRepresentation = map[string]interface{}{ + "pull_enabled": acctest.Representation{RepType: acctest.Required, Create: `false`, Update: `true`}, + } + IdentityDomainsAuthenticationFactorSettingTotpSettingsRepresentation = map[string]interface{}{ + "email_otp_validity_duration_in_mins": acctest.Representation{RepType: acctest.Required, Create: `10`, Update: `11`}, + "email_passcode_length": acctest.Representation{RepType: acctest.Required, Create: `10`, Update: `6`}, + "hashing_algorithm": acctest.Representation{RepType: acctest.Required, Create: `SHA1`, Update: `SHA256`}, + "jwt_validity_duration_in_secs": acctest.Representation{RepType: acctest.Required, Create: `30`, Update: `300`}, + "key_refresh_interval_in_days": acctest.Representation{RepType: acctest.Required, Create: `30`, Update: `60`}, + "passcode_length": acctest.Representation{RepType: acctest.Required, Create: `10`, Update: `6`}, + "sms_otp_validity_duration_in_mins": acctest.Representation{RepType: acctest.Required, Create: `10`, Update: `6`}, + "sms_passcode_length": acctest.Representation{RepType: acctest.Required, Create: `10`, Update: `6`}, + "time_step_in_secs": acctest.Representation{RepType: acctest.Required, Create: `300`, Update: `30`}, + "time_step_tolerance": acctest.Representation{RepType: acctest.Required, Create: `2`, Update: `3`}, + } + IdentityDomainsAuthenticationFactorSettingEmailSettingsRepresentation = map[string]interface{}{ + "email_link_enabled": acctest.Representation{RepType: acctest.Required, Create: `false`, Update: `true`}, + "email_link_custom_url": acctest.Representation{RepType: acctest.Optional, Create: `emailLinkCustomUrl`, Update: `emailLinkCustomUrl2`}, + } + IdentityDomainsAuthenticationFactorSettingIdentityStoreSettingsRepresentation = map[string]interface{}{ + "mobile_number_enabled": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `true`}, + "mobile_number_update_enabled": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `true`}, + } + IdentityDomainsAuthenticationFactorSettingTagsRepresentation = map[string]interface{}{ + "key": acctest.Representation{RepType: acctest.Required, Create: `key`, Update: `key2`}, + "value": acctest.Representation{RepType: acctest.Required, Create: `value`, Update: `value2`}, + } + IdentityDomainsAuthenticationFactorSettingThirdPartyFactorRepresentation = map[string]interface{}{ + "duo_security": acctest.Representation{RepType: acctest.Required, Create: `false`, Update: `true`}, + } + IdentityDomainsAuthenticationFactorSettingUrnietfparamsscimschemasoracleidcsextensionfidoAuthenticationFactorSettingsRepresentation = map[string]interface{}{ + "attestation": acctest.Representation{RepType: acctest.Required, Create: `DIRECT`, Update: `NONE`}, + "authenticator_selection_attachment": acctest.Representation{RepType: acctest.Required, Create: `PLATFORM`, Update: `BOTH`}, + "authenticator_selection_require_resident_key": acctest.Representation{RepType: acctest.Required, Create: `true`, Update: `false`}, + "authenticator_selection_resident_key": acctest.Representation{RepType: acctest.Required, Create: `REQUIRED`, Update: `NONE`}, + "authenticator_selection_user_verification": acctest.Representation{RepType: acctest.Required, Create: `REQUIRED`, Update: `PREFERRED`}, + "exclude_credentials": acctest.Representation{RepType: acctest.Required, Create: `true`, Update: `false`}, + "public_key_types": acctest.Representation{RepType: acctest.Required, Create: []string{`RS1`}, Update: []string{`ES256`}}, + "timeout": acctest.Representation{RepType: acctest.Required, Create: `10000`, Update: `60000`}, + "domain_validation_level": acctest.Representation{RepType: acctest.Optional, Create: `0`, Update: `1`}, + } + IdentityDomainsAuthenticationFactorSettingUrnietfparamsscimschemasoracleidcsextensionthirdPartyAuthenticationFactorSettingsRepresentation = map[string]interface{}{ + "duo_security_settings": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsAuthenticationFactorSettingUrnietfparamsscimschemasoracleidcsextensionthirdPartyAuthenticationFactorSettingsDuoSecuritySettingsRepresentation}, + } + IdentityDomainsAuthenticationFactorSettingUrnietfparamsscimschemasoracleidcsextensionthirdPartyAuthenticationFactorSettingsDuoSecuritySettingsRepresentation = map[string]interface{}{ + "api_hostname": acctest.Representation{RepType: acctest.Required, Create: `apiHostname`, Update: `apiHostname2`}, + "integration_key": acctest.Representation{RepType: acctest.Required, Create: `integrationKey`, Update: `integrationKey2`}, + "secret_key": acctest.Representation{RepType: acctest.Required, Create: `secretKey`, Update: `secretKey2`}, + "user_mapping_attribute": acctest.Representation{RepType: acctest.Required, Create: `primaryEmail`, Update: `userName`}, + "attestation_key": acctest.Representation{RepType: acctest.Optional, Create: `attestationKey`, Update: `attestationKey2`}, + } + + IdentityDomainsAuthenticationFactorSettingResourceDependencies = TestDomainDependencies +) + +// issue-routing-tag: identity_domains/default +func TestIdentityDomainsAuthenticationFactorSettingResource_basic(t *testing.T) { + httpreplay.SetScenario("TestIdentityDomainsAuthenticationFactorSettingResource_basic") + defer httpreplay.SaveScenario() + + config := acctest.ProviderTestConfig() + + compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid") + compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId) + + resourceName := "oci_identity_domains_authentication_factor_setting.test_authentication_factor_setting" + datasourceName := "data.oci_identity_domains_authentication_factor_settings.test_authentication_factor_settings" + singularDatasourceName := "data.oci_identity_domains_authentication_factor_setting.test_authentication_factor_setting" + + var resId, resId2 string + // Save TF content to Create resource with optional properties. This has to be exactly the same as the config part in the "create with optionals" step in the test. + acctest.SaveConfigContent(config+compartmentIdVariableStr+IdentityDomainsAuthenticationFactorSettingResourceDependencies+ + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_authentication_factor_setting", "test_authentication_factor_setting", acctest.Optional, acctest.Create, IdentityDomainsAuthenticationFactorSettingRepresentation), "identitydomains", "authenticationFactorSetting", t) + + acctest.ResourceTest(t, nil, []resource.TestStep{ + // verify Create (Create with PUT) + { + Config: config + compartmentIdVariableStr + IdentityDomainsAuthenticationFactorSettingResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_authentication_factor_setting", "test_authentication_factor_setting", acctest.Required, acctest.Create, IdentityDomainsAuthenticationFactorSettingRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttrSet(resourceName, "authentication_factor_setting_id"), + resource.TestCheckResourceAttr(resourceName, "bypass_code_enabled", "false"), + resource.TestCheckResourceAttr(resourceName, "bypass_code_settings.#", "1"), + resource.TestCheckResourceAttr(resourceName, "bypass_code_settings.0.help_desk_code_expiry_in_mins", "10"), + resource.TestCheckResourceAttr(resourceName, "bypass_code_settings.0.help_desk_generation_enabled", "false"), + resource.TestCheckResourceAttr(resourceName, "bypass_code_settings.0.help_desk_max_usage", "10"), + resource.TestCheckResourceAttr(resourceName, "bypass_code_settings.0.length", "10"), + resource.TestCheckResourceAttr(resourceName, "bypass_code_settings.0.max_active", "5"), + resource.TestCheckResourceAttr(resourceName, "bypass_code_settings.0.self_service_generation_enabled", "false"), + resource.TestCheckResourceAttr(resourceName, "client_app_settings.#", "1"), + resource.TestCheckResourceAttr(resourceName, "client_app_settings.0.device_protection_policy", "APP_PIN"), + resource.TestCheckResourceAttr(resourceName, "client_app_settings.0.initial_lockout_period_in_secs", "60"), + resource.TestCheckResourceAttr(resourceName, "client_app_settings.0.key_pair_length", "32"), + resource.TestCheckResourceAttr(resourceName, "client_app_settings.0.lockout_escalation_pattern", "Linear"), + resource.TestCheckResourceAttr(resourceName, "client_app_settings.0.max_failures_before_lockout", "5"), + resource.TestCheckResourceAttr(resourceName, "client_app_settings.0.max_failures_before_warning", "0"), + resource.TestCheckResourceAttr(resourceName, "client_app_settings.0.max_lockout_interval_in_secs", "90"), + resource.TestCheckResourceAttr(resourceName, "client_app_settings.0.min_pin_length", "10"), + resource.TestCheckResourceAttr(resourceName, "client_app_settings.0.policy_update_freq_in_days", "10"), + resource.TestCheckResourceAttr(resourceName, "client_app_settings.0.request_signing_algo", "SHA256withRSA"), + resource.TestCheckResourceAttr(resourceName, "client_app_settings.0.shared_secret_encoding", "Base32"), + resource.TestCheckResourceAttr(resourceName, "client_app_settings.0.unlock_app_for_each_request_enabled", "true"), + resource.TestCheckResourceAttr(resourceName, "client_app_settings.0.unlock_app_interval_in_secs", "0"), + resource.TestCheckResourceAttr(resourceName, "client_app_settings.0.unlock_on_app_foreground_enabled", "true"), + resource.TestCheckResourceAttr(resourceName, "client_app_settings.0.unlock_on_app_start_enabled", "true"), + resource.TestCheckResourceAttr(resourceName, "compliance_policy.#", "10"), + resource.TestCheckResourceAttr(resourceName, "compliance_policy.0.action", "Block"), + resource.TestCheckResourceAttr(resourceName, "compliance_policy.0.name", "lockScreenRequired"), + resource.TestCheckResourceAttr(resourceName, "compliance_policy.0.value", "true"), + resource.TestCheckResourceAttr(resourceName, "endpoint_restrictions.#", "1"), + resource.TestCheckResourceAttr(resourceName, "endpoint_restrictions.0.max_endpoint_trust_duration_in_days", "10"), + resource.TestCheckResourceAttr(resourceName, "endpoint_restrictions.0.max_enrolled_devices", "10"), + resource.TestCheckResourceAttr(resourceName, "endpoint_restrictions.0.max_incorrect_attempts", "10"), + resource.TestCheckResourceAttr(resourceName, "endpoint_restrictions.0.max_trusted_endpoints", "10"), + resource.TestCheckResourceAttr(resourceName, "endpoint_restrictions.0.trusted_endpoints_enabled", "false"), + resource.TestCheckResourceAttrSet(resourceName, "idcs_endpoint"), + resource.TestCheckResourceAttr(resourceName, "mfa_enrollment_type", "Optional"), + resource.TestCheckResourceAttr(resourceName, "notification_settings.#", "1"), + resource.TestCheckResourceAttr(resourceName, "notification_settings.0.pull_enabled", "false"), + resource.TestCheckResourceAttr(resourceName, "push_enabled", "false"), + resource.TestCheckResourceAttr(resourceName, "schemas.#", "1"), + resource.TestCheckResourceAttr(resourceName, "security_questions_enabled", "false"), + resource.TestCheckResourceAttr(resourceName, "sms_enabled", "true"), + resource.TestCheckResourceAttr(resourceName, "totp_enabled", "false"), + resource.TestCheckResourceAttr(resourceName, "totp_settings.#", "1"), + resource.TestCheckResourceAttr(resourceName, "totp_settings.0.email_otp_validity_duration_in_mins", "10"), + resource.TestCheckResourceAttr(resourceName, "totp_settings.0.email_passcode_length", "10"), + resource.TestCheckResourceAttr(resourceName, "totp_settings.0.hashing_algorithm", "SHA1"), + resource.TestCheckResourceAttr(resourceName, "totp_settings.0.jwt_validity_duration_in_secs", "30"), + resource.TestCheckResourceAttr(resourceName, "totp_settings.0.key_refresh_interval_in_days", "30"), + resource.TestCheckResourceAttr(resourceName, "totp_settings.0.passcode_length", "10"), + resource.TestCheckResourceAttr(resourceName, "totp_settings.0.sms_otp_validity_duration_in_mins", "10"), + resource.TestCheckResourceAttr(resourceName, "totp_settings.0.sms_passcode_length", "10"), + resource.TestCheckResourceAttr(resourceName, "totp_settings.0.time_step_in_secs", "300"), + resource.TestCheckResourceAttr(resourceName, "totp_settings.0.time_step_tolerance", "2"), + + func(s *terraform.State) (err error) { + resId, err = acctest.FromInstanceState(s, resourceName, "id") + print(resId) + return err + }, + ), + }, + + // delete before next Create + { + Config: config + compartmentIdVariableStr + IdentityDomainsAuthenticationFactorSettingResourceDependencies, + }, + // verify Create with optionals (Create with PUT) + { + Config: config + compartmentIdVariableStr + IdentityDomainsAuthenticationFactorSettingResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_authentication_factor_setting", "test_authentication_factor_setting", acctest.Optional, acctest.Create, IdentityDomainsAuthenticationFactorSettingRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(resourceName, "attribute_sets.#", "1"), + resource.TestCheckResourceAttrSet(resourceName, "authentication_factor_setting_id"), + resource.TestCheckResourceAttr(resourceName, "auto_enroll_email_factor_disabled", "false"), + resource.TestCheckResourceAttr(resourceName, "bypass_code_enabled", "false"), + resource.TestCheckResourceAttr(resourceName, "bypass_code_settings.#", "1"), + resource.TestCheckResourceAttr(resourceName, "bypass_code_settings.0.help_desk_code_expiry_in_mins", "10"), + resource.TestCheckResourceAttr(resourceName, "bypass_code_settings.0.help_desk_generation_enabled", "false"), + resource.TestCheckResourceAttr(resourceName, "bypass_code_settings.0.help_desk_max_usage", "10"), + resource.TestCheckResourceAttr(resourceName, "bypass_code_settings.0.length", "10"), + resource.TestCheckResourceAttr(resourceName, "bypass_code_settings.0.max_active", "5"), + resource.TestCheckResourceAttr(resourceName, "bypass_code_settings.0.self_service_generation_enabled", "false"), + resource.TestCheckResourceAttr(resourceName, "client_app_settings.#", "1"), + resource.TestCheckResourceAttr(resourceName, "client_app_settings.0.device_protection_policy", "APP_PIN"), + resource.TestCheckResourceAttr(resourceName, "client_app_settings.0.initial_lockout_period_in_secs", "60"), + resource.TestCheckResourceAttr(resourceName, "client_app_settings.0.key_pair_length", "32"), + resource.TestCheckResourceAttr(resourceName, "client_app_settings.0.lockout_escalation_pattern", "Linear"), + resource.TestCheckResourceAttr(resourceName, "client_app_settings.0.max_failures_before_lockout", "5"), + resource.TestCheckResourceAttr(resourceName, "client_app_settings.0.max_failures_before_warning", "0"), + resource.TestCheckResourceAttr(resourceName, "client_app_settings.0.max_lockout_interval_in_secs", "90"), + resource.TestCheckResourceAttr(resourceName, "client_app_settings.0.min_pin_length", "10"), + resource.TestCheckResourceAttr(resourceName, "client_app_settings.0.policy_update_freq_in_days", "10"), + resource.TestCheckResourceAttr(resourceName, "client_app_settings.0.request_signing_algo", "SHA256withRSA"), + resource.TestCheckResourceAttr(resourceName, "client_app_settings.0.shared_secret_encoding", "Base32"), + resource.TestCheckResourceAttr(resourceName, "client_app_settings.0.unlock_app_for_each_request_enabled", "true"), + resource.TestCheckResourceAttr(resourceName, "client_app_settings.0.unlock_app_interval_in_secs", "0"), + resource.TestCheckResourceAttr(resourceName, "client_app_settings.0.unlock_on_app_foreground_enabled", "true"), + resource.TestCheckResourceAttr(resourceName, "client_app_settings.0.unlock_on_app_start_enabled", "true"), + resource.TestCheckResourceAttr(resourceName, "compliance_policy.#", "10"), + resource.TestCheckResourceAttr(resourceName, "compliance_policy.0.action", "Block"), + resource.TestCheckResourceAttr(resourceName, "compliance_policy.0.name", "lockScreenRequired"), + resource.TestCheckResourceAttr(resourceName, "compliance_policy.0.value", "true"), + resource.TestCheckResourceAttr(resourceName, "email_enabled", "false"), + resource.TestCheckResourceAttr(resourceName, "email_settings.#", "1"), + resource.TestCheckResourceAttr(resourceName, "email_settings.0.email_link_custom_url", "emailLinkCustomUrl"), + resource.TestCheckResourceAttr(resourceName, "email_settings.0.email_link_enabled", "false"), + resource.TestCheckResourceAttr(resourceName, "endpoint_restrictions.#", "1"), + resource.TestCheckResourceAttr(resourceName, "endpoint_restrictions.0.max_endpoint_trust_duration_in_days", "10"), + resource.TestCheckResourceAttr(resourceName, "endpoint_restrictions.0.max_enrolled_devices", "10"), + resource.TestCheckResourceAttr(resourceName, "endpoint_restrictions.0.max_incorrect_attempts", "10"), + resource.TestCheckResourceAttr(resourceName, "endpoint_restrictions.0.max_trusted_endpoints", "10"), + resource.TestCheckResourceAttr(resourceName, "endpoint_restrictions.0.trusted_endpoints_enabled", "false"), + resource.TestCheckResourceAttr(resourceName, "fido_authenticator_enabled", "false"), + resource.TestCheckResourceAttr(resourceName, "hide_backup_factor_enabled", "false"), + resource.TestCheckResourceAttr(resourceName, "id", "AuthenticationFactorSettings"), + resource.TestCheckResourceAttrSet(resourceName, "idcs_endpoint"), + resource.TestCheckResourceAttr(resourceName, "identity_store_settings.#", "1"), + resource.TestCheckResourceAttr(resourceName, "identity_store_settings.0.mobile_number_enabled", "false"), + resource.TestCheckResourceAttr(resourceName, "identity_store_settings.0.mobile_number_update_enabled", "false"), + resource.TestCheckResourceAttr(resourceName, "mfa_enrollment_type", "Optional"), + resource.TestCheckResourceAttr(resourceName, "notification_settings.#", "1"), + resource.TestCheckResourceAttr(resourceName, "notification_settings.0.pull_enabled", "false"), + resource.TestCheckResourceAttr(resourceName, "phone_call_enabled", "false"), + resource.TestCheckResourceAttr(resourceName, "push_enabled", "false"), + resource.TestCheckResourceAttr(resourceName, "schemas.#", "1"), + resource.TestCheckResourceAttr(resourceName, "security_questions_enabled", "false"), + resource.TestCheckResourceAttr(resourceName, "sms_enabled", "true"), + resource.TestCheckResourceAttr(resourceName, "tags.#", "1"), + resource.TestCheckResourceAttr(resourceName, "tags.0.key", "key"), + resource.TestCheckResourceAttr(resourceName, "tags.0.value", "value"), + resource.TestCheckResourceAttr(resourceName, "third_party_factor.#", "1"), + resource.TestCheckResourceAttr(resourceName, "third_party_factor.0.duo_security", "false"), + resource.TestCheckResourceAttr(resourceName, "totp_enabled", "false"), + resource.TestCheckResourceAttr(resourceName, "totp_settings.#", "1"), + resource.TestCheckResourceAttr(resourceName, "totp_settings.0.email_otp_validity_duration_in_mins", "10"), + resource.TestCheckResourceAttr(resourceName, "totp_settings.0.email_passcode_length", "10"), + resource.TestCheckResourceAttr(resourceName, "totp_settings.0.hashing_algorithm", "SHA1"), + resource.TestCheckResourceAttr(resourceName, "totp_settings.0.jwt_validity_duration_in_secs", "30"), + resource.TestCheckResourceAttr(resourceName, "totp_settings.0.key_refresh_interval_in_days", "30"), + resource.TestCheckResourceAttr(resourceName, "totp_settings.0.passcode_length", "10"), + resource.TestCheckResourceAttr(resourceName, "totp_settings.0.sms_otp_validity_duration_in_mins", "10"), + resource.TestCheckResourceAttr(resourceName, "totp_settings.0.sms_passcode_length", "10"), + resource.TestCheckResourceAttr(resourceName, "totp_settings.0.time_step_in_secs", "300"), + resource.TestCheckResourceAttr(resourceName, "totp_settings.0.time_step_tolerance", "2"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings.0.attestation", "DIRECT"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings.0.authenticator_selection_attachment", "PLATFORM"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings.0.authenticator_selection_require_resident_key", "true"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings.0.authenticator_selection_resident_key", "REQUIRED"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings.0.authenticator_selection_user_verification", "REQUIRED"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings.0.domain_validation_level", "0"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings.0.exclude_credentials", "true"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings.0.public_key_types.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings.0.timeout", "10000"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionthird_party_authentication_factor_settings.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionthird_party_authentication_factor_settings.0.duo_security_settings.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionthird_party_authentication_factor_settings.0.duo_security_settings.0.api_hostname", "apiHostname"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionthird_party_authentication_factor_settings.0.duo_security_settings.0.integration_key", "integrationKey"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionthird_party_authentication_factor_settings.0.duo_security_settings.0.secret_key", "secretKey"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionthird_party_authentication_factor_settings.0.duo_security_settings.0.user_mapping_attribute", "primaryEmail"), + + func(s *terraform.State) (err error) { + resId, err = acctest.FromInstanceState(s, resourceName, "id") + idcsEndpoint, err := acctest.FromInstanceState(s, "data.oci_identity_domain.test_domain", "url") + if err != nil { + return err + } + + compositeId := getIdentityDomainsCompositeId(idcsEndpoint, "authenticationFactorSettings", resId) + log.Printf("[DEBUG] Composite ID to import: %s", compositeId) + if isEnableExportCompartment, _ := strconv.ParseBool(utils.GetEnvSettingWithDefault("enable_export_compartment", "true")); isEnableExportCompartment { + if errExport := resourcediscovery.TestExportCompartmentWithResourceName(&compositeId, &compartmentId, resourceName); errExport != nil { + return errExport + } + } + return err + }, + ), + }, + + // verify updates to updatable parameters + { + Config: config + compartmentIdVariableStr + IdentityDomainsAuthenticationFactorSettingResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_authentication_factor_setting", "test_authentication_factor_setting", acctest.Optional, acctest.Update, IdentityDomainsAuthenticationFactorSettingRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(resourceName, "attribute_sets.#", "1"), + resource.TestCheckResourceAttrSet(resourceName, "authentication_factor_setting_id"), + resource.TestCheckResourceAttr(resourceName, "auto_enroll_email_factor_disabled", "true"), + resource.TestCheckResourceAttr(resourceName, "bypass_code_enabled", "true"), + resource.TestCheckResourceAttr(resourceName, "bypass_code_settings.#", "1"), + resource.TestCheckResourceAttr(resourceName, "bypass_code_settings.0.help_desk_code_expiry_in_mins", "11"), + resource.TestCheckResourceAttr(resourceName, "bypass_code_settings.0.help_desk_generation_enabled", "true"), + resource.TestCheckResourceAttr(resourceName, "bypass_code_settings.0.help_desk_max_usage", "11"), + resource.TestCheckResourceAttr(resourceName, "bypass_code_settings.0.length", "11"), + resource.TestCheckResourceAttr(resourceName, "bypass_code_settings.0.max_active", "6"), + resource.TestCheckResourceAttr(resourceName, "bypass_code_settings.0.self_service_generation_enabled", "true"), + resource.TestCheckResourceAttr(resourceName, "client_app_settings.#", "1"), + resource.TestCheckResourceAttr(resourceName, "client_app_settings.0.device_protection_policy", "NONE"), + resource.TestCheckResourceAttr(resourceName, "client_app_settings.0.initial_lockout_period_in_secs", "30"), + resource.TestCheckResourceAttr(resourceName, "client_app_settings.0.key_pair_length", "2048"), + resource.TestCheckResourceAttr(resourceName, "client_app_settings.0.lockout_escalation_pattern", "Constant"), + resource.TestCheckResourceAttr(resourceName, "client_app_settings.0.max_failures_before_lockout", "10"), + resource.TestCheckResourceAttr(resourceName, "client_app_settings.0.max_failures_before_warning", "5"), + resource.TestCheckResourceAttr(resourceName, "client_app_settings.0.max_lockout_interval_in_secs", "86400"), + resource.TestCheckResourceAttr(resourceName, "client_app_settings.0.min_pin_length", "6"), + resource.TestCheckResourceAttr(resourceName, "client_app_settings.0.policy_update_freq_in_days", "11"), + resource.TestCheckResourceAttr(resourceName, "client_app_settings.0.request_signing_algo", "SHA384withRSA"), + resource.TestCheckResourceAttr(resourceName, "client_app_settings.0.shared_secret_encoding", "Base64"), + resource.TestCheckResourceAttr(resourceName, "client_app_settings.0.unlock_app_for_each_request_enabled", "false"), + resource.TestCheckResourceAttr(resourceName, "client_app_settings.0.unlock_app_interval_in_secs", "300"), + resource.TestCheckResourceAttr(resourceName, "client_app_settings.0.unlock_on_app_foreground_enabled", "false"), + resource.TestCheckResourceAttr(resourceName, "client_app_settings.0.unlock_on_app_start_enabled", "false"), + resource.TestCheckResourceAttr(resourceName, "compliance_policy.#", "10"), + resource.TestCheckResourceAttr(resourceName, "compliance_policy.0.action", "Allow"), + resource.TestCheckResourceAttr(resourceName, "compliance_policy.0.name", "lockScreenRequired"), + resource.TestCheckResourceAttr(resourceName, "compliance_policy.0.value", "false"), + resource.TestCheckResourceAttr(resourceName, "email_enabled", "true"), + resource.TestCheckResourceAttr(resourceName, "email_settings.#", "1"), + resource.TestCheckResourceAttr(resourceName, "email_settings.0.email_link_custom_url", "emailLinkCustomUrl2"), + resource.TestCheckResourceAttr(resourceName, "email_settings.0.email_link_enabled", "true"), + resource.TestCheckResourceAttr(resourceName, "endpoint_restrictions.#", "1"), + resource.TestCheckResourceAttr(resourceName, "endpoint_restrictions.0.max_endpoint_trust_duration_in_days", "180"), + resource.TestCheckResourceAttr(resourceName, "endpoint_restrictions.0.max_enrolled_devices", "11"), + resource.TestCheckResourceAttr(resourceName, "endpoint_restrictions.0.max_incorrect_attempts", "20"), + resource.TestCheckResourceAttr(resourceName, "endpoint_restrictions.0.max_trusted_endpoints", "20"), + resource.TestCheckResourceAttr(resourceName, "endpoint_restrictions.0.trusted_endpoints_enabled", "true"), + resource.TestCheckResourceAttr(resourceName, "fido_authenticator_enabled", "true"), + resource.TestCheckResourceAttr(resourceName, "hide_backup_factor_enabled", "true"), + resource.TestCheckResourceAttr(resourceName, "id", "AuthenticationFactorSettings"), + resource.TestCheckResourceAttrSet(resourceName, "idcs_endpoint"), + resource.TestCheckResourceAttr(resourceName, "identity_store_settings.#", "1"), + resource.TestCheckResourceAttr(resourceName, "identity_store_settings.0.mobile_number_enabled", "true"), + resource.TestCheckResourceAttr(resourceName, "identity_store_settings.0.mobile_number_update_enabled", "true"), + resource.TestCheckResourceAttr(resourceName, "mfa_enrollment_type", "Optional"), + resource.TestCheckResourceAttr(resourceName, "notification_settings.#", "1"), + resource.TestCheckResourceAttr(resourceName, "notification_settings.0.pull_enabled", "true"), + resource.TestCheckResourceAttr(resourceName, "phone_call_enabled", "false"), + resource.TestCheckResourceAttr(resourceName, "push_enabled", "true"), + resource.TestCheckResourceAttr(resourceName, "schemas.#", "1"), + resource.TestCheckResourceAttr(resourceName, "security_questions_enabled", "true"), + resource.TestCheckResourceAttr(resourceName, "sms_enabled", "true"), + resource.TestCheckResourceAttr(resourceName, "tags.#", "1"), + resource.TestCheckResourceAttr(resourceName, "tags.0.key", "key2"), + resource.TestCheckResourceAttr(resourceName, "tags.0.value", "value2"), + resource.TestCheckResourceAttr(resourceName, "third_party_factor.#", "1"), + resource.TestCheckResourceAttr(resourceName, "third_party_factor.0.duo_security", "true"), + resource.TestCheckResourceAttr(resourceName, "totp_enabled", "true"), + resource.TestCheckResourceAttr(resourceName, "totp_settings.#", "1"), + resource.TestCheckResourceAttr(resourceName, "totp_settings.0.email_otp_validity_duration_in_mins", "11"), + resource.TestCheckResourceAttr(resourceName, "totp_settings.0.email_passcode_length", "6"), + resource.TestCheckResourceAttr(resourceName, "totp_settings.0.hashing_algorithm", "SHA256"), + resource.TestCheckResourceAttr(resourceName, "totp_settings.0.jwt_validity_duration_in_secs", "300"), + resource.TestCheckResourceAttr(resourceName, "totp_settings.0.key_refresh_interval_in_days", "60"), + resource.TestCheckResourceAttr(resourceName, "totp_settings.0.passcode_length", "6"), + resource.TestCheckResourceAttr(resourceName, "totp_settings.0.sms_otp_validity_duration_in_mins", "6"), + resource.TestCheckResourceAttr(resourceName, "totp_settings.0.sms_passcode_length", "6"), + resource.TestCheckResourceAttr(resourceName, "totp_settings.0.time_step_in_secs", "30"), + resource.TestCheckResourceAttr(resourceName, "totp_settings.0.time_step_tolerance", "3"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings.0.attestation", "NONE"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings.0.authenticator_selection_attachment", "BOTH"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings.0.authenticator_selection_require_resident_key", "false"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings.0.authenticator_selection_resident_key", "NONE"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings.0.authenticator_selection_user_verification", "PREFERRED"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings.0.domain_validation_level", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings.0.exclude_credentials", "false"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings.0.public_key_types.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings.0.timeout", "60000"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionthird_party_authentication_factor_settings.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionthird_party_authentication_factor_settings.0.duo_security_settings.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionthird_party_authentication_factor_settings.0.duo_security_settings.0.api_hostname", "apiHostname2"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionthird_party_authentication_factor_settings.0.duo_security_settings.0.integration_key", "integrationKey2"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionthird_party_authentication_factor_settings.0.duo_security_settings.0.secret_key", "secretKey2"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionthird_party_authentication_factor_settings.0.duo_security_settings.0.user_mapping_attribute", "userName"), + + func(s *terraform.State) (err error) { + resId2, err = acctest.FromInstanceState(s, resourceName, "id") + if resId != resId2 { + return fmt.Errorf("Resource recreated when it was supposed to be updated.") + } + return err + }, + ), + }, + // verify datasource + { + Config: config + + acctest.GenerateDataSourceFromRepresentationMap("oci_identity_domains_authentication_factor_settings", "test_authentication_factor_settings", acctest.Optional, acctest.Update, IdentityDomainsIdentityDomainsAuthenticationFactorSettingDataSourceRepresentation) + + compartmentIdVariableStr + IdentityDomainsAuthenticationFactorSettingResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_authentication_factor_setting", "test_authentication_factor_setting", acctest.Optional, acctest.Update, IdentityDomainsAuthenticationFactorSettingRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(datasourceName, "attribute_sets.#", "1"), + + resource.TestCheckResourceAttr(datasourceName, "authentication_factor_settings.#", "1"), + resource.TestMatchResourceAttr(datasourceName, "authentication_factor_settings.0.schemas.#", regexp.MustCompile("[1-9]+")), + ), + }, + // verify singular datasource + { + Config: config + + acctest.GenerateDataSourceFromRepresentationMap("oci_identity_domains_authentication_factor_setting", "test_authentication_factor_setting", acctest.Required, acctest.Create, IdentityDomainsIdentityDomainsAuthenticationFactorSettingSingularDataSourceRepresentation) + + compartmentIdVariableStr + IdentityDomainsAuthenticationFactorSettingResourceConfig, + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttrSet(singularDatasourceName, "authentication_factor_setting_id"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "idcs_endpoint"), + + resource.TestCheckResourceAttr(singularDatasourceName, "auto_enroll_email_factor_disabled", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "bypass_code_enabled", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "bypass_code_settings.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "bypass_code_settings.0.help_desk_code_expiry_in_mins", "11"), + resource.TestCheckResourceAttr(singularDatasourceName, "bypass_code_settings.0.help_desk_generation_enabled", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "bypass_code_settings.0.help_desk_max_usage", "11"), + resource.TestCheckResourceAttr(singularDatasourceName, "bypass_code_settings.0.length", "11"), + resource.TestCheckResourceAttr(singularDatasourceName, "bypass_code_settings.0.max_active", "6"), + resource.TestCheckResourceAttr(singularDatasourceName, "bypass_code_settings.0.self_service_generation_enabled", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "client_app_settings.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "client_app_settings.0.device_protection_policy", "NONE"), + resource.TestCheckResourceAttr(singularDatasourceName, "client_app_settings.0.initial_lockout_period_in_secs", "30"), + resource.TestCheckResourceAttr(singularDatasourceName, "client_app_settings.0.key_pair_length", "2048"), + resource.TestCheckResourceAttr(singularDatasourceName, "client_app_settings.0.lockout_escalation_pattern", "Constant"), + resource.TestCheckResourceAttr(singularDatasourceName, "client_app_settings.0.max_failures_before_lockout", "10"), + resource.TestCheckResourceAttr(singularDatasourceName, "client_app_settings.0.max_failures_before_warning", "5"), + resource.TestCheckResourceAttr(singularDatasourceName, "client_app_settings.0.max_lockout_interval_in_secs", "86400"), + resource.TestCheckResourceAttr(singularDatasourceName, "client_app_settings.0.min_pin_length", "6"), + resource.TestCheckResourceAttr(singularDatasourceName, "client_app_settings.0.policy_update_freq_in_days", "11"), + resource.TestCheckResourceAttr(singularDatasourceName, "client_app_settings.0.request_signing_algo", "SHA384withRSA"), + resource.TestCheckResourceAttr(singularDatasourceName, "client_app_settings.0.shared_secret_encoding", "Base64"), + resource.TestCheckResourceAttr(singularDatasourceName, "client_app_settings.0.unlock_app_for_each_request_enabled", "false"), + resource.TestCheckResourceAttr(singularDatasourceName, "client_app_settings.0.unlock_app_interval_in_secs", "300"), + resource.TestCheckResourceAttr(singularDatasourceName, "client_app_settings.0.unlock_on_app_foreground_enabled", "false"), + resource.TestCheckResourceAttr(singularDatasourceName, "client_app_settings.0.unlock_on_app_start_enabled", "false"), + resource.TestCheckResourceAttr(singularDatasourceName, "compliance_policy.#", "10"), + resource.TestCheckResourceAttr(singularDatasourceName, "compliance_policy.0.action", "Allow"), + resource.TestCheckResourceAttr(singularDatasourceName, "compliance_policy.0.name", "lockScreenRequired"), + resource.TestCheckResourceAttr(singularDatasourceName, "compliance_policy.0.value", "false"), + resource.TestCheckResourceAttr(singularDatasourceName, "email_enabled", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "email_settings.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "email_settings.0.email_link_custom_url", "emailLinkCustomUrl2"), + resource.TestCheckResourceAttr(singularDatasourceName, "email_settings.0.email_link_enabled", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "endpoint_restrictions.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "endpoint_restrictions.0.max_endpoint_trust_duration_in_days", "180"), + resource.TestCheckResourceAttr(singularDatasourceName, "endpoint_restrictions.0.max_enrolled_devices", "11"), + resource.TestCheckResourceAttr(singularDatasourceName, "endpoint_restrictions.0.max_incorrect_attempts", "20"), + resource.TestCheckResourceAttr(singularDatasourceName, "endpoint_restrictions.0.max_trusted_endpoints", "20"), + resource.TestCheckResourceAttr(singularDatasourceName, "endpoint_restrictions.0.trusted_endpoints_enabled", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "fido_authenticator_enabled", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "hide_backup_factor_enabled", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "id", "AuthenticationFactorSettings"), + resource.TestCheckResourceAttr(singularDatasourceName, "identity_store_settings.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "identity_store_settings.0.mobile_number_enabled", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "identity_store_settings.0.mobile_number_update_enabled", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "mfa_enrollment_type", "Optional"), + resource.TestCheckResourceAttr(singularDatasourceName, "notification_settings.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "notification_settings.0.pull_enabled", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "phone_call_enabled", "false"), + resource.TestCheckResourceAttr(singularDatasourceName, "push_enabled", "true"), + resource.TestMatchResourceAttr(singularDatasourceName, "schemas.#", regexp.MustCompile("[1-9]+")), + resource.TestCheckResourceAttr(singularDatasourceName, "security_questions_enabled", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "sms_enabled", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "third_party_factor.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "third_party_factor.0.duo_security", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "totp_enabled", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "totp_settings.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "totp_settings.0.email_otp_validity_duration_in_mins", "11"), + resource.TestCheckResourceAttr(singularDatasourceName, "totp_settings.0.email_passcode_length", "6"), + resource.TestCheckResourceAttr(singularDatasourceName, "totp_settings.0.hashing_algorithm", "SHA256"), + resource.TestCheckResourceAttr(singularDatasourceName, "totp_settings.0.jwt_validity_duration_in_secs", "300"), + resource.TestCheckResourceAttr(singularDatasourceName, "totp_settings.0.key_refresh_interval_in_days", "60"), + resource.TestCheckResourceAttr(singularDatasourceName, "totp_settings.0.passcode_length", "6"), + resource.TestCheckResourceAttr(singularDatasourceName, "totp_settings.0.sms_otp_validity_duration_in_mins", "6"), + resource.TestCheckResourceAttr(singularDatasourceName, "totp_settings.0.sms_passcode_length", "6"), + resource.TestCheckResourceAttr(singularDatasourceName, "totp_settings.0.time_step_in_secs", "30"), + resource.TestCheckResourceAttr(singularDatasourceName, "totp_settings.0.time_step_tolerance", "3"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings.0.attestation", "NONE"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings.0.authenticator_selection_attachment", "BOTH"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings.0.authenticator_selection_require_resident_key", "false"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings.0.authenticator_selection_resident_key", "NONE"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings.0.authenticator_selection_user_verification", "PREFERRED"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings.0.domain_validation_level", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings.0.exclude_credentials", "false"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings.0.public_key_types.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings.0.timeout", "60000"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionthird_party_authentication_factor_settings.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionthird_party_authentication_factor_settings.0.duo_security_settings.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionthird_party_authentication_factor_settings.0.duo_security_settings.0.api_hostname", "apiHostname2"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionthird_party_authentication_factor_settings.0.duo_security_settings.0.integration_key", "integrationKey2"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionthird_party_authentication_factor_settings.0.duo_security_settings.0.secret_key", "secretKey2"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionthird_party_authentication_factor_settings.0.duo_security_settings.0.user_mapping_attribute", "userName"), + ), + }, + // verify resource import + { + Config: config + IdentityDomainsAuthenticationFactorSettingRequiredOnlyResource, + ImportState: true, + ImportStateVerify: true, + ImportStateIdFunc: getIdentityDomainsImportIdFn("oci_identity_domains_authentication_factor_setting", "authenticationFactorSettings"), + ImportStateVerifyIgnore: []string{ + "attribute_sets", + "attributes", + "authorization", + "idcs_endpoint", + "resource_type_schema_version", + "idcs_last_upgraded_in_release", + "tags", + "authentication_factor_setting_id", + }, + ResourceName: resourceName, + }, + }) +} diff --git a/internal/integrationtest/identity_domains_customer_secret_key_test.go b/internal/integrationtest/identity_domains_customer_secret_key_test.go new file mode 100644 index 00000000000..107c74f09b1 --- /dev/null +++ b/internal/integrationtest/identity_domains_customer_secret_key_test.go @@ -0,0 +1,315 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package integrationtest + +import ( + "context" + "fmt" + "log" + "strconv" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + "github.com/oracle/terraform-provider-oci/internal/resourcediscovery" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + "github.com/oracle/oci-go-sdk/v65/common" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/httpreplay" + "github.com/oracle/terraform-provider-oci/internal/acctest" + tf_client "github.com/oracle/terraform-provider-oci/internal/client" + + "github.com/oracle/terraform-provider-oci/internal/tfresource" + "github.com/oracle/terraform-provider-oci/internal/utils" +) + +var ( + IdentityDomainsCustomerSecretKeyRequiredOnlyResource = IdentityDomainsCustomerSecretKeyResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_customer_secret_key", "test_customer_secret_key", acctest.Required, acctest.Create, IdentityDomainsCustomerSecretKeyRepresentation) + + IdentityDomainsCustomerSecretKeyResourceConfig = IdentityDomainsCustomerSecretKeyResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_customer_secret_key", "test_customer_secret_key", acctest.Optional, acctest.Update, IdentityDomainsCustomerSecretKeyRepresentation) + + IdentityDomainsIdentityDomainsCustomerSecretKeySingularDataSourceRepresentation = map[string]interface{}{ + "customer_secret_key_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_identity_domains_customer_secret_key.test_customer_secret_key.id}`}, + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "attribute_sets": acctest.Representation{RepType: acctest.Optional, Create: []string{`all`}}, + } + + IdentityDomainsIdentityDomainsCustomerSecretKeyDataSourceRepresentation = map[string]interface{}{ + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "customer_secret_key_count": acctest.Representation{RepType: acctest.Optional, Create: `10`}, + "customer_secret_key_filter": acctest.Representation{RepType: acctest.Optional, Create: `user.value eq \"${oci_identity_domains_user.test_user.id}\"`}, + "attribute_sets": acctest.Representation{RepType: acctest.Optional, Create: []string{`all`}}, + "start_index": acctest.Representation{RepType: acctest.Optional, Create: `1`}, + } + + IdentityDomainsCustomerSecretKeyRepresentation = map[string]interface{}{ + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "schemas": acctest.Representation{RepType: acctest.Required, Create: []string{`urn:ietf:params:scim:schemas:oracle:idcs:customerSecretKey`}}, + "attribute_sets": acctest.Representation{RepType: acctest.Optional, Create: []string{`all`}}, + "description": acctest.Representation{RepType: acctest.Optional, Create: `description`}, + "display_name": acctest.Representation{RepType: acctest.Optional, Create: `displayName`}, + "expires_on": acctest.Representation{RepType: acctest.Optional, Create: `2030-01-01T00:00:00Z`}, + "status": acctest.Representation{RepType: acctest.Optional, Create: `ACTIVE`}, + "tags": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsCustomerSecretKeyTagsRepresentation}, + "urnietfparamsscimschemasoracleidcsextensionself_change_user": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsCustomerSecretKeyUrnietfparamsscimschemasoracleidcsextensionselfChangeUserRepresentation}, + "user": acctest.RepresentationGroup{RepType: acctest.Required, Group: IdentityDomainsCustomerSecretKeyUserRepresentation}, + "lifecycle": acctest.RepresentationGroup{RepType: acctest.Optional, Group: ignoreChangeForIdentityDomainsCustomerSecretKey}, + } + + ignoreChangeForIdentityDomainsCustomerSecretKey = map[string]interface{}{ + "ignore_changes": acctest.Representation{RepType: acctest.Optional, Create: []string{ + // properties that are `returned:never` + `status`, + `urnietfparamsscimschemasoracleidcsextensionself_change_user`, + }}, + } + IdentityDomainsCustomerSecretKeyTagsRepresentation = map[string]interface{}{ + "key": acctest.Representation{RepType: acctest.Required, Create: `key`}, + "value": acctest.Representation{RepType: acctest.Required, Create: `value`}, + } + IdentityDomainsCustomerSecretKeyUrnietfparamsscimschemasoracleidcsextensionselfChangeUserRepresentation = map[string]interface{}{ + "allow_self_change": acctest.Representation{RepType: acctest.Optional, Create: `false`}, + } + IdentityDomainsCustomerSecretKeyUserRepresentation = map[string]interface{}{ + "value": acctest.Representation{RepType: acctest.Required, Create: `${oci_identity_domains_user.test_user.id}`}, + } + + IdentityDomainsCustomerSecretKeyResourceDependencies = TestDomainDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_user", "test_user", acctest.Required, acctest.Create, IdentityDomainsUserRepresentation) +) + +// issue-routing-tag: identity_domains/default +func TestIdentityDomainsCustomerSecretKeyResource_basic(t *testing.T) { + httpreplay.SetScenario("TestIdentityDomainsCustomerSecretKeyResource_basic") + defer httpreplay.SaveScenario() + + config := acctest.ProviderTestConfig() + + compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid") + compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId) + + resourceName := "oci_identity_domains_customer_secret_key.test_customer_secret_key" + datasourceName := "data.oci_identity_domains_customer_secret_keys.test_customer_secret_keys" + singularDatasourceName := "data.oci_identity_domains_customer_secret_key.test_customer_secret_key" + + var resId string + // Save TF content to Create resource with optional properties. This has to be exactly the same as the config part in the "create with optionals" step in the test. + acctest.SaveConfigContent(config+compartmentIdVariableStr+IdentityDomainsCustomerSecretKeyResourceDependencies+ + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_customer_secret_key", "test_customer_secret_key", acctest.Optional, acctest.Create, IdentityDomainsCustomerSecretKeyRepresentation), "identitydomains", "customerSecretKey", t) + + print(config + compartmentIdVariableStr + IdentityDomainsCustomerSecretKeyResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_customer_secret_key", "test_customer_secret_key", acctest.Optional, acctest.Create, IdentityDomainsCustomerSecretKeyRepresentation)) + + acctest.ResourceTest(t, testAccCheckIdentityDomainsCustomerSecretKeyDestroy, []resource.TestStep{ + // verify Create + { + Config: config + compartmentIdVariableStr + IdentityDomainsCustomerSecretKeyResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_customer_secret_key", "test_customer_secret_key", acctest.Required, acctest.Create, IdentityDomainsCustomerSecretKeyRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttrSet(resourceName, "idcs_endpoint"), + resource.TestCheckResourceAttr(resourceName, "schemas.#", "1"), + ), + }, + + // delete before next Create + { + Config: config + compartmentIdVariableStr + IdentityDomainsCustomerSecretKeyResourceDependencies, + }, + // verify Create with optionals + { + Config: config + compartmentIdVariableStr + IdentityDomainsCustomerSecretKeyResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_customer_secret_key", "test_customer_secret_key", acctest.Optional, acctest.Create, IdentityDomainsCustomerSecretKeyRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(resourceName, "attribute_sets.#", "1"), + resource.TestCheckResourceAttr(resourceName, "description", "description"), + resource.TestCheckResourceAttr(resourceName, "display_name", "displayName"), + resource.TestCheckResourceAttr(resourceName, "expires_on", "2030-01-01T00:00:00Z"), + resource.TestCheckResourceAttrSet(resourceName, "id"), + resource.TestCheckResourceAttr(resourceName, "idcs_created_by.#", "1"), + resource.TestCheckResourceAttrSet(resourceName, "idcs_endpoint"), + resource.TestCheckResourceAttr(resourceName, "schemas.#", "1"), + resource.TestCheckResourceAttr(resourceName, "tags.#", "1"), + resource.TestCheckResourceAttr(resourceName, "tags.0.key", "key"), + resource.TestCheckResourceAttr(resourceName, "tags.0.value", "value"), + resource.TestCheckResourceAttr(resourceName, "user.#", "1"), + resource.TestCheckResourceAttrSet(resourceName, "user.0.value"), + + func(s *terraform.State) (err error) { + resId, err = acctest.FromInstanceState(s, resourceName, "id") + idcsEndpoint, err := acctest.FromInstanceState(s, "data.oci_identity_domain.test_domain", "url") + if err != nil { + return err + } + + compositeId := getIdentityDomainsCompositeId(idcsEndpoint, "customerSecretKeys", resId) + log.Printf("[DEBUG] Composite ID to import: %s", compositeId) + if isEnableExportCompartment, _ := strconv.ParseBool(utils.GetEnvSettingWithDefault("enable_export_compartment", "true")); isEnableExportCompartment { + if errExport := resourcediscovery.TestExportCompartmentWithResourceName(&compositeId, &compartmentId, resourceName); errExport != nil { + return errExport + } + } + return err + }, + ), + }, + + // verify datasource + { + Config: config + + acctest.GenerateDataSourceFromRepresentationMap("oci_identity_domains_customer_secret_keys", "test_customer_secret_keys", acctest.Optional, acctest.Update, IdentityDomainsIdentityDomainsCustomerSecretKeyDataSourceRepresentation) + + compartmentIdVariableStr + IdentityDomainsCustomerSecretKeyResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_customer_secret_key", "test_customer_secret_key", acctest.Optional, acctest.Update, IdentityDomainsCustomerSecretKeyRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(datasourceName, "customer_secret_key_count", "10"), + resource.TestCheckResourceAttr(datasourceName, "attribute_sets.#", "1"), + resource.TestCheckResourceAttr(datasourceName, "start_index", "1"), + + resource.TestCheckResourceAttr(datasourceName, "customer_secret_keys.#", "1"), + resource.TestCheckResourceAttr(datasourceName, "customer_secret_keys.0.schemas.#", "1"), + ), + }, + // verify singular datasource + { + Config: config + + acctest.GenerateDataSourceFromRepresentationMap("oci_identity_domains_customer_secret_key", "test_customer_secret_key", acctest.Required, acctest.Create, IdentityDomainsIdentityDomainsCustomerSecretKeySingularDataSourceRepresentation) + + compartmentIdVariableStr + IdentityDomainsCustomerSecretKeyResourceConfig, + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttrSet(singularDatasourceName, "customer_secret_key_id"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "idcs_endpoint"), + + resource.TestCheckResourceAttr(singularDatasourceName, "description", "description"), + resource.TestCheckResourceAttr(singularDatasourceName, "display_name", "displayName"), + resource.TestCheckResourceAttr(singularDatasourceName, "expires_on", "2030-01-01T00:00:00Z"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "id"), + resource.TestCheckResourceAttr(singularDatasourceName, "idcs_created_by.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "schemas.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "user.#", "1"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "user.0.value"), + ), + }, + // verify resource import + { + Config: config + IdentityDomainsCustomerSecretKeyRequiredOnlyResource, + ImportState: true, + ImportStateVerify: true, + ImportStateIdFunc: getIdentityDomainsImportIdFn("oci_identity_domains_customer_secret_key", "customerSecretKeys"), + ImportStateVerifyIgnore: []string{ + "attribute_sets", + "attributes", + "authorization", + "idcs_endpoint", + "resource_type_schema_version", + "tags", + }, + ResourceName: resourceName, + }, + }) +} + +func testAccCheckIdentityDomainsCustomerSecretKeyDestroy(s *terraform.State) error { + noResourceFound := true + client := acctest.TestAccProvider.Meta().(*tf_client.OracleClients).IdentityDomainsClient() + for _, rs := range s.RootModule().Resources { + if rs.Type == "oci_identity_domains_customer_secret_key" { + noResourceFound = false + request := oci_identity_domains.GetCustomerSecretKeyRequest{} + + if value, ok := rs.Primary.Attributes["authorization"]; ok { + request.Authorization = &value + } + + tmp := rs.Primary.ID + request.CustomerSecretKeyId = &tmp + + if value, ok := rs.Primary.Attributes["idcs_endpoint"]; ok { + client.Host = value + } + + if value, ok := rs.Primary.Attributes["resource_type_schema_version"]; ok { + request.ResourceTypeSchemaVersion = &value + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(true, "identity_domains") + + _, err := client.GetCustomerSecretKey(context.Background(), request) + + if err == nil { + return fmt.Errorf("resource still exists") + } + + //Verify that exception is for '404 not found'. + if failure, isServiceError := common.IsServiceError(err); !isServiceError || failure.GetHTTPStatusCode() != 404 { + return err + } + } + } + if noResourceFound { + return fmt.Errorf("at least one resource was expected from the state file, but could not be found") + } + + return nil +} + +func init() { + if acctest.DependencyGraph == nil { + acctest.InitDependencyGraph() + } + if !acctest.InSweeperExcludeList("IdentityDomainsCustomerSecretKey") { + resource.AddTestSweepers("IdentityDomainsCustomerSecretKey", &resource.Sweeper{ + Name: "IdentityDomainsCustomerSecretKey", + Dependencies: acctest.DependencyGraph["customerSecretKey"], + F: sweepIdentityDomainsCustomerSecretKeyResource, + }) + } +} + +func sweepIdentityDomainsCustomerSecretKeyResource(compartment string) error { + identityDomainsClient := acctest.GetTestClients(&schema.ResourceData{}).IdentityDomainsClient() + customerSecretKeyIds, err := getIdentityDomainsCustomerSecretKeyIds(compartment) + if err != nil { + return err + } + for _, customerSecretKeyId := range customerSecretKeyIds { + if ok := acctest.SweeperDefaultResourceId[customerSecretKeyId]; !ok { + deleteCustomerSecretKeyRequest := oci_identity_domains.DeleteCustomerSecretKeyRequest{} + + deleteCustomerSecretKeyRequest.CustomerSecretKeyId = &customerSecretKeyId + + deleteCustomerSecretKeyRequest.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(true, "identity_domains") + _, error := identityDomainsClient.DeleteCustomerSecretKey(context.Background(), deleteCustomerSecretKeyRequest) + if error != nil { + fmt.Printf("Error deleting CustomerSecretKey %s %s, It is possible that the resource is already deleted. Please verify manually \n", customerSecretKeyId, error) + continue + } + } + } + return nil +} + +func getIdentityDomainsCustomerSecretKeyIds(compartment string) ([]string, error) { + ids := acctest.GetResourceIdsToSweep(compartment, "CustomerSecretKeyId") + if ids != nil { + return ids, nil + } + var resourceIds []string + compartmentId := compartment + identityDomainsClient := acctest.GetTestClients(&schema.ResourceData{}).IdentityDomainsClient() + + listCustomerSecretKeysRequest := oci_identity_domains.ListCustomerSecretKeysRequest{} + listCustomerSecretKeysResponse, err := identityDomainsClient.ListCustomerSecretKeys(context.Background(), listCustomerSecretKeysRequest) + + if err != nil { + return resourceIds, fmt.Errorf("Error getting CustomerSecretKey list for compartment id : %s , %s \n", compartmentId, err) + } + for _, customerSecretKey := range listCustomerSecretKeysResponse.Resources { + id := *customerSecretKey.Id + resourceIds = append(resourceIds, id) + acctest.AddResourceIdToSweeperResourceIdMap(compartmentId, "CustomerSecretKeyId", id) + } + return resourceIds, nil +} diff --git a/internal/integrationtest/identity_domains_dynamic_resource_group_test.go b/internal/integrationtest/identity_domains_dynamic_resource_group_test.go new file mode 100644 index 00000000000..d0a85997d47 --- /dev/null +++ b/internal/integrationtest/identity_domains_dynamic_resource_group_test.go @@ -0,0 +1,359 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package integrationtest + +import ( + "context" + "fmt" + "log" + "regexp" + "strconv" + "testing" + + "github.com/oracle/terraform-provider-oci/internal/resourcediscovery" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + "github.com/oracle/oci-go-sdk/v65/common" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/httpreplay" + "github.com/oracle/terraform-provider-oci/internal/acctest" + tf_client "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" + "github.com/oracle/terraform-provider-oci/internal/utils" +) + +var ( + IdentityDomainsDynamicResourceGroupRequiredOnlyResource = IdentityDomainsDynamicResourceGroupResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_dynamic_resource_group", "test_dynamic_resource_group", acctest.Required, acctest.Create, IdentityDomainsDynamicResourceGroupRepresentation) + + IdentityDomainsDynamicResourceGroupResourceConfig = IdentityDomainsDynamicResourceGroupResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_dynamic_resource_group", "test_dynamic_resource_group", acctest.Optional, acctest.Update, IdentityDomainsDynamicResourceGroupRepresentation) + + IdentityDomainsIdentityDomainsDynamicResourceGroupSingularDataSourceRepresentation = map[string]interface{}{ + "dynamic_resource_group_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_identity_domains_dynamic_resource_group.test_dynamic_resource_group.id}`}, + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "attribute_sets": acctest.Representation{RepType: acctest.Optional, Create: []string{`all`}}, + } + + IdentityDomainsIdentityDomainsDynamicResourceGroupDataSourceRepresentation = map[string]interface{}{ + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "dynamic_resource_group_count": acctest.Representation{RepType: acctest.Optional, Create: `10`}, + "dynamic_resource_group_filter": acctest.Representation{RepType: acctest.Optional, Create: `displayName eq \"displayName2\"`}, + "attribute_sets": acctest.Representation{RepType: acctest.Optional, Create: []string{`all`}}, + "start_index": acctest.Representation{RepType: acctest.Optional, Create: `1`}, + } + + IdentityDomainsDynamicResourceGroupRepresentation = map[string]interface{}{ + "display_name": acctest.Representation{RepType: acctest.Required, Create: `displayName`, Update: `displayName2`}, + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "matching_rule": acctest.Representation{RepType: acctest.Required, Create: `Any {Any {instance.id = \"instance.id\", instance.compartment.id = \"instance.compartment.id\"}}`, Update: `Any {All {instance.id = \"instance.id\", instance.compartment.id = \"instance.compartment.id\"}}`}, + "schemas": acctest.Representation{RepType: acctest.Required, Create: []string{`urn:ietf:params:scim:schemas:oracle:idcs:DynamicResourceGroup`}}, + "attribute_sets": acctest.Representation{RepType: acctest.Optional, Create: []string{`all`}}, + "description": acctest.Representation{RepType: acctest.Optional, Create: `description`, Update: `description2`}, + "tags": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsDynamicResourceGroupTagsRepresentation}, + "urnietfparamsscimschemasoracleidcsextension_oci_tags": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsDynamicResourceGroupUrnietfparamsscimschemasoracleidcsextensionOCITagsRepresentation}, + "lifecycle": acctest.RepresentationGroup{RepType: acctest.Required, Group: ignoreChangeForIdentityDomainsDynamicResourceGroup}, + } + + ignoreChangeForIdentityDomainsDynamicResourceGroup = map[string]interface{}{ + "ignore_changes": acctest.Representation{RepType: acctest.Required, Create: []string{ + `urnietfparamsscimschemasoracleidcsextension_oci_tags[0].defined_tags`, + `schemas`, + }}, + } + IdentityDomainsDynamicResourceGroupTagsRepresentation = map[string]interface{}{ + "key": acctest.Representation{RepType: acctest.Required, Create: `key`, Update: `key2`}, + "value": acctest.Representation{RepType: acctest.Required, Create: `value`, Update: `value2`}, + } + IdentityDomainsDynamicResourceGroupUrnietfparamsscimschemasoracleidcsextensionOCITagsRepresentation = map[string]interface{}{ + "defined_tags": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsDynamicResourceGroupUrnietfparamsscimschemasoracleidcsextensionOCITagsDefinedTagsRepresentation}, + "freeform_tags": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsDynamicResourceGroupUrnietfparamsscimschemasoracleidcsextensionOCITagsFreeformTagsRepresentation}, + } + IdentityDomainsDynamicResourceGroupUrnietfparamsscimschemasoracleidcsextensionOCITagsDefinedTagsRepresentation = map[string]interface{}{ + "key": acctest.Representation{RepType: acctest.Required, Create: `${oci_identity_tag.tag1.name}`}, + "namespace": acctest.Representation{RepType: acctest.Required, Create: `${oci_identity_tag_namespace.tag-namespace1.name}`}, + "value": acctest.Representation{RepType: acctest.Required, Create: `value`, Update: `value2`}, + } + IdentityDomainsDynamicResourceGroupUrnietfparamsscimschemasoracleidcsextensionOCITagsFreeformTagsRepresentation = map[string]interface{}{ + "key": acctest.Representation{RepType: acctest.Required, Create: `freeformKey`, Update: `freeformKey2`}, + "value": acctest.Representation{RepType: acctest.Required, Create: `freeformValue`, Update: `freeformValue2`}, + } + + IdentityDomainsDynamicResourceGroupResourceDependencies = DefinedTagsDependencies + TestDomainDependencies +) + +// issue-routing-tag: identity_domains/default +func TestIdentityDomainsDynamicResourceGroupResource_basic(t *testing.T) { + httpreplay.SetScenario("TestIdentityDomainsDynamicResourceGroupResource_basic") + defer httpreplay.SaveScenario() + + config := acctest.ProviderTestConfig() + + compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid") + compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId) + + resourceName := "oci_identity_domains_dynamic_resource_group.test_dynamic_resource_group" + datasourceName := "data.oci_identity_domains_dynamic_resource_groups.test_dynamic_resource_groups" + singularDatasourceName := "data.oci_identity_domains_dynamic_resource_group.test_dynamic_resource_group" + + var resId, resId2 string + // Save TF content to Create resource with optional properties. This has to be exactly the same as the config part in the "create with optionals" step in the test. + acctest.SaveConfigContent(config+compartmentIdVariableStr+IdentityDomainsDynamicResourceGroupResourceDependencies+ + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_dynamic_resource_group", "test_dynamic_resource_group", acctest.Optional, acctest.Create, IdentityDomainsDynamicResourceGroupRepresentation), "identitydomains", "dynamicResourceGroup", t) + + print(config + compartmentIdVariableStr + IdentityDomainsDynamicResourceGroupResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_dynamic_resource_group", "test_dynamic_resource_group", acctest.Optional, acctest.Create, IdentityDomainsDynamicResourceGroupRepresentation)) + + acctest.ResourceTest(t, testAccCheckIdentityDomainsDynamicResourceGroupDestroy, []resource.TestStep{ + // verify Create + { + Config: config + compartmentIdVariableStr + IdentityDomainsDynamicResourceGroupResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_dynamic_resource_group", "test_dynamic_resource_group", acctest.Required, acctest.Create, IdentityDomainsDynamicResourceGroupRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(resourceName, "display_name", "displayName"), + resource.TestCheckResourceAttrSet(resourceName, "idcs_endpoint"), + resource.TestCheckResourceAttr(resourceName, "matching_rule", "Any {Any {instance.id = \"instance.id\", instance.compartment.id = \"instance.compartment.id\"}}"), + resource.TestMatchResourceAttr(resourceName, "schemas.#", regexp.MustCompile("[1-9]+")), + + func(s *terraform.State) (err error) { + resId, err = acctest.FromInstanceState(s, resourceName, "id") + return err + }, + ), + }, + + // delete before next Create + { + Config: config + compartmentIdVariableStr + IdentityDomainsDynamicResourceGroupResourceDependencies, + }, + // verify Create with optionals + { + Config: config + compartmentIdVariableStr + IdentityDomainsDynamicResourceGroupResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_dynamic_resource_group", "test_dynamic_resource_group", acctest.Optional, acctest.Create, IdentityDomainsDynamicResourceGroupRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(resourceName, "attribute_sets.#", "1"), + resource.TestCheckResourceAttr(resourceName, "description", "description"), + resource.TestCheckResourceAttr(resourceName, "display_name", "displayName"), + resource.TestCheckResourceAttrSet(resourceName, "id"), + resource.TestCheckResourceAttrSet(resourceName, "idcs_endpoint"), + resource.TestCheckResourceAttr(resourceName, "matching_rule", "Any {Any {instance.id = \"instance.id\", instance.compartment.id = \"instance.compartment.id\"}}"), + resource.TestMatchResourceAttr(resourceName, "schemas.#", regexp.MustCompile("[1-9]+")), + resource.TestCheckResourceAttr(resourceName, "tags.#", "1"), + resource.TestCheckResourceAttr(resourceName, "tags.0.key", "key"), + resource.TestCheckResourceAttr(resourceName, "tags.0.value", "value"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextension_oci_tags.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextension_oci_tags.0.freeform_tags.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextension_oci_tags.0.freeform_tags.0.key", "freeformKey"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextension_oci_tags.0.freeform_tags.0.value", "freeformValue"), + + func(s *terraform.State) (err error) { + resId, err = acctest.FromInstanceState(s, resourceName, "id") + idcsEndpoint, err := acctest.FromInstanceState(s, "data.oci_identity_domain.test_domain", "url") + if err != nil { + return err + } + + compositeId := getIdentityDomainsCompositeId(idcsEndpoint, "dynamicResourceGroups", resId) + log.Printf("[DEBUG] Composite ID to import: %s", compositeId) + if isEnableExportCompartment, _ := strconv.ParseBool(utils.GetEnvSettingWithDefault("enable_export_compartment", "true")); isEnableExportCompartment { + if errExport := resourcediscovery.TestExportCompartmentWithResourceName(&compositeId, &compartmentId, resourceName); errExport != nil { + return errExport + } + } + return err + }, + ), + }, + + // verify updates to updatable parameters + { + Config: config + compartmentIdVariableStr + IdentityDomainsDynamicResourceGroupResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_dynamic_resource_group", "test_dynamic_resource_group", acctest.Optional, acctest.Update, IdentityDomainsDynamicResourceGroupRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(resourceName, "attribute_sets.#", "1"), + resource.TestCheckResourceAttr(resourceName, "description", "description2"), + resource.TestCheckResourceAttr(resourceName, "display_name", "displayName2"), + resource.TestCheckResourceAttrSet(resourceName, "idcs_endpoint"), + resource.TestCheckResourceAttr(resourceName, "matching_rule", "Any {All {instance.id = \"instance.id\", instance.compartment.id = \"instance.compartment.id\"}}"), + resource.TestCheckResourceAttr(resourceName, "tags.#", "1"), + resource.TestCheckResourceAttr(resourceName, "tags.0.key", "key2"), + resource.TestCheckResourceAttr(resourceName, "tags.0.value", "value2"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextension_oci_tags.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextension_oci_tags.0.freeform_tags.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextension_oci_tags.0.freeform_tags.0.key", "freeformKey2"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextension_oci_tags.0.freeform_tags.0.value", "freeformValue2"), + + func(s *terraform.State) (err error) { + resId2, err = acctest.FromInstanceState(s, resourceName, "id") + if resId != resId2 { + return fmt.Errorf("Resource recreated when it was supposed to be updated.") + } + return err + }, + ), + }, + // verify datasource + { + Config: config + + acctest.GenerateDataSourceFromRepresentationMap("oci_identity_domains_dynamic_resource_groups", "test_dynamic_resource_groups", acctest.Optional, acctest.Update, IdentityDomainsIdentityDomainsDynamicResourceGroupDataSourceRepresentation) + + compartmentIdVariableStr + IdentityDomainsDynamicResourceGroupResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_dynamic_resource_group", "test_dynamic_resource_group", acctest.Optional, acctest.Update, IdentityDomainsDynamicResourceGroupRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(datasourceName, "dynamic_resource_group_count", "10"), + resource.TestCheckResourceAttr(datasourceName, "attribute_sets.#", "1"), + resource.TestCheckResourceAttr(datasourceName, "start_index", "1"), + + resource.TestCheckResourceAttr(datasourceName, "dynamic_resource_groups.#", "1"), + resource.TestMatchResourceAttr(datasourceName, "dynamic_resource_groups.0.schemas.#", regexp.MustCompile("[1-9]+")), + ), + }, + // verify singular datasource + { + Config: config + + acctest.GenerateDataSourceFromRepresentationMap("oci_identity_domains_dynamic_resource_group", "test_dynamic_resource_group", acctest.Required, acctest.Create, IdentityDomainsIdentityDomainsDynamicResourceGroupSingularDataSourceRepresentation) + + compartmentIdVariableStr + IdentityDomainsDynamicResourceGroupResourceConfig, + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttrSet(singularDatasourceName, "dynamic_resource_group_id"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "idcs_endpoint"), + + resource.TestCheckResourceAttr(singularDatasourceName, "description", "description2"), + resource.TestCheckResourceAttr(singularDatasourceName, "display_name", "displayName2"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "id"), + resource.TestMatchResourceAttr(singularDatasourceName, "schemas.#", regexp.MustCompile("[1-9]+")), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextension_oci_tags.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextension_oci_tags.0.freeform_tags.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextension_oci_tags.0.freeform_tags.0.key", "freeformKey2"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextension_oci_tags.0.freeform_tags.0.value", "freeformValue2"), + ), + }, + + // reset to required only resource for import + { + Config: config + compartmentIdVariableStr + IdentityDomainsDynamicResourceGroupRequiredOnlyResource, + }, + // verify resource import + { + Config: config + IdentityDomainsDynamicResourceGroupRequiredOnlyResource, + ImportState: true, + ImportStateVerify: true, + ImportStateIdFunc: getIdentityDomainsImportIdFn("oci_identity_domains_dynamic_resource_group", "dynamicResourceGroups"), + ImportStateVerifyIgnore: []string{ + "attribute_sets", + "attributes", + "authorization", + "idcs_endpoint", + "resource_type_schema_version", + "matching_rule", + }, + ResourceName: resourceName, + }, + }) +} + +func testAccCheckIdentityDomainsDynamicResourceGroupDestroy(s *terraform.State) error { + noResourceFound := true + client := acctest.TestAccProvider.Meta().(*tf_client.OracleClients).IdentityDomainsClient() + for _, rs := range s.RootModule().Resources { + if rs.Type == "oci_identity_domains_dynamic_resource_group" { + noResourceFound = false + request := oci_identity_domains.GetDynamicResourceGroupRequest{} + + if value, ok := rs.Primary.Attributes["authorization"]; ok { + request.Authorization = &value + } + + tmp := rs.Primary.ID + request.DynamicResourceGroupId = &tmp + + if value, ok := rs.Primary.Attributes["idcs_endpoint"]; ok { + client.Host = value + } + + if value, ok := rs.Primary.Attributes["resource_type_schema_version"]; ok { + request.ResourceTypeSchemaVersion = &value + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(true, "identity_domains") + + _, err := client.GetDynamicResourceGroup(context.Background(), request) + + if err == nil { + return fmt.Errorf("resource still exists") + } + + //Verify that exception is for '404 not found'. + if failure, isServiceError := common.IsServiceError(err); !isServiceError || failure.GetHTTPStatusCode() != 404 { + return err + } + } + } + if noResourceFound { + return fmt.Errorf("at least one resource was expected from the state file, but could not be found") + } + + return nil +} + +func init() { + if acctest.DependencyGraph == nil { + acctest.InitDependencyGraph() + } + if !acctest.InSweeperExcludeList("IdentityDomainsDynamicResourceGroup") { + resource.AddTestSweepers("IdentityDomainsDynamicResourceGroup", &resource.Sweeper{ + Name: "IdentityDomainsDynamicResourceGroup", + Dependencies: acctest.DependencyGraph["dynamicResourceGroup"], + F: sweepIdentityDomainsDynamicResourceGroupResource, + }) + } +} + +func sweepIdentityDomainsDynamicResourceGroupResource(compartment string) error { + identityDomainsClient := acctest.GetTestClients(&schema.ResourceData{}).IdentityDomainsClient() + dynamicResourceGroupIds, err := getIdentityDomainsDynamicResourceGroupIds(compartment) + if err != nil { + return err + } + for _, dynamicResourceGroupId := range dynamicResourceGroupIds { + if ok := acctest.SweeperDefaultResourceId[dynamicResourceGroupId]; !ok { + deleteDynamicResourceGroupRequest := oci_identity_domains.DeleteDynamicResourceGroupRequest{} + + deleteDynamicResourceGroupRequest.DynamicResourceGroupId = &dynamicResourceGroupId + + deleteDynamicResourceGroupRequest.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(true, "identity_domains") + _, error := identityDomainsClient.DeleteDynamicResourceGroup(context.Background(), deleteDynamicResourceGroupRequest) + if error != nil { + fmt.Printf("Error deleting DynamicResourceGroup %s %s, It is possible that the resource is already deleted. Please verify manually \n", dynamicResourceGroupId, error) + continue + } + } + } + return nil +} + +func getIdentityDomainsDynamicResourceGroupIds(compartment string) ([]string, error) { + ids := acctest.GetResourceIdsToSweep(compartment, "DynamicResourceGroupId") + if ids != nil { + return ids, nil + } + var resourceIds []string + compartmentId := compartment + identityDomainsClient := acctest.GetTestClients(&schema.ResourceData{}).IdentityDomainsClient() + + listDynamicResourceGroupsRequest := oci_identity_domains.ListDynamicResourceGroupsRequest{} + listDynamicResourceGroupsResponse, err := identityDomainsClient.ListDynamicResourceGroups(context.Background(), listDynamicResourceGroupsRequest) + + if err != nil { + return resourceIds, fmt.Errorf("Error getting DynamicResourceGroup list for compartment id : %s , %s \n", compartmentId, err) + } + for _, dynamicResourceGroup := range listDynamicResourceGroupsResponse.Resources { + id := *dynamicResourceGroup.Id + resourceIds = append(resourceIds, id) + acctest.AddResourceIdToSweeperResourceIdMap(compartmentId, "DynamicResourceGroupId", id) + } + return resourceIds, nil +} diff --git a/internal/integrationtest/identity_domains_group_test.go b/internal/integrationtest/identity_domains_group_test.go new file mode 100644 index 00000000000..41d8f04f122 --- /dev/null +++ b/internal/integrationtest/identity_domains_group_test.go @@ -0,0 +1,412 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package integrationtest + +import ( + "context" + "fmt" + "log" + "regexp" + "strconv" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + "github.com/oracle/oci-go-sdk/v65/common" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/httpreplay" + "github.com/oracle/terraform-provider-oci/internal/acctest" + tf_client "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/resourcediscovery" + "github.com/oracle/terraform-provider-oci/internal/tfresource" + "github.com/oracle/terraform-provider-oci/internal/utils" +) + +var ( + IdentityDomainsGroupRequiredOnlyResource = acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_group", "test_group", acctest.Required, acctest.Create, IdentityDomainsGroupRepresentation) + + IdentityDomainsGroupResourceConfig = IdentityDomainsGroupResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_group", "test_group", acctest.Optional, acctest.Update, IdentityDomainsGroupRepresentation) + + IdentityDomainsIdentityDomainsGroupSingularDataSourceRepresentation = map[string]interface{}{ + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "group_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_identity_domains_group.test_group.id}`}, + "attribute_sets": acctest.Representation{RepType: acctest.Optional, Create: []string{`all`}}, + } + + IdentityDomainsIdentityDomainsGroupDataSourceRepresentation = map[string]interface{}{ + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "group_count": acctest.Representation{RepType: acctest.Optional, Create: `10`}, + "group_filter": acctest.Representation{RepType: acctest.Optional, Create: `displayName sw \"displayName2\"`}, + "attribute_sets": acctest.Representation{RepType: acctest.Optional, Create: []string{`all`}}, + "start_index": acctest.Representation{RepType: acctest.Optional, Create: `1`}, + } + + IdentityDomainsGroupRepresentation = map[string]interface{}{ + "display_name": acctest.Representation{RepType: acctest.Required, Create: `displayName`, Update: `displayName2`}, + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "schemas": acctest.Representation{RepType: acctest.Required, Create: []string{`urn:ietf:params:scim:schemas:core:2.0:Group`}}, + "attribute_sets": acctest.Representation{RepType: acctest.Optional, Create: []string{`all`}}, + "external_id": acctest.Representation{RepType: acctest.Optional, Create: `externalId`}, + "members": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsGroupMembersRepresentation}, + "non_unique_display_name": acctest.Representation{RepType: acctest.Optional, Create: `nonUniqueDisplayName`, Update: `nonUniqueDisplayName2`}, + "tags": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsGroupTagsRepresentation}, + "urnietfparamsscimschemasoracleidcsextension_oci_tags": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsGroupUrnietfparamsscimschemasoracleidcsextensionOCITagsRepresentation}, + "urnietfparamsscimschemasoracleidcsextensiongroup_group": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsGroupUrnietfparamsscimschemasoracleidcsextensiongroupGroupRepresentation}, + "urnietfparamsscimschemasoracleidcsextensionposix_group": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsGroupUrnietfparamsscimschemasoracleidcsextensionposixGroupRepresentation}, + "urnietfparamsscimschemasoracleidcsextensionrequestable_group": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsGroupUrnietfparamsscimschemasoracleidcsextensionrequestableGroupRepresentation}, + "lifecycle": acctest.RepresentationGroup{RepType: acctest.Required, Group: ignoreChangeForIdentityDomainsGroup}, + } + + ignoreChangeForIdentityDomainsGroup = map[string]interface{}{ + "ignore_changes": acctest.Representation{RepType: acctest.Required, Create: []string{ + `urnietfparamsscimschemasoracleidcsextension_oci_tags[0].defined_tags`, + `schemas`, + }}, + } + IdentityDomainsGroupMembersRepresentation = map[string]interface{}{ + "type": acctest.Representation{RepType: acctest.Required, Create: `User`}, + "value": acctest.Representation{RepType: acctest.Required, Create: `${oci_identity_domains_user.test_user.id}`}, + } + IdentityDomainsGroupTagsRepresentation = map[string]interface{}{ + "key": acctest.Representation{RepType: acctest.Required, Create: `key`, Update: `key2`}, + "value": acctest.Representation{RepType: acctest.Required, Create: `value`, Update: `value2`}, + } + IdentityDomainsGroupUrnietfparamsscimschemasoracleidcsextensionOCITagsRepresentation = map[string]interface{}{ + "defined_tags": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsGroupUrnietfparamsscimschemasoracleidcsextensionOCITagsDefinedTagsRepresentation}, + "freeform_tags": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsGroupUrnietfparamsscimschemasoracleidcsextensionOCITagsFreeformTagsRepresentation}, + } + IdentityDomainsGroupUrnietfparamsscimschemasoracleidcsextensiongroupGroupRepresentation = map[string]interface{}{ + "creation_mechanism": acctest.Representation{RepType: acctest.Optional, Create: `api`}, + "description": acctest.Representation{RepType: acctest.Optional, Create: `description`, Update: `description2`}, + "owners": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsGroupUrnietfparamsscimschemasoracleidcsextensiongroupGroupOwnersRepresentation}, + } + IdentityDomainsGroupUrnietfparamsscimschemasoracleidcsextensionposixGroupRepresentation = map[string]interface{}{ + "gid_number": acctest.Representation{RepType: acctest.Optional, Create: `500`, Update: `501`}, + } + IdentityDomainsGroupUrnietfparamsscimschemasoracleidcsextensionrequestableGroupRepresentation = map[string]interface{}{ + "requestable": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `true`}, + } + IdentityDomainsGroupUrnietfparamsscimschemasoracleidcsextensionOCITagsDefinedTagsRepresentation = map[string]interface{}{ + "key": acctest.Representation{RepType: acctest.Required, Create: `${oci_identity_tag.tag1.name}`}, + "namespace": acctest.Representation{RepType: acctest.Required, Create: `${oci_identity_tag_namespace.tag-namespace1.name}`}, + "value": acctest.Representation{RepType: acctest.Required, Create: `value`, Update: `value2`}, + } + IdentityDomainsGroupUrnietfparamsscimschemasoracleidcsextensionOCITagsFreeformTagsRepresentation = map[string]interface{}{ + "key": acctest.Representation{RepType: acctest.Required, Create: `freeformKey`, Update: `freeformKey2`}, + "value": acctest.Representation{RepType: acctest.Required, Create: `freeformValue`, Update: `freeformValue2`}, + } + IdentityDomainsGroupUrnietfparamsscimschemasoracleidcsextensiongroupGroupOwnersRepresentation = map[string]interface{}{ + "type": acctest.Representation{RepType: acctest.Required, Create: `User`}, + "value": acctest.Representation{RepType: acctest.Required, Create: `${oci_identity_domains_user.test_user.id}`}, + } + + IdentityDomainsGroupResourceDependencies = DefinedTagsDependencies + TestDomainDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_user", "test_user", acctest.Required, acctest.Create, IdentityDomainsUserRepresentation) +) + +// issue-routing-tag: identity_domains/default +func TestIdentityDomainsGroupResource_basic(t *testing.T) { + httpreplay.SetScenario("TestIdentityDomainsGroupResource_basic") + defer httpreplay.SaveScenario() + + config := acctest.ProviderTestConfig() + + compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid") + compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId) + + resourceName := "oci_identity_domains_group.test_group" + datasourceName := "data.oci_identity_domains_groups.test_groups" + singularDatasourceName := "data.oci_identity_domains_group.test_group" + + var resId, resId2 string + // Save TF content to Create resource with optional properties. This has to be exactly the same as the config part in the "create with optionals" step in the test. + acctest.SaveConfigContent(config+compartmentIdVariableStr+IdentityDomainsGroupResourceDependencies+ + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_group", "test_group", acctest.Optional, acctest.Create, IdentityDomainsGroupRepresentation), "identitydomains", "group", t) + + print(config + compartmentIdVariableStr + IdentityDomainsGroupResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_group", "test_group", acctest.Optional, acctest.Create, IdentityDomainsGroupRepresentation)) + acctest.ResourceTest(t, testAccCheckIdentityDomainsGroupDestroy, []resource.TestStep{ + // verify Create + { + Config: config + compartmentIdVariableStr + IdentityDomainsGroupResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_group", "test_group", acctest.Required, acctest.Create, IdentityDomainsGroupRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(resourceName, "display_name", "displayName"), + resource.TestCheckResourceAttrSet(resourceName, "idcs_endpoint"), + resource.TestMatchResourceAttr(resourceName, "schemas.#", regexp.MustCompile("[1-9]+")), + + func(s *terraform.State) (err error) { + resId, err = acctest.FromInstanceState(s, resourceName, "id") + return err + }, + ), + }, + + // delete before next Create + { + Config: config + compartmentIdVariableStr + IdentityDomainsGroupResourceDependencies, + }, + // verify Create with optionals + { + Config: config + compartmentIdVariableStr + IdentityDomainsGroupResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_group", "test_group", acctest.Optional, acctest.Create, IdentityDomainsGroupRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(resourceName, "attribute_sets.#", "1"), + resource.TestCheckResourceAttr(resourceName, "display_name", "displayName"), + resource.TestCheckResourceAttrSet(resourceName, "external_id"), + resource.TestCheckResourceAttrSet(resourceName, "id"), + resource.TestCheckResourceAttr(resourceName, "idcs_created_by.#", "1"), + resource.TestCheckResourceAttrSet(resourceName, "idcs_endpoint"), + resource.TestCheckResourceAttr(resourceName, "members.#", "1"), + resource.TestCheckResourceAttr(resourceName, "members.0.type", "User"), + resource.TestCheckResourceAttrSet(resourceName, "members.0.value"), + resource.TestCheckResourceAttr(resourceName, "non_unique_display_name", "nonUniqueDisplayName"), + resource.TestMatchResourceAttr(resourceName, "schemas.#", regexp.MustCompile("[1-9]+")), + resource.TestCheckResourceAttr(resourceName, "tags.#", "1"), + resource.TestCheckResourceAttr(resourceName, "tags.0.key", "key"), + resource.TestCheckResourceAttr(resourceName, "tags.0.value", "value"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextension_oci_tags.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextension_oci_tags.0.freeform_tags.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextension_oci_tags.0.freeform_tags.0.key", "freeformKey"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextension_oci_tags.0.freeform_tags.0.value", "freeformValue"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensiongroup_group.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensiongroup_group.0.creation_mechanism", "api"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensiongroup_group.0.description", "description"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensiongroup_group.0.owners.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensiongroup_group.0.owners.0.type", "User"), + resource.TestCheckResourceAttrSet(resourceName, "urnietfparamsscimschemasoracleidcsextensiongroup_group.0.owners.0.value"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionposix_group.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionposix_group.0.gid_number", "500"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionrequestable_group.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionrequestable_group.0.requestable", "false"), + + func(s *terraform.State) (err error) { + resId, err = acctest.FromInstanceState(s, resourceName, "id") + idcsEndpoint, err := acctest.FromInstanceState(s, "data.oci_identity_domain.test_domain", "url") + if err != nil { + return err + } + + compositeId := getIdentityDomainsCompositeId(idcsEndpoint, "groups", resId) + log.Printf("[DEBUG] Composite ID to import: %s", compositeId) + if isEnableExportCompartment, _ := strconv.ParseBool(utils.GetEnvSettingWithDefault("enable_export_compartment", "true")); isEnableExportCompartment { + if errExport := resourcediscovery.TestExportCompartmentWithResourceName(&compositeId, &compartmentId, resourceName); errExport != nil { + return errExport + } + } + return err + }, + ), + }, + + // verify updates to updatable parameters + { + Config: config + compartmentIdVariableStr + IdentityDomainsGroupResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_group", "test_group", acctest.Optional, acctest.Update, IdentityDomainsGroupRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(resourceName, "attribute_sets.#", "1"), + resource.TestCheckResourceAttr(resourceName, "display_name", "displayName2"), + resource.TestCheckResourceAttrSet(resourceName, "external_id"), + resource.TestCheckResourceAttr(resourceName, "idcs_created_by.#", "1"), + resource.TestCheckResourceAttrSet(resourceName, "idcs_endpoint"), + resource.TestCheckResourceAttr(resourceName, "members.#", "1"), + resource.TestCheckResourceAttr(resourceName, "members.0.type", "User"), + resource.TestCheckResourceAttrSet(resourceName, "members.0.value"), + resource.TestCheckResourceAttr(resourceName, "non_unique_display_name", "nonUniqueDisplayName2"), + resource.TestMatchResourceAttr(resourceName, "schemas.#", regexp.MustCompile("[1-9]+")), + resource.TestCheckResourceAttr(resourceName, "tags.#", "1"), + resource.TestCheckResourceAttr(resourceName, "tags.0.key", "key2"), + resource.TestCheckResourceAttr(resourceName, "tags.0.value", "value2"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextension_oci_tags.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextension_oci_tags.0.freeform_tags.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextension_oci_tags.0.freeform_tags.0.key", "freeformKey2"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextension_oci_tags.0.freeform_tags.0.value", "freeformValue2"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensiongroup_group.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensiongroup_group.0.creation_mechanism", "api"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensiongroup_group.0.description", "description2"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensiongroup_group.0.owners.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensiongroup_group.0.owners.0.type", "User"), + resource.TestCheckResourceAttrSet(resourceName, "urnietfparamsscimschemasoracleidcsextensiongroup_group.0.owners.0.value"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionposix_group.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionposix_group.0.gid_number", "501"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionrequestable_group.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionrequestable_group.0.requestable", "true"), + + func(s *terraform.State) (err error) { + resId2, err = acctest.FromInstanceState(s, resourceName, "id") + if resId != resId2 { + return fmt.Errorf("Resource recreated when it was supposed to be updated.") + } + return err + }, + ), + }, + // verify datasource + { + Config: config + + acctest.GenerateDataSourceFromRepresentationMap("oci_identity_domains_groups", "test_groups", acctest.Optional, acctest.Update, IdentityDomainsIdentityDomainsGroupDataSourceRepresentation) + + compartmentIdVariableStr + IdentityDomainsGroupResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_group", "test_group", acctest.Optional, acctest.Update, IdentityDomainsGroupRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(datasourceName, "group_count", "10"), + resource.TestCheckResourceAttr(datasourceName, "attribute_sets.#", "1"), + resource.TestCheckResourceAttr(datasourceName, "start_index", "1"), + + resource.TestCheckResourceAttr(datasourceName, "groups.#", "1"), + resource.TestMatchResourceAttr(datasourceName, "groups.0.schemas.#", regexp.MustCompile("[1-9]+")), + ), + }, + // verify singular datasource + { + Config: config + + acctest.GenerateDataSourceFromRepresentationMap("oci_identity_domains_group", "test_group", acctest.Required, acctest.Create, IdentityDomainsIdentityDomainsGroupSingularDataSourceRepresentation) + + compartmentIdVariableStr + IdentityDomainsGroupResourceConfig, + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttrSet(singularDatasourceName, "group_id"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "idcs_endpoint"), + resource.TestCheckResourceAttr(singularDatasourceName, "display_name", "displayName2"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "id"), + resource.TestCheckResourceAttr(singularDatasourceName, "non_unique_display_name", "nonUniqueDisplayName2"), + resource.TestMatchResourceAttr(singularDatasourceName, "schemas.#", regexp.MustCompile("[1-9]+")), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextension_oci_tags.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextension_oci_tags.0.freeform_tags.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextension_oci_tags.0.freeform_tags.0.key", "freeformKey2"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextension_oci_tags.0.freeform_tags.0.value", "freeformValue2"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensiongroup_group.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensiongroup_group.0.description", "description2"), + ), + }, + + // reset to required only resource for import + { + Config: config + compartmentIdVariableStr + TestDomainDependencies, + }, + { + Config: config + compartmentIdVariableStr + TestDomainDependencies + IdentityDomainsGroupRequiredOnlyResource, + }, + // verify resource import + { + Config: config + IdentityDomainsGroupRequiredOnlyResource, + ImportState: true, + ImportStateVerify: true, + ImportStateIdFunc: getIdentityDomainsImportIdFn("oci_identity_domains_group", "groups"), + ImportStateVerifyIgnore: []string{ + "authorization", + "resource_type_schema_version", + "attribute_sets", + "attributes", + "external_id", + "non_unique_display_name", + }, + ResourceName: resourceName, + }, + }) +} + +func testAccCheckIdentityDomainsGroupDestroy(s *terraform.State) error { + noResourceFound := true + client := acctest.TestAccProvider.Meta().(*tf_client.OracleClients).IdentityDomainsClient() + for _, rs := range s.RootModule().Resources { + if rs.Type == "oci_identity_domains_group" { + noResourceFound = false + request := oci_identity_domains.GetGroupRequest{} + + if value, ok := rs.Primary.Attributes["authorization"]; ok { + request.Authorization = &value + } + + tmp := rs.Primary.ID + request.GroupId = &tmp + + if value, ok := rs.Primary.Attributes["idcs_endpoint"]; ok { + client.Host = value + } + + if value, ok := rs.Primary.Attributes["resource_type_schema_version"]; ok { + request.ResourceTypeSchemaVersion = &value + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(true, "identity_domains") + + _, err := client.GetGroup(context.Background(), request) + + if err == nil { + return fmt.Errorf("resource still exists") + } + + //Verify that exception is for '404 not found'. + if failure, isServiceError := common.IsServiceError(err); !isServiceError || failure.GetHTTPStatusCode() != 404 { + return err + } + } + } + if noResourceFound { + return fmt.Errorf("at least one resource was expected from the state file, but could not be found") + } + + return nil +} + +func init() { + if acctest.DependencyGraph == nil { + acctest.InitDependencyGraph() + } + if !acctest.InSweeperExcludeList("IdentityDomainsGroup") { + resource.AddTestSweepers("IdentityDomainsGroup", &resource.Sweeper{ + Name: "IdentityDomainsGroup", + Dependencies: acctest.DependencyGraph["group"], + F: sweepIdentityDomainsGroupResource, + }) + } +} + +func sweepIdentityDomainsGroupResource(compartment string) error { + identityDomainsClient := acctest.GetTestClients(&schema.ResourceData{}).IdentityDomainsClient() + groupIds, err := getIdentityDomainsGroupIds(compartment) + if err != nil { + return err + } + for _, groupId := range groupIds { + if ok := acctest.SweeperDefaultResourceId[groupId]; !ok { + deleteGroupRequest := oci_identity_domains.DeleteGroupRequest{} + + deleteGroupRequest.GroupId = &groupId + + deleteGroupRequest.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(true, "identity_domains") + _, error := identityDomainsClient.DeleteGroup(context.Background(), deleteGroupRequest) + if error != nil { + fmt.Printf("Error deleting Group %s %s, It is possible that the resource is already deleted. Please verify manually \n", groupId, error) + continue + } + } + } + return nil +} + +func getIdentityDomainsGroupIds(compartment string) ([]string, error) { + ids := acctest.GetResourceIdsToSweep(compartment, "GroupId") + if ids != nil { + return ids, nil + } + var resourceIds []string + compartmentId := compartment + identityDomainsClient := acctest.GetTestClients(&schema.ResourceData{}).IdentityDomainsClient() + + listGroupsRequest := oci_identity_domains.ListGroupsRequest{} + listGroupsResponse, err := identityDomainsClient.ListGroups(context.Background(), listGroupsRequest) + + if err != nil { + return resourceIds, fmt.Errorf("Error getting Group list for compartment id : %s , %s \n", compartmentId, err) + } + for _, group := range listGroupsResponse.Resources { + id := *group.Id + resourceIds = append(resourceIds, id) + acctest.AddResourceIdToSweeperResourceIdMap(compartmentId, "GroupId", id) + } + return resourceIds, nil +} diff --git a/internal/integrationtest/identity_domains_identity_provider_test.go b/internal/integrationtest/identity_domains_identity_provider_test.go new file mode 100644 index 00000000000..3f84acf6fed --- /dev/null +++ b/internal/integrationtest/identity_domains_identity_provider_test.go @@ -0,0 +1,631 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package integrationtest + +import ( + "context" + "fmt" + "log" + "regexp" + "strconv" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + "github.com/oracle/terraform-provider-oci/internal/resourcediscovery" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + "github.com/oracle/oci-go-sdk/v65/common" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/httpreplay" + "github.com/oracle/terraform-provider-oci/internal/acctest" + tf_client "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" + "github.com/oracle/terraform-provider-oci/internal/utils" +) + +var ( + IdentityDomainsIdentityProviderRequiredOnlyResource = IdentityDomainsIdentityProviderResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_identity_provider", "test_identity_provider", acctest.Required, acctest.Create, IdentityDomainsIdentityProviderRepresentation) + + IdentityDomainsIdentityProviderResourceConfig = IdentityDomainsIdentityProviderResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_identity_provider", "test_identity_provider", acctest.Optional, acctest.Update, IdentityDomainsIdentityProviderRepresentation) + + IdentityDomainsIdentityDomainsIdentityProviderSingularDataSourceRepresentation = map[string]interface{}{ + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "identity_provider_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_identity_domains_identity_provider.test_identity_provider.id}`}, + "attribute_sets": acctest.Representation{RepType: acctest.Optional, Create: []string{`all`}}, + } + + IdentityDomainsIdentityDomainsIdentityProviderDataSourceRepresentation = map[string]interface{}{ + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "identity_provider_count": acctest.Representation{RepType: acctest.Optional, Create: `10`}, + "identity_provider_filter": acctest.Representation{RepType: acctest.Optional, Create: `partnerName eq \"partnerName2\"`}, + "attribute_sets": acctest.Representation{RepType: acctest.Optional, Create: []string{`all`}}, + "start_index": acctest.Representation{RepType: acctest.Optional, Create: `1`}, + } + + IdentityDomainsIdentityProviderRepresentation = map[string]interface{}{ + "enabled": acctest.Representation{RepType: acctest.Required, Create: `true`, Update: `false`}, + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "partner_name": acctest.Representation{RepType: acctest.Required, Create: `partnerName`, Update: `partnerName2`}, + "schemas": acctest.Representation{RepType: acctest.Required, Create: []string{`urn:ietf:params:scim:schemas:oracle:idcs:IdentityProvider`}}, + "assertion_attribute": acctest.Representation{RepType: acctest.Optional, Create: `assertionAttribute`, Update: `assertionAttribute2`}, + "attribute_sets": acctest.Representation{RepType: acctest.Optional, Create: []string{`all`}}, + "authn_request_binding": acctest.Representation{RepType: acctest.Optional, Create: `Redirect`, Update: `Post`}, + "description": acctest.Representation{RepType: acctest.Optional, Create: `description`, Update: `description2`}, + "encryption_certificate": acctest.Representation{RepType: acctest.Optional, Create: `MIIDZjCCAk6gAwIBAgIGAXoTivr8MA0GCSqGSIb3DQEBCwUAMFkxEzARBgoJkiaJk/IsZAEZFgNjb20xFjAUBgoJkiaJk/IsZAEZFgZvcmFjbGUxFTATBgoJkiaJk/IsZAEZFgVjbG91ZDETMBEGA1UEAxMKQ2xvdWQ5Q0EtMjAeFw0yMTA2MTYwNjM4MzJaFw0zMTA2MTYwNjM4MzJaMFsxEzARBgNVBAMTCnNzbERvbWFpbnMxDzANBgNVBAMTBkNsb3VkOTEzMDEGA1UEAwwqaWRjcy1hY2YxM2MzMDYyMTM0NTJiYmQwZjgzZmJkYjM3OWYxZl9rZXlzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArC8Sg+4SF3ZKdRjveLNheqFlcXZIDV6N6FjMJEYVLyQLrRg8gAXIRqhpS/Ym9Bj8emyV+P/ZlHxmwPkI8DbJX+gsTg9xXG+DlfDSnNTdEOr90hrmg5D8NN3L0SpLughTnywPRbvk6Iv/21u8vALqQHfJYezBDqS/USpm/EP5+soaOlfGWAUaVnxqLtVC6g8kN3dj4hry3ZcfOZwAriEC2M1TTA8vOd7lkGRwEPjBL/QOXWKJU7LPYArKpuL75+gJteQ/yvDHIjbo7ZGaKGhhiCYcQ0gS1I6Fe3V8Mw3N+m7/TpXwGxyEo7GrR7M/j7jhJto88eINDhBjiQkungCY3QIDAQABozIwMDAPBgNVHQ8BAf8EBQMDB/gAMB0GA1UdDgQWBBQ+PjQeG7CnRrqF9HXop07/756KrzANBgkqhkiG9w0BAQsFAAOCAQEAtQqQhc3tsdTHAlQRDkhnPS3N6x7xBpbjef+HOlta86DA9LSoYHBGnnZiwQHTgRbfUdUNllp7hITKMW942wTTwzY/owPukYoo4UAurOZcNkqFCzYJGqxS5bwQRSQO8iSRGwwooet730tzevcilLWH7gF752unoPBoxgCPNxdxWxxSmHpiaQTUAy00sfba0KQ5SLCkXJHEOXpnQsXhe0qm7f/0Mo51cU9pIChj0Cfc/eEmwbcdPnPOCP4N8je+kqW79b3b90kcyUqMDTJw+4HKK62juXm4SXaePJYzx1Yb1VCSZpwOBjHxudp4WrkRPTXFRX248UtSUI5zVw1QsCmOnw==`}, + "external_id": acctest.Representation{RepType: acctest.Optional, Create: `externalId`}, + "icon_url": acctest.Representation{RepType: acctest.Optional, Create: `https://something.com/iconUrl.png`, Update: `https://something.com/iconUrl2.png`}, + "idp_sso_url": acctest.Representation{RepType: acctest.Required, Create: `https://idpSsoUrl.com`, Update: `https://idpSsoUrl2.com`}, + "include_signing_cert_in_signature": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `true`}, + "jit_user_prov_assigned_groups": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsIdentityProviderJitUserProvAssignedGroupsRepresentation}, + "jit_user_prov_attribute_update_enabled": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `true`}, + "jit_user_prov_create_user_enabled": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `true`}, + "jit_user_prov_enabled": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `true`}, + "jit_user_prov_group_assertion_attribute_enabled": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `true`}, + "jit_user_prov_group_assignment_method": acctest.Representation{RepType: acctest.Optional, Create: `Overwrite`, Update: `Merge`}, + "jit_user_prov_group_mapping_mode": acctest.Representation{RepType: acctest.Optional, Create: `implicit`, Update: `explicit`}, + "jit_user_prov_group_mappings": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsIdentityProviderJitUserProvGroupMappingsRepresentation}, + "jit_user_prov_group_saml_attribute_name": acctest.Representation{RepType: acctest.Optional, Create: `jitUserProvGroupSAMLAttributeName`, Update: `jitUserProvGroupSAMLAttributeName2`}, + "jit_user_prov_group_static_list_enabled": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `true`}, + "jit_user_prov_ignore_error_on_absent_groups": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `true`}, + "logout_binding": acctest.Representation{RepType: acctest.Optional, Create: `Redirect`, Update: `Post`}, + "logout_enabled": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `true`}, + "logout_request_url": acctest.Representation{RepType: acctest.Optional, Create: `https://logoutRequestUrl.com`, Update: `https://logoutRequestUrl2.com`}, + "logout_response_url": acctest.Representation{RepType: acctest.Optional, Create: `https://logoutResponseUrl.com`, Update: `https://logoutResponseUrl2.com`}, + "metadata": acctest.Representation{RepType: acctest.Optional, Create: `NZnYsjLx3UbuL43iu3jo0mJUg/Rv9DTPNB5IQPRaD6g=KRIgTD7//x/uT73veS0iGcWWw8uprjd+MtREu3vlbFTk0BNgkeSOYItx2LDQhnHP\nO0zsTmtOHlVIsDXQL3KysHwzYndIuMJtETqEC6NpMw3ZF108IK0eT+o/2xC9u13/\nGq10z/MagGvco1mM/RIzX5e2omGyZcKARiDoeNPwg2znmV0WcifntVqn4Y0rnWM7\no0M5HFHZQEgICdTJbC5d6DwLgfnI4ck505fHNRYLsRqj9IGLukKx9kocSG1xzCye\nHlffU4CDyEA7dptEUH59dZmY0Xy35/aepNc7W6IovWsJ2Otr+qDUp207ZCKuISF0\nMEX5hX5VJzVlHDwxkEcYCA==MIIDZjCCAk6gAwIBAgIGAXoTivr8MA0GCSqGSIb3DQEBCwUAMFkxEzARBgoJkiaJ\nk/IsZAEZFgNjb20xFjAUBgoJkiaJk/IsZAEZFgZvcmFjbGUxFTATBgoJkiaJk/Is\nZAEZFgVjbG91ZDETMBEGA1UEAxMKQ2xvdWQ5Q0EtMjAeFw0yMTA2MTYwNjM4MzJa\nFw0zMTA2MTYwNjM4MzJaMFsxEzARBgNVBAMTCnNzbERvbWFpbnMxDzANBgNVBAMT\nBkNsb3VkOTEzMDEGA1UEAwwqaWRjcy1hY2YxM2MzMDYyMTM0NTJiYmQwZjgzZmJk\nYjM3OWYxZl9rZXlzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArC8S\ng+4SF3ZKdRjveLNheqFlcXZIDV6N6FjMJEYVLyQLrRg8gAXIRqhpS/Ym9Bj8emyV\n+P/ZlHxmwPkI8DbJX+gsTg9xXG+DlfDSnNTdEOr90hrmg5D8NN3L0SpLughTnywP\nRbvk6Iv/21u8vALqQHfJYezBDqS/USpm/EP5+soaOlfGWAUaVnxqLtVC6g8kN3dj\n4hry3ZcfOZwAriEC2M1TTA8vOd7lkGRwEPjBL/QOXWKJU7LPYArKpuL75+gJteQ/\nyvDHIjbo7ZGaKGhhiCYcQ0gS1I6Fe3V8Mw3N+m7/TpXwGxyEo7GrR7M/j7jhJto8\n8eINDhBjiQkungCY3QIDAQABozIwMDAPBgNVHQ8BAf8EBQMDB/gAMB0GA1UdDgQW\nBBQ+PjQeG7CnRrqF9HXop07/756KrzANBgkqhkiG9w0BAQsFAAOCAQEAtQqQhc3t\nsdTHAlQRDkhnPS3N6x7xBpbjef+HOlta86DA9LSoYHBGnnZiwQHTgRbfUdUNllp7\nhITKMW942wTTwzY/owPukYoo4UAurOZcNkqFCzYJGqxS5bwQRSQO8iSRGwwooet7\n30tzevcilLWH7gF752unoPBoxgCPNxdxWxxSmHpiaQTUAy00sfba0KQ5SLCkXJHE\nOXpnQsXhe0qm7f/0Mo51cU9pIChj0Cfc/eEmwbcdPnPOCP4N8je+kqW79b3b90kc\nyUqMDTJw+4HKK62juXm4SXaePJYzx1Yb1VCSZpwOBjHxudp4WrkRPTXFRX248UtS\nUI5zVw1QsCmOnw==MIIDZjCCAk6gAwIBAgIGAXoTivr8MA0GCSqGSIb3DQEBCwUAMFkxEzARBgoJkiaJ\nk/IsZAEZFgNjb20xFjAUBgoJkiaJk/IsZAEZFgZvcmFjbGUxFTATBgoJkiaJk/Is\nZAEZFgVjbG91ZDETMBEGA1UEAxMKQ2xvdWQ5Q0EtMjAeFw0yMTA2MTYwNjM4MzJa\nFw0zMTA2MTYwNjM4MzJaMFsxEzARBgNVBAMTCnNzbERvbWFpbnMxDzANBgNVBAMT\nBkNsb3VkOTEzMDEGA1UEAwwqaWRjcy1hY2YxM2MzMDYyMTM0NTJiYmQwZjgzZmJk\nYjM3OWYxZl9rZXlzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArC8S\ng+4SF3ZKdRjveLNheqFlcXZIDV6N6FjMJEYVLyQLrRg8gAXIRqhpS/Ym9Bj8emyV\n+P/ZlHxmwPkI8DbJX+gsTg9xXG+DlfDSnNTdEOr90hrmg5D8NN3L0SpLughTnywP\nRbvk6Iv/21u8vALqQHfJYezBDqS/USpm/EP5+soaOlfGWAUaVnxqLtVC6g8kN3dj\n4hry3ZcfOZwAriEC2M1TTA8vOd7lkGRwEPjBL/QOXWKJU7LPYArKpuL75+gJteQ/\nyvDHIjbo7ZGaKGhhiCYcQ0gS1I6Fe3V8Mw3N+m7/TpXwGxyEo7GrR7M/j7jhJto8\n8eINDhBjiQkungCY3QIDAQABozIwMDAPBgNVHQ8BAf8EBQMDB/gAMB0GA1UdDgQW\nBBQ+PjQeG7CnRrqF9HXop07/756KrzANBgkqhkiG9w0BAQsFAAOCAQEAtQqQhc3t\nsdTHAlQRDkhnPS3N6x7xBpbjef+HOlta86DA9LSoYHBGnnZiwQHTgRbfUdUNllp7\nhITKMW942wTTwzY/owPukYoo4UAurOZcNkqFCzYJGqxS5bwQRSQO8iSRGwwooet7\n30tzevcilLWH7gF752unoPBoxgCPNxdxWxxSmHpiaQTUAy00sfba0KQ5SLCkXJHE\nOXpnQsXhe0qm7f/0Mo51cU9pIChj0Cfc/eEmwbcdPnPOCP4N8je+kqW79b3b90kc\nyUqMDTJw+4HKK62juXm4SXaePJYzx1Yb1VCSZpwOBjHxudp4WrkRPTXFRX248UtS\nUI5zVw1QsCmOnw==\nCN=Cloud9CA-2, DC=cloud, DC=oracle, DC=com1623825513212CN=idcs-acf13c306213452bbd0f83fbdb379f1f_keys, CN=Cloud9, CN=sslDomainsMIIDZjCCAk6gAwIBAgIGAXoTivr8MA0GCSqGSIb3DQEBCwUAMFkxEzARBgoJkiaJ\nk/IsZAEZFgNjb20xFjAUBgoJkiaJk/IsZAEZFgZvcmFjbGUxFTATBgoJkiaJk/Is\nZAEZFgVjbG91ZDETMBEGA1UEAxMKQ2xvdWQ5Q0EtMjAeFw0yMTA2MTYwNjM4MzJa\nFw0zMTA2MTYwNjM4MzJaMFsxEzARBgNVBAMTCnNzbERvbWFpbnMxDzANBgNVBAMT\nBkNsb3VkOTEzMDEGA1UEAwwqaWRjcy1hY2YxM2MzMDYyMTM0NTJiYmQwZjgzZmJk\nYjM3OWYxZl9rZXlzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArC8S\ng+4SF3ZKdRjveLNheqFlcXZIDV6N6FjMJEYVLyQLrRg8gAXIRqhpS/Ym9Bj8emyV\n+P/ZlHxmwPkI8DbJX+gsTg9xXG+DlfDSnNTdEOr90hrmg5D8NN3L0SpLughTnywP\nRbvk6Iv/21u8vALqQHfJYezBDqS/USpm/EP5+soaOlfGWAUaVnxqLtVC6g8kN3dj\n4hry3ZcfOZwAriEC2M1TTA8vOd7lkGRwEPjBL/QOXWKJU7LPYArKpuL75+gJteQ/\nyvDHIjbo7ZGaKGhhiCYcQ0gS1I6Fe3V8Mw3N+m7/TpXwGxyEo7GrR7M/j7jhJto8\n8eINDhBjiQkungCY3QIDAQABozIwMDAPBgNVHQ8BAf8EBQMDB/gAMB0GA1UdDgQW\nBBQ+PjQeG7CnRrqF9HXop07/756KrzANBgkqhkiG9w0BAQsFAAOCAQEAtQqQhc3t\nsdTHAlQRDkhnPS3N6x7xBpbjef+HOlta86DA9LSoYHBGnnZiwQHTgRbfUdUNllp7\nhITKMW942wTTwzY/owPukYoo4UAurOZcNkqFCzYJGqxS5bwQRSQO8iSRGwwooet7\n30tzevcilLWH7gF752unoPBoxgCPNxdxWxxSmHpiaQTUAy00sfba0KQ5SLCkXJHE\nOXpnQsXhe0qm7f/0Mo51cU9pIChj0Cfc/eEmwbcdPnPOCP4N8je+kqW79b3b90kc\nyUqMDTJw+4HKK62juXm4SXaePJYzx1Yb1VCSZpwOBjHxudp4WrkRPTXFRX248UtS\nUI5zVw1QsCmOnw==\nCN=Cloud9CA-2, DC=cloud, DC=oracle, DC=com1623825513212CN=idcs-acf13c306213452bbd0f83fbdb379f1f_keys, CN=Cloud9, CN=sslDomainsMIIDZjCCAk6gAwIBAgIGAXoTivr8MA0GCSqGSIb3DQEBCwUAMFkxEzARBgoJkiaJ\nk/IsZAEZFgNjb20xFjAUBgoJkiaJk/IsZAEZFgZvcmFjbGUxFTATBgoJkiaJk/Is\nZAEZFgVjbG91ZDETMBEGA1UEAxMKQ2xvdWQ5Q0EtMjAeFw0yMTA2MTYwNjM4MzJa\nFw0zMTA2MTYwNjM4MzJaMFsxEzARBgNVBAMTCnNzbERvbWFpbnMxDzANBgNVBAMT\nBkNsb3VkOTEzMDEGA1UEAwwqaWRjcy1hY2YxM2MzMDYyMTM0NTJiYmQwZjgzZmJk\nYjM3OWYxZl9rZXlzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArC8S\ng+4SF3ZKdRjveLNheqFlcXZIDV6N6FjMJEYVLyQLrRg8gAXIRqhpS/Ym9Bj8emyV\n+P/ZlHxmwPkI8DbJX+gsTg9xXG+DlfDSnNTdEOr90hrmg5D8NN3L0SpLughTnywP\nRbvk6Iv/21u8vALqQHfJYezBDqS/USpm/EP5+soaOlfGWAUaVnxqLtVC6g8kN3dj\n4hry3ZcfOZwAriEC2M1TTA8vOd7lkGRwEPjBL/QOXWKJU7LPYArKpuL75+gJteQ/\nyvDHIjbo7ZGaKGhhiCYcQ0gS1I6Fe3V8Mw3N+m7/TpXwGxyEo7GrR7M/j7jhJto8\n8eINDhBjiQkungCY3QIDAQABozIwMDAPBgNVHQ8BAf8EBQMDB/gAMB0GA1UdDgQW\nBBQ+PjQeG7CnRrqF9HXop07/756KrzANBgkqhkiG9w0BAQsFAAOCAQEAtQqQhc3t\nsdTHAlQRDkhnPS3N6x7xBpbjef+HOlta86DA9LSoYHBGnnZiwQHTgRbfUdUNllp7\nhITKMW942wTTwzY/owPukYoo4UAurOZcNkqFCzYJGqxS5bwQRSQO8iSRGwwooet7\n30tzevcilLWH7gF752unoPBoxgCPNxdxWxxSmHpiaQTUAy00sfba0KQ5SLCkXJHE\nOXpnQsXhe0qm7f/0Mo51cU9pIChj0Cfc/eEmwbcdPnPOCP4N8je+kqW79b3b90kc\nyUqMDTJw+4HKK62juXm4SXaePJYzx1Yb1VCSZpwOBjHxudp4WrkRPTXFRX248UtS\nUI5zVw1QsCmOnw==\nCN=Cloud9CA-2, DC=cloud, DC=oracle, DC=com1623825513212CN=idcs-acf13c306213452bbd0f83fbdb379f1f_keys, CN=Cloud9, CN=sslDomainsMIIDZjCCAk6gAwIBAgIGAXoTivr8MA0GCSqGSIb3DQEBCwUAMFkxEzARBgoJkiaJ\nk/IsZAEZFgNjb20xFjAUBgoJkiaJk/IsZAEZFgZvcmFjbGUxFTATBgoJkiaJk/Is\nZAEZFgVjbG91ZDETMBEGA1UEAxMKQ2xvdWQ5Q0EtMjAeFw0yMTA2MTYwNjM4MzJa\nFw0zMTA2MTYwNjM4MzJaMFsxEzARBgNVBAMTCnNzbERvbWFpbnMxDzANBgNVBAMT\nBkNsb3VkOTEzMDEGA1UEAwwqaWRjcy1hY2YxM2MzMDYyMTM0NTJiYmQwZjgzZmJk\nYjM3OWYxZl9rZXlzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArC8S\ng+4SF3ZKdRjveLNheqFlcXZIDV6N6FjMJEYVLyQLrRg8gAXIRqhpS/Ym9Bj8emyV\n+P/ZlHxmwPkI8DbJX+gsTg9xXG+DlfDSnNTdEOr90hrmg5D8NN3L0SpLughTnywP\nRbvk6Iv/21u8vALqQHfJYezBDqS/USpm/EP5+soaOlfGWAUaVnxqLtVC6g8kN3dj\n4hry3ZcfOZwAriEC2M1TTA8vOd7lkGRwEPjBL/QOXWKJU7LPYArKpuL75+gJteQ/\nyvDHIjbo7ZGaKGhhiCYcQ0gS1I6Fe3V8Mw3N+m7/TpXwGxyEo7GrR7M/j7jhJto8\n8eINDhBjiQkungCY3QIDAQABozIwMDAPBgNVHQ8BAf8EBQMDB/gAMB0GA1UdDgQW\nBBQ+PjQeG7CnRrqF9HXop07/756KrzANBgkqhkiG9w0BAQsFAAOCAQEAtQqQhc3t\nsdTHAlQRDkhnPS3N6x7xBpbjef+HOlta86DA9LSoYHBGnnZiwQHTgRbfUdUNllp7\nhITKMW942wTTwzY/owPukYoo4UAurOZcNkqFCzYJGqxS5bwQRSQO8iSRGwwooet7\n30tzevcilLWH7gF752unoPBoxgCPNxdxWxxSmHpiaQTUAy00sfba0KQ5SLCkXJHE\nOXpnQsXhe0qm7f/0Mo51cU9pIChj0Cfc/eEmwbcdPnPOCP4N8je+kqW79b3b90kc\nyUqMDTJw+4HKK62juXm4SXaePJYzx1Yb1VCSZpwOBjHxudp4WrkRPTXFRX248UtS\nUI5zVw1QsCmOnw==\nCN=Cloud9CA-2, DC=cloud, DC=oracle, DC=com1623825513212CN=idcs-acf13c306213452bbd0f83fbdb379f1f_keys, CN=Cloud9, CN=sslDomains`}, + "name_id_format": acctest.Representation{RepType: acctest.Required, Create: `nameIdFormat`, Update: `nameIdFormat2`}, + "partner_provider_id": acctest.Representation{RepType: acctest.Required, Create: `https://idcs-acf13c306213452bbd0f83fbdb379f1f.unstable-alpha.identity.oci.oracleiaas.com:443/fed`}, + "require_force_authn": acctest.Representation{RepType: acctest.Optional, Create: `false`}, + "requires_encrypted_assertion": acctest.Representation{RepType: acctest.Optional, Create: `false`}, + "saml_ho_krequired": acctest.Representation{RepType: acctest.Optional, Create: `false`}, + "service_instance_identifier": acctest.Representation{RepType: acctest.Optional, Create: `serviceInstanceIdentifier`, Update: `serviceInstanceIdentifier2`}, + "shown_on_login_page": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `true`}, + "signature_hash_algorithm": acctest.Representation{RepType: acctest.Optional, Create: `SHA-1`, Update: `SHA-256`}, + "signing_certificate": acctest.Representation{RepType: acctest.Required, Create: `MIIDZjCCAk6gAwIBAgIGAXoTivr8MA0GCSqGSIb3DQEBCwUAMFkxEzARBgoJkiaJk/IsZAEZFgNjb20xFjAUBgoJkiaJk/IsZAEZFgZvcmFjbGUxFTATBgoJkiaJk/IsZAEZFgVjbG91ZDETMBEGA1UEAxMKQ2xvdWQ5Q0EtMjAeFw0yMTA2MTYwNjM4MzJaFw0zMTA2MTYwNjM4MzJaMFsxEzARBgNVBAMTCnNzbERvbWFpbnMxDzANBgNVBAMTBkNsb3VkOTEzMDEGA1UEAwwqaWRjcy1hY2YxM2MzMDYyMTM0NTJiYmQwZjgzZmJkYjM3OWYxZl9rZXlzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArC8Sg+4SF3ZKdRjveLNheqFlcXZIDV6N6FjMJEYVLyQLrRg8gAXIRqhpS/Ym9Bj8emyV+P/ZlHxmwPkI8DbJX+gsTg9xXG+DlfDSnNTdEOr90hrmg5D8NN3L0SpLughTnywPRbvk6Iv/21u8vALqQHfJYezBDqS/USpm/EP5+soaOlfGWAUaVnxqLtVC6g8kN3dj4hry3ZcfOZwAriEC2M1TTA8vOd7lkGRwEPjBL/QOXWKJU7LPYArKpuL75+gJteQ/yvDHIjbo7ZGaKGhhiCYcQ0gS1I6Fe3V8Mw3N+m7/TpXwGxyEo7GrR7M/j7jhJto88eINDhBjiQkungCY3QIDAQABozIwMDAPBgNVHQ8BAf8EBQMDB/gAMB0GA1UdDgQWBBQ+PjQeG7CnRrqF9HXop07/756KrzANBgkqhkiG9w0BAQsFAAOCAQEAtQqQhc3tsdTHAlQRDkhnPS3N6x7xBpbjef+HOlta86DA9LSoYHBGnnZiwQHTgRbfUdUNllp7hITKMW942wTTwzY/owPukYoo4UAurOZcNkqFCzYJGqxS5bwQRSQO8iSRGwwooet730tzevcilLWH7gF752unoPBoxgCPNxdxWxxSmHpiaQTUAy00sfba0KQ5SLCkXJHEOXpnQsXhe0qm7f/0Mo51cU9pIChj0Cfc/eEmwbcdPnPOCP4N8je+kqW79b3b90kcyUqMDTJw+4HKK62juXm4SXaePJYzx1Yb1VCSZpwOBjHxudp4WrkRPTXFRX248UtSUI5zVw1QsCmOnw==`}, + "succinct_id": acctest.Representation{RepType: acctest.Optional, Create: `succinctId`}, + "tags": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsIdentityProviderTagsRepresentation}, + "type": acctest.Representation{RepType: acctest.Optional, Create: `SAML`}, + "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsIdentityProviderUrnietfparamsscimschemasoracleidcsextensionsocialIdentityProviderRepresentation}, + "urnietfparamsscimschemasoracleidcsextensionx509identity_provider": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsIdentityProviderUrnietfparamsscimschemasoracleidcsextensionx509IdentityProviderRepresentation}, + "user_mapping_method": acctest.Representation{RepType: acctest.Optional, Create: `NameIDToUserAttribute`, Update: `AssertionAttributeToUserAttribute`}, + "user_mapping_store_attribute": acctest.Representation{RepType: acctest.Optional, Create: `userName`, Update: `name.givenName`}, + "lifecycle": acctest.RepresentationGroup{RepType: acctest.Required, Group: ignoreChangeForIdentityDomainsIdentityProvider}, + } + ignoreChangeForIdentityDomainsIdentityProvider = map[string]interface{}{ + "ignore_changes": acctest.Representation{RepType: acctest.Required, Create: []string{ + `schemas`, + }}, + } + IdentityDomainsIdentityProviderJitUserProvAssignedGroupsRepresentation = map[string]interface{}{ + "value": acctest.Representation{RepType: acctest.Required, Create: `${oci_identity_domains_group.test_group.id}`}, + } + IdentityDomainsIdentityProviderJitUserProvGroupMappingsRepresentation = map[string]interface{}{ + "idp_group": acctest.Representation{RepType: acctest.Required, Create: `idpGroup`, Update: `idpGroup2`}, + "value": acctest.Representation{RepType: acctest.Required, Create: `${oci_identity_domains_group.test_group.id}`}, + } + IdentityDomainsIdentityProviderTagsRepresentation = map[string]interface{}{ + "key": acctest.Representation{RepType: acctest.Required, Create: `key`, Update: `key2`}, + "value": acctest.Representation{RepType: acctest.Required, Create: `value`, Update: `value2`}, + } + IdentityDomainsIdentityProviderUrnietfparamsscimschemasoracleidcsextensionsocialIdentityProviderRepresentation = map[string]interface{}{ + "account_linking_enabled": acctest.Representation{RepType: acctest.Required, Create: `false`, Update: `true`}, + "consumer_key": acctest.Representation{RepType: acctest.Required, Create: `consumerKey`, Update: `consumerKey2`}, + "consumer_secret": acctest.Representation{RepType: acctest.Required, Create: `consumerSecret`, Update: `consumerSecret2`}, + "registration_enabled": acctest.Representation{RepType: acctest.Required, Create: `false`, Update: `true`}, + "service_provider_name": acctest.Representation{RepType: acctest.Required, Create: `serviceProviderName`}, + "access_token_url": acctest.Representation{RepType: acctest.Optional, Create: `accessTokenUrl`, Update: `accessTokenUrl2`}, + "admin_scope": acctest.Representation{RepType: acctest.Optional, Create: []string{`adminScope`}, Update: []string{`adminScope2`}}, + "authz_url": acctest.Representation{RepType: acctest.Optional, Create: `authzUrl`, Update: `authzUrl2`}, + "client_credential_in_payload": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `true`}, + "clock_skew_in_seconds": acctest.Representation{RepType: acctest.Optional, Create: `10`, Update: `11`}, + "discovery_url": acctest.Representation{RepType: acctest.Optional, Create: `discoveryUrl`, Update: `discoveryUrl2`}, + "id_attribute": acctest.Representation{RepType: acctest.Optional, Create: `idAttribute`}, + "profile_url": acctest.Representation{RepType: acctest.Optional, Create: `profileUrl`, Update: `profileUrl2`}, + "redirect_url": acctest.Representation{RepType: acctest.Optional, Create: `redirectUrl`, Update: `redirectUrl2`}, + "scope": acctest.Representation{RepType: acctest.Optional, Create: []string{`scope`}, Update: []string{`scope2`}}, + "status": acctest.Representation{RepType: acctest.Optional, Create: `created`, Update: `deleted`}, + } + IdentityDomainsIdentityProviderUrnietfparamsscimschemasoracleidcsextensionx509IdentityProviderRepresentation = map[string]interface{}{ + "cert_match_attribute": acctest.Representation{RepType: acctest.Required, Create: `certMatchAttribute`, Update: `certMatchAttribute2`}, + "signing_certificate_chain": acctest.Representation{RepType: acctest.Required, Create: []string{`signingCertificateChain`}, Update: []string{`signingCertificateChain2`}}, + "user_match_attribute": acctest.Representation{RepType: acctest.Required, Create: `userMatchAttribute`, Update: `userMatchAttribute2`}, + "crl_check_on_ocsp_failure_enabled": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `true`}, + "crl_enabled": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `true`}, + "crl_location": acctest.Representation{RepType: acctest.Optional, Create: `crlLocation`, Update: `crlLocation2`}, + "crl_reload_duration": acctest.Representation{RepType: acctest.Optional, Create: `10`, Update: `11`}, + "ocsp_allow_unknown_response_status": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `true`}, + "ocsp_enable_signed_response": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `true`}, + "ocsp_enabled": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `true`}, + "ocsp_responder_url": acctest.Representation{RepType: acctest.Optional, Create: `ocspResponderURL`, Update: `ocspResponderURL2`}, + "ocsp_revalidate_time": acctest.Representation{RepType: acctest.Optional, Create: `10`, Update: `11`}, + "ocsp_server_name": acctest.Representation{RepType: acctest.Optional, Create: `ocspServerName`, Update: `ocspServerName2`}, + "ocsp_trust_cert_chain": acctest.Representation{RepType: acctest.Optional, Create: []string{`ocspTrustCertChain`}, Update: []string{`ocspTrustCertChain2`}}, + "other_cert_match_attribute": acctest.Representation{RepType: acctest.Optional, Create: `otherCertMatchAttribute`, Update: `otherCertMatchAttribute2`}, + } + + IdentityDomainsIdentityProviderResourceDependencies = TestDomainDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_group", "test_group", acctest.Required, acctest.Create, IdentityDomainsGroupRepresentation) +) + +// issue-routing-tag: identity_domains/default +func TestIdentityDomainsIdentityProviderResource_basic(t *testing.T) { + httpreplay.SetScenario("TestIdentityDomainsIdentityProviderResource_basic") + defer httpreplay.SaveScenario() + + config := acctest.ProviderTestConfig() + + compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid") + compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId) + + resourceName := "oci_identity_domains_identity_provider.test_identity_provider" + datasourceName := "data.oci_identity_domains_identity_providers.test_identity_providers" + singularDatasourceName := "data.oci_identity_domains_identity_provider.test_identity_provider" + + var resId, resId2 string + // Save TF content to Create resource with optional properties. This has to be exactly the same as the config part in the "create with optionals" step in the test. + acctest.SaveConfigContent(config+compartmentIdVariableStr+IdentityDomainsIdentityProviderResourceDependencies+ + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_identity_provider", "test_identity_provider", acctest.Optional, acctest.Create, IdentityDomainsIdentityProviderRepresentation), "identitydomains", "identityProvider", t) + + print(config + compartmentIdVariableStr + IdentityDomainsIdentityProviderResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_identity_provider", "test_identity_provider", acctest.Optional, acctest.Create, IdentityDomainsIdentityProviderRepresentation)) + acctest.ResourceTest(t, testAccCheckIdentityDomainsIdentityProviderDestroy, []resource.TestStep{ + // verify Create + { + Config: config + compartmentIdVariableStr + IdentityDomainsIdentityProviderResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_identity_provider", "test_identity_provider", acctest.Required, acctest.Create, + acctest.RepresentationCopyWithNewProperties(IdentityDomainsIdentityProviderRepresentation, map[string]interface{}{ + "enabled": acctest.Representation{RepType: acctest.Required, Create: `false`}, + }, + ), + ), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(resourceName, "enabled", "false"), + resource.TestCheckResourceAttrSet(resourceName, "idcs_endpoint"), + resource.TestCheckResourceAttr(resourceName, "partner_name", "partnerName"), + resource.TestMatchResourceAttr(resourceName, "schemas.#", regexp.MustCompile("[1-9]+")), + + func(s *terraform.State) (err error) { + resId, err = acctest.FromInstanceState(s, resourceName, "id") + return err + }, + ), + }, + + // delete before next Create + { + Config: config + compartmentIdVariableStr + IdentityDomainsIdentityProviderResourceDependencies, + }, + // verify Create with optionals + { + Config: config + compartmentIdVariableStr + IdentityDomainsIdentityProviderResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_identity_provider", "test_identity_provider", acctest.Optional, acctest.Create, IdentityDomainsIdentityProviderRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(resourceName, "assertion_attribute", "assertionAttribute"), + resource.TestCheckResourceAttr(resourceName, "attribute_sets.#", "1"), + resource.TestCheckResourceAttr(resourceName, "authn_request_binding", "Redirect"), + resource.TestCheckResourceAttr(resourceName, "description", "description"), + resource.TestCheckResourceAttr(resourceName, "enabled", "true"), + resource.TestCheckResourceAttr(resourceName, "encryption_certificate", "MIIDZjCCAk6gAwIBAgIGAXoTivr8MA0GCSqGSIb3DQEBCwUAMFkxEzARBgoJkiaJk/IsZAEZFgNjb20xFjAUBgoJkiaJk/IsZAEZFgZvcmFjbGUxFTATBgoJkiaJk/IsZAEZFgVjbG91ZDETMBEGA1UEAxMKQ2xvdWQ5Q0EtMjAeFw0yMTA2MTYwNjM4MzJaFw0zMTA2MTYwNjM4MzJaMFsxEzARBgNVBAMTCnNzbERvbWFpbnMxDzANBgNVBAMTBkNsb3VkOTEzMDEGA1UEAwwqaWRjcy1hY2YxM2MzMDYyMTM0NTJiYmQwZjgzZmJkYjM3OWYxZl9rZXlzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArC8Sg+4SF3ZKdRjveLNheqFlcXZIDV6N6FjMJEYVLyQLrRg8gAXIRqhpS/Ym9Bj8emyV+P/ZlHxmwPkI8DbJX+gsTg9xXG+DlfDSnNTdEOr90hrmg5D8NN3L0SpLughTnywPRbvk6Iv/21u8vALqQHfJYezBDqS/USpm/EP5+soaOlfGWAUaVnxqLtVC6g8kN3dj4hry3ZcfOZwAriEC2M1TTA8vOd7lkGRwEPjBL/QOXWKJU7LPYArKpuL75+gJteQ/yvDHIjbo7ZGaKGhhiCYcQ0gS1I6Fe3V8Mw3N+m7/TpXwGxyEo7GrR7M/j7jhJto88eINDhBjiQkungCY3QIDAQABozIwMDAPBgNVHQ8BAf8EBQMDB/gAMB0GA1UdDgQWBBQ+PjQeG7CnRrqF9HXop07/756KrzANBgkqhkiG9w0BAQsFAAOCAQEAtQqQhc3tsdTHAlQRDkhnPS3N6x7xBpbjef+HOlta86DA9LSoYHBGnnZiwQHTgRbfUdUNllp7hITKMW942wTTwzY/owPukYoo4UAurOZcNkqFCzYJGqxS5bwQRSQO8iSRGwwooet730tzevcilLWH7gF752unoPBoxgCPNxdxWxxSmHpiaQTUAy00sfba0KQ5SLCkXJHEOXpnQsXhe0qm7f/0Mo51cU9pIChj0Cfc/eEmwbcdPnPOCP4N8je+kqW79b3b90kcyUqMDTJw+4HKK62juXm4SXaePJYzx1Yb1VCSZpwOBjHxudp4WrkRPTXFRX248UtSUI5zVw1QsCmOnw=="), + resource.TestCheckResourceAttrSet(resourceName, "external_id"), + resource.TestCheckResourceAttrSet(resourceName, "id"), + resource.TestCheckResourceAttr(resourceName, "icon_url", "https://something.com/iconUrl.png"), + resource.TestCheckResourceAttr(resourceName, "idcs_created_by.#", "1"), + resource.TestCheckResourceAttrSet(resourceName, "idcs_endpoint"), + resource.TestCheckResourceAttr(resourceName, "idp_sso_url", "https://idpSsoUrl.com"), + resource.TestCheckResourceAttr(resourceName, "include_signing_cert_in_signature", "false"), + resource.TestCheckResourceAttr(resourceName, "jit_user_prov_assigned_groups.#", "1"), + resource.TestCheckResourceAttrSet(resourceName, "jit_user_prov_assigned_groups.0.value"), + resource.TestCheckResourceAttr(resourceName, "jit_user_prov_attribute_update_enabled", "false"), + resource.TestCheckResourceAttr(resourceName, "jit_user_prov_create_user_enabled", "false"), + resource.TestCheckResourceAttr(resourceName, "jit_user_prov_enabled", "false"), + resource.TestCheckResourceAttr(resourceName, "jit_user_prov_group_assertion_attribute_enabled", "false"), + resource.TestCheckResourceAttr(resourceName, "jit_user_prov_group_assignment_method", "Overwrite"), + resource.TestCheckResourceAttr(resourceName, "jit_user_prov_group_mapping_mode", "implicit"), + resource.TestCheckResourceAttr(resourceName, "jit_user_prov_group_mappings.#", "1"), + resource.TestCheckResourceAttr(resourceName, "jit_user_prov_group_mappings.0.idp_group", "idpGroup"), + resource.TestCheckResourceAttrSet(resourceName, "jit_user_prov_group_mappings.0.ref"), + resource.TestCheckResourceAttrSet(resourceName, "jit_user_prov_group_mappings.0.value"), + resource.TestCheckResourceAttr(resourceName, "jit_user_prov_group_saml_attribute_name", "jitUserProvGroupSAMLAttributeName"), + resource.TestCheckResourceAttr(resourceName, "jit_user_prov_group_static_list_enabled", "false"), + resource.TestCheckResourceAttr(resourceName, "jit_user_prov_ignore_error_on_absent_groups", "false"), + resource.TestCheckResourceAttr(resourceName, "logout_binding", "Redirect"), + resource.TestCheckResourceAttr(resourceName, "logout_enabled", "false"), + resource.TestCheckResourceAttr(resourceName, "logout_request_url", "https://logoutRequestUrl.com"), + resource.TestCheckResourceAttr(resourceName, "logout_response_url", "https://logoutResponseUrl.com"), + resource.TestCheckResourceAttr(resourceName, "metadata", "NZnYsjLx3UbuL43iu3jo0mJUg/Rv9DTPNB5IQPRaD6g=KRIgTD7//x/uT73veS0iGcWWw8uprjd+MtREu3vlbFTk0BNgkeSOYItx2LDQhnHP\nO0zsTmtOHlVIsDXQL3KysHwzYndIuMJtETqEC6NpMw3ZF108IK0eT+o/2xC9u13/\nGq10z/MagGvco1mM/RIzX5e2omGyZcKARiDoeNPwg2znmV0WcifntVqn4Y0rnWM7\no0M5HFHZQEgICdTJbC5d6DwLgfnI4ck505fHNRYLsRqj9IGLukKx9kocSG1xzCye\nHlffU4CDyEA7dptEUH59dZmY0Xy35/aepNc7W6IovWsJ2Otr+qDUp207ZCKuISF0\nMEX5hX5VJzVlHDwxkEcYCA==MIIDZjCCAk6gAwIBAgIGAXoTivr8MA0GCSqGSIb3DQEBCwUAMFkxEzARBgoJkiaJ\nk/IsZAEZFgNjb20xFjAUBgoJkiaJk/IsZAEZFgZvcmFjbGUxFTATBgoJkiaJk/Is\nZAEZFgVjbG91ZDETMBEGA1UEAxMKQ2xvdWQ5Q0EtMjAeFw0yMTA2MTYwNjM4MzJa\nFw0zMTA2MTYwNjM4MzJaMFsxEzARBgNVBAMTCnNzbERvbWFpbnMxDzANBgNVBAMT\nBkNsb3VkOTEzMDEGA1UEAwwqaWRjcy1hY2YxM2MzMDYyMTM0NTJiYmQwZjgzZmJk\nYjM3OWYxZl9rZXlzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArC8S\ng+4SF3ZKdRjveLNheqFlcXZIDV6N6FjMJEYVLyQLrRg8gAXIRqhpS/Ym9Bj8emyV\n+P/ZlHxmwPkI8DbJX+gsTg9xXG+DlfDSnNTdEOr90hrmg5D8NN3L0SpLughTnywP\nRbvk6Iv/21u8vALqQHfJYezBDqS/USpm/EP5+soaOlfGWAUaVnxqLtVC6g8kN3dj\n4hry3ZcfOZwAriEC2M1TTA8vOd7lkGRwEPjBL/QOXWKJU7LPYArKpuL75+gJteQ/\nyvDHIjbo7ZGaKGhhiCYcQ0gS1I6Fe3V8Mw3N+m7/TpXwGxyEo7GrR7M/j7jhJto8\n8eINDhBjiQkungCY3QIDAQABozIwMDAPBgNVHQ8BAf8EBQMDB/gAMB0GA1UdDgQW\nBBQ+PjQeG7CnRrqF9HXop07/756KrzANBgkqhkiG9w0BAQsFAAOCAQEAtQqQhc3t\nsdTHAlQRDkhnPS3N6x7xBpbjef+HOlta86DA9LSoYHBGnnZiwQHTgRbfUdUNllp7\nhITKMW942wTTwzY/owPukYoo4UAurOZcNkqFCzYJGqxS5bwQRSQO8iSRGwwooet7\n30tzevcilLWH7gF752unoPBoxgCPNxdxWxxSmHpiaQTUAy00sfba0KQ5SLCkXJHE\nOXpnQsXhe0qm7f/0Mo51cU9pIChj0Cfc/eEmwbcdPnPOCP4N8je+kqW79b3b90kc\nyUqMDTJw+4HKK62juXm4SXaePJYzx1Yb1VCSZpwOBjHxudp4WrkRPTXFRX248UtS\nUI5zVw1QsCmOnw==MIIDZjCCAk6gAwIBAgIGAXoTivr8MA0GCSqGSIb3DQEBCwUAMFkxEzARBgoJkiaJ\nk/IsZAEZFgNjb20xFjAUBgoJkiaJk/IsZAEZFgZvcmFjbGUxFTATBgoJkiaJk/Is\nZAEZFgVjbG91ZDETMBEGA1UEAxMKQ2xvdWQ5Q0EtMjAeFw0yMTA2MTYwNjM4MzJa\nFw0zMTA2MTYwNjM4MzJaMFsxEzARBgNVBAMTCnNzbERvbWFpbnMxDzANBgNVBAMT\nBkNsb3VkOTEzMDEGA1UEAwwqaWRjcy1hY2YxM2MzMDYyMTM0NTJiYmQwZjgzZmJk\nYjM3OWYxZl9rZXlzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArC8S\ng+4SF3ZKdRjveLNheqFlcXZIDV6N6FjMJEYVLyQLrRg8gAXIRqhpS/Ym9Bj8emyV\n+P/ZlHxmwPkI8DbJX+gsTg9xXG+DlfDSnNTdEOr90hrmg5D8NN3L0SpLughTnywP\nRbvk6Iv/21u8vALqQHfJYezBDqS/USpm/EP5+soaOlfGWAUaVnxqLtVC6g8kN3dj\n4hry3ZcfOZwAriEC2M1TTA8vOd7lkGRwEPjBL/QOXWKJU7LPYArKpuL75+gJteQ/\nyvDHIjbo7ZGaKGhhiCYcQ0gS1I6Fe3V8Mw3N+m7/TpXwGxyEo7GrR7M/j7jhJto8\n8eINDhBjiQkungCY3QIDAQABozIwMDAPBgNVHQ8BAf8EBQMDB/gAMB0GA1UdDgQW\nBBQ+PjQeG7CnRrqF9HXop07/756KrzANBgkqhkiG9w0BAQsFAAOCAQEAtQqQhc3t\nsdTHAlQRDkhnPS3N6x7xBpbjef+HOlta86DA9LSoYHBGnnZiwQHTgRbfUdUNllp7\nhITKMW942wTTwzY/owPukYoo4UAurOZcNkqFCzYJGqxS5bwQRSQO8iSRGwwooet7\n30tzevcilLWH7gF752unoPBoxgCPNxdxWxxSmHpiaQTUAy00sfba0KQ5SLCkXJHE\nOXpnQsXhe0qm7f/0Mo51cU9pIChj0Cfc/eEmwbcdPnPOCP4N8je+kqW79b3b90kc\nyUqMDTJw+4HKK62juXm4SXaePJYzx1Yb1VCSZpwOBjHxudp4WrkRPTXFRX248UtS\nUI5zVw1QsCmOnw==\nCN=Cloud9CA-2, DC=cloud, DC=oracle, DC=com1623825513212CN=idcs-acf13c306213452bbd0f83fbdb379f1f_keys, CN=Cloud9, CN=sslDomainsMIIDZjCCAk6gAwIBAgIGAXoTivr8MA0GCSqGSIb3DQEBCwUAMFkxEzARBgoJkiaJ\nk/IsZAEZFgNjb20xFjAUBgoJkiaJk/IsZAEZFgZvcmFjbGUxFTATBgoJkiaJk/Is\nZAEZFgVjbG91ZDETMBEGA1UEAxMKQ2xvdWQ5Q0EtMjAeFw0yMTA2MTYwNjM4MzJa\nFw0zMTA2MTYwNjM4MzJaMFsxEzARBgNVBAMTCnNzbERvbWFpbnMxDzANBgNVBAMT\nBkNsb3VkOTEzMDEGA1UEAwwqaWRjcy1hY2YxM2MzMDYyMTM0NTJiYmQwZjgzZmJk\nYjM3OWYxZl9rZXlzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArC8S\ng+4SF3ZKdRjveLNheqFlcXZIDV6N6FjMJEYVLyQLrRg8gAXIRqhpS/Ym9Bj8emyV\n+P/ZlHxmwPkI8DbJX+gsTg9xXG+DlfDSnNTdEOr90hrmg5D8NN3L0SpLughTnywP\nRbvk6Iv/21u8vALqQHfJYezBDqS/USpm/EP5+soaOlfGWAUaVnxqLtVC6g8kN3dj\n4hry3ZcfOZwAriEC2M1TTA8vOd7lkGRwEPjBL/QOXWKJU7LPYArKpuL75+gJteQ/\nyvDHIjbo7ZGaKGhhiCYcQ0gS1I6Fe3V8Mw3N+m7/TpXwGxyEo7GrR7M/j7jhJto8\n8eINDhBjiQkungCY3QIDAQABozIwMDAPBgNVHQ8BAf8EBQMDB/gAMB0GA1UdDgQW\nBBQ+PjQeG7CnRrqF9HXop07/756KrzANBgkqhkiG9w0BAQsFAAOCAQEAtQqQhc3t\nsdTHAlQRDkhnPS3N6x7xBpbjef+HOlta86DA9LSoYHBGnnZiwQHTgRbfUdUNllp7\nhITKMW942wTTwzY/owPukYoo4UAurOZcNkqFCzYJGqxS5bwQRSQO8iSRGwwooet7\n30tzevcilLWH7gF752unoPBoxgCPNxdxWxxSmHpiaQTUAy00sfba0KQ5SLCkXJHE\nOXpnQsXhe0qm7f/0Mo51cU9pIChj0Cfc/eEmwbcdPnPOCP4N8je+kqW79b3b90kc\nyUqMDTJw+4HKK62juXm4SXaePJYzx1Yb1VCSZpwOBjHxudp4WrkRPTXFRX248UtS\nUI5zVw1QsCmOnw==\nCN=Cloud9CA-2, DC=cloud, DC=oracle, DC=com1623825513212CN=idcs-acf13c306213452bbd0f83fbdb379f1f_keys, CN=Cloud9, CN=sslDomainsMIIDZjCCAk6gAwIBAgIGAXoTivr8MA0GCSqGSIb3DQEBCwUAMFkxEzARBgoJkiaJ\nk/IsZAEZFgNjb20xFjAUBgoJkiaJk/IsZAEZFgZvcmFjbGUxFTATBgoJkiaJk/Is\nZAEZFgVjbG91ZDETMBEGA1UEAxMKQ2xvdWQ5Q0EtMjAeFw0yMTA2MTYwNjM4MzJa\nFw0zMTA2MTYwNjM4MzJaMFsxEzARBgNVBAMTCnNzbERvbWFpbnMxDzANBgNVBAMT\nBkNsb3VkOTEzMDEGA1UEAwwqaWRjcy1hY2YxM2MzMDYyMTM0NTJiYmQwZjgzZmJk\nYjM3OWYxZl9rZXlzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArC8S\ng+4SF3ZKdRjveLNheqFlcXZIDV6N6FjMJEYVLyQLrRg8gAXIRqhpS/Ym9Bj8emyV\n+P/ZlHxmwPkI8DbJX+gsTg9xXG+DlfDSnNTdEOr90hrmg5D8NN3L0SpLughTnywP\nRbvk6Iv/21u8vALqQHfJYezBDqS/USpm/EP5+soaOlfGWAUaVnxqLtVC6g8kN3dj\n4hry3ZcfOZwAriEC2M1TTA8vOd7lkGRwEPjBL/QOXWKJU7LPYArKpuL75+gJteQ/\nyvDHIjbo7ZGaKGhhiCYcQ0gS1I6Fe3V8Mw3N+m7/TpXwGxyEo7GrR7M/j7jhJto8\n8eINDhBjiQkungCY3QIDAQABozIwMDAPBgNVHQ8BAf8EBQMDB/gAMB0GA1UdDgQW\nBBQ+PjQeG7CnRrqF9HXop07/756KrzANBgkqhkiG9w0BAQsFAAOCAQEAtQqQhc3t\nsdTHAlQRDkhnPS3N6x7xBpbjef+HOlta86DA9LSoYHBGnnZiwQHTgRbfUdUNllp7\nhITKMW942wTTwzY/owPukYoo4UAurOZcNkqFCzYJGqxS5bwQRSQO8iSRGwwooet7\n30tzevcilLWH7gF752unoPBoxgCPNxdxWxxSmHpiaQTUAy00sfba0KQ5SLCkXJHE\nOXpnQsXhe0qm7f/0Mo51cU9pIChj0Cfc/eEmwbcdPnPOCP4N8je+kqW79b3b90kc\nyUqMDTJw+4HKK62juXm4SXaePJYzx1Yb1VCSZpwOBjHxudp4WrkRPTXFRX248UtS\nUI5zVw1QsCmOnw==\nCN=Cloud9CA-2, DC=cloud, DC=oracle, DC=com1623825513212CN=idcs-acf13c306213452bbd0f83fbdb379f1f_keys, CN=Cloud9, CN=sslDomainsMIIDZjCCAk6gAwIBAgIGAXoTivr8MA0GCSqGSIb3DQEBCwUAMFkxEzARBgoJkiaJ\nk/IsZAEZFgNjb20xFjAUBgoJkiaJk/IsZAEZFgZvcmFjbGUxFTATBgoJkiaJk/Is\nZAEZFgVjbG91ZDETMBEGA1UEAxMKQ2xvdWQ5Q0EtMjAeFw0yMTA2MTYwNjM4MzJa\nFw0zMTA2MTYwNjM4MzJaMFsxEzARBgNVBAMTCnNzbERvbWFpbnMxDzANBgNVBAMT\nBkNsb3VkOTEzMDEGA1UEAwwqaWRjcy1hY2YxM2MzMDYyMTM0NTJiYmQwZjgzZmJk\nYjM3OWYxZl9rZXlzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArC8S\ng+4SF3ZKdRjveLNheqFlcXZIDV6N6FjMJEYVLyQLrRg8gAXIRqhpS/Ym9Bj8emyV\n+P/ZlHxmwPkI8DbJX+gsTg9xXG+DlfDSnNTdEOr90hrmg5D8NN3L0SpLughTnywP\nRbvk6Iv/21u8vALqQHfJYezBDqS/USpm/EP5+soaOlfGWAUaVnxqLtVC6g8kN3dj\n4hry3ZcfOZwAriEC2M1TTA8vOd7lkGRwEPjBL/QOXWKJU7LPYArKpuL75+gJteQ/\nyvDHIjbo7ZGaKGhhiCYcQ0gS1I6Fe3V8Mw3N+m7/TpXwGxyEo7GrR7M/j7jhJto8\n8eINDhBjiQkungCY3QIDAQABozIwMDAPBgNVHQ8BAf8EBQMDB/gAMB0GA1UdDgQW\nBBQ+PjQeG7CnRrqF9HXop07/756KrzANBgkqhkiG9w0BAQsFAAOCAQEAtQqQhc3t\nsdTHAlQRDkhnPS3N6x7xBpbjef+HOlta86DA9LSoYHBGnnZiwQHTgRbfUdUNllp7\nhITKMW942wTTwzY/owPukYoo4UAurOZcNkqFCzYJGqxS5bwQRSQO8iSRGwwooet7\n30tzevcilLWH7gF752unoPBoxgCPNxdxWxxSmHpiaQTUAy00sfba0KQ5SLCkXJHE\nOXpnQsXhe0qm7f/0Mo51cU9pIChj0Cfc/eEmwbcdPnPOCP4N8je+kqW79b3b90kc\nyUqMDTJw+4HKK62juXm4SXaePJYzx1Yb1VCSZpwOBjHxudp4WrkRPTXFRX248UtS\nUI5zVw1QsCmOnw==\nCN=Cloud9CA-2, DC=cloud, DC=oracle, DC=com1623825513212CN=idcs-acf13c306213452bbd0f83fbdb379f1f_keys, CN=Cloud9, CN=sslDomains"), + resource.TestCheckResourceAttr(resourceName, "name_id_format", "nameIdFormat"), + resource.TestCheckResourceAttr(resourceName, "partner_name", "partnerName"), + resource.TestCheckResourceAttrSet(resourceName, "partner_provider_id"), + resource.TestCheckResourceAttr(resourceName, "require_force_authn", "false"), + resource.TestCheckResourceAttr(resourceName, "requires_encrypted_assertion", "false"), + resource.TestCheckResourceAttr(resourceName, "saml_ho_krequired", "false"), + resource.TestMatchResourceAttr(resourceName, "schemas.#", regexp.MustCompile("[1-9]+")), + resource.TestCheckResourceAttr(resourceName, "service_instance_identifier", "serviceInstanceIdentifier"), + resource.TestCheckResourceAttr(resourceName, "shown_on_login_page", "false"), + resource.TestCheckResourceAttr(resourceName, "signature_hash_algorithm", "SHA-1"), + resource.TestCheckResourceAttr(resourceName, "signing_certificate", "MIIDZjCCAk6gAwIBAgIGAXoTivr8MA0GCSqGSIb3DQEBCwUAMFkxEzARBgoJkiaJk/IsZAEZFgNjb20xFjAUBgoJkiaJk/IsZAEZFgZvcmFjbGUxFTATBgoJkiaJk/IsZAEZFgVjbG91ZDETMBEGA1UEAxMKQ2xvdWQ5Q0EtMjAeFw0yMTA2MTYwNjM4MzJaFw0zMTA2MTYwNjM4MzJaMFsxEzARBgNVBAMTCnNzbERvbWFpbnMxDzANBgNVBAMTBkNsb3VkOTEzMDEGA1UEAwwqaWRjcy1hY2YxM2MzMDYyMTM0NTJiYmQwZjgzZmJkYjM3OWYxZl9rZXlzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArC8Sg+4SF3ZKdRjveLNheqFlcXZIDV6N6FjMJEYVLyQLrRg8gAXIRqhpS/Ym9Bj8emyV+P/ZlHxmwPkI8DbJX+gsTg9xXG+DlfDSnNTdEOr90hrmg5D8NN3L0SpLughTnywPRbvk6Iv/21u8vALqQHfJYezBDqS/USpm/EP5+soaOlfGWAUaVnxqLtVC6g8kN3dj4hry3ZcfOZwAriEC2M1TTA8vOd7lkGRwEPjBL/QOXWKJU7LPYArKpuL75+gJteQ/yvDHIjbo7ZGaKGhhiCYcQ0gS1I6Fe3V8Mw3N+m7/TpXwGxyEo7GrR7M/j7jhJto88eINDhBjiQkungCY3QIDAQABozIwMDAPBgNVHQ8BAf8EBQMDB/gAMB0GA1UdDgQWBBQ+PjQeG7CnRrqF9HXop07/756KrzANBgkqhkiG9w0BAQsFAAOCAQEAtQqQhc3tsdTHAlQRDkhnPS3N6x7xBpbjef+HOlta86DA9LSoYHBGnnZiwQHTgRbfUdUNllp7hITKMW942wTTwzY/owPukYoo4UAurOZcNkqFCzYJGqxS5bwQRSQO8iSRGwwooet730tzevcilLWH7gF752unoPBoxgCPNxdxWxxSmHpiaQTUAy00sfba0KQ5SLCkXJHEOXpnQsXhe0qm7f/0Mo51cU9pIChj0Cfc/eEmwbcdPnPOCP4N8je+kqW79b3b90kcyUqMDTJw+4HKK62juXm4SXaePJYzx1Yb1VCSZpwOBjHxudp4WrkRPTXFRX248UtSUI5zVw1QsCmOnw=="), + resource.TestCheckResourceAttrSet(resourceName, "succinct_id"), + resource.TestCheckResourceAttr(resourceName, "tags.#", "1"), + resource.TestCheckResourceAttr(resourceName, "tags.0.key", "key"), + resource.TestCheckResourceAttr(resourceName, "tags.0.value", "value"), + resource.TestCheckResourceAttr(resourceName, "type", "SAML"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider.0.access_token_url", "accessTokenUrl"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider.0.account_linking_enabled", "false"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider.0.admin_scope.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider.0.authz_url", "authzUrl"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider.0.client_credential_in_payload", "false"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider.0.clock_skew_in_seconds", "10"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider.0.consumer_key", "consumerKey"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider.0.consumer_secret", "consumerSecret"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider.0.discovery_url", "discoveryUrl"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider.0.id_attribute", "idAttribute"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider.0.profile_url", "profileUrl"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider.0.redirect_url", "redirectUrl"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider.0.registration_enabled", "false"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider.0.scope.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider.0.service_provider_name", "serviceProviderName"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider.0.status", "created"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionx509identity_provider.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionx509identity_provider.0.cert_match_attribute", "certMatchAttribute"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionx509identity_provider.0.crl_check_on_ocsp_failure_enabled", "false"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionx509identity_provider.0.crl_enabled", "false"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionx509identity_provider.0.crl_location", "crlLocation"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionx509identity_provider.0.crl_reload_duration", "10"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionx509identity_provider.0.ocsp_allow_unknown_response_status", "false"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionx509identity_provider.0.ocsp_enable_signed_response", "false"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionx509identity_provider.0.ocsp_enabled", "false"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionx509identity_provider.0.ocsp_responder_url", "ocspResponderURL"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionx509identity_provider.0.ocsp_revalidate_time", "10"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionx509identity_provider.0.ocsp_server_name", "ocspServerName"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionx509identity_provider.0.ocsp_trust_cert_chain.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionx509identity_provider.0.other_cert_match_attribute", "otherCertMatchAttribute"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionx509identity_provider.0.signing_certificate_chain.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionx509identity_provider.0.user_match_attribute", "userMatchAttribute"), + resource.TestCheckResourceAttr(resourceName, "user_mapping_method", "NameIDToUserAttribute"), + resource.TestCheckResourceAttr(resourceName, "user_mapping_store_attribute", "userName"), + + func(s *terraform.State) (err error) { + resId, err = acctest.FromInstanceState(s, resourceName, "id") + idcsEndpoint, err := acctest.FromInstanceState(s, "data.oci_identity_domain.test_domain", "url") + if err != nil { + return err + } + + compositeId := getIdentityDomainsCompositeId(idcsEndpoint, "identityProviders", resId) + log.Printf("[DEBUG] Composite ID to import: %s", compositeId) + if isEnableExportCompartment, _ := strconv.ParseBool(utils.GetEnvSettingWithDefault("enable_export_compartment", "true")); isEnableExportCompartment { + if errExport := resourcediscovery.TestExportCompartmentWithResourceName(&compositeId, &compartmentId, resourceName); errExport != nil { + return errExport + } + } + return err + }, + ), + }, + + // verify updates to updatable parameters + { + Config: config + compartmentIdVariableStr + IdentityDomainsIdentityProviderResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_identity_provider", "test_identity_provider", acctest.Optional, acctest.Update, IdentityDomainsIdentityProviderRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(resourceName, "assertion_attribute", "assertionAttribute2"), + resource.TestCheckResourceAttr(resourceName, "attribute_sets.#", "1"), + resource.TestCheckResourceAttr(resourceName, "authn_request_binding", "Post"), + resource.TestCheckResourceAttr(resourceName, "description", "description2"), + resource.TestCheckResourceAttr(resourceName, "enabled", "false"), + resource.TestCheckResourceAttr(resourceName, "encryption_certificate", "MIIDZjCCAk6gAwIBAgIGAXoTivr8MA0GCSqGSIb3DQEBCwUAMFkxEzARBgoJkiaJk/IsZAEZFgNjb20xFjAUBgoJkiaJk/IsZAEZFgZvcmFjbGUxFTATBgoJkiaJk/IsZAEZFgVjbG91ZDETMBEGA1UEAxMKQ2xvdWQ5Q0EtMjAeFw0yMTA2MTYwNjM4MzJaFw0zMTA2MTYwNjM4MzJaMFsxEzARBgNVBAMTCnNzbERvbWFpbnMxDzANBgNVBAMTBkNsb3VkOTEzMDEGA1UEAwwqaWRjcy1hY2YxM2MzMDYyMTM0NTJiYmQwZjgzZmJkYjM3OWYxZl9rZXlzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArC8Sg+4SF3ZKdRjveLNheqFlcXZIDV6N6FjMJEYVLyQLrRg8gAXIRqhpS/Ym9Bj8emyV+P/ZlHxmwPkI8DbJX+gsTg9xXG+DlfDSnNTdEOr90hrmg5D8NN3L0SpLughTnywPRbvk6Iv/21u8vALqQHfJYezBDqS/USpm/EP5+soaOlfGWAUaVnxqLtVC6g8kN3dj4hry3ZcfOZwAriEC2M1TTA8vOd7lkGRwEPjBL/QOXWKJU7LPYArKpuL75+gJteQ/yvDHIjbo7ZGaKGhhiCYcQ0gS1I6Fe3V8Mw3N+m7/TpXwGxyEo7GrR7M/j7jhJto88eINDhBjiQkungCY3QIDAQABozIwMDAPBgNVHQ8BAf8EBQMDB/gAMB0GA1UdDgQWBBQ+PjQeG7CnRrqF9HXop07/756KrzANBgkqhkiG9w0BAQsFAAOCAQEAtQqQhc3tsdTHAlQRDkhnPS3N6x7xBpbjef+HOlta86DA9LSoYHBGnnZiwQHTgRbfUdUNllp7hITKMW942wTTwzY/owPukYoo4UAurOZcNkqFCzYJGqxS5bwQRSQO8iSRGwwooet730tzevcilLWH7gF752unoPBoxgCPNxdxWxxSmHpiaQTUAy00sfba0KQ5SLCkXJHEOXpnQsXhe0qm7f/0Mo51cU9pIChj0Cfc/eEmwbcdPnPOCP4N8je+kqW79b3b90kcyUqMDTJw+4HKK62juXm4SXaePJYzx1Yb1VCSZpwOBjHxudp4WrkRPTXFRX248UtSUI5zVw1QsCmOnw=="), + resource.TestCheckResourceAttrSet(resourceName, "external_id"), + resource.TestCheckResourceAttr(resourceName, "icon_url", "https://something.com/iconUrl2.png"), + resource.TestCheckResourceAttr(resourceName, "idcs_created_by.#", "1"), + resource.TestCheckResourceAttrSet(resourceName, "idcs_endpoint"), + resource.TestCheckResourceAttr(resourceName, "idp_sso_url", "https://idpSsoUrl2.com"), + resource.TestCheckResourceAttr(resourceName, "include_signing_cert_in_signature", "true"), + resource.TestCheckResourceAttr(resourceName, "jit_user_prov_assigned_groups.#", "1"), + resource.TestCheckResourceAttrSet(resourceName, "jit_user_prov_assigned_groups.0.value"), + resource.TestCheckResourceAttr(resourceName, "jit_user_prov_attribute_update_enabled", "true"), + resource.TestCheckResourceAttr(resourceName, "jit_user_prov_create_user_enabled", "true"), + resource.TestCheckResourceAttr(resourceName, "jit_user_prov_enabled", "true"), + resource.TestCheckResourceAttr(resourceName, "jit_user_prov_group_assertion_attribute_enabled", "true"), + resource.TestCheckResourceAttr(resourceName, "jit_user_prov_group_assignment_method", "Merge"), + resource.TestCheckResourceAttr(resourceName, "jit_user_prov_group_mapping_mode", "explicit"), + resource.TestCheckResourceAttr(resourceName, "jit_user_prov_group_mappings.#", "1"), + resource.TestCheckResourceAttr(resourceName, "jit_user_prov_group_mappings.0.idp_group", "idpGroup2"), + resource.TestCheckResourceAttrSet(resourceName, "jit_user_prov_group_mappings.0.ref"), + resource.TestCheckResourceAttrSet(resourceName, "jit_user_prov_group_mappings.0.value"), + resource.TestCheckResourceAttr(resourceName, "jit_user_prov_group_saml_attribute_name", "jitUserProvGroupSAMLAttributeName2"), + resource.TestCheckResourceAttr(resourceName, "jit_user_prov_group_static_list_enabled", "true"), + resource.TestCheckResourceAttr(resourceName, "jit_user_prov_ignore_error_on_absent_groups", "true"), + resource.TestCheckResourceAttr(resourceName, "logout_binding", "Post"), + resource.TestCheckResourceAttr(resourceName, "logout_enabled", "true"), + resource.TestCheckResourceAttr(resourceName, "logout_request_url", "https://logoutRequestUrl2.com"), + resource.TestCheckResourceAttr(resourceName, "logout_response_url", "https://logoutResponseUrl2.com"), + resource.TestCheckResourceAttr(resourceName, "metadata", "NZnYsjLx3UbuL43iu3jo0mJUg/Rv9DTPNB5IQPRaD6g=KRIgTD7//x/uT73veS0iGcWWw8uprjd+MtREu3vlbFTk0BNgkeSOYItx2LDQhnHP\nO0zsTmtOHlVIsDXQL3KysHwzYndIuMJtETqEC6NpMw3ZF108IK0eT+o/2xC9u13/\nGq10z/MagGvco1mM/RIzX5e2omGyZcKARiDoeNPwg2znmV0WcifntVqn4Y0rnWM7\no0M5HFHZQEgICdTJbC5d6DwLgfnI4ck505fHNRYLsRqj9IGLukKx9kocSG1xzCye\nHlffU4CDyEA7dptEUH59dZmY0Xy35/aepNc7W6IovWsJ2Otr+qDUp207ZCKuISF0\nMEX5hX5VJzVlHDwxkEcYCA==MIIDZjCCAk6gAwIBAgIGAXoTivr8MA0GCSqGSIb3DQEBCwUAMFkxEzARBgoJkiaJ\nk/IsZAEZFgNjb20xFjAUBgoJkiaJk/IsZAEZFgZvcmFjbGUxFTATBgoJkiaJk/Is\nZAEZFgVjbG91ZDETMBEGA1UEAxMKQ2xvdWQ5Q0EtMjAeFw0yMTA2MTYwNjM4MzJa\nFw0zMTA2MTYwNjM4MzJaMFsxEzARBgNVBAMTCnNzbERvbWFpbnMxDzANBgNVBAMT\nBkNsb3VkOTEzMDEGA1UEAwwqaWRjcy1hY2YxM2MzMDYyMTM0NTJiYmQwZjgzZmJk\nYjM3OWYxZl9rZXlzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArC8S\ng+4SF3ZKdRjveLNheqFlcXZIDV6N6FjMJEYVLyQLrRg8gAXIRqhpS/Ym9Bj8emyV\n+P/ZlHxmwPkI8DbJX+gsTg9xXG+DlfDSnNTdEOr90hrmg5D8NN3L0SpLughTnywP\nRbvk6Iv/21u8vALqQHfJYezBDqS/USpm/EP5+soaOlfGWAUaVnxqLtVC6g8kN3dj\n4hry3ZcfOZwAriEC2M1TTA8vOd7lkGRwEPjBL/QOXWKJU7LPYArKpuL75+gJteQ/\nyvDHIjbo7ZGaKGhhiCYcQ0gS1I6Fe3V8Mw3N+m7/TpXwGxyEo7GrR7M/j7jhJto8\n8eINDhBjiQkungCY3QIDAQABozIwMDAPBgNVHQ8BAf8EBQMDB/gAMB0GA1UdDgQW\nBBQ+PjQeG7CnRrqF9HXop07/756KrzANBgkqhkiG9w0BAQsFAAOCAQEAtQqQhc3t\nsdTHAlQRDkhnPS3N6x7xBpbjef+HOlta86DA9LSoYHBGnnZiwQHTgRbfUdUNllp7\nhITKMW942wTTwzY/owPukYoo4UAurOZcNkqFCzYJGqxS5bwQRSQO8iSRGwwooet7\n30tzevcilLWH7gF752unoPBoxgCPNxdxWxxSmHpiaQTUAy00sfba0KQ5SLCkXJHE\nOXpnQsXhe0qm7f/0Mo51cU9pIChj0Cfc/eEmwbcdPnPOCP4N8je+kqW79b3b90kc\nyUqMDTJw+4HKK62juXm4SXaePJYzx1Yb1VCSZpwOBjHxudp4WrkRPTXFRX248UtS\nUI5zVw1QsCmOnw==MIIDZjCCAk6gAwIBAgIGAXoTivr8MA0GCSqGSIb3DQEBCwUAMFkxEzARBgoJkiaJ\nk/IsZAEZFgNjb20xFjAUBgoJkiaJk/IsZAEZFgZvcmFjbGUxFTATBgoJkiaJk/Is\nZAEZFgVjbG91ZDETMBEGA1UEAxMKQ2xvdWQ5Q0EtMjAeFw0yMTA2MTYwNjM4MzJa\nFw0zMTA2MTYwNjM4MzJaMFsxEzARBgNVBAMTCnNzbERvbWFpbnMxDzANBgNVBAMT\nBkNsb3VkOTEzMDEGA1UEAwwqaWRjcy1hY2YxM2MzMDYyMTM0NTJiYmQwZjgzZmJk\nYjM3OWYxZl9rZXlzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArC8S\ng+4SF3ZKdRjveLNheqFlcXZIDV6N6FjMJEYVLyQLrRg8gAXIRqhpS/Ym9Bj8emyV\n+P/ZlHxmwPkI8DbJX+gsTg9xXG+DlfDSnNTdEOr90hrmg5D8NN3L0SpLughTnywP\nRbvk6Iv/21u8vALqQHfJYezBDqS/USpm/EP5+soaOlfGWAUaVnxqLtVC6g8kN3dj\n4hry3ZcfOZwAriEC2M1TTA8vOd7lkGRwEPjBL/QOXWKJU7LPYArKpuL75+gJteQ/\nyvDHIjbo7ZGaKGhhiCYcQ0gS1I6Fe3V8Mw3N+m7/TpXwGxyEo7GrR7M/j7jhJto8\n8eINDhBjiQkungCY3QIDAQABozIwMDAPBgNVHQ8BAf8EBQMDB/gAMB0GA1UdDgQW\nBBQ+PjQeG7CnRrqF9HXop07/756KrzANBgkqhkiG9w0BAQsFAAOCAQEAtQqQhc3t\nsdTHAlQRDkhnPS3N6x7xBpbjef+HOlta86DA9LSoYHBGnnZiwQHTgRbfUdUNllp7\nhITKMW942wTTwzY/owPukYoo4UAurOZcNkqFCzYJGqxS5bwQRSQO8iSRGwwooet7\n30tzevcilLWH7gF752unoPBoxgCPNxdxWxxSmHpiaQTUAy00sfba0KQ5SLCkXJHE\nOXpnQsXhe0qm7f/0Mo51cU9pIChj0Cfc/eEmwbcdPnPOCP4N8je+kqW79b3b90kc\nyUqMDTJw+4HKK62juXm4SXaePJYzx1Yb1VCSZpwOBjHxudp4WrkRPTXFRX248UtS\nUI5zVw1QsCmOnw==\nCN=Cloud9CA-2, DC=cloud, DC=oracle, DC=com1623825513212CN=idcs-acf13c306213452bbd0f83fbdb379f1f_keys, CN=Cloud9, CN=sslDomainsMIIDZjCCAk6gAwIBAgIGAXoTivr8MA0GCSqGSIb3DQEBCwUAMFkxEzARBgoJkiaJ\nk/IsZAEZFgNjb20xFjAUBgoJkiaJk/IsZAEZFgZvcmFjbGUxFTATBgoJkiaJk/Is\nZAEZFgVjbG91ZDETMBEGA1UEAxMKQ2xvdWQ5Q0EtMjAeFw0yMTA2MTYwNjM4MzJa\nFw0zMTA2MTYwNjM4MzJaMFsxEzARBgNVBAMTCnNzbERvbWFpbnMxDzANBgNVBAMT\nBkNsb3VkOTEzMDEGA1UEAwwqaWRjcy1hY2YxM2MzMDYyMTM0NTJiYmQwZjgzZmJk\nYjM3OWYxZl9rZXlzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArC8S\ng+4SF3ZKdRjveLNheqFlcXZIDV6N6FjMJEYVLyQLrRg8gAXIRqhpS/Ym9Bj8emyV\n+P/ZlHxmwPkI8DbJX+gsTg9xXG+DlfDSnNTdEOr90hrmg5D8NN3L0SpLughTnywP\nRbvk6Iv/21u8vALqQHfJYezBDqS/USpm/EP5+soaOlfGWAUaVnxqLtVC6g8kN3dj\n4hry3ZcfOZwAriEC2M1TTA8vOd7lkGRwEPjBL/QOXWKJU7LPYArKpuL75+gJteQ/\nyvDHIjbo7ZGaKGhhiCYcQ0gS1I6Fe3V8Mw3N+m7/TpXwGxyEo7GrR7M/j7jhJto8\n8eINDhBjiQkungCY3QIDAQABozIwMDAPBgNVHQ8BAf8EBQMDB/gAMB0GA1UdDgQW\nBBQ+PjQeG7CnRrqF9HXop07/756KrzANBgkqhkiG9w0BAQsFAAOCAQEAtQqQhc3t\nsdTHAlQRDkhnPS3N6x7xBpbjef+HOlta86DA9LSoYHBGnnZiwQHTgRbfUdUNllp7\nhITKMW942wTTwzY/owPukYoo4UAurOZcNkqFCzYJGqxS5bwQRSQO8iSRGwwooet7\n30tzevcilLWH7gF752unoPBoxgCPNxdxWxxSmHpiaQTUAy00sfba0KQ5SLCkXJHE\nOXpnQsXhe0qm7f/0Mo51cU9pIChj0Cfc/eEmwbcdPnPOCP4N8je+kqW79b3b90kc\nyUqMDTJw+4HKK62juXm4SXaePJYzx1Yb1VCSZpwOBjHxudp4WrkRPTXFRX248UtS\nUI5zVw1QsCmOnw==\nCN=Cloud9CA-2, DC=cloud, DC=oracle, DC=com1623825513212CN=idcs-acf13c306213452bbd0f83fbdb379f1f_keys, CN=Cloud9, CN=sslDomainsMIIDZjCCAk6gAwIBAgIGAXoTivr8MA0GCSqGSIb3DQEBCwUAMFkxEzARBgoJkiaJ\nk/IsZAEZFgNjb20xFjAUBgoJkiaJk/IsZAEZFgZvcmFjbGUxFTATBgoJkiaJk/Is\nZAEZFgVjbG91ZDETMBEGA1UEAxMKQ2xvdWQ5Q0EtMjAeFw0yMTA2MTYwNjM4MzJa\nFw0zMTA2MTYwNjM4MzJaMFsxEzARBgNVBAMTCnNzbERvbWFpbnMxDzANBgNVBAMT\nBkNsb3VkOTEzMDEGA1UEAwwqaWRjcy1hY2YxM2MzMDYyMTM0NTJiYmQwZjgzZmJk\nYjM3OWYxZl9rZXlzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArC8S\ng+4SF3ZKdRjveLNheqFlcXZIDV6N6FjMJEYVLyQLrRg8gAXIRqhpS/Ym9Bj8emyV\n+P/ZlHxmwPkI8DbJX+gsTg9xXG+DlfDSnNTdEOr90hrmg5D8NN3L0SpLughTnywP\nRbvk6Iv/21u8vALqQHfJYezBDqS/USpm/EP5+soaOlfGWAUaVnxqLtVC6g8kN3dj\n4hry3ZcfOZwAriEC2M1TTA8vOd7lkGRwEPjBL/QOXWKJU7LPYArKpuL75+gJteQ/\nyvDHIjbo7ZGaKGhhiCYcQ0gS1I6Fe3V8Mw3N+m7/TpXwGxyEo7GrR7M/j7jhJto8\n8eINDhBjiQkungCY3QIDAQABozIwMDAPBgNVHQ8BAf8EBQMDB/gAMB0GA1UdDgQW\nBBQ+PjQeG7CnRrqF9HXop07/756KrzANBgkqhkiG9w0BAQsFAAOCAQEAtQqQhc3t\nsdTHAlQRDkhnPS3N6x7xBpbjef+HOlta86DA9LSoYHBGnnZiwQHTgRbfUdUNllp7\nhITKMW942wTTwzY/owPukYoo4UAurOZcNkqFCzYJGqxS5bwQRSQO8iSRGwwooet7\n30tzevcilLWH7gF752unoPBoxgCPNxdxWxxSmHpiaQTUAy00sfba0KQ5SLCkXJHE\nOXpnQsXhe0qm7f/0Mo51cU9pIChj0Cfc/eEmwbcdPnPOCP4N8je+kqW79b3b90kc\nyUqMDTJw+4HKK62juXm4SXaePJYzx1Yb1VCSZpwOBjHxudp4WrkRPTXFRX248UtS\nUI5zVw1QsCmOnw==\nCN=Cloud9CA-2, DC=cloud, DC=oracle, DC=com1623825513212CN=idcs-acf13c306213452bbd0f83fbdb379f1f_keys, CN=Cloud9, CN=sslDomainsMIIDZjCCAk6gAwIBAgIGAXoTivr8MA0GCSqGSIb3DQEBCwUAMFkxEzARBgoJkiaJ\nk/IsZAEZFgNjb20xFjAUBgoJkiaJk/IsZAEZFgZvcmFjbGUxFTATBgoJkiaJk/Is\nZAEZFgVjbG91ZDETMBEGA1UEAxMKQ2xvdWQ5Q0EtMjAeFw0yMTA2MTYwNjM4MzJa\nFw0zMTA2MTYwNjM4MzJaMFsxEzARBgNVBAMTCnNzbERvbWFpbnMxDzANBgNVBAMT\nBkNsb3VkOTEzMDEGA1UEAwwqaWRjcy1hY2YxM2MzMDYyMTM0NTJiYmQwZjgzZmJk\nYjM3OWYxZl9rZXlzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArC8S\ng+4SF3ZKdRjveLNheqFlcXZIDV6N6FjMJEYVLyQLrRg8gAXIRqhpS/Ym9Bj8emyV\n+P/ZlHxmwPkI8DbJX+gsTg9xXG+DlfDSnNTdEOr90hrmg5D8NN3L0SpLughTnywP\nRbvk6Iv/21u8vALqQHfJYezBDqS/USpm/EP5+soaOlfGWAUaVnxqLtVC6g8kN3dj\n4hry3ZcfOZwAriEC2M1TTA8vOd7lkGRwEPjBL/QOXWKJU7LPYArKpuL75+gJteQ/\nyvDHIjbo7ZGaKGhhiCYcQ0gS1I6Fe3V8Mw3N+m7/TpXwGxyEo7GrR7M/j7jhJto8\n8eINDhBjiQkungCY3QIDAQABozIwMDAPBgNVHQ8BAf8EBQMDB/gAMB0GA1UdDgQW\nBBQ+PjQeG7CnRrqF9HXop07/756KrzANBgkqhkiG9w0BAQsFAAOCAQEAtQqQhc3t\nsdTHAlQRDkhnPS3N6x7xBpbjef+HOlta86DA9LSoYHBGnnZiwQHTgRbfUdUNllp7\nhITKMW942wTTwzY/owPukYoo4UAurOZcNkqFCzYJGqxS5bwQRSQO8iSRGwwooet7\n30tzevcilLWH7gF752unoPBoxgCPNxdxWxxSmHpiaQTUAy00sfba0KQ5SLCkXJHE\nOXpnQsXhe0qm7f/0Mo51cU9pIChj0Cfc/eEmwbcdPnPOCP4N8je+kqW79b3b90kc\nyUqMDTJw+4HKK62juXm4SXaePJYzx1Yb1VCSZpwOBjHxudp4WrkRPTXFRX248UtS\nUI5zVw1QsCmOnw==\nCN=Cloud9CA-2, DC=cloud, DC=oracle, DC=com1623825513212CN=idcs-acf13c306213452bbd0f83fbdb379f1f_keys, CN=Cloud9, CN=sslDomains"), + resource.TestCheckResourceAttr(resourceName, "name_id_format", "nameIdFormat2"), + resource.TestCheckResourceAttr(resourceName, "partner_name", "partnerName2"), + resource.TestCheckResourceAttrSet(resourceName, "partner_provider_id"), + resource.TestCheckResourceAttr(resourceName, "require_force_authn", "false"), + resource.TestCheckResourceAttr(resourceName, "requires_encrypted_assertion", "false"), + resource.TestCheckResourceAttr(resourceName, "saml_ho_krequired", "false"), + resource.TestMatchResourceAttr(resourceName, "schemas.#", regexp.MustCompile("[1-9]+")), + resource.TestCheckResourceAttr(resourceName, "service_instance_identifier", "serviceInstanceIdentifier2"), + resource.TestCheckResourceAttr(resourceName, "shown_on_login_page", "true"), + resource.TestCheckResourceAttr(resourceName, "signature_hash_algorithm", "SHA-256"), + resource.TestCheckResourceAttr(resourceName, "signing_certificate", "MIIDZjCCAk6gAwIBAgIGAXoTivr8MA0GCSqGSIb3DQEBCwUAMFkxEzARBgoJkiaJk/IsZAEZFgNjb20xFjAUBgoJkiaJk/IsZAEZFgZvcmFjbGUxFTATBgoJkiaJk/IsZAEZFgVjbG91ZDETMBEGA1UEAxMKQ2xvdWQ5Q0EtMjAeFw0yMTA2MTYwNjM4MzJaFw0zMTA2MTYwNjM4MzJaMFsxEzARBgNVBAMTCnNzbERvbWFpbnMxDzANBgNVBAMTBkNsb3VkOTEzMDEGA1UEAwwqaWRjcy1hY2YxM2MzMDYyMTM0NTJiYmQwZjgzZmJkYjM3OWYxZl9rZXlzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArC8Sg+4SF3ZKdRjveLNheqFlcXZIDV6N6FjMJEYVLyQLrRg8gAXIRqhpS/Ym9Bj8emyV+P/ZlHxmwPkI8DbJX+gsTg9xXG+DlfDSnNTdEOr90hrmg5D8NN3L0SpLughTnywPRbvk6Iv/21u8vALqQHfJYezBDqS/USpm/EP5+soaOlfGWAUaVnxqLtVC6g8kN3dj4hry3ZcfOZwAriEC2M1TTA8vOd7lkGRwEPjBL/QOXWKJU7LPYArKpuL75+gJteQ/yvDHIjbo7ZGaKGhhiCYcQ0gS1I6Fe3V8Mw3N+m7/TpXwGxyEo7GrR7M/j7jhJto88eINDhBjiQkungCY3QIDAQABozIwMDAPBgNVHQ8BAf8EBQMDB/gAMB0GA1UdDgQWBBQ+PjQeG7CnRrqF9HXop07/756KrzANBgkqhkiG9w0BAQsFAAOCAQEAtQqQhc3tsdTHAlQRDkhnPS3N6x7xBpbjef+HOlta86DA9LSoYHBGnnZiwQHTgRbfUdUNllp7hITKMW942wTTwzY/owPukYoo4UAurOZcNkqFCzYJGqxS5bwQRSQO8iSRGwwooet730tzevcilLWH7gF752unoPBoxgCPNxdxWxxSmHpiaQTUAy00sfba0KQ5SLCkXJHEOXpnQsXhe0qm7f/0Mo51cU9pIChj0Cfc/eEmwbcdPnPOCP4N8je+kqW79b3b90kcyUqMDTJw+4HKK62juXm4SXaePJYzx1Yb1VCSZpwOBjHxudp4WrkRPTXFRX248UtSUI5zVw1QsCmOnw=="), + resource.TestCheckResourceAttrSet(resourceName, "succinct_id"), + resource.TestCheckResourceAttr(resourceName, "tags.#", "1"), + resource.TestCheckResourceAttr(resourceName, "tags.0.key", "key2"), + resource.TestCheckResourceAttr(resourceName, "tags.0.value", "value2"), + resource.TestCheckResourceAttr(resourceName, "type", "SAML"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider.0.access_token_url", "accessTokenUrl2"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider.0.account_linking_enabled", "true"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider.0.admin_scope.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider.0.authz_url", "authzUrl2"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider.0.client_credential_in_payload", "true"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider.0.clock_skew_in_seconds", "11"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider.0.consumer_key", "consumerKey2"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider.0.consumer_secret", "consumerSecret2"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider.0.discovery_url", "discoveryUrl2"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider.0.id_attribute", "idAttribute"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider.0.profile_url", "profileUrl2"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider.0.redirect_url", "redirectUrl2"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider.0.registration_enabled", "true"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider.0.scope.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider.0.service_provider_name", "serviceProviderName"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider.0.status", "deleted"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionx509identity_provider.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionx509identity_provider.0.cert_match_attribute", "certMatchAttribute2"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionx509identity_provider.0.crl_check_on_ocsp_failure_enabled", "true"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionx509identity_provider.0.crl_enabled", "true"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionx509identity_provider.0.crl_location", "crlLocation2"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionx509identity_provider.0.crl_reload_duration", "11"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionx509identity_provider.0.ocsp_allow_unknown_response_status", "true"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionx509identity_provider.0.ocsp_enable_signed_response", "true"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionx509identity_provider.0.ocsp_enabled", "true"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionx509identity_provider.0.ocsp_responder_url", "ocspResponderURL2"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionx509identity_provider.0.ocsp_revalidate_time", "11"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionx509identity_provider.0.ocsp_server_name", "ocspServerName2"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionx509identity_provider.0.ocsp_trust_cert_chain.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionx509identity_provider.0.other_cert_match_attribute", "otherCertMatchAttribute2"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionx509identity_provider.0.signing_certificate_chain.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionx509identity_provider.0.user_match_attribute", "userMatchAttribute2"), + resource.TestCheckResourceAttr(resourceName, "user_mapping_method", "AssertionAttributeToUserAttribute"), + resource.TestCheckResourceAttr(resourceName, "user_mapping_store_attribute", "name.givenName"), + + func(s *terraform.State) (err error) { + resId2, err = acctest.FromInstanceState(s, resourceName, "id") + if resId != resId2 { + return fmt.Errorf("Resource recreated when it was supposed to be updated.") + } + return err + }, + ), + }, + // verify datasource + { + Config: config + + acctest.GenerateDataSourceFromRepresentationMap("oci_identity_domains_identity_providers", "test_identity_providers", acctest.Optional, acctest.Update, IdentityDomainsIdentityDomainsIdentityProviderDataSourceRepresentation) + + compartmentIdVariableStr + IdentityDomainsIdentityProviderResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_identity_provider", "test_identity_provider", acctest.Optional, acctest.Update, IdentityDomainsIdentityProviderRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(datasourceName, "identity_provider_count", "10"), + resource.TestCheckResourceAttr(datasourceName, "attribute_sets.#", "1"), + resource.TestCheckResourceAttr(datasourceName, "start_index", "1"), + + resource.TestCheckResourceAttr(datasourceName, "identity_providers.#", "1"), + resource.TestMatchResourceAttr(datasourceName, "identity_providers.0.schemas.#", regexp.MustCompile("[1-9]+")), + ), + }, + // verify singular datasource + { + Config: config + + acctest.GenerateDataSourceFromRepresentationMap("oci_identity_domains_identity_provider", "test_identity_provider", acctest.Required, acctest.Create, IdentityDomainsIdentityDomainsIdentityProviderSingularDataSourceRepresentation) + + compartmentIdVariableStr + IdentityDomainsIdentityProviderResourceConfig, + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttrSet(singularDatasourceName, "idcs_endpoint"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "identity_provider_id"), + + resource.TestCheckResourceAttr(singularDatasourceName, "assertion_attribute", "assertionAttribute2"), + resource.TestCheckResourceAttr(singularDatasourceName, "authn_request_binding", "Post"), + resource.TestCheckResourceAttr(singularDatasourceName, "description", "description2"), + resource.TestCheckResourceAttr(singularDatasourceName, "enabled", "false"), + resource.TestCheckResourceAttr(singularDatasourceName, "encryption_certificate", "MIIDZjCCAk6gAwIBAgIGAXoTivr8MA0GCSqGSIb3DQEBCwUAMFkxEzARBgoJkiaJk/IsZAEZFgNjb20xFjAUBgoJkiaJk/IsZAEZFgZvcmFjbGUxFTATBgoJkiaJk/IsZAEZFgVjbG91ZDETMBEGA1UEAxMKQ2xvdWQ5Q0EtMjAeFw0yMTA2MTYwNjM4MzJaFw0zMTA2MTYwNjM4MzJaMFsxEzARBgNVBAMTCnNzbERvbWFpbnMxDzANBgNVBAMTBkNsb3VkOTEzMDEGA1UEAwwqaWRjcy1hY2YxM2MzMDYyMTM0NTJiYmQwZjgzZmJkYjM3OWYxZl9rZXlzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArC8Sg+4SF3ZKdRjveLNheqFlcXZIDV6N6FjMJEYVLyQLrRg8gAXIRqhpS/Ym9Bj8emyV+P/ZlHxmwPkI8DbJX+gsTg9xXG+DlfDSnNTdEOr90hrmg5D8NN3L0SpLughTnywPRbvk6Iv/21u8vALqQHfJYezBDqS/USpm/EP5+soaOlfGWAUaVnxqLtVC6g8kN3dj4hry3ZcfOZwAriEC2M1TTA8vOd7lkGRwEPjBL/QOXWKJU7LPYArKpuL75+gJteQ/yvDHIjbo7ZGaKGhhiCYcQ0gS1I6Fe3V8Mw3N+m7/TpXwGxyEo7GrR7M/j7jhJto88eINDhBjiQkungCY3QIDAQABozIwMDAPBgNVHQ8BAf8EBQMDB/gAMB0GA1UdDgQWBBQ+PjQeG7CnRrqF9HXop07/756KrzANBgkqhkiG9w0BAQsFAAOCAQEAtQqQhc3tsdTHAlQRDkhnPS3N6x7xBpbjef+HOlta86DA9LSoYHBGnnZiwQHTgRbfUdUNllp7hITKMW942wTTwzY/owPukYoo4UAurOZcNkqFCzYJGqxS5bwQRSQO8iSRGwwooet730tzevcilLWH7gF752unoPBoxgCPNxdxWxxSmHpiaQTUAy00sfba0KQ5SLCkXJHEOXpnQsXhe0qm7f/0Mo51cU9pIChj0Cfc/eEmwbcdPnPOCP4N8je+kqW79b3b90kcyUqMDTJw+4HKK62juXm4SXaePJYzx1Yb1VCSZpwOBjHxudp4WrkRPTXFRX248UtSUI5zVw1QsCmOnw=="), + resource.TestCheckResourceAttr(singularDatasourceName, "icon_url", "https://something.com/iconUrl2.png"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "id"), + resource.TestCheckResourceAttr(singularDatasourceName, "idcs_created_by.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "idp_sso_url", "https://idpSsoUrl2.com"), + resource.TestCheckResourceAttr(singularDatasourceName, "include_signing_cert_in_signature", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "jit_user_prov_assigned_groups.#", "1"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "jit_user_prov_assigned_groups.0.value"), + resource.TestCheckResourceAttr(singularDatasourceName, "jit_user_prov_attribute_update_enabled", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "jit_user_prov_create_user_enabled", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "jit_user_prov_enabled", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "jit_user_prov_group_assertion_attribute_enabled", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "jit_user_prov_group_assignment_method", "Merge"), + resource.TestCheckResourceAttr(singularDatasourceName, "jit_user_prov_group_mapping_mode", "explicit"), + resource.TestCheckResourceAttr(singularDatasourceName, "jit_user_prov_group_mappings.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "jit_user_prov_group_mappings.0.idp_group", "idpGroup2"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "jit_user_prov_group_mappings.0.ref"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "jit_user_prov_group_mappings.0.value"), + resource.TestCheckResourceAttr(singularDatasourceName, "jit_user_prov_group_saml_attribute_name", "jitUserProvGroupSAMLAttributeName2"), + resource.TestCheckResourceAttr(singularDatasourceName, "jit_user_prov_group_static_list_enabled", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "jit_user_prov_ignore_error_on_absent_groups", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "logout_binding", "Post"), + resource.TestCheckResourceAttr(singularDatasourceName, "logout_enabled", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "logout_request_url", "https://logoutRequestUrl2.com"), + resource.TestCheckResourceAttr(singularDatasourceName, "logout_response_url", "https://logoutResponseUrl2.com"), + resource.TestCheckResourceAttr(singularDatasourceName, "metadata", "NZnYsjLx3UbuL43iu3jo0mJUg/Rv9DTPNB5IQPRaD6g=KRIgTD7//x/uT73veS0iGcWWw8uprjd+MtREu3vlbFTk0BNgkeSOYItx2LDQhnHP\nO0zsTmtOHlVIsDXQL3KysHwzYndIuMJtETqEC6NpMw3ZF108IK0eT+o/2xC9u13/\nGq10z/MagGvco1mM/RIzX5e2omGyZcKARiDoeNPwg2znmV0WcifntVqn4Y0rnWM7\no0M5HFHZQEgICdTJbC5d6DwLgfnI4ck505fHNRYLsRqj9IGLukKx9kocSG1xzCye\nHlffU4CDyEA7dptEUH59dZmY0Xy35/aepNc7W6IovWsJ2Otr+qDUp207ZCKuISF0\nMEX5hX5VJzVlHDwxkEcYCA==MIIDZjCCAk6gAwIBAgIGAXoTivr8MA0GCSqGSIb3DQEBCwUAMFkxEzARBgoJkiaJ\nk/IsZAEZFgNjb20xFjAUBgoJkiaJk/IsZAEZFgZvcmFjbGUxFTATBgoJkiaJk/Is\nZAEZFgVjbG91ZDETMBEGA1UEAxMKQ2xvdWQ5Q0EtMjAeFw0yMTA2MTYwNjM4MzJa\nFw0zMTA2MTYwNjM4MzJaMFsxEzARBgNVBAMTCnNzbERvbWFpbnMxDzANBgNVBAMT\nBkNsb3VkOTEzMDEGA1UEAwwqaWRjcy1hY2YxM2MzMDYyMTM0NTJiYmQwZjgzZmJk\nYjM3OWYxZl9rZXlzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArC8S\ng+4SF3ZKdRjveLNheqFlcXZIDV6N6FjMJEYVLyQLrRg8gAXIRqhpS/Ym9Bj8emyV\n+P/ZlHxmwPkI8DbJX+gsTg9xXG+DlfDSnNTdEOr90hrmg5D8NN3L0SpLughTnywP\nRbvk6Iv/21u8vALqQHfJYezBDqS/USpm/EP5+soaOlfGWAUaVnxqLtVC6g8kN3dj\n4hry3ZcfOZwAriEC2M1TTA8vOd7lkGRwEPjBL/QOXWKJU7LPYArKpuL75+gJteQ/\nyvDHIjbo7ZGaKGhhiCYcQ0gS1I6Fe3V8Mw3N+m7/TpXwGxyEo7GrR7M/j7jhJto8\n8eINDhBjiQkungCY3QIDAQABozIwMDAPBgNVHQ8BAf8EBQMDB/gAMB0GA1UdDgQW\nBBQ+PjQeG7CnRrqF9HXop07/756KrzANBgkqhkiG9w0BAQsFAAOCAQEAtQqQhc3t\nsdTHAlQRDkhnPS3N6x7xBpbjef+HOlta86DA9LSoYHBGnnZiwQHTgRbfUdUNllp7\nhITKMW942wTTwzY/owPukYoo4UAurOZcNkqFCzYJGqxS5bwQRSQO8iSRGwwooet7\n30tzevcilLWH7gF752unoPBoxgCPNxdxWxxSmHpiaQTUAy00sfba0KQ5SLCkXJHE\nOXpnQsXhe0qm7f/0Mo51cU9pIChj0Cfc/eEmwbcdPnPOCP4N8je+kqW79b3b90kc\nyUqMDTJw+4HKK62juXm4SXaePJYzx1Yb1VCSZpwOBjHxudp4WrkRPTXFRX248UtS\nUI5zVw1QsCmOnw==MIIDZjCCAk6gAwIBAgIGAXoTivr8MA0GCSqGSIb3DQEBCwUAMFkxEzARBgoJkiaJ\nk/IsZAEZFgNjb20xFjAUBgoJkiaJk/IsZAEZFgZvcmFjbGUxFTATBgoJkiaJk/Is\nZAEZFgVjbG91ZDETMBEGA1UEAxMKQ2xvdWQ5Q0EtMjAeFw0yMTA2MTYwNjM4MzJa\nFw0zMTA2MTYwNjM4MzJaMFsxEzARBgNVBAMTCnNzbERvbWFpbnMxDzANBgNVBAMT\nBkNsb3VkOTEzMDEGA1UEAwwqaWRjcy1hY2YxM2MzMDYyMTM0NTJiYmQwZjgzZmJk\nYjM3OWYxZl9rZXlzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArC8S\ng+4SF3ZKdRjveLNheqFlcXZIDV6N6FjMJEYVLyQLrRg8gAXIRqhpS/Ym9Bj8emyV\n+P/ZlHxmwPkI8DbJX+gsTg9xXG+DlfDSnNTdEOr90hrmg5D8NN3L0SpLughTnywP\nRbvk6Iv/21u8vALqQHfJYezBDqS/USpm/EP5+soaOlfGWAUaVnxqLtVC6g8kN3dj\n4hry3ZcfOZwAriEC2M1TTA8vOd7lkGRwEPjBL/QOXWKJU7LPYArKpuL75+gJteQ/\nyvDHIjbo7ZGaKGhhiCYcQ0gS1I6Fe3V8Mw3N+m7/TpXwGxyEo7GrR7M/j7jhJto8\n8eINDhBjiQkungCY3QIDAQABozIwMDAPBgNVHQ8BAf8EBQMDB/gAMB0GA1UdDgQW\nBBQ+PjQeG7CnRrqF9HXop07/756KrzANBgkqhkiG9w0BAQsFAAOCAQEAtQqQhc3t\nsdTHAlQRDkhnPS3N6x7xBpbjef+HOlta86DA9LSoYHBGnnZiwQHTgRbfUdUNllp7\nhITKMW942wTTwzY/owPukYoo4UAurOZcNkqFCzYJGqxS5bwQRSQO8iSRGwwooet7\n30tzevcilLWH7gF752unoPBoxgCPNxdxWxxSmHpiaQTUAy00sfba0KQ5SLCkXJHE\nOXpnQsXhe0qm7f/0Mo51cU9pIChj0Cfc/eEmwbcdPnPOCP4N8je+kqW79b3b90kc\nyUqMDTJw+4HKK62juXm4SXaePJYzx1Yb1VCSZpwOBjHxudp4WrkRPTXFRX248UtS\nUI5zVw1QsCmOnw==\nCN=Cloud9CA-2, DC=cloud, DC=oracle, DC=com1623825513212CN=idcs-acf13c306213452bbd0f83fbdb379f1f_keys, CN=Cloud9, CN=sslDomainsMIIDZjCCAk6gAwIBAgIGAXoTivr8MA0GCSqGSIb3DQEBCwUAMFkxEzARBgoJkiaJ\nk/IsZAEZFgNjb20xFjAUBgoJkiaJk/IsZAEZFgZvcmFjbGUxFTATBgoJkiaJk/Is\nZAEZFgVjbG91ZDETMBEGA1UEAxMKQ2xvdWQ5Q0EtMjAeFw0yMTA2MTYwNjM4MzJa\nFw0zMTA2MTYwNjM4MzJaMFsxEzARBgNVBAMTCnNzbERvbWFpbnMxDzANBgNVBAMT\nBkNsb3VkOTEzMDEGA1UEAwwqaWRjcy1hY2YxM2MzMDYyMTM0NTJiYmQwZjgzZmJk\nYjM3OWYxZl9rZXlzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArC8S\ng+4SF3ZKdRjveLNheqFlcXZIDV6N6FjMJEYVLyQLrRg8gAXIRqhpS/Ym9Bj8emyV\n+P/ZlHxmwPkI8DbJX+gsTg9xXG+DlfDSnNTdEOr90hrmg5D8NN3L0SpLughTnywP\nRbvk6Iv/21u8vALqQHfJYezBDqS/USpm/EP5+soaOlfGWAUaVnxqLtVC6g8kN3dj\n4hry3ZcfOZwAriEC2M1TTA8vOd7lkGRwEPjBL/QOXWKJU7LPYArKpuL75+gJteQ/\nyvDHIjbo7ZGaKGhhiCYcQ0gS1I6Fe3V8Mw3N+m7/TpXwGxyEo7GrR7M/j7jhJto8\n8eINDhBjiQkungCY3QIDAQABozIwMDAPBgNVHQ8BAf8EBQMDB/gAMB0GA1UdDgQW\nBBQ+PjQeG7CnRrqF9HXop07/756KrzANBgkqhkiG9w0BAQsFAAOCAQEAtQqQhc3t\nsdTHAlQRDkhnPS3N6x7xBpbjef+HOlta86DA9LSoYHBGnnZiwQHTgRbfUdUNllp7\nhITKMW942wTTwzY/owPukYoo4UAurOZcNkqFCzYJGqxS5bwQRSQO8iSRGwwooet7\n30tzevcilLWH7gF752unoPBoxgCPNxdxWxxSmHpiaQTUAy00sfba0KQ5SLCkXJHE\nOXpnQsXhe0qm7f/0Mo51cU9pIChj0Cfc/eEmwbcdPnPOCP4N8je+kqW79b3b90kc\nyUqMDTJw+4HKK62juXm4SXaePJYzx1Yb1VCSZpwOBjHxudp4WrkRPTXFRX248UtS\nUI5zVw1QsCmOnw==\nCN=Cloud9CA-2, DC=cloud, DC=oracle, DC=com1623825513212CN=idcs-acf13c306213452bbd0f83fbdb379f1f_keys, CN=Cloud9, CN=sslDomainsMIIDZjCCAk6gAwIBAgIGAXoTivr8MA0GCSqGSIb3DQEBCwUAMFkxEzARBgoJkiaJ\nk/IsZAEZFgNjb20xFjAUBgoJkiaJk/IsZAEZFgZvcmFjbGUxFTATBgoJkiaJk/Is\nZAEZFgVjbG91ZDETMBEGA1UEAxMKQ2xvdWQ5Q0EtMjAeFw0yMTA2MTYwNjM4MzJa\nFw0zMTA2MTYwNjM4MzJaMFsxEzARBgNVBAMTCnNzbERvbWFpbnMxDzANBgNVBAMT\nBkNsb3VkOTEzMDEGA1UEAwwqaWRjcy1hY2YxM2MzMDYyMTM0NTJiYmQwZjgzZmJk\nYjM3OWYxZl9rZXlzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArC8S\ng+4SF3ZKdRjveLNheqFlcXZIDV6N6FjMJEYVLyQLrRg8gAXIRqhpS/Ym9Bj8emyV\n+P/ZlHxmwPkI8DbJX+gsTg9xXG+DlfDSnNTdEOr90hrmg5D8NN3L0SpLughTnywP\nRbvk6Iv/21u8vALqQHfJYezBDqS/USpm/EP5+soaOlfGWAUaVnxqLtVC6g8kN3dj\n4hry3ZcfOZwAriEC2M1TTA8vOd7lkGRwEPjBL/QOXWKJU7LPYArKpuL75+gJteQ/\nyvDHIjbo7ZGaKGhhiCYcQ0gS1I6Fe3V8Mw3N+m7/TpXwGxyEo7GrR7M/j7jhJto8\n8eINDhBjiQkungCY3QIDAQABozIwMDAPBgNVHQ8BAf8EBQMDB/gAMB0GA1UdDgQW\nBBQ+PjQeG7CnRrqF9HXop07/756KrzANBgkqhkiG9w0BAQsFAAOCAQEAtQqQhc3t\nsdTHAlQRDkhnPS3N6x7xBpbjef+HOlta86DA9LSoYHBGnnZiwQHTgRbfUdUNllp7\nhITKMW942wTTwzY/owPukYoo4UAurOZcNkqFCzYJGqxS5bwQRSQO8iSRGwwooet7\n30tzevcilLWH7gF752unoPBoxgCPNxdxWxxSmHpiaQTUAy00sfba0KQ5SLCkXJHE\nOXpnQsXhe0qm7f/0Mo51cU9pIChj0Cfc/eEmwbcdPnPOCP4N8je+kqW79b3b90kc\nyUqMDTJw+4HKK62juXm4SXaePJYzx1Yb1VCSZpwOBjHxudp4WrkRPTXFRX248UtS\nUI5zVw1QsCmOnw==\nCN=Cloud9CA-2, DC=cloud, DC=oracle, DC=com1623825513212CN=idcs-acf13c306213452bbd0f83fbdb379f1f_keys, CN=Cloud9, CN=sslDomainsMIIDZjCCAk6gAwIBAgIGAXoTivr8MA0GCSqGSIb3DQEBCwUAMFkxEzARBgoJkiaJ\nk/IsZAEZFgNjb20xFjAUBgoJkiaJk/IsZAEZFgZvcmFjbGUxFTATBgoJkiaJk/Is\nZAEZFgVjbG91ZDETMBEGA1UEAxMKQ2xvdWQ5Q0EtMjAeFw0yMTA2MTYwNjM4MzJa\nFw0zMTA2MTYwNjM4MzJaMFsxEzARBgNVBAMTCnNzbERvbWFpbnMxDzANBgNVBAMT\nBkNsb3VkOTEzMDEGA1UEAwwqaWRjcy1hY2YxM2MzMDYyMTM0NTJiYmQwZjgzZmJk\nYjM3OWYxZl9rZXlzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArC8S\ng+4SF3ZKdRjveLNheqFlcXZIDV6N6FjMJEYVLyQLrRg8gAXIRqhpS/Ym9Bj8emyV\n+P/ZlHxmwPkI8DbJX+gsTg9xXG+DlfDSnNTdEOr90hrmg5D8NN3L0SpLughTnywP\nRbvk6Iv/21u8vALqQHfJYezBDqS/USpm/EP5+soaOlfGWAUaVnxqLtVC6g8kN3dj\n4hry3ZcfOZwAriEC2M1TTA8vOd7lkGRwEPjBL/QOXWKJU7LPYArKpuL75+gJteQ/\nyvDHIjbo7ZGaKGhhiCYcQ0gS1I6Fe3V8Mw3N+m7/TpXwGxyEo7GrR7M/j7jhJto8\n8eINDhBjiQkungCY3QIDAQABozIwMDAPBgNVHQ8BAf8EBQMDB/gAMB0GA1UdDgQW\nBBQ+PjQeG7CnRrqF9HXop07/756KrzANBgkqhkiG9w0BAQsFAAOCAQEAtQqQhc3t\nsdTHAlQRDkhnPS3N6x7xBpbjef+HOlta86DA9LSoYHBGnnZiwQHTgRbfUdUNllp7\nhITKMW942wTTwzY/owPukYoo4UAurOZcNkqFCzYJGqxS5bwQRSQO8iSRGwwooet7\n30tzevcilLWH7gF752unoPBoxgCPNxdxWxxSmHpiaQTUAy00sfba0KQ5SLCkXJHE\nOXpnQsXhe0qm7f/0Mo51cU9pIChj0Cfc/eEmwbcdPnPOCP4N8je+kqW79b3b90kc\nyUqMDTJw+4HKK62juXm4SXaePJYzx1Yb1VCSZpwOBjHxudp4WrkRPTXFRX248UtS\nUI5zVw1QsCmOnw==\nCN=Cloud9CA-2, DC=cloud, DC=oracle, DC=com1623825513212CN=idcs-acf13c306213452bbd0f83fbdb379f1f_keys, CN=Cloud9, CN=sslDomains"), + resource.TestCheckResourceAttr(singularDatasourceName, "name_id_format", "nameIdFormat2"), + resource.TestCheckResourceAttr(singularDatasourceName, "partner_name", "partnerName2"), + resource.TestCheckResourceAttr(singularDatasourceName, "require_force_authn", "false"), + resource.TestCheckResourceAttr(singularDatasourceName, "requires_encrypted_assertion", "false"), + resource.TestCheckResourceAttr(singularDatasourceName, "saml_ho_krequired", "false"), + resource.TestMatchResourceAttr(singularDatasourceName, "schemas.#", regexp.MustCompile("[1-9]+")), + resource.TestCheckResourceAttr(singularDatasourceName, "shown_on_login_page", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "signature_hash_algorithm", "SHA-256"), + resource.TestCheckResourceAttr(singularDatasourceName, "signing_certificate", "MIIDZjCCAk6gAwIBAgIGAXoTivr8MA0GCSqGSIb3DQEBCwUAMFkxEzARBgoJkiaJk/IsZAEZFgNjb20xFjAUBgoJkiaJk/IsZAEZFgZvcmFjbGUxFTATBgoJkiaJk/IsZAEZFgVjbG91ZDETMBEGA1UEAxMKQ2xvdWQ5Q0EtMjAeFw0yMTA2MTYwNjM4MzJaFw0zMTA2MTYwNjM4MzJaMFsxEzARBgNVBAMTCnNzbERvbWFpbnMxDzANBgNVBAMTBkNsb3VkOTEzMDEGA1UEAwwqaWRjcy1hY2YxM2MzMDYyMTM0NTJiYmQwZjgzZmJkYjM3OWYxZl9rZXlzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArC8Sg+4SF3ZKdRjveLNheqFlcXZIDV6N6FjMJEYVLyQLrRg8gAXIRqhpS/Ym9Bj8emyV+P/ZlHxmwPkI8DbJX+gsTg9xXG+DlfDSnNTdEOr90hrmg5D8NN3L0SpLughTnywPRbvk6Iv/21u8vALqQHfJYezBDqS/USpm/EP5+soaOlfGWAUaVnxqLtVC6g8kN3dj4hry3ZcfOZwAriEC2M1TTA8vOd7lkGRwEPjBL/QOXWKJU7LPYArKpuL75+gJteQ/yvDHIjbo7ZGaKGhhiCYcQ0gS1I6Fe3V8Mw3N+m7/TpXwGxyEo7GrR7M/j7jhJto88eINDhBjiQkungCY3QIDAQABozIwMDAPBgNVHQ8BAf8EBQMDB/gAMB0GA1UdDgQWBBQ+PjQeG7CnRrqF9HXop07/756KrzANBgkqhkiG9w0BAQsFAAOCAQEAtQqQhc3tsdTHAlQRDkhnPS3N6x7xBpbjef+HOlta86DA9LSoYHBGnnZiwQHTgRbfUdUNllp7hITKMW942wTTwzY/owPukYoo4UAurOZcNkqFCzYJGqxS5bwQRSQO8iSRGwwooet730tzevcilLWH7gF752unoPBoxgCPNxdxWxxSmHpiaQTUAy00sfba0KQ5SLCkXJHEOXpnQsXhe0qm7f/0Mo51cU9pIChj0Cfc/eEmwbcdPnPOCP4N8je+kqW79b3b90kcyUqMDTJw+4HKK62juXm4SXaePJYzx1Yb1VCSZpwOBjHxudp4WrkRPTXFRX248UtSUI5zVw1QsCmOnw=="), + resource.TestCheckResourceAttr(singularDatasourceName, "type", "SAML"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider.0.access_token_url", "accessTokenUrl2"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider.0.account_linking_enabled", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider.0.admin_scope.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider.0.authz_url", "authzUrl2"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider.0.client_credential_in_payload", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider.0.clock_skew_in_seconds", "11"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider.0.consumer_key", "consumerKey2"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider.0.consumer_secret", "consumerSecret2"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider.0.discovery_url", "discoveryUrl2"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider.0.id_attribute", "idAttribute"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider.0.profile_url", "profileUrl2"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider.0.redirect_url", "redirectUrl2"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider.0.registration_enabled", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider.0.scope.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider.0.service_provider_name", "serviceProviderName"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider.0.status", "deleted"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionx509identity_provider.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionx509identity_provider.0.cert_match_attribute", "certMatchAttribute2"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionx509identity_provider.0.crl_check_on_ocsp_failure_enabled", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionx509identity_provider.0.crl_enabled", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionx509identity_provider.0.crl_location", "crlLocation2"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionx509identity_provider.0.crl_reload_duration", "11"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionx509identity_provider.0.ocsp_allow_unknown_response_status", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionx509identity_provider.0.ocsp_enable_signed_response", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionx509identity_provider.0.ocsp_enabled", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionx509identity_provider.0.ocsp_responder_url", "ocspResponderURL2"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionx509identity_provider.0.ocsp_revalidate_time", "11"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionx509identity_provider.0.ocsp_server_name", "ocspServerName2"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionx509identity_provider.0.ocsp_trust_cert_chain.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionx509identity_provider.0.other_cert_match_attribute", "otherCertMatchAttribute2"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionx509identity_provider.0.signing_certificate_chain.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionx509identity_provider.0.user_match_attribute", "userMatchAttribute2"), + resource.TestCheckResourceAttr(singularDatasourceName, "user_mapping_method", "AssertionAttributeToUserAttribute"), + resource.TestCheckResourceAttr(singularDatasourceName, "user_mapping_store_attribute", "name.givenName"), + ), + }, + // verify resource import + { + Config: config + IdentityDomainsIdentityProviderRequiredOnlyResource, + ImportState: true, + ImportStateVerify: true, + ImportStateIdFunc: getIdentityDomainsImportIdFn("oci_identity_domains_identity_provider", "identityProviders"), + ImportStateVerifyIgnore: []string{ + "attribute_sets", + "attributes", + "authorization", + "idcs_endpoint", + "resource_type_schema_version", + "tags", + "service_instance_identifier", + }, + ResourceName: resourceName, + }, + }) +} + +func testAccCheckIdentityDomainsIdentityProviderDestroy(s *terraform.State) error { + noResourceFound := true + client := acctest.TestAccProvider.Meta().(*tf_client.OracleClients).IdentityDomainsClient() + for _, rs := range s.RootModule().Resources { + if rs.Type == "oci_identity_domains_identity_provider" { + noResourceFound = false + request := oci_identity_domains.GetIdentityProviderRequest{} + + if value, ok := rs.Primary.Attributes["authorization"]; ok { + request.Authorization = &value + } + + if value, ok := rs.Primary.Attributes["idcs_endpoint"]; ok { + client.Host = value + } + + tmp := rs.Primary.ID + request.IdentityProviderId = &tmp + + if value, ok := rs.Primary.Attributes["resource_type_schema_version"]; ok { + request.ResourceTypeSchemaVersion = &value + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(true, "identity_domains") + + _, err := client.GetIdentityProvider(context.Background(), request) + + if err == nil { + return fmt.Errorf("resource still exists") + } + + //Verify that exception is for '404 not found'. + if failure, isServiceError := common.IsServiceError(err); !isServiceError || failure.GetHTTPStatusCode() != 404 { + return err + } + } + } + if noResourceFound { + return fmt.Errorf("at least one resource was expected from the state file, but could not be found") + } + + return nil +} + +func init() { + if acctest.DependencyGraph == nil { + acctest.InitDependencyGraph() + } + if !acctest.InSweeperExcludeList("IdentityDomainsIdentityProvider") { + resource.AddTestSweepers("IdentityDomainsIdentityProvider", &resource.Sweeper{ + Name: "IdentityDomainsIdentityProvider", + Dependencies: acctest.DependencyGraph["identityProvider"], + F: sweepIdentityDomainsIdentityProviderResource, + }) + } +} + +func sweepIdentityDomainsIdentityProviderResource(compartment string) error { + identityDomainsClient := acctest.GetTestClients(&schema.ResourceData{}).IdentityDomainsClient() + identityProviderIds, err := getIdentityDomainsIdentityProviderIds(compartment) + if err != nil { + return err + } + for _, identityProviderId := range identityProviderIds { + if ok := acctest.SweeperDefaultResourceId[identityProviderId]; !ok { + deleteIdentityProviderRequest := oci_identity_domains.DeleteIdentityProviderRequest{} + + deleteIdentityProviderRequest.IdentityProviderId = &identityProviderId + + deleteIdentityProviderRequest.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(true, "identity_domains") + _, error := identityDomainsClient.DeleteIdentityProvider(context.Background(), deleteIdentityProviderRequest) + if error != nil { + fmt.Printf("Error deleting IdentityProvider %s %s, It is possible that the resource is already deleted. Please verify manually \n", identityProviderId, error) + continue + } + } + } + return nil +} + +func getIdentityDomainsIdentityProviderIds(compartment string) ([]string, error) { + ids := acctest.GetResourceIdsToSweep(compartment, "IdentityProviderId") + if ids != nil { + return ids, nil + } + var resourceIds []string + compartmentId := compartment + identityDomainsClient := acctest.GetTestClients(&schema.ResourceData{}).IdentityDomainsClient() + + listIdentityProvidersRequest := oci_identity_domains.ListIdentityProvidersRequest{} + listIdentityProvidersResponse, err := identityDomainsClient.ListIdentityProviders(context.Background(), listIdentityProvidersRequest) + + if err != nil { + return resourceIds, fmt.Errorf("Error getting IdentityProvider list for compartment id : %s , %s \n", compartmentId, err) + } + for _, identityProvider := range listIdentityProvidersResponse.Resources { + id := *identityProvider.Id + resourceIds = append(resourceIds, id) + acctest.AddResourceIdToSweeperResourceIdMap(compartmentId, "IdentityProviderId", id) + } + return resourceIds, nil +} diff --git a/internal/integrationtest/identity_domains_kmsi_setting_test.go b/internal/integrationtest/identity_domains_kmsi_setting_test.go new file mode 100644 index 00000000000..f7c004f7c4b --- /dev/null +++ b/internal/integrationtest/identity_domains_kmsi_setting_test.go @@ -0,0 +1,229 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package integrationtest + +import ( + "fmt" + "log" + "strconv" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + + "github.com/oracle/terraform-provider-oci/httpreplay" + "github.com/oracle/terraform-provider-oci/internal/acctest" + "github.com/oracle/terraform-provider-oci/internal/resourcediscovery" + + "github.com/oracle/terraform-provider-oci/internal/utils" +) + +var ( + IdentityDomainsKmsiSettingRequiredOnlyResource = IdentityDomainsKmsiSettingResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_kmsi_setting", "test_kmsi_setting", acctest.Required, acctest.Create, IdentityDomainsKmsiSettingRepresentation) + + IdentityDomainsKmsiSettingResourceConfig = IdentityDomainsKmsiSettingResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_kmsi_setting", "test_kmsi_setting", acctest.Optional, acctest.Update, IdentityDomainsKmsiSettingRepresentation) + + IdentityDomainsIdentityDomainsKmsiSettingSingularDataSourceRepresentation = map[string]interface{}{ + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "kmsi_setting_id": acctest.Representation{RepType: acctest.Required, Create: `KmsiSettings`}, + "attribute_sets": acctest.Representation{RepType: acctest.Optional, Create: []string{`all`}}, + } + + IdentityDomainsIdentityDomainsKmsiSettingDataSourceRepresentation = map[string]interface{}{ + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "attribute_sets": acctest.Representation{RepType: acctest.Optional, Create: []string{`all`}}, + } + + IdentityDomainsKmsiSettingRepresentation = map[string]interface{}{ + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "kmsi_setting_id": acctest.Representation{RepType: acctest.Required, Create: `KmsiSettings`}, + "schemas": acctest.Representation{RepType: acctest.Required, Create: []string{`urn:ietf:params:scim:schemas:oracle:idcs:KmsiSettings`}}, + "attribute_sets": acctest.Representation{RepType: acctest.Optional, Create: []string{`all`}}, + "external_id": acctest.Representation{RepType: acctest.Optional, Create: `externalId`}, + "kmsi_feature_enabled": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `true`}, + "kmsi_prompt_enabled": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `true`}, + "last_used_validity_in_days": acctest.Representation{RepType: acctest.Required, Create: `10`, Update: `11`}, + "max_allowed_sessions": acctest.Representation{RepType: acctest.Required, Create: `9`, Update: `10`}, + "tags": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsKmsiSettingTagsRepresentation}, + "token_validity_in_days": acctest.Representation{RepType: acctest.Required, Create: `10`, Update: `11`}, + "tou_prompt_disabled": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `true`}, + } + IdentityDomainsKmsiSettingTagsRepresentation = map[string]interface{}{ + "key": acctest.Representation{RepType: acctest.Required, Create: `key`, Update: `key2`}, + "value": acctest.Representation{RepType: acctest.Required, Create: `value`, Update: `value2`}, + } + + IdentityDomainsKmsiSettingResourceDependencies = TestDomainDependencies +) + +// issue-routing-tag: identity_domains/default +func TestIdentityDomainsKmsiSettingResource_basic(t *testing.T) { + httpreplay.SetScenario("TestIdentityDomainsKmsiSettingResource_basic") + defer httpreplay.SaveScenario() + + config := acctest.ProviderTestConfig() + + compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid") + compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId) + + resourceName := "oci_identity_domains_kmsi_setting.test_kmsi_setting" + datasourceName := "data.oci_identity_domains_kmsi_settings.test_kmsi_settings" + singularDatasourceName := "data.oci_identity_domains_kmsi_setting.test_kmsi_setting" + + c := config + compartmentIdVariableStr + IdentityDomainsKmsiSettingResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_kmsi_setting", "test_kmsi_setting", acctest.Required, acctest.Create, IdentityDomainsKmsiSettingRepresentation) + println(c) + + var resId, resId2 string + // Save TF content to Create resource with optional properties. This has to be exactly the same as the config part in the "create with optionals" step in the test. + acctest.SaveConfigContent(config+compartmentIdVariableStr+IdentityDomainsKmsiSettingResourceDependencies+ + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_kmsi_setting", "test_kmsi_setting", acctest.Optional, acctest.Create, IdentityDomainsKmsiSettingRepresentation), "identitydomains", "kmsiSetting", t) + + acctest.ResourceTest(t, nil, []resource.TestStep{ + // verify Create (Create with PUT) + { + Config: config + compartmentIdVariableStr + IdentityDomainsKmsiSettingResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_kmsi_setting", "test_kmsi_setting", acctest.Required, acctest.Create, IdentityDomainsKmsiSettingRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttrSet(resourceName, "idcs_endpoint"), + resource.TestCheckResourceAttrSet(resourceName, "kmsi_setting_id"), + resource.TestCheckResourceAttr(resourceName, "schemas.#", "1"), + + func(s *terraform.State) (err error) { + resId, err = acctest.FromInstanceState(s, resourceName, "id") + return err + }, + ), + }, + + // delete before next Create + { + Config: config + compartmentIdVariableStr + IdentityDomainsKmsiSettingResourceDependencies, + }, + // verify Create with optionals (Create with PUT) + { + Config: config + compartmentIdVariableStr + IdentityDomainsKmsiSettingResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_kmsi_setting", "test_kmsi_setting", acctest.Optional, acctest.Create, IdentityDomainsKmsiSettingRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(resourceName, "attribute_sets.#", "1"), + resource.TestCheckResourceAttrSet(resourceName, "external_id"), + resource.TestCheckResourceAttr(resourceName, "id", "KmsiSettings"), + resource.TestCheckResourceAttr(resourceName, "idcs_created_by.#", "1"), + resource.TestCheckResourceAttrSet(resourceName, "idcs_endpoint"), + resource.TestCheckResourceAttr(resourceName, "kmsi_feature_enabled", "false"), + resource.TestCheckResourceAttr(resourceName, "kmsi_prompt_enabled", "false"), + resource.TestCheckResourceAttrSet(resourceName, "kmsi_setting_id"), + resource.TestCheckResourceAttr(resourceName, "last_used_validity_in_days", "10"), + resource.TestCheckResourceAttr(resourceName, "max_allowed_sessions", "9"), + resource.TestCheckResourceAttr(resourceName, "schemas.#", "1"), + resource.TestCheckResourceAttr(resourceName, "tags.#", "1"), + resource.TestCheckResourceAttr(resourceName, "tags.0.key", "key"), + resource.TestCheckResourceAttr(resourceName, "tags.0.value", "value"), + resource.TestCheckResourceAttr(resourceName, "token_validity_in_days", "10"), + resource.TestCheckResourceAttr(resourceName, "tou_prompt_disabled", "false"), + + func(s *terraform.State) (err error) { + resId, err = acctest.FromInstanceState(s, resourceName, "id") + idcsEndpoint, err := acctest.FromInstanceState(s, "data.oci_identity_domain.test_domain", "url") + if err != nil { + return err + } + + compositeId := getIdentityDomainsCompositeId(idcsEndpoint, "kmsiSettings", resId) + log.Printf("[DEBUG] Composite ID to import: %s", compositeId) + if isEnableExportCompartment, _ := strconv.ParseBool(utils.GetEnvSettingWithDefault("enable_export_compartment", "true")); isEnableExportCompartment { + if errExport := resourcediscovery.TestExportCompartmentWithResourceName(&compositeId, &compartmentId, resourceName); errExport != nil { + return errExport + } + } + return err + }, + ), + }, + + // verify updates to updatable parameters + { + Config: config + compartmentIdVariableStr + IdentityDomainsKmsiSettingResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_kmsi_setting", "test_kmsi_setting", acctest.Optional, acctest.Update, IdentityDomainsKmsiSettingRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(resourceName, "attribute_sets.#", "1"), + resource.TestCheckResourceAttrSet(resourceName, "external_id"), + resource.TestCheckResourceAttr(resourceName, "id", "KmsiSettings"), + resource.TestCheckResourceAttr(resourceName, "idcs_created_by.#", "1"), + resource.TestCheckResourceAttrSet(resourceName, "idcs_endpoint"), + resource.TestCheckResourceAttr(resourceName, "kmsi_feature_enabled", "true"), + resource.TestCheckResourceAttr(resourceName, "kmsi_prompt_enabled", "true"), + resource.TestCheckResourceAttrSet(resourceName, "kmsi_setting_id"), + resource.TestCheckResourceAttr(resourceName, "last_used_validity_in_days", "11"), + resource.TestCheckResourceAttr(resourceName, "max_allowed_sessions", "10"), + resource.TestCheckResourceAttr(resourceName, "schemas.#", "1"), + resource.TestCheckResourceAttr(resourceName, "tags.#", "1"), + resource.TestCheckResourceAttr(resourceName, "tags.0.key", "key2"), + resource.TestCheckResourceAttr(resourceName, "tags.0.value", "value2"), + resource.TestCheckResourceAttr(resourceName, "token_validity_in_days", "11"), + resource.TestCheckResourceAttr(resourceName, "tou_prompt_disabled", "true"), + + func(s *terraform.State) (err error) { + resId2, err = acctest.FromInstanceState(s, resourceName, "id") + if resId != resId2 { + return fmt.Errorf("Resource recreated when it was supposed to be updated.") + } + return err + }, + ), + }, + // verify datasource + { + Config: config + + acctest.GenerateDataSourceFromRepresentationMap("oci_identity_domains_kmsi_settings", "test_kmsi_settings", acctest.Optional, acctest.Update, IdentityDomainsIdentityDomainsKmsiSettingDataSourceRepresentation) + + compartmentIdVariableStr + IdentityDomainsKmsiSettingResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_kmsi_setting", "test_kmsi_setting", acctest.Optional, acctest.Update, IdentityDomainsKmsiSettingRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(datasourceName, "attribute_sets.#", "1"), + + resource.TestCheckResourceAttr(datasourceName, "kmsi_settings.#", "1"), + resource.TestCheckResourceAttr(datasourceName, "kmsi_settings.0.schemas.#", "1"), + ), + }, + // verify singular datasource + { + Config: config + + acctest.GenerateDataSourceFromRepresentationMap("oci_identity_domains_kmsi_setting", "test_kmsi_setting", acctest.Required, acctest.Create, IdentityDomainsIdentityDomainsKmsiSettingSingularDataSourceRepresentation) + + compartmentIdVariableStr + IdentityDomainsKmsiSettingResourceConfig, + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttrSet(singularDatasourceName, "kmsi_setting_id"), + + resource.TestCheckResourceAttr(singularDatasourceName, "id", "KmsiSettings"), + resource.TestCheckResourceAttr(singularDatasourceName, "idcs_created_by.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "kmsi_feature_enabled", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "kmsi_prompt_enabled", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "last_used_validity_in_days", "11"), + resource.TestCheckResourceAttr(singularDatasourceName, "max_allowed_sessions", "10"), + resource.TestCheckResourceAttr(singularDatasourceName, "schemas.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "tags.#", "0"), + resource.TestCheckResourceAttr(singularDatasourceName, "token_validity_in_days", "11"), + resource.TestCheckResourceAttr(singularDatasourceName, "tou_prompt_disabled", "true"), + ), + }, + // verify resource import + { + Config: config + IdentityDomainsKmsiSettingRequiredOnlyResource, + ImportState: true, + ImportStateVerify: true, + ImportStateIdFunc: getIdentityDomainsImportIdFn("oci_identity_domains_kmsi_setting", "kmsiSettings"), + ImportStateVerifyIgnore: []string{ + "attribute_sets", + "attributes", + "authorization", + "resource_type_schema_version", + "idcs_last_upgraded_in_release", + "tags", + "kmsi_setting_id", + }, + ResourceName: resourceName, + }, + }) +} diff --git a/internal/integrationtest/identity_domains_my_api_key_test.go b/internal/integrationtest/identity_domains_my_api_key_test.go new file mode 100644 index 00000000000..f55349ca3b9 --- /dev/null +++ b/internal/integrationtest/identity_domains_my_api_key_test.go @@ -0,0 +1,295 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package integrationtest + +import ( + "context" + "fmt" + "log" + "regexp" + "strconv" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + "github.com/oracle/terraform-provider-oci/internal/resourcediscovery" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + "github.com/oracle/oci-go-sdk/v65/common" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/httpreplay" + "github.com/oracle/terraform-provider-oci/internal/acctest" + tf_client "github.com/oracle/terraform-provider-oci/internal/client" + + "github.com/oracle/terraform-provider-oci/internal/tfresource" + "github.com/oracle/terraform-provider-oci/internal/utils" +) + +var ( + IdentityDomainsMyApiKeyRequiredOnlyResource = IdentityDomainsMyApiKeyResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_my_api_key", "test_my_api_key", acctest.Required, acctest.Create, IdentityDomainsMyApiKeyRepresentation) + + IdentityDomainsMyApiKeyResourceConfig = IdentityDomainsMyApiKeyResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_my_api_key", "test_my_api_key", acctest.Optional, acctest.Update, IdentityDomainsMyApiKeyRepresentation) + + IdentityDomainsIdentityDomainsMyApiKeySingularDataSourceRepresentation = map[string]interface{}{ + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "my_api_key_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_identity_domains_my_api_key.test_my_api_key.id}`}, + } + + IdentityDomainsIdentityDomainsMyApiKeyDataSourceRepresentation = map[string]interface{}{ + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "my_api_key_count": acctest.Representation{RepType: acctest.Optional, Create: `10`}, + "my_api_key_filter": acctest.Representation{RepType: acctest.Optional, Create: `id eq \"${oci_identity_domains_my_api_key.test_my_api_key.id}\"`}, + "start_index": acctest.Representation{RepType: acctest.Optional, Create: `1`}, + } + + IdentityDomainsMyApiKeyRepresentation = map[string]interface{}{ + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "key": acctest.Representation{RepType: acctest.Required, Create: "-----BEGIN PUBLIC KEY-----\\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqWmqkNQKbC1hWnmf3Uov\\nH0BfH3WwJRC9Jd6/fo8oo/vhKAO5UsoiLup/7vMpHZq4KN5wXMkGtXlnyOn3KJA0\\nzv4Dni4/AmoODy56i5la4wFXLOIAbVl3QnWiw9ALw9YKKx4KYoixoc3h4MPHdxdR\\nmqb/B8Niq2OSS2eUsCcbAcC41eUIx2yySqA77Qy7lLjzBAE5QBZY0V1BduG/Xi9u\\nzXf6gHwXEszrKpyBIq4t5+g1sbiQWwJPtuVura8iH2gDkRKS/kRzLszn3vX0lePC\\nuCqFeTcOdOieuZndkCIzEMw0UUfdw2+qNOAtNi+mOPKl0h7sM21x3OA+fHmnn1fV\\nGwIDAQAB\\n-----END PUBLIC KEY-----"}, + "schemas": acctest.Representation{RepType: acctest.Required, Create: []string{`urn:ietf:params:scim:schemas:oracle:idcs:apikey`}}, + "description": acctest.Representation{RepType: acctest.Optional, Create: `description`}, + "tags": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsMyApiKeyTagsRepresentation}, + "lifecycle": acctest.RepresentationGroup{RepType: acctest.Optional, Group: ignoreChangeForIdentityDomainsMyApiKey}, + } + + ignoreChangeForIdentityDomainsMyApiKey = map[string]interface{}{ + "ignore_changes": acctest.Representation{RepType: acctest.Optional, Create: []string{ + `tags`, // my_* resource will not return non-default attributes + }}, + } + IdentityDomainsMyApiKeyTagsRepresentation = map[string]interface{}{ + "key": acctest.Representation{RepType: acctest.Required, Create: `key`}, + "value": acctest.Representation{RepType: acctest.Required, Create: `value`}, + } + + IdentityDomainsMyApiKeyResourceDependencies = TestDomainDependencies + envApiKeyFingerprintVariableStr + + envApiKeyFingerprint = acctest.GetEnvSettingWithBlankDefaultVar("fingerprint") + envApiKeyFingerprintVariableStr = fmt.Sprintf("variable \"env_api_key_fingerprint\" { default = \"%s\" }\n", envApiKeyFingerprint) +) + +// issue-routing-tag: identity_domains/default +func TestIdentityDomainsMyApiKeyResource_basic(t *testing.T) { + httpreplay.SetScenario("TestIdentityDomainsMyApiKeyResource_basic") + defer httpreplay.SaveScenario() + + config := acctest.ProviderTestConfig() + + compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid") + compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId) + + resourceName := "oci_identity_domains_my_api_key.test_my_api_key" + datasourceName := "data.oci_identity_domains_my_api_keys.test_my_api_keys" + singularDatasourceName := "data.oci_identity_domains_my_api_key.test_my_api_key" + + var resId string + // Save TF content to Create resource with optional properties. This has to be exactly the same as the config part in the "create with optionals" step in the test. + acctest.SaveConfigContent(config+compartmentIdVariableStr+IdentityDomainsMyApiKeyResourceDependencies+ + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_my_api_key", "test_my_api_key", acctest.Optional, acctest.Create, IdentityDomainsMyApiKeyRepresentation), "identitydomains", "myApiKey", t) + + print(config + compartmentIdVariableStr + IdentityDomainsMyApiKeyResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_my_api_key", "test_my_api_key", acctest.Optional, acctest.Create, IdentityDomainsMyApiKeyRepresentation)) + + print(acctest.GenerateDataSourceFromRepresentationMap("oci_identity_domains_my_api_keys", "test_my_api_keys", acctest.Optional, acctest.Update, IdentityDomainsIdentityDomainsMyApiKeyDataSourceRepresentation)) + print(acctest.GenerateDataSourceFromRepresentationMap("oci_identity_domains_my_api_key", "test_my_api_key", acctest.Required, acctest.Create, IdentityDomainsIdentityDomainsMyApiKeySingularDataSourceRepresentation)) + + acctest.ResourceTest(t, testAccCheckIdentityDomainsMyApiKeyDestroy, []resource.TestStep{ + // verify Create + { + Config: config + compartmentIdVariableStr + IdentityDomainsMyApiKeyResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_my_api_key", "test_my_api_key", acctest.Required, acctest.Create, IdentityDomainsMyApiKeyRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttrSet(resourceName, "idcs_endpoint"), + resource.TestCheckResourceAttr(resourceName, "key", "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqWmqkNQKbC1hWnmf3Uov\nH0BfH3WwJRC9Jd6/fo8oo/vhKAO5UsoiLup/7vMpHZq4KN5wXMkGtXlnyOn3KJA0\nzv4Dni4/AmoODy56i5la4wFXLOIAbVl3QnWiw9ALw9YKKx4KYoixoc3h4MPHdxdR\nmqb/B8Niq2OSS2eUsCcbAcC41eUIx2yySqA77Qy7lLjzBAE5QBZY0V1BduG/Xi9u\nzXf6gHwXEszrKpyBIq4t5+g1sbiQWwJPtuVura8iH2gDkRKS/kRzLszn3vX0lePC\nuCqFeTcOdOieuZndkCIzEMw0UUfdw2+qNOAtNi+mOPKl0h7sM21x3OA+fHmnn1fV\nGwIDAQAB\n-----END PUBLIC KEY-----"), + resource.TestCheckResourceAttr(resourceName, "schemas.#", "1"), + ), + }, + + // delete before next Create + { + Config: config + compartmentIdVariableStr + IdentityDomainsMyApiKeyResourceDependencies, + }, + // verify Create with optionals + { + Config: config + compartmentIdVariableStr + IdentityDomainsMyApiKeyResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_my_api_key", "test_my_api_key", acctest.Optional, acctest.Create, IdentityDomainsMyApiKeyRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(resourceName, "description", "description"), + resource.TestCheckResourceAttrSet(resourceName, "fingerprint"), + resource.TestCheckResourceAttrSet(resourceName, "id"), + resource.TestCheckResourceAttr(resourceName, "idcs_created_by.#", "1"), + resource.TestCheckResourceAttrSet(resourceName, "idcs_endpoint"), + resource.TestCheckResourceAttr(resourceName, "key", "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqWmqkNQKbC1hWnmf3Uov\nH0BfH3WwJRC9Jd6/fo8oo/vhKAO5UsoiLup/7vMpHZq4KN5wXMkGtXlnyOn3KJA0\nzv4Dni4/AmoODy56i5la4wFXLOIAbVl3QnWiw9ALw9YKKx4KYoixoc3h4MPHdxdR\nmqb/B8Niq2OSS2eUsCcbAcC41eUIx2yySqA77Qy7lLjzBAE5QBZY0V1BduG/Xi9u\nzXf6gHwXEszrKpyBIq4t5+g1sbiQWwJPtuVura8iH2gDkRKS/kRzLszn3vX0lePC\nuCqFeTcOdOieuZndkCIzEMw0UUfdw2+qNOAtNi+mOPKl0h7sM21x3OA+fHmnn1fV\nGwIDAQAB\n-----END PUBLIC KEY-----"), + resource.TestCheckResourceAttr(resourceName, "schemas.#", "1"), + + func(s *terraform.State) (err error) { + resId, err = acctest.FromInstanceState(s, resourceName, "id") + idcsEndpoint, err := acctest.FromInstanceState(s, "data.oci_identity_domain.test_domain", "url") + if err != nil { + return err + } + + compositeId := getIdentityDomainsCompositeId(idcsEndpoint, "myApiKeys", resId) + log.Printf("[DEBUG] Composite ID to import: %s", compositeId) + if isEnableExportCompartment, _ := strconv.ParseBool(utils.GetEnvSettingWithDefault("enable_export_compartment", "true")); isEnableExportCompartment { + if errExport := resourcediscovery.TestExportCompartmentWithResourceName(&compositeId, &compartmentId, resourceName); errExport != nil { + return errExport + } + } + return err + }, + ), + }, + + // verify datasource + { + Config: config + + acctest.GenerateDataSourceFromRepresentationMap("oci_identity_domains_my_api_keys", "test_my_api_keys", acctest.Optional, acctest.Update, IdentityDomainsIdentityDomainsMyApiKeyDataSourceRepresentation) + + compartmentIdVariableStr + IdentityDomainsMyApiKeyResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_my_api_key", "test_my_api_key", acctest.Optional, acctest.Update, IdentityDomainsMyApiKeyRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(datasourceName, "my_api_key_count", "10"), + resource.TestCheckResourceAttr(datasourceName, "start_index", "1"), + + resource.TestMatchResourceAttr(datasourceName, "my_api_keys.#", regexp.MustCompile("[1-9]+")), + resource.TestCheckResourceAttr(datasourceName, "my_api_keys.0.schemas.#", "1"), + ), + }, + // verify singular datasource + { + Config: config + + acctest.GenerateDataSourceFromRepresentationMap("oci_identity_domains_my_api_key", "test_my_api_key", acctest.Required, acctest.Create, IdentityDomainsIdentityDomainsMyApiKeySingularDataSourceRepresentation) + + compartmentIdVariableStr + IdentityDomainsMyApiKeyResourceConfig, + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttrSet(singularDatasourceName, "idcs_endpoint"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "my_api_key_id"), + + resource.TestCheckResourceAttr(singularDatasourceName, "description", "description"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "fingerprint"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "id"), + resource.TestCheckResourceAttr(singularDatasourceName, "idcs_created_by.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "key", "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqWmqkNQKbC1hWnmf3Uov\nH0BfH3WwJRC9Jd6/fo8oo/vhKAO5UsoiLup/7vMpHZq4KN5wXMkGtXlnyOn3KJA0\nzv4Dni4/AmoODy56i5la4wFXLOIAbVl3QnWiw9ALw9YKKx4KYoixoc3h4MPHdxdR\nmqb/B8Niq2OSS2eUsCcbAcC41eUIx2yySqA77Qy7lLjzBAE5QBZY0V1BduG/Xi9u\nzXf6gHwXEszrKpyBIq4t5+g1sbiQWwJPtuVura8iH2gDkRKS/kRzLszn3vX0lePC\nuCqFeTcOdOieuZndkCIzEMw0UUfdw2+qNOAtNi+mOPKl0h7sM21x3OA+fHmnn1fV\nGwIDAQAB\n-----END PUBLIC KEY-----"), + resource.TestCheckResourceAttr(singularDatasourceName, "schemas.#", "1"), + ), + }, + // verify resource import + { + Config: config + IdentityDomainsMyApiKeyRequiredOnlyResource, + ImportState: true, + ImportStateVerify: true, + ImportStateIdFunc: getIdentityDomainsImportIdFn("oci_identity_domains_my_api_key", "myApiKeys"), + ImportStateVerifyIgnore: []string{ + "authorization", + "idcs_endpoint", + "resource_type_schema_version", + }, + ResourceName: resourceName, + }, + }) +} + +func testAccCheckIdentityDomainsMyApiKeyDestroy(s *terraform.State) error { + noResourceFound := true + client := acctest.TestAccProvider.Meta().(*tf_client.OracleClients).IdentityDomainsClient() + for _, rs := range s.RootModule().Resources { + if rs.Type == "oci_identity_domains_my_api_key" { + noResourceFound = false + request := oci_identity_domains.GetMyApiKeyRequest{} + + if value, ok := rs.Primary.Attributes["authorization"]; ok { + request.Authorization = &value + } + + if value, ok := rs.Primary.Attributes["idcs_endpoint"]; ok { + client.Host = value + } + + tmp := rs.Primary.ID + request.MyApiKeyId = &tmp + + if value, ok := rs.Primary.Attributes["resource_type_schema_version"]; ok { + request.ResourceTypeSchemaVersion = &value + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(true, "identity_domains") + + _, err := client.GetMyApiKey(context.Background(), request) + + if err == nil { + return fmt.Errorf("resource still exists") + } + + //Verify that exception is for '404 not found'. + if failure, isServiceError := common.IsServiceError(err); !isServiceError || failure.GetHTTPStatusCode() != 404 { + return err + } + } + } + if noResourceFound { + return fmt.Errorf("at least one resource was expected from the state file, but could not be found") + } + + return nil +} + +func init() { + if acctest.DependencyGraph == nil { + acctest.InitDependencyGraph() + } + if !acctest.InSweeperExcludeList("IdentityDomainsMyApiKey") { + resource.AddTestSweepers("IdentityDomainsMyApiKey", &resource.Sweeper{ + Name: "IdentityDomainsMyApiKey", + Dependencies: acctest.DependencyGraph["myApiKey"], + F: sweepIdentityDomainsMyApiKeyResource, + }) + } +} + +func sweepIdentityDomainsMyApiKeyResource(compartment string) error { + identityDomainsClient := acctest.GetTestClients(&schema.ResourceData{}).IdentityDomainsClient() + myApiKeyIds, err := getIdentityDomainsMyApiKeyIds(compartment) + if err != nil { + return err + } + for _, myApiKeyId := range myApiKeyIds { + if ok := acctest.SweeperDefaultResourceId[myApiKeyId]; !ok { + deleteMyApiKeyRequest := oci_identity_domains.DeleteMyApiKeyRequest{} + + deleteMyApiKeyRequest.MyApiKeyId = &myApiKeyId + + deleteMyApiKeyRequest.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(true, "identity_domains") + _, error := identityDomainsClient.DeleteMyApiKey(context.Background(), deleteMyApiKeyRequest) + if error != nil { + fmt.Printf("Error deleting MyApiKey %s %s, It is possible that the resource is already deleted. Please verify manually \n", myApiKeyId, error) + continue + } + } + } + return nil +} + +func getIdentityDomainsMyApiKeyIds(compartment string) ([]string, error) { + ids := acctest.GetResourceIdsToSweep(compartment, "MyApiKeyId") + if ids != nil { + return ids, nil + } + var resourceIds []string + compartmentId := compartment + identityDomainsClient := acctest.GetTestClients(&schema.ResourceData{}).IdentityDomainsClient() + + listMyApiKeysRequest := oci_identity_domains.ListMyApiKeysRequest{} + listMyApiKeysResponse, err := identityDomainsClient.ListMyApiKeys(context.Background(), listMyApiKeysRequest) + + if err != nil { + return resourceIds, fmt.Errorf("Error getting MyApiKey list for compartment id : %s , %s \n", compartmentId, err) + } + for _, myApiKey := range listMyApiKeysResponse.Resources { + id := *myApiKey.Id + resourceIds = append(resourceIds, id) + acctest.AddResourceIdToSweeperResourceIdMap(compartmentId, "MyApiKeyId", id) + } + return resourceIds, nil +} diff --git a/internal/integrationtest/identity_domains_my_auth_token_test.go b/internal/integrationtest/identity_domains_my_auth_token_test.go new file mode 100644 index 00000000000..f60461a9bc5 --- /dev/null +++ b/internal/integrationtest/identity_domains_my_auth_token_test.go @@ -0,0 +1,288 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package integrationtest + +import ( + "context" + "fmt" + "log" + "regexp" + "strconv" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + "github.com/oracle/terraform-provider-oci/internal/resourcediscovery" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + "github.com/oracle/oci-go-sdk/v65/common" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/httpreplay" + "github.com/oracle/terraform-provider-oci/internal/acctest" + tf_client "github.com/oracle/terraform-provider-oci/internal/client" + + "github.com/oracle/terraform-provider-oci/internal/tfresource" + "github.com/oracle/terraform-provider-oci/internal/utils" +) + +var ( + IdentityDomainsMyAuthTokenRequiredOnlyResource = IdentityDomainsMyAuthTokenResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_my_auth_token", "test_my_auth_token", acctest.Required, acctest.Create, IdentityDomainsMyAuthTokenRepresentation) + + IdentityDomainsMyAuthTokenResourceConfig = IdentityDomainsMyAuthTokenResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_my_auth_token", "test_my_auth_token", acctest.Optional, acctest.Update, IdentityDomainsMyAuthTokenRepresentation) + + IdentityDomainsIdentityDomainsMyAuthTokenSingularDataSourceRepresentation = map[string]interface{}{ + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "my_auth_token_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_identity_domains_my_auth_token.test_my_auth_token.id}`}, + } + + IdentityDomainsIdentityDomainsMyAuthTokenDataSourceRepresentation = map[string]interface{}{ + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "my_auth_token_count": acctest.Representation{RepType: acctest.Optional, Create: `10`}, + "my_auth_token_filter": acctest.Representation{RepType: acctest.Optional, Create: ``}, + "start_index": acctest.Representation{RepType: acctest.Optional, Create: `1`}, + } + + IdentityDomainsMyAuthTokenRepresentation = map[string]interface{}{ + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "schemas": acctest.Representation{RepType: acctest.Required, Create: []string{`urn:ietf:params:scim:schemas:oracle:idcs:authToken`}}, + "description": acctest.Representation{RepType: acctest.Optional, Create: `description`}, + "expires_on": acctest.Representation{RepType: acctest.Optional, Create: `2030-01-01T00:00:00Z`}, + "status": acctest.Representation{RepType: acctest.Optional, Create: `ACTIVE`}, + "tags": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsMyAuthTokenTagsRepresentation}, + "lifecycle": acctest.RepresentationGroup{RepType: acctest.Optional, Group: ignoreChangeForIdentityDomainsMyAuthToken}, + } + + ignoreChangeForIdentityDomainsMyAuthToken = map[string]interface{}{ + "ignore_changes": acctest.Representation{RepType: acctest.Optional, Create: []string{ + `tags`, // my_* resource will not return non-default attributes + `status`, + }}, + } + IdentityDomainsMyAuthTokenTagsRepresentation = map[string]interface{}{ + "key": acctest.Representation{RepType: acctest.Required, Create: `key`}, + "value": acctest.Representation{RepType: acctest.Required, Create: `value`}, + } + + IdentityDomainsMyAuthTokenResourceDependencies = TestDomainDependencies +) + +// issue-routing-tag: identity_domains/default +func TestIdentityDomainsMyAuthTokenResource_basic(t *testing.T) { + httpreplay.SetScenario("TestIdentityDomainsMyAuthTokenResource_basic") + defer httpreplay.SaveScenario() + + config := acctest.ProviderTestConfig() + + compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid") + compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId) + + resourceName := "oci_identity_domains_my_auth_token.test_my_auth_token" + datasourceName := "data.oci_identity_domains_my_auth_tokens.test_my_auth_tokens" + singularDatasourceName := "data.oci_identity_domains_my_auth_token.test_my_auth_token" + + var resId string + // Save TF content to Create resource with optional properties. This has to be exactly the same as the config part in the "create with optionals" step in the test. + acctest.SaveConfigContent(config+compartmentIdVariableStr+IdentityDomainsMyAuthTokenResourceDependencies+ + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_my_auth_token", "test_my_auth_token", acctest.Optional, acctest.Create, IdentityDomainsMyAuthTokenRepresentation), "identitydomains", "myAuthToken", t) + + print(config + compartmentIdVariableStr + IdentityDomainsMyAuthTokenResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_my_auth_token", "test_my_auth_token", acctest.Optional, acctest.Create, IdentityDomainsMyAuthTokenRepresentation)) + + acctest.ResourceTest(t, testAccCheckIdentityDomainsMyAuthTokenDestroy, []resource.TestStep{ + // verify Create + { + Config: config + compartmentIdVariableStr + IdentityDomainsMyAuthTokenResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_my_auth_token", "test_my_auth_token", acctest.Required, acctest.Create, IdentityDomainsMyAuthTokenRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttrSet(resourceName, "idcs_endpoint"), + resource.TestCheckResourceAttr(resourceName, "schemas.#", "1"), + ), + }, + + // delete before next Create + { + Config: config + compartmentIdVariableStr + IdentityDomainsMyAuthTokenResourceDependencies, + }, + // verify Create with optionals + { + Config: config + compartmentIdVariableStr + IdentityDomainsMyAuthTokenResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_my_auth_token", "test_my_auth_token", acctest.Optional, acctest.Create, IdentityDomainsMyAuthTokenRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(resourceName, "description", "description"), + resource.TestCheckResourceAttr(resourceName, "expires_on", "2030-01-01T00:00:00Z"), + resource.TestCheckResourceAttrSet(resourceName, "id"), + resource.TestCheckResourceAttr(resourceName, "idcs_created_by.#", "1"), + resource.TestCheckResourceAttrSet(resourceName, "idcs_endpoint"), + resource.TestCheckResourceAttr(resourceName, "schemas.#", "1"), + + func(s *terraform.State) (err error) { + resId, err = acctest.FromInstanceState(s, resourceName, "id") + idcsEndpoint, err := acctest.FromInstanceState(s, "data.oci_identity_domain.test_domain", "url") + if err != nil { + return err + } + + compositeId := getIdentityDomainsCompositeId(idcsEndpoint, "myAuthTokens", resId) + log.Printf("[DEBUG] Composite ID to import: %s", compositeId) + if isEnableExportCompartment, _ := strconv.ParseBool(utils.GetEnvSettingWithDefault("enable_export_compartment", "true")); isEnableExportCompartment { + if errExport := resourcediscovery.TestExportCompartmentWithResourceName(&compositeId, &compartmentId, resourceName); errExport != nil { + return errExport + } + } + return err + }, + ), + }, + + // verify datasource + { + Config: config + + acctest.GenerateDataSourceFromRepresentationMap("oci_identity_domains_my_auth_tokens", "test_my_auth_tokens", acctest.Optional, acctest.Update, IdentityDomainsIdentityDomainsMyAuthTokenDataSourceRepresentation) + + compartmentIdVariableStr + IdentityDomainsMyAuthTokenResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_my_auth_token", "test_my_auth_token", acctest.Optional, acctest.Update, IdentityDomainsMyAuthTokenRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(datasourceName, "my_auth_token_count", "10"), + resource.TestCheckResourceAttr(datasourceName, "start_index", "1"), + + resource.TestMatchResourceAttr(datasourceName, "my_auth_tokens.#", regexp.MustCompile("[1-9]+")), + resource.TestCheckResourceAttr(datasourceName, "my_auth_tokens.0.schemas.#", "1"), + ), + }, + // verify singular datasource + { + Config: config + + acctest.GenerateDataSourceFromRepresentationMap("oci_identity_domains_my_auth_token", "test_my_auth_token", acctest.Required, acctest.Create, IdentityDomainsIdentityDomainsMyAuthTokenSingularDataSourceRepresentation) + + compartmentIdVariableStr + IdentityDomainsMyAuthTokenResourceConfig, + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttrSet(singularDatasourceName, "idcs_endpoint"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "my_auth_token_id"), + + resource.TestCheckResourceAttr(singularDatasourceName, "description", "description"), + resource.TestCheckResourceAttr(singularDatasourceName, "expires_on", "2030-01-01T00:00:00Z"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "id"), + resource.TestCheckResourceAttr(singularDatasourceName, "idcs_created_by.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "schemas.#", "1"), + ), + }, + // verify resource import + { + Config: config + IdentityDomainsMyAuthTokenRequiredOnlyResource, + ImportState: true, + ImportStateVerify: true, + ImportStateIdFunc: getIdentityDomainsImportIdFn("oci_identity_domains_my_auth_token", "myAuthTokens"), + ImportStateVerifyIgnore: []string{ + "authorization", + "idcs_endpoint", + "resource_type_schema_version", + }, + ResourceName: resourceName, + }, + }) +} + +func testAccCheckIdentityDomainsMyAuthTokenDestroy(s *terraform.State) error { + noResourceFound := true + client := acctest.TestAccProvider.Meta().(*tf_client.OracleClients).IdentityDomainsClient() + for _, rs := range s.RootModule().Resources { + if rs.Type == "oci_identity_domains_my_auth_token" { + noResourceFound = false + request := oci_identity_domains.GetMyAuthTokenRequest{} + + if value, ok := rs.Primary.Attributes["authorization"]; ok { + request.Authorization = &value + } + + if value, ok := rs.Primary.Attributes["idcs_endpoint"]; ok { + client.Host = value + } + + tmp := rs.Primary.ID + request.MyAuthTokenId = &tmp + + if value, ok := rs.Primary.Attributes["resource_type_schema_version"]; ok { + request.ResourceTypeSchemaVersion = &value + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(true, "identity_domains") + + _, err := client.GetMyAuthToken(context.Background(), request) + + if err == nil { + return fmt.Errorf("resource still exists") + } + + //Verify that exception is for '404 not found'. + if failure, isServiceError := common.IsServiceError(err); !isServiceError || failure.GetHTTPStatusCode() != 404 { + return err + } + } + } + if noResourceFound { + return fmt.Errorf("at least one resource was expected from the state file, but could not be found") + } + + return nil +} + +func init() { + if acctest.DependencyGraph == nil { + acctest.InitDependencyGraph() + } + if !acctest.InSweeperExcludeList("IdentityDomainsMyAuthToken") { + resource.AddTestSweepers("IdentityDomainsMyAuthToken", &resource.Sweeper{ + Name: "IdentityDomainsMyAuthToken", + Dependencies: acctest.DependencyGraph["myAuthToken"], + F: sweepIdentityDomainsMyAuthTokenResource, + }) + } +} + +func sweepIdentityDomainsMyAuthTokenResource(compartment string) error { + identityDomainsClient := acctest.GetTestClients(&schema.ResourceData{}).IdentityDomainsClient() + myAuthTokenIds, err := getIdentityDomainsMyAuthTokenIds(compartment) + if err != nil { + return err + } + for _, myAuthTokenId := range myAuthTokenIds { + if ok := acctest.SweeperDefaultResourceId[myAuthTokenId]; !ok { + deleteMyAuthTokenRequest := oci_identity_domains.DeleteMyAuthTokenRequest{} + + deleteMyAuthTokenRequest.MyAuthTokenId = &myAuthTokenId + + deleteMyAuthTokenRequest.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(true, "identity_domains") + _, error := identityDomainsClient.DeleteMyAuthToken(context.Background(), deleteMyAuthTokenRequest) + if error != nil { + fmt.Printf("Error deleting MyAuthToken %s %s, It is possible that the resource is already deleted. Please verify manually \n", myAuthTokenId, error) + continue + } + } + } + return nil +} + +func getIdentityDomainsMyAuthTokenIds(compartment string) ([]string, error) { + ids := acctest.GetResourceIdsToSweep(compartment, "MyAuthTokenId") + if ids != nil { + return ids, nil + } + var resourceIds []string + compartmentId := compartment + identityDomainsClient := acctest.GetTestClients(&schema.ResourceData{}).IdentityDomainsClient() + + listMyAuthTokensRequest := oci_identity_domains.ListMyAuthTokensRequest{} + listMyAuthTokensResponse, err := identityDomainsClient.ListMyAuthTokens(context.Background(), listMyAuthTokensRequest) + + if err != nil { + return resourceIds, fmt.Errorf("Error getting MyAuthToken list for compartment id : %s , %s \n", compartmentId, err) + } + for _, myAuthToken := range listMyAuthTokensResponse.Resources { + id := *myAuthToken.Id + resourceIds = append(resourceIds, id) + acctest.AddResourceIdToSweeperResourceIdMap(compartmentId, "MyAuthTokenId", id) + } + return resourceIds, nil +} diff --git a/internal/integrationtest/identity_domains_my_customer_secret_key_test.go b/internal/integrationtest/identity_domains_my_customer_secret_key_test.go new file mode 100644 index 00000000000..bd0aefafbde --- /dev/null +++ b/internal/integrationtest/identity_domains_my_customer_secret_key_test.go @@ -0,0 +1,290 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package integrationtest + +import ( + "context" + "fmt" + "log" + "regexp" + "strconv" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + "github.com/oracle/terraform-provider-oci/internal/resourcediscovery" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + "github.com/oracle/oci-go-sdk/v65/common" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/httpreplay" + "github.com/oracle/terraform-provider-oci/internal/acctest" + tf_client "github.com/oracle/terraform-provider-oci/internal/client" + + "github.com/oracle/terraform-provider-oci/internal/tfresource" + "github.com/oracle/terraform-provider-oci/internal/utils" +) + +var ( + IdentityDomainsMyCustomerSecretKeyRequiredOnlyResource = IdentityDomainsMyCustomerSecretKeyResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_my_customer_secret_key", "test_my_customer_secret_key", acctest.Required, acctest.Create, IdentityDomainsMyCustomerSecretKeyRepresentation) + + IdentityDomainsMyCustomerSecretKeyResourceConfig = IdentityDomainsMyCustomerSecretKeyResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_my_customer_secret_key", "test_my_customer_secret_key", acctest.Optional, acctest.Update, IdentityDomainsMyCustomerSecretKeyRepresentation) + + IdentityDomainsIdentityDomainsMyCustomerSecretKeySingularDataSourceRepresentation = map[string]interface{}{ + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "my_customer_secret_key_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_identity_domains_my_customer_secret_key.test_my_customer_secret_key.id}`}, + } + + IdentityDomainsIdentityDomainsMyCustomerSecretKeyDataSourceRepresentation = map[string]interface{}{ + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "my_customer_secret_key_count": acctest.Representation{RepType: acctest.Optional, Create: `10`}, + "my_customer_secret_key_filter": acctest.Representation{RepType: acctest.Optional, Create: ``}, + "start_index": acctest.Representation{RepType: acctest.Optional, Create: `1`}, + } + + IdentityDomainsMyCustomerSecretKeyRepresentation = map[string]interface{}{ + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "schemas": acctest.Representation{RepType: acctest.Required, Create: []string{`urn:ietf:params:scim:schemas:oracle:idcs:customerSecretKey`}}, + "description": acctest.Representation{RepType: acctest.Optional, Create: `description`}, + "display_name": acctest.Representation{RepType: acctest.Optional, Create: `displayName`}, + "expires_on": acctest.Representation{RepType: acctest.Optional, Create: `2030-01-01T00:00:00Z`}, + "status": acctest.Representation{RepType: acctest.Optional, Create: `ACTIVE`}, + "tags": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsMyCustomerSecretKeyTagsRepresentation}, + "lifecycle": acctest.RepresentationGroup{RepType: acctest.Optional, Group: ignoreChangeForIdentityDomainsMyCustomerSecretKey}, + } + ignoreChangeForIdentityDomainsMyCustomerSecretKey = map[string]interface{}{ + "ignore_changes": acctest.Representation{RepType: acctest.Optional, Create: []string{ + // properties that are `returned:never` + `status`, + `tags`, // my_* resource will not return non-default attributes + }}, + } + IdentityDomainsMyCustomerSecretKeyTagsRepresentation = map[string]interface{}{ + "key": acctest.Representation{RepType: acctest.Required, Create: `key`}, + "value": acctest.Representation{RepType: acctest.Required, Create: `value`}, + } + + IdentityDomainsMyCustomerSecretKeyResourceDependencies = TestDomainDependencies +) + +// issue-routing-tag: identity_domains/default +func TestIdentityDomainsMyCustomerSecretKeyResource_basic(t *testing.T) { + httpreplay.SetScenario("TestIdentityDomainsMyCustomerSecretKeyResource_basic") + defer httpreplay.SaveScenario() + + config := acctest.ProviderTestConfig() + + compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid") + compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId) + + resourceName := "oci_identity_domains_my_customer_secret_key.test_my_customer_secret_key" + datasourceName := "data.oci_identity_domains_my_customer_secret_keys.test_my_customer_secret_keys" + singularDatasourceName := "data.oci_identity_domains_my_customer_secret_key.test_my_customer_secret_key" + + var resId string + // Save TF content to Create resource with optional properties. This has to be exactly the same as the config part in the "create with optionals" step in the test. + acctest.SaveConfigContent(config+compartmentIdVariableStr+IdentityDomainsMyCustomerSecretKeyResourceDependencies+ + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_my_customer_secret_key", "test_my_customer_secret_key", acctest.Optional, acctest.Create, IdentityDomainsMyCustomerSecretKeyRepresentation), "identitydomains", "myCustomerSecretKey", t) + + print(config + compartmentIdVariableStr + IdentityDomainsMyCustomerSecretKeyResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_my_customer_secret_key", "test_my_customer_secret_key", acctest.Optional, acctest.Create, IdentityDomainsMyCustomerSecretKeyRepresentation)) + acctest.ResourceTest(t, testAccCheckIdentityDomainsMyCustomerSecretKeyDestroy, []resource.TestStep{ + // verify Create + { + Config: config + compartmentIdVariableStr + IdentityDomainsMyCustomerSecretKeyResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_my_customer_secret_key", "test_my_customer_secret_key", acctest.Required, acctest.Create, IdentityDomainsMyCustomerSecretKeyRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttrSet(resourceName, "idcs_endpoint"), + resource.TestCheckResourceAttr(resourceName, "schemas.#", "1"), + ), + }, + + // delete before next Create + { + Config: config + compartmentIdVariableStr + IdentityDomainsMyCustomerSecretKeyResourceDependencies, + }, + // verify Create with optionals + { + Config: config + compartmentIdVariableStr + IdentityDomainsMyCustomerSecretKeyResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_my_customer_secret_key", "test_my_customer_secret_key", acctest.Optional, acctest.Create, IdentityDomainsMyCustomerSecretKeyRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(resourceName, "description", "description"), + resource.TestCheckResourceAttr(resourceName, "display_name", "displayName"), + resource.TestCheckResourceAttr(resourceName, "expires_on", "2030-01-01T00:00:00Z"), + resource.TestCheckResourceAttrSet(resourceName, "id"), + resource.TestCheckResourceAttr(resourceName, "idcs_created_by.#", "1"), + resource.TestCheckResourceAttrSet(resourceName, "idcs_endpoint"), + resource.TestCheckResourceAttr(resourceName, "schemas.#", "1"), + + func(s *terraform.State) (err error) { + resId, err = acctest.FromInstanceState(s, resourceName, "id") + idcsEndpoint, err := acctest.FromInstanceState(s, "data.oci_identity_domain.test_domain", "url") + if err != nil { + return err + } + + compositeId := getIdentityDomainsCompositeId(idcsEndpoint, "myCustomerSecretKeys", resId) + log.Printf("[DEBUG] Composite ID to import: %s", compositeId) + if isEnableExportCompartment, _ := strconv.ParseBool(utils.GetEnvSettingWithDefault("enable_export_compartment", "true")); isEnableExportCompartment { + if errExport := resourcediscovery.TestExportCompartmentWithResourceName(&compositeId, &compartmentId, resourceName); errExport != nil { + return errExport + } + } + return err + }, + ), + }, + + // verify datasource + { + Config: config + + acctest.GenerateDataSourceFromRepresentationMap("oci_identity_domains_my_customer_secret_keys", "test_my_customer_secret_keys", acctest.Optional, acctest.Update, IdentityDomainsIdentityDomainsMyCustomerSecretKeyDataSourceRepresentation) + + compartmentIdVariableStr + IdentityDomainsMyCustomerSecretKeyResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_my_customer_secret_key", "test_my_customer_secret_key", acctest.Optional, acctest.Update, IdentityDomainsMyCustomerSecretKeyRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(datasourceName, "my_customer_secret_key_count", "10"), + resource.TestCheckResourceAttr(datasourceName, "start_index", "1"), + + resource.TestMatchResourceAttr(datasourceName, "my_customer_secret_keys.#", regexp.MustCompile("[1-9]+")), + resource.TestCheckResourceAttr(datasourceName, "my_customer_secret_keys.0.schemas.#", "1"), + ), + }, + // verify singular datasource + { + Config: config + + acctest.GenerateDataSourceFromRepresentationMap("oci_identity_domains_my_customer_secret_key", "test_my_customer_secret_key", acctest.Required, acctest.Create, IdentityDomainsIdentityDomainsMyCustomerSecretKeySingularDataSourceRepresentation) + + compartmentIdVariableStr + IdentityDomainsMyCustomerSecretKeyResourceConfig, + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttrSet(singularDatasourceName, "idcs_endpoint"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "my_customer_secret_key_id"), + + resource.TestCheckResourceAttr(singularDatasourceName, "description", "description"), + resource.TestCheckResourceAttr(singularDatasourceName, "display_name", "displayName"), + resource.TestCheckResourceAttr(singularDatasourceName, "expires_on", "2030-01-01T00:00:00Z"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "id"), + resource.TestCheckResourceAttr(singularDatasourceName, "idcs_created_by.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "schemas.#", "1"), + ), + }, + // verify resource import + { + Config: config + IdentityDomainsMyCustomerSecretKeyRequiredOnlyResource, + ImportState: true, + ImportStateVerify: true, + ImportStateIdFunc: getIdentityDomainsImportIdFn("oci_identity_domains_my_customer_secret_key", "myCustomerSecretKeys"), + ImportStateVerifyIgnore: []string{ + "authorization", + "idcs_endpoint", + "resource_type_schema_version", + }, + ResourceName: resourceName, + }, + }) +} + +func testAccCheckIdentityDomainsMyCustomerSecretKeyDestroy(s *terraform.State) error { + noResourceFound := true + client := acctest.TestAccProvider.Meta().(*tf_client.OracleClients).IdentityDomainsClient() + for _, rs := range s.RootModule().Resources { + if rs.Type == "oci_identity_domains_my_customer_secret_key" { + noResourceFound = false + request := oci_identity_domains.GetMyCustomerSecretKeyRequest{} + + if value, ok := rs.Primary.Attributes["authorization"]; ok { + request.Authorization = &value + } + + if value, ok := rs.Primary.Attributes["idcs_endpoint"]; ok { + client.Host = value + } + + tmp := rs.Primary.ID + request.MyCustomerSecretKeyId = &tmp + + if value, ok := rs.Primary.Attributes["resource_type_schema_version"]; ok { + request.ResourceTypeSchemaVersion = &value + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(true, "identity_domains") + + _, err := client.GetMyCustomerSecretKey(context.Background(), request) + + if err == nil { + return fmt.Errorf("resource still exists") + } + + //Verify that exception is for '404 not found'. + if failure, isServiceError := common.IsServiceError(err); !isServiceError || failure.GetHTTPStatusCode() != 404 { + return err + } + } + } + if noResourceFound { + return fmt.Errorf("at least one resource was expected from the state file, but could not be found") + } + + return nil +} + +func init() { + if acctest.DependencyGraph == nil { + acctest.InitDependencyGraph() + } + if !acctest.InSweeperExcludeList("IdentityDomainsMyCustomerSecretKey") { + resource.AddTestSweepers("IdentityDomainsMyCustomerSecretKey", &resource.Sweeper{ + Name: "IdentityDomainsMyCustomerSecretKey", + Dependencies: acctest.DependencyGraph["myCustomerSecretKey"], + F: sweepIdentityDomainsMyCustomerSecretKeyResource, + }) + } +} + +func sweepIdentityDomainsMyCustomerSecretKeyResource(compartment string) error { + identityDomainsClient := acctest.GetTestClients(&schema.ResourceData{}).IdentityDomainsClient() + myCustomerSecretKeyIds, err := getIdentityDomainsMyCustomerSecretKeyIds(compartment) + if err != nil { + return err + } + for _, myCustomerSecretKeyId := range myCustomerSecretKeyIds { + if ok := acctest.SweeperDefaultResourceId[myCustomerSecretKeyId]; !ok { + deleteMyCustomerSecretKeyRequest := oci_identity_domains.DeleteMyCustomerSecretKeyRequest{} + + deleteMyCustomerSecretKeyRequest.MyCustomerSecretKeyId = &myCustomerSecretKeyId + + deleteMyCustomerSecretKeyRequest.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(true, "identity_domains") + _, error := identityDomainsClient.DeleteMyCustomerSecretKey(context.Background(), deleteMyCustomerSecretKeyRequest) + if error != nil { + fmt.Printf("Error deleting MyCustomerSecretKey %s %s, It is possible that the resource is already deleted. Please verify manually \n", myCustomerSecretKeyId, error) + continue + } + } + } + return nil +} + +func getIdentityDomainsMyCustomerSecretKeyIds(compartment string) ([]string, error) { + ids := acctest.GetResourceIdsToSweep(compartment, "MyCustomerSecretKeyId") + if ids != nil { + return ids, nil + } + var resourceIds []string + compartmentId := compartment + identityDomainsClient := acctest.GetTestClients(&schema.ResourceData{}).IdentityDomainsClient() + + listMyCustomerSecretKeysRequest := oci_identity_domains.ListMyCustomerSecretKeysRequest{} + listMyCustomerSecretKeysResponse, err := identityDomainsClient.ListMyCustomerSecretKeys(context.Background(), listMyCustomerSecretKeysRequest) + + if err != nil { + return resourceIds, fmt.Errorf("Error getting MyCustomerSecretKey list for compartment id : %s , %s \n", compartmentId, err) + } + for _, myCustomerSecretKey := range listMyCustomerSecretKeysResponse.Resources { + id := *myCustomerSecretKey.Id + resourceIds = append(resourceIds, id) + acctest.AddResourceIdToSweeperResourceIdMap(compartmentId, "MyCustomerSecretKeyId", id) + } + return resourceIds, nil +} diff --git a/internal/integrationtest/identity_domains_my_device_test.go b/internal/integrationtest/identity_domains_my_device_test.go new file mode 100644 index 00000000000..263303d436c --- /dev/null +++ b/internal/integrationtest/identity_domains_my_device_test.go @@ -0,0 +1,154 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package integrationtest + +import ( + "context" + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + "github.com/oracle/terraform-provider-oci/internal/tfresource" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/httpreplay" + "github.com/oracle/terraform-provider-oci/internal/acctest" + + "github.com/oracle/terraform-provider-oci/internal/utils" +) + +var ( + IdentityDomainsIdentityDomainsMyDeviceSingularDataSourceRepresentation = map[string]interface{}{ + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "my_device_id": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domains_my_devices.test_my_devices.my_devices.0.id}`}, + "attribute_sets": acctest.Representation{RepType: acctest.Optional, Create: []string{`all`}}, + } + + IdentityDomainsIdentityDomainsMyDeviceDataSourceRepresentation = map[string]interface{}{ + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "my_device_count": acctest.Representation{RepType: acctest.Optional, Create: `10`}, + "my_device_filter": acctest.Representation{RepType: acctest.Optional, Create: ``}, + "attribute_sets": acctest.Representation{RepType: acctest.Optional, Create: []string{`all`}}, + "start_index": acctest.Representation{RepType: acctest.Optional, Create: `1`}, + } + + IdentityDomainsMyDeviceResourceConfig = TestDomainDependencies +) + +// issue-routing-tag: identity_domains/default +func TestIdentityDomainsMyDeviceResource_basic(t *testing.T) { + httpreplay.SetScenario("TestIdentityDomainsMyDeviceResource_basic") + defer httpreplay.SaveScenario() + + config := acctest.ProviderTestConfig() + + compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid") + compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId) + + datasourceName := "data.oci_identity_domains_my_devices.test_my_devices" + singularDatasourceName := "data.oci_identity_domains_my_device.test_my_device" + + acctest.SaveConfigContent("", "", "", t) + + acctest.ResourceTest(t, nil, []resource.TestStep{ + // verify datasource + { + Config: config + + acctest.GenerateDataSourceFromRepresentationMap("oci_identity_domains_my_devices", "test_my_devices", acctest.Required, acctest.Create, IdentityDomainsIdentityDomainsMyDeviceDataSourceRepresentation) + + compartmentIdVariableStr + IdentityDomainsMyDeviceResourceConfig, + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(datasourceName, "start_index", "1"), + + resource.TestCheckResourceAttrSet(datasourceName, "my_devices.#"), + resource.TestCheckResourceAttr(datasourceName, "my_devices.0.schemas.#", "1"), + ), + }, + // verify singular datasource + { + Config: config + + acctest.GenerateDataSourceFromRepresentationMap("oci_identity_domains_my_devices", "test_my_devices", acctest.Required, acctest.Create, IdentityDomainsIdentityDomainsMyDeviceDataSourceRepresentation) + + acctest.GenerateDataSourceFromRepresentationMap("oci_identity_domains_my_device", "test_my_device", acctest.Required, acctest.Create, IdentityDomainsIdentityDomainsMyDeviceSingularDataSourceRepresentation) + + compartmentIdVariableStr + IdentityDomainsMyDeviceResourceConfig, + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttrSet(singularDatasourceName, "idcs_endpoint"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "my_device_id"), + + resource.TestCheckResourceAttrSet(singularDatasourceName, "additional_attributes.#"), + resource.TestCheckResourceAttr(singularDatasourceName, "authentication_factors.#", "1"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "display_name"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "id"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "is_acc_rec_enabled"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "last_sync_time"), + resource.TestCheckResourceAttr(singularDatasourceName, "non_compliances.#", "0"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "ocid"), + resource.TestCheckResourceAttr(singularDatasourceName, "schemas.#", "1"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "status"), + resource.TestCheckResourceAttr(singularDatasourceName, "third_party_factor.#", "0"), + resource.TestCheckResourceAttr(singularDatasourceName, "user.#", "1"), + ), + }, + }) +} + +func init() { + if acctest.DependencyGraph == nil { + acctest.InitDependencyGraph() + } + if !acctest.InSweeperExcludeList("IdentityDomainsMyDevice") { + resource.AddTestSweepers("IdentityDomainsMyDevice", &resource.Sweeper{ + Name: "IdentityDomainsMyDevice", + Dependencies: acctest.DependencyGraph["myDevice"], + F: sweepIdentityDomainsMyDeviceResource, + }) + } +} + +func sweepIdentityDomainsMyDeviceResource(compartment string) error { + identityDomainsClient := acctest.GetTestClients(&schema.ResourceData{}).IdentityDomainsClient() + myDeviceIds, err := getIdentityDomainsMyDeviceIds(compartment) + if err != nil { + return err + } + for _, myDeviceId := range myDeviceIds { + if ok := acctest.SweeperDefaultResourceId[myDeviceId]; !ok { + deleteMyDeviceRequest := oci_identity_domains.DeleteMyDeviceRequest{} + + deleteMyDeviceRequest.MyDeviceId = &myDeviceId + + deleteMyDeviceRequest.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(true, "identity_domains") + _, error := identityDomainsClient.DeleteMyDevice(context.Background(), deleteMyDeviceRequest) + if error != nil { + fmt.Printf("Error deleting MyDevice %s %s, It is possible that the resource is already deleted. Please verify manually \n", myDeviceId, error) + continue + } + } + } + return nil +} + +func getIdentityDomainsMyDeviceIds(compartment string) ([]string, error) { + ids := acctest.GetResourceIdsToSweep(compartment, "MyDeviceId") + if ids != nil { + return ids, nil + } + var resourceIds []string + compartmentId := compartment + identityDomainsClient := acctest.GetTestClients(&schema.ResourceData{}).IdentityDomainsClient() + + listMyDevicesRequest := oci_identity_domains.ListMyDevicesRequest{} + listMyDevicesResponse, err := identityDomainsClient.ListMyDevices(context.Background(), listMyDevicesRequest) + + if err != nil { + return resourceIds, fmt.Errorf("Error getting MyDevice list for compartment id : %s , %s \n", compartmentId, err) + } + for _, myDevice := range listMyDevicesResponse.Resources { + id := *myDevice.Id + resourceIds = append(resourceIds, id) + acctest.AddResourceIdToSweeperResourceIdMap(compartmentId, "MyDeviceId", id) + } + return resourceIds, nil +} diff --git a/internal/integrationtest/identity_domains_my_group_test.go b/internal/integrationtest/identity_domains_my_group_test.go new file mode 100644 index 00000000000..5a86bbd759f --- /dev/null +++ b/internal/integrationtest/identity_domains_my_group_test.go @@ -0,0 +1,63 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package integrationtest + +import ( + "fmt" + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + + "github.com/oracle/terraform-provider-oci/httpreplay" + "github.com/oracle/terraform-provider-oci/internal/acctest" + + "github.com/oracle/terraform-provider-oci/internal/utils" +) + +var ( + IdentityDomainsIdentityDomainsMyGroupDataSourceRepresentation = map[string]interface{}{ + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "my_group_count": acctest.Representation{RepType: acctest.Optional, Create: `10`}, + "my_group_filter": acctest.Representation{RepType: acctest.Optional, Create: ``}, + "attribute_sets": acctest.Representation{RepType: acctest.Optional, Create: []string{`all`}}, + "start_index": acctest.Representation{RepType: acctest.Optional, Create: `1`}, + } + + IdentityDomainsMyGroupResourceConfig = TestDomainDependencies +) + +// issue-routing-tag: identity_domains/default +func TestIdentityDomainsMyGroupResource_basic(t *testing.T) { + httpreplay.SetScenario("TestIdentityDomainsMyGroupResource_basic") + defer httpreplay.SaveScenario() + + config := acctest.ProviderTestConfig() + + compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid") + compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId) + + datasourceName := "data.oci_identity_domains_my_groups.test_my_groups" + + acctest.SaveConfigContent("", "", "", t) + + print(config + + acctest.GenerateDataSourceFromRepresentationMap("oci_identity_domains_my_groups", "test_my_groups", acctest.Required, acctest.Create, IdentityDomainsIdentityDomainsMyGroupDataSourceRepresentation) + + compartmentIdVariableStr + IdentityDomainsMyGroupResourceConfig) + + acctest.ResourceTest(t, nil, []resource.TestStep{ + // verify datasource + { + Config: config + + acctest.GenerateDataSourceFromRepresentationMap("oci_identity_domains_my_groups", "test_my_groups", acctest.Required, acctest.Create, IdentityDomainsIdentityDomainsMyGroupDataSourceRepresentation) + + compartmentIdVariableStr + IdentityDomainsMyGroupResourceConfig, + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(datasourceName, "start_index", "1"), + + resource.TestMatchResourceAttr(datasourceName, "my_groups.#", regexp.MustCompile("[1-9]+")), + resource.TestCheckResourceAttr(datasourceName, "my_groups.0.meta.0.resource_type", "MyGroup"), + ), + }, + }) +} diff --git a/internal/integrationtest/identity_domains_my_oauth2client_credential_test.go b/internal/integrationtest/identity_domains_my_oauth2client_credential_test.go new file mode 100644 index 00000000000..8d118249eea --- /dev/null +++ b/internal/integrationtest/identity_domains_my_oauth2client_credential_test.go @@ -0,0 +1,308 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package integrationtest + +import ( + "context" + "fmt" + "log" + "regexp" + "strconv" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + "github.com/oracle/terraform-provider-oci/internal/resourcediscovery" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + "github.com/oracle/oci-go-sdk/v65/common" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/httpreplay" + "github.com/oracle/terraform-provider-oci/internal/acctest" + tf_client "github.com/oracle/terraform-provider-oci/internal/client" + + "github.com/oracle/terraform-provider-oci/internal/tfresource" + "github.com/oracle/terraform-provider-oci/internal/utils" +) + +var ( + IdentityDomainsMyOAuth2ClientCredentialRequiredOnlyResource = IdentityDomainsMyOAuth2ClientCredentialResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_my_oauth2client_credential", "test_my_oauth2client_credential", acctest.Required, acctest.Create, IdentityDomainsMyOAuth2ClientCredentialRepresentation) + + IdentityDomainsMyOAuth2ClientCredentialResourceConfig = IdentityDomainsMyOAuth2ClientCredentialResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_my_oauth2client_credential", "test_my_oauth2client_credential", acctest.Optional, acctest.Update, IdentityDomainsMyOAuth2ClientCredentialRepresentation) + + IdentityDomainsIdentityDomainsMyOAuth2ClientCredentialSingularDataSourceRepresentation = map[string]interface{}{ + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "my_oauth2client_credential_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_identity_domains_my_oauth2client_credential.test_my_oauth2client_credential.id}`}, + } + + IdentityDomainsIdentityDomainsMyOAuth2ClientCredentialDataSourceRepresentation = map[string]interface{}{ + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "my_oauth2client_credential_count": acctest.Representation{RepType: acctest.Optional, Create: `10`}, + "my_oauth2client_credential_filter": acctest.Representation{RepType: acctest.Optional, Create: ``}, + "start_index": acctest.Representation{RepType: acctest.Optional, Create: `1`}, + } + + IdentityDomainsMyOAuth2ClientCredentialRepresentation = map[string]interface{}{ + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "name": acctest.Representation{RepType: acctest.Required, Create: `name`}, + "schemas": acctest.Representation{RepType: acctest.Required, Create: []string{`urn:ietf:params:scim:schemas:oracle:idcs:oauth2ClientCredential`}}, + "scopes": acctest.RepresentationGroup{RepType: acctest.Required, Group: IdentityDomainsMyOAuth2ClientCredentialScopesRepresentation}, + "description": acctest.Representation{RepType: acctest.Optional, Create: `description`}, + "expires_on": acctest.Representation{RepType: acctest.Optional, Create: `2030-01-01T00:00:00Z`}, + "is_reset_secret": acctest.Representation{RepType: acctest.Optional, Create: `false`}, + "status": acctest.Representation{RepType: acctest.Optional, Create: `ACTIVE`}, + "tags": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsMyOAuth2ClientCredentialTagsRepresentation}, + "lifecycle": acctest.RepresentationGroup{RepType: acctest.Optional, Group: ignoreChangeForIdentityDomainsMyOAuth2ClientCredential}, + } + ignoreChangeForIdentityDomainsMyOAuth2ClientCredential = map[string]interface{}{ + "ignore_changes": acctest.Representation{RepType: acctest.Optional, Create: []string{ + // properties that are `returned:never` + `status`, + `tags`, // my_* resource will not return non-default attributes + }}, + } + IdentityDomainsMyOAuth2ClientCredentialScopesRepresentation = map[string]interface{}{ + "audience": acctest.Representation{RepType: acctest.Required, Create: `audience`}, + "scope": acctest.Representation{RepType: acctest.Required, Create: `scope`}, + } + IdentityDomainsMyOAuth2ClientCredentialTagsRepresentation = map[string]interface{}{ + "key": acctest.Representation{RepType: acctest.Required, Create: `key`}, + "value": acctest.Representation{RepType: acctest.Required, Create: `value`}, + } + + IdentityDomainsMyOAuth2ClientCredentialResourceDependencies = TestDomainDependencies +) + +// issue-routing-tag: identity_domains/default +func TestIdentityDomainsMyOAuth2ClientCredentialResource_basic(t *testing.T) { + httpreplay.SetScenario("TestIdentityDomainsMyOAuth2ClientCredentialResource_basic") + defer httpreplay.SaveScenario() + + config := acctest.ProviderTestConfig() + + compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid") + compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId) + + resourceName := "oci_identity_domains_my_oauth2client_credential.test_my_oauth2client_credential" + datasourceName := "data.oci_identity_domains_my_oauth2client_credentials.test_my_oauth2client_credentials" + singularDatasourceName := "data.oci_identity_domains_my_oauth2client_credential.test_my_oauth2client_credential" + + var resId string + // Save TF content to Create resource with optional properties. This has to be exactly the same as the config part in the "create with optionals" step in the test. + acctest.SaveConfigContent(config+compartmentIdVariableStr+IdentityDomainsMyOAuth2ClientCredentialResourceDependencies+ + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_my_oauth2client_credential", "test_my_oauth2client_credential", acctest.Optional, acctest.Create, IdentityDomainsMyOAuth2ClientCredentialRepresentation), "identitydomains", "myOAuth2ClientCredential", t) + + print(config + compartmentIdVariableStr + IdentityDomainsMyOAuth2ClientCredentialResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_my_oauth2client_credential", "test_my_oauth2client_credential", acctest.Optional, acctest.Create, IdentityDomainsMyOAuth2ClientCredentialRepresentation)) + acctest.ResourceTest(t, testAccCheckIdentityDomainsMyOAuth2ClientCredentialDestroy, []resource.TestStep{ + // verify Create + { + Config: config + compartmentIdVariableStr + IdentityDomainsMyOAuth2ClientCredentialResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_my_oauth2client_credential", "test_my_oauth2client_credential", acctest.Required, acctest.Create, IdentityDomainsMyOAuth2ClientCredentialRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttrSet(resourceName, "idcs_endpoint"), + resource.TestCheckResourceAttr(resourceName, "name", "name"), + resource.TestCheckResourceAttr(resourceName, "schemas.#", "1"), + resource.TestCheckResourceAttr(resourceName, "scopes.#", "1"), + resource.TestCheckResourceAttr(resourceName, "scopes.0.audience", "audience"), + resource.TestCheckResourceAttr(resourceName, "scopes.0.scope", "scope"), + ), + }, + + // delete before next Create + { + Config: config + compartmentIdVariableStr + IdentityDomainsMyOAuth2ClientCredentialResourceDependencies, + }, + // verify Create with optionals + { + Config: config + compartmentIdVariableStr + IdentityDomainsMyOAuth2ClientCredentialResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_my_oauth2client_credential", "test_my_oauth2client_credential", acctest.Optional, acctest.Create, IdentityDomainsMyOAuth2ClientCredentialRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(resourceName, "description", "description"), + resource.TestCheckResourceAttr(resourceName, "expires_on", "2030-01-01T00:00:00Z"), + resource.TestCheckResourceAttrSet(resourceName, "id"), + resource.TestCheckResourceAttr(resourceName, "idcs_created_by.#", "1"), + resource.TestCheckResourceAttrSet(resourceName, "idcs_endpoint"), + resource.TestCheckResourceAttr(resourceName, "is_reset_secret", "false"), + resource.TestCheckResourceAttr(resourceName, "name", "name"), + resource.TestCheckResourceAttr(resourceName, "schemas.#", "1"), + resource.TestCheckResourceAttr(resourceName, "scopes.#", "1"), + resource.TestCheckResourceAttr(resourceName, "scopes.0.audience", "audience"), + resource.TestCheckResourceAttr(resourceName, "scopes.0.scope", "scope"), + + func(s *terraform.State) (err error) { + resId, err = acctest.FromInstanceState(s, resourceName, "id") + idcsEndpoint, err := acctest.FromInstanceState(s, "data.oci_identity_domain.test_domain", "url") + if err != nil { + return err + } + + compositeId := getIdentityDomainsCompositeId(idcsEndpoint, "myOAuth2ClientCredentials", resId) + log.Printf("[DEBUG] Composite ID to import: %s", compositeId) + if isEnableExportCompartment, _ := strconv.ParseBool(utils.GetEnvSettingWithDefault("enable_export_compartment", "true")); isEnableExportCompartment { + if errExport := resourcediscovery.TestExportCompartmentWithResourceName(&compositeId, &compartmentId, resourceName); errExport != nil { + return errExport + } + } + return err + }, + ), + }, + + // verify datasource + { + Config: config + + acctest.GenerateDataSourceFromRepresentationMap("oci_identity_domains_my_oauth2client_credentials", "test_my_oauth2client_credentials", acctest.Optional, acctest.Update, IdentityDomainsIdentityDomainsMyOAuth2ClientCredentialDataSourceRepresentation) + + compartmentIdVariableStr + IdentityDomainsMyOAuth2ClientCredentialResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_my_oauth2client_credential", "test_my_oauth2client_credential", acctest.Optional, acctest.Update, IdentityDomainsMyOAuth2ClientCredentialRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(datasourceName, "my_oauth2client_credential_count", "10"), + resource.TestCheckResourceAttr(datasourceName, "start_index", "1"), + + resource.TestMatchResourceAttr(datasourceName, "my_oauth2client_credentials.#", regexp.MustCompile("[1-9]+")), + resource.TestCheckResourceAttr(datasourceName, "my_oauth2client_credentials.0.schemas.#", "1"), + ), + }, + // verify singular datasource + { + Config: config + + acctest.GenerateDataSourceFromRepresentationMap("oci_identity_domains_my_oauth2client_credential", "test_my_oauth2client_credential", acctest.Required, acctest.Create, IdentityDomainsIdentityDomainsMyOAuth2ClientCredentialSingularDataSourceRepresentation) + + compartmentIdVariableStr + IdentityDomainsMyOAuth2ClientCredentialResourceConfig, + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttrSet(singularDatasourceName, "idcs_endpoint"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "my_oauth2client_credential_id"), + + resource.TestCheckResourceAttr(singularDatasourceName, "description", "description"), + resource.TestCheckResourceAttr(singularDatasourceName, "expires_on", "2030-01-01T00:00:00Z"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "id"), + resource.TestCheckResourceAttr(singularDatasourceName, "idcs_created_by.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "name", "name"), + resource.TestCheckResourceAttr(singularDatasourceName, "schemas.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "scopes.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "scopes.0.audience", "audience"), + resource.TestCheckResourceAttr(singularDatasourceName, "scopes.0.scope", "scope"), + ), + }, + // verify resource import + { + Config: config + IdentityDomainsMyOAuth2ClientCredentialRequiredOnlyResource, + ImportState: true, + ImportStateVerify: true, + ImportStateIdFunc: getIdentityDomainsImportIdFn("oci_identity_domains_my_oauth2client_credential", "myOAuth2ClientCredentials"), + ImportStateVerifyIgnore: []string{ + "authorization", + "idcs_endpoint", + "resource_type_schema_version", + "is_reset_secret", //writeOnly + }, + ResourceName: resourceName, + }, + }) +} + +func testAccCheckIdentityDomainsMyOAuth2ClientCredentialDestroy(s *terraform.State) error { + noResourceFound := true + client := acctest.TestAccProvider.Meta().(*tf_client.OracleClients).IdentityDomainsClient() + for _, rs := range s.RootModule().Resources { + if rs.Type == "oci_identity_domains_my_oauth2client_credential" { + noResourceFound = false + request := oci_identity_domains.GetMyOAuth2ClientCredentialRequest{} + + if value, ok := rs.Primary.Attributes["authorization"]; ok { + request.Authorization = &value + } + + if value, ok := rs.Primary.Attributes["idcs_endpoint"]; ok { + client.Host = value + } + + tmp := rs.Primary.ID + request.MyOAuth2ClientCredentialId = &tmp + + if value, ok := rs.Primary.Attributes["resource_type_schema_version"]; ok { + request.ResourceTypeSchemaVersion = &value + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(true, "identity_domains") + + _, err := client.GetMyOAuth2ClientCredential(context.Background(), request) + + if err == nil { + return fmt.Errorf("resource still exists") + } + + //Verify that exception is for '404 not found'. + if failure, isServiceError := common.IsServiceError(err); !isServiceError || failure.GetHTTPStatusCode() != 404 { + return err + } + } + } + if noResourceFound { + return fmt.Errorf("at least one resource was expected from the state file, but could not be found") + } + + return nil +} + +func init() { + if acctest.DependencyGraph == nil { + acctest.InitDependencyGraph() + } + if !acctest.InSweeperExcludeList("IdentityDomainsMyOAuth2ClientCredential") { + resource.AddTestSweepers("IdentityDomainsMyOAuth2ClientCredential", &resource.Sweeper{ + Name: "IdentityDomainsMyOAuth2ClientCredential", + Dependencies: acctest.DependencyGraph["myOAuth2ClientCredential"], + F: sweepIdentityDomainsMyOAuth2ClientCredentialResource, + }) + } +} + +func sweepIdentityDomainsMyOAuth2ClientCredentialResource(compartment string) error { + identityDomainsClient := acctest.GetTestClients(&schema.ResourceData{}).IdentityDomainsClient() + myOAuth2ClientCredentialIds, err := getIdentityDomainsMyOAuth2ClientCredentialIds(compartment) + if err != nil { + return err + } + for _, myOAuth2ClientCredentialId := range myOAuth2ClientCredentialIds { + if ok := acctest.SweeperDefaultResourceId[myOAuth2ClientCredentialId]; !ok { + deleteMyOAuth2ClientCredentialRequest := oci_identity_domains.DeleteMyOAuth2ClientCredentialRequest{} + + deleteMyOAuth2ClientCredentialRequest.MyOAuth2ClientCredentialId = &myOAuth2ClientCredentialId + + deleteMyOAuth2ClientCredentialRequest.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(true, "identity_domains") + _, error := identityDomainsClient.DeleteMyOAuth2ClientCredential(context.Background(), deleteMyOAuth2ClientCredentialRequest) + if error != nil { + fmt.Printf("Error deleting MyOAuth2ClientCredential %s %s, It is possible that the resource is already deleted. Please verify manually \n", myOAuth2ClientCredentialId, error) + continue + } + } + } + return nil +} + +func getIdentityDomainsMyOAuth2ClientCredentialIds(compartment string) ([]string, error) { + ids := acctest.GetResourceIdsToSweep(compartment, "MyOAuth2ClientCredentialId") + if ids != nil { + return ids, nil + } + var resourceIds []string + compartmentId := compartment + identityDomainsClient := acctest.GetTestClients(&schema.ResourceData{}).IdentityDomainsClient() + + listMyOAuth2ClientCredentialsRequest := oci_identity_domains.ListMyOAuth2ClientCredentialsRequest{} + listMyOAuth2ClientCredentialsResponse, err := identityDomainsClient.ListMyOAuth2ClientCredentials(context.Background(), listMyOAuth2ClientCredentialsRequest) + + if err != nil { + return resourceIds, fmt.Errorf("Error getting MyOAuth2ClientCredential list for compartment id : %s , %s \n", compartmentId, err) + } + for _, myOAuth2ClientCredential := range listMyOAuth2ClientCredentialsResponse.Resources { + id := *myOAuth2ClientCredential.Id + resourceIds = append(resourceIds, id) + acctest.AddResourceIdToSweeperResourceIdMap(compartmentId, "MyOAuth2ClientCredentialId", id) + } + return resourceIds, nil +} diff --git a/internal/integrationtest/identity_domains_my_smtp_credential_test.go b/internal/integrationtest/identity_domains_my_smtp_credential_test.go new file mode 100644 index 00000000000..eda26b5a618 --- /dev/null +++ b/internal/integrationtest/identity_domains_my_smtp_credential_test.go @@ -0,0 +1,288 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package integrationtest + +import ( + "context" + "fmt" + "log" + "regexp" + "strconv" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + "github.com/oracle/terraform-provider-oci/internal/resourcediscovery" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + "github.com/oracle/oci-go-sdk/v65/common" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/httpreplay" + "github.com/oracle/terraform-provider-oci/internal/acctest" + tf_client "github.com/oracle/terraform-provider-oci/internal/client" + + "github.com/oracle/terraform-provider-oci/internal/tfresource" + "github.com/oracle/terraform-provider-oci/internal/utils" +) + +var ( + IdentityDomainsMySmtpCredentialRequiredOnlyResource = IdentityDomainsMySmtpCredentialResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_my_smtp_credential", "test_my_smtp_credential", acctest.Required, acctest.Create, IdentityDomainsMySmtpCredentialRepresentation) + + IdentityDomainsMySmtpCredentialResourceConfig = IdentityDomainsMySmtpCredentialResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_my_smtp_credential", "test_my_smtp_credential", acctest.Optional, acctest.Update, IdentityDomainsMySmtpCredentialRepresentation) + + IdentityDomainsIdentityDomainsMySmtpCredentialSingularDataSourceRepresentation = map[string]interface{}{ + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "my_smtp_credential_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_identity_domains_my_smtp_credential.test_my_smtp_credential.id}`}, + } + + IdentityDomainsIdentityDomainsMySmtpCredentialDataSourceRepresentation = map[string]interface{}{ + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "my_smtp_credential_count": acctest.Representation{RepType: acctest.Optional, Create: `10`}, + "my_smtp_credential_filter": acctest.Representation{RepType: acctest.Optional, Create: ``}, + "start_index": acctest.Representation{RepType: acctest.Optional, Create: `1`}, + } + + IdentityDomainsMySmtpCredentialRepresentation = map[string]interface{}{ + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "schemas": acctest.Representation{RepType: acctest.Required, Create: []string{`urn:ietf:params:scim:schemas:oracle:idcs:smtpCredential`}}, + "description": acctest.Representation{RepType: acctest.Optional, Create: `description`}, + "expires_on": acctest.Representation{RepType: acctest.Optional, Create: `2030-01-01T00:00:00Z`}, + "status": acctest.Representation{RepType: acctest.Optional, Create: `ACTIVE`}, + "tags": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsMySmtpCredentialTagsRepresentation}, + "lifecycle": acctest.RepresentationGroup{RepType: acctest.Optional, Group: ignoreChangeForIdentityDomainsMySmtpCredential}, + } + ignoreChangeForIdentityDomainsMySmtpCredential = map[string]interface{}{ + "ignore_changes": acctest.Representation{RepType: acctest.Optional, Create: []string{ + // properties that are `returned:never` + `status`, + `tags`, // my_* resource will not return non-default attributes + }}, + } + IdentityDomainsMySmtpCredentialTagsRepresentation = map[string]interface{}{ + "key": acctest.Representation{RepType: acctest.Required, Create: `key`}, + "value": acctest.Representation{RepType: acctest.Required, Create: `value`}, + } + + IdentityDomainsMySmtpCredentialResourceDependencies = TestDomainDependencies +) + +// issue-routing-tag: identity_domains/default +func TestIdentityDomainsMySmtpCredentialResource_basic(t *testing.T) { + httpreplay.SetScenario("TestIdentityDomainsMySmtpCredentialResource_basic") + defer httpreplay.SaveScenario() + + config := acctest.ProviderTestConfig() + + compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid") + compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId) + + resourceName := "oci_identity_domains_my_smtp_credential.test_my_smtp_credential" + datasourceName := "data.oci_identity_domains_my_smtp_credentials.test_my_smtp_credentials" + singularDatasourceName := "data.oci_identity_domains_my_smtp_credential.test_my_smtp_credential" + + var resId string + // Save TF content to Create resource with optional properties. This has to be exactly the same as the config part in the "create with optionals" step in the test. + acctest.SaveConfigContent(config+compartmentIdVariableStr+IdentityDomainsMySmtpCredentialResourceDependencies+ + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_my_smtp_credential", "test_my_smtp_credential", acctest.Optional, acctest.Create, IdentityDomainsMySmtpCredentialRepresentation), "identitydomains", "mySmtpCredential", t) + + print(config + compartmentIdVariableStr + IdentityDomainsMySmtpCredentialResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_my_smtp_credential", "test_my_smtp_credential", acctest.Optional, acctest.Create, IdentityDomainsMySmtpCredentialRepresentation)) + acctest.ResourceTest(t, testAccCheckIdentityDomainsMySmtpCredentialDestroy, []resource.TestStep{ + // verify Create + { + Config: config + compartmentIdVariableStr + IdentityDomainsMySmtpCredentialResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_my_smtp_credential", "test_my_smtp_credential", acctest.Required, acctest.Create, IdentityDomainsMySmtpCredentialRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttrSet(resourceName, "idcs_endpoint"), + resource.TestCheckResourceAttr(resourceName, "schemas.#", "1"), + ), + }, + + // delete before next Create + { + Config: config + compartmentIdVariableStr + IdentityDomainsMySmtpCredentialResourceDependencies, + }, + // verify Create with optionals + { + Config: config + compartmentIdVariableStr + IdentityDomainsMySmtpCredentialResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_my_smtp_credential", "test_my_smtp_credential", acctest.Optional, acctest.Create, IdentityDomainsMySmtpCredentialRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(resourceName, "description", "description"), + resource.TestCheckResourceAttr(resourceName, "expires_on", "2030-01-01T00:00:00Z"), + resource.TestCheckResourceAttrSet(resourceName, "id"), + resource.TestCheckResourceAttr(resourceName, "idcs_created_by.#", "1"), + resource.TestCheckResourceAttrSet(resourceName, "idcs_endpoint"), + resource.TestCheckResourceAttr(resourceName, "schemas.#", "1"), + resource.TestCheckResourceAttrSet(resourceName, "user_name"), + + func(s *terraform.State) (err error) { + resId, err = acctest.FromInstanceState(s, resourceName, "id") + idcsEndpoint, err := acctest.FromInstanceState(s, "data.oci_identity_domain.test_domain", "url") + if err != nil { + return err + } + + compositeId := getIdentityDomainsCompositeId(idcsEndpoint, "mySmtpCredentials", resId) + log.Printf("[DEBUG] Composite ID to import: %s", compositeId) + if isEnableExportCompartment, _ := strconv.ParseBool(utils.GetEnvSettingWithDefault("enable_export_compartment", "true")); isEnableExportCompartment { + if errExport := resourcediscovery.TestExportCompartmentWithResourceName(&compositeId, &compartmentId, resourceName); errExport != nil { + return errExport + } + } + return err + }, + ), + }, + + // verify datasource + { + Config: config + + acctest.GenerateDataSourceFromRepresentationMap("oci_identity_domains_my_smtp_credentials", "test_my_smtp_credentials", acctest.Optional, acctest.Update, IdentityDomainsIdentityDomainsMySmtpCredentialDataSourceRepresentation) + + compartmentIdVariableStr + IdentityDomainsMySmtpCredentialResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_my_smtp_credential", "test_my_smtp_credential", acctest.Optional, acctest.Update, IdentityDomainsMySmtpCredentialRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(datasourceName, "my_smtp_credential_count", "10"), + resource.TestCheckResourceAttr(datasourceName, "start_index", "1"), + + resource.TestMatchResourceAttr(datasourceName, "my_smtp_credentials.#", regexp.MustCompile("[1-9]+")), + resource.TestCheckResourceAttr(datasourceName, "my_smtp_credentials.0.schemas.#", "1"), + ), + }, + // verify singular datasource + { + Config: config + + acctest.GenerateDataSourceFromRepresentationMap("oci_identity_domains_my_smtp_credential", "test_my_smtp_credential", acctest.Required, acctest.Create, IdentityDomainsIdentityDomainsMySmtpCredentialSingularDataSourceRepresentation) + + compartmentIdVariableStr + IdentityDomainsMySmtpCredentialResourceConfig, + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttrSet(resourceName, "idcs_endpoint"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "my_smtp_credential_id"), + + resource.TestCheckResourceAttr(singularDatasourceName, "description", "description"), + resource.TestCheckResourceAttr(singularDatasourceName, "expires_on", "2030-01-01T00:00:00Z"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "id"), + resource.TestCheckResourceAttr(singularDatasourceName, "idcs_created_by.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "schemas.#", "1"), + ), + }, + // verify resource import + { + Config: config + IdentityDomainsMySmtpCredentialRequiredOnlyResource, + ImportState: true, + ImportStateVerify: true, + ImportStateIdFunc: getIdentityDomainsImportIdFn("oci_identity_domains_my_smtp_credential", "mySmtpCredentials"), + ImportStateVerifyIgnore: []string{ + "authorization", + "idcs_endpoint", + "resource_type_schema_version", + }, + ResourceName: resourceName, + }, + }) +} + +func testAccCheckIdentityDomainsMySmtpCredentialDestroy(s *terraform.State) error { + noResourceFound := true + client := acctest.TestAccProvider.Meta().(*tf_client.OracleClients).IdentityDomainsClient() + for _, rs := range s.RootModule().Resources { + if rs.Type == "oci_identity_domains_my_smtp_credential" { + noResourceFound = false + request := oci_identity_domains.GetMySmtpCredentialRequest{} + + if value, ok := rs.Primary.Attributes["authorization"]; ok { + request.Authorization = &value + } + + if value, ok := rs.Primary.Attributes["idcs_endpoint"]; ok { + client.Host = value + } + + tmp := rs.Primary.ID + request.MySmtpCredentialId = &tmp + + if value, ok := rs.Primary.Attributes["resource_type_schema_version"]; ok { + request.ResourceTypeSchemaVersion = &value + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(true, "identity_domains") + + _, err := client.GetMySmtpCredential(context.Background(), request) + + if err == nil { + return fmt.Errorf("resource still exists") + } + + //Verify that exception is for '404 not found'. + if failure, isServiceError := common.IsServiceError(err); !isServiceError || failure.GetHTTPStatusCode() != 404 { + return err + } + } + } + if noResourceFound { + return fmt.Errorf("at least one resource was expected from the state file, but could not be found") + } + + return nil +} + +func init() { + if acctest.DependencyGraph == nil { + acctest.InitDependencyGraph() + } + if !acctest.InSweeperExcludeList("IdentityDomainsMySmtpCredential") { + resource.AddTestSweepers("IdentityDomainsMySmtpCredential", &resource.Sweeper{ + Name: "IdentityDomainsMySmtpCredential", + Dependencies: acctest.DependencyGraph["mySmtpCredential"], + F: sweepIdentityDomainsMySmtpCredentialResource, + }) + } +} + +func sweepIdentityDomainsMySmtpCredentialResource(compartment string) error { + identityDomainsClient := acctest.GetTestClients(&schema.ResourceData{}).IdentityDomainsClient() + mySmtpCredentialIds, err := getIdentityDomainsMySmtpCredentialIds(compartment) + if err != nil { + return err + } + for _, mySmtpCredentialId := range mySmtpCredentialIds { + if ok := acctest.SweeperDefaultResourceId[mySmtpCredentialId]; !ok { + deleteMySmtpCredentialRequest := oci_identity_domains.DeleteMySmtpCredentialRequest{} + + deleteMySmtpCredentialRequest.MySmtpCredentialId = &mySmtpCredentialId + + deleteMySmtpCredentialRequest.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(true, "identity_domains") + _, error := identityDomainsClient.DeleteMySmtpCredential(context.Background(), deleteMySmtpCredentialRequest) + if error != nil { + fmt.Printf("Error deleting MySmtpCredential %s %s, It is possible that the resource is already deleted. Please verify manually \n", mySmtpCredentialId, error) + continue + } + } + } + return nil +} + +func getIdentityDomainsMySmtpCredentialIds(compartment string) ([]string, error) { + ids := acctest.GetResourceIdsToSweep(compartment, "MySmtpCredentialId") + if ids != nil { + return ids, nil + } + var resourceIds []string + compartmentId := compartment + identityDomainsClient := acctest.GetTestClients(&schema.ResourceData{}).IdentityDomainsClient() + + listMySmtpCredentialsRequest := oci_identity_domains.ListMySmtpCredentialsRequest{} + listMySmtpCredentialsResponse, err := identityDomainsClient.ListMySmtpCredentials(context.Background(), listMySmtpCredentialsRequest) + + if err != nil { + return resourceIds, fmt.Errorf("Error getting MySmtpCredential list for compartment id : %s , %s \n", compartmentId, err) + } + for _, mySmtpCredential := range listMySmtpCredentialsResponse.Resources { + id := *mySmtpCredential.Id + resourceIds = append(resourceIds, id) + acctest.AddResourceIdToSweeperResourceIdMap(compartmentId, "MySmtpCredentialId", id) + } + return resourceIds, nil +} diff --git a/internal/integrationtest/identity_domains_my_support_account_test.go b/internal/integrationtest/identity_domains_my_support_account_test.go new file mode 100644 index 00000000000..dbce28e7cf1 --- /dev/null +++ b/internal/integrationtest/identity_domains_my_support_account_test.go @@ -0,0 +1,290 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package integrationtest + +import ( + "context" + "fmt" + "log" + "regexp" + "strconv" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + "github.com/oracle/terraform-provider-oci/internal/resourcediscovery" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + "github.com/oracle/oci-go-sdk/v65/common" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/httpreplay" + "github.com/oracle/terraform-provider-oci/internal/acctest" + tf_client "github.com/oracle/terraform-provider-oci/internal/client" + + "github.com/oracle/terraform-provider-oci/internal/tfresource" + "github.com/oracle/terraform-provider-oci/internal/utils" +) + +var ( + IdentityDomainsMySupportAccountRequiredOnlyResource = IdentityDomainsMySupportAccountResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_my_support_account", "test_my_support_account", acctest.Required, acctest.Create, IdentityDomainsMySupportAccountRepresentation) + + IdentityDomainsMySupportAccountResourceConfig = IdentityDomainsMySupportAccountResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_my_support_account", "test_my_support_account", acctest.Optional, acctest.Update, IdentityDomainsMySupportAccountRepresentation) + + IdentityDomainsIdentityDomainsMySupportAccountSingularDataSourceRepresentation = map[string]interface{}{ + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "my_support_account_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_identity_domains_my_support_account.test_my_support_account.id}`}, + } + + IdentityDomainsIdentityDomainsMySupportAccountDataSourceRepresentation = map[string]interface{}{ + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "my_support_account_count": acctest.Representation{RepType: acctest.Optional, Create: `10`}, + "my_support_account_filter": acctest.Representation{RepType: acctest.Optional, Create: ``}, + "start_index": acctest.Representation{RepType: acctest.Optional, Create: `1`}, + } + + IdentityDomainsMySupportAccountRepresentation = map[string]interface{}{ + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "schemas": acctest.Representation{RepType: acctest.Required, Create: []string{`urn:ietf:params:scim:schemas:oracle:idcs:supportAccount`}}, + "token": acctest.Representation{RepType: acctest.Required, Create: `${var.my_support_account_token}`}, + "tags": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsMySupportAccountTagsRepresentation}, + "lifecycle": acctest.RepresentationGroup{RepType: acctest.Optional, Group: ignoreChangeForIdentityDomainsMySupportAccount}, + } + + ignoreChangeForIdentityDomainsMySupportAccount = map[string]interface{}{ + "ignore_changes": acctest.Representation{RepType: acctest.Optional, Create: []string{ + `tags`, // my_* resource will not return non-default attributes + }}, + } + IdentityDomainsMySupportAccountTagsRepresentation = map[string]interface{}{ + "key": acctest.Representation{RepType: acctest.Required, Create: `key`}, + "value": acctest.Representation{RepType: acctest.Required, Create: `value`}, + } + + /** + Need to provide token in env. + Go to tfadmin user My profile page, click "Link support account" and get the token, and remember to "Unlink" afterwards. + It will expire after a while, needs to redo the above and update in env if so. + */ + mySupportAccountToken = utils.GetEnvSettingWithBlankDefault("my_support_account_token") + mySupportAccountTokenVariableStr = fmt.Sprintf("variable \"my_support_account_token\" { default = \"%s\" }\n", mySupportAccountToken) + + IdentityDomainsMySupportAccountResourceDependencies = TestDomainDependencies + mySupportAccountTokenVariableStr +) + +// issue-routing-tag: identity_domains/default +func TestIdentityDomainsMySupportAccountResource_basic(t *testing.T) { + httpreplay.SetScenario("TestIdentityDomainsMySupportAccountResource_basic") + defer httpreplay.SaveScenario() + + config := acctest.ProviderTestConfig() + + compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid") + compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId) + + resourceName := "oci_identity_domains_my_support_account.test_my_support_account" + datasourceName := "data.oci_identity_domains_my_support_accounts.test_my_support_accounts" + singularDatasourceName := "data.oci_identity_domains_my_support_account.test_my_support_account" + + var resId string + // Save TF content to Create resource with optional properties. This has to be exactly the same as the config part in the "create with optionals" step in the test. + acctest.SaveConfigContent(config+compartmentIdVariableStr+IdentityDomainsMySupportAccountResourceDependencies+ + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_my_support_account", "test_my_support_account", acctest.Optional, acctest.Create, IdentityDomainsMySupportAccountRepresentation), "identitydomains", "mySupportAccount", t) + + print(acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_my_support_account", "test_my_support_account", acctest.Required, acctest.Create, IdentityDomainsMySupportAccountRepresentation)) + acctest.ResourceTest(t, testAccCheckIdentityDomainsMySupportAccountDestroy, []resource.TestStep{ + // verify Create + { + Config: config + compartmentIdVariableStr + IdentityDomainsMySupportAccountResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_my_support_account", "test_my_support_account", acctest.Required, acctest.Create, IdentityDomainsMySupportAccountRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttrSet(resourceName, "idcs_endpoint"), + resource.TestCheckResourceAttr(resourceName, "schemas.#", "1"), + resource.TestCheckResourceAttrSet(resourceName, "token"), + ), + }, + + // delete before next Create + { + Config: config + compartmentIdVariableStr + IdentityDomainsMySupportAccountResourceDependencies, + }, + // verify Create with optionals + { + Config: config + compartmentIdVariableStr + IdentityDomainsMySupportAccountResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_my_support_account", "test_my_support_account", acctest.Optional, acctest.Create, IdentityDomainsMySupportAccountRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttrSet(resourceName, "id"), + resource.TestCheckResourceAttr(resourceName, "idcs_created_by.#", "1"), + resource.TestCheckResourceAttrSet(resourceName, "idcs_endpoint"), + resource.TestCheckResourceAttr(resourceName, "schemas.#", "1"), + resource.TestCheckResourceAttrSet(resourceName, "token"), + + func(s *terraform.State) (err error) { + resId, err = acctest.FromInstanceState(s, resourceName, "id") + idcsEndpoint, err := acctest.FromInstanceState(s, "data.oci_identity_domain.test_domain", "url") + if err != nil { + return err + } + + compositeId := getIdentityDomainsCompositeId(idcsEndpoint, "mySupportAccounts", resId) + log.Printf("[DEBUG] Composite ID to import: %s", compositeId) + if isEnableExportCompartment, _ := strconv.ParseBool(utils.GetEnvSettingWithDefault("enable_export_compartment", "true")); isEnableExportCompartment { + if errExport := resourcediscovery.TestExportCompartmentWithResourceName(&compositeId, &compartmentId, resourceName); errExport != nil { + return errExport + } + } + return err + }, + ), + }, + + // verify datasource + { + Config: config + + acctest.GenerateDataSourceFromRepresentationMap("oci_identity_domains_my_support_accounts", "test_my_support_accounts", acctest.Optional, acctest.Update, IdentityDomainsIdentityDomainsMySupportAccountDataSourceRepresentation) + + compartmentIdVariableStr + IdentityDomainsMySupportAccountResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_my_support_account", "test_my_support_account", acctest.Optional, acctest.Update, IdentityDomainsMySupportAccountRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(datasourceName, "my_support_account_count", "10"), + resource.TestCheckResourceAttr(datasourceName, "start_index", "1"), + + resource.TestMatchResourceAttr(datasourceName, "my_support_accounts.#", regexp.MustCompile("[1-9]+")), + resource.TestCheckResourceAttr(datasourceName, "my_support_accounts.0.schemas.#", "1"), + ), + }, + // verify singular datasource + { + Config: config + + acctest.GenerateDataSourceFromRepresentationMap("oci_identity_domains_my_support_account", "test_my_support_account", acctest.Required, acctest.Create, IdentityDomainsIdentityDomainsMySupportAccountSingularDataSourceRepresentation) + + compartmentIdVariableStr + IdentityDomainsMySupportAccountResourceConfig, + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttrSet(singularDatasourceName, "idcs_endpoint"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "my_support_account_id"), + + resource.TestCheckResourceAttrSet(singularDatasourceName, "id"), + resource.TestCheckResourceAttr(singularDatasourceName, "idcs_created_by.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "schemas.#", "1"), + ), + }, + // verify resource import + { + Config: config + IdentityDomainsMySupportAccountRequiredOnlyResource, + ImportState: true, + ImportStateVerify: true, + ImportStateIdFunc: getIdentityDomainsImportIdFn("oci_identity_domains_my_support_account", "mySupportAccounts"), + ImportStateVerifyIgnore: []string{ + "authorization", + "idcs_endpoint", + "resource_type_schema_version", + "token", + }, + ResourceName: resourceName, + }, + }) +} + +func testAccCheckIdentityDomainsMySupportAccountDestroy(s *terraform.State) error { + noResourceFound := true + client := acctest.TestAccProvider.Meta().(*tf_client.OracleClients).IdentityDomainsClient() + for _, rs := range s.RootModule().Resources { + if rs.Type == "oci_identity_domains_my_support_account" { + noResourceFound = false + request := oci_identity_domains.GetMySupportAccountRequest{} + + if value, ok := rs.Primary.Attributes["authorization"]; ok { + request.Authorization = &value + } + + if value, ok := rs.Primary.Attributes["idcs_endpoint"]; ok { + client.Host = value + } + + tmp := rs.Primary.ID + request.MySupportAccountId = &tmp + + if value, ok := rs.Primary.Attributes["resource_type_schema_version"]; ok { + request.ResourceTypeSchemaVersion = &value + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(true, "identity_domains") + + _, err := client.GetMySupportAccount(context.Background(), request) + + if err == nil { + return fmt.Errorf("resource still exists") + } + + //Verify that exception is for '404 not found'. + if failure, isServiceError := common.IsServiceError(err); !isServiceError || failure.GetHTTPStatusCode() != 404 { + return err + } + } + } + if noResourceFound { + return fmt.Errorf("at least one resource was expected from the state file, but could not be found") + } + + return nil +} + +func init() { + if acctest.DependencyGraph == nil { + acctest.InitDependencyGraph() + } + if !acctest.InSweeperExcludeList("IdentityDomainsMySupportAccount") { + resource.AddTestSweepers("IdentityDomainsMySupportAccount", &resource.Sweeper{ + Name: "IdentityDomainsMySupportAccount", + Dependencies: acctest.DependencyGraph["mySupportAccount"], + F: sweepIdentityDomainsMySupportAccountResource, + }) + } +} + +func sweepIdentityDomainsMySupportAccountResource(compartment string) error { + identityDomainsClient := acctest.GetTestClients(&schema.ResourceData{}).IdentityDomainsClient() + mySupportAccountIds, err := getIdentityDomainsMySupportAccountIds(compartment) + if err != nil { + return err + } + for _, mySupportAccountId := range mySupportAccountIds { + if ok := acctest.SweeperDefaultResourceId[mySupportAccountId]; !ok { + deleteMySupportAccountRequest := oci_identity_domains.DeleteMySupportAccountRequest{} + + deleteMySupportAccountRequest.MySupportAccountId = &mySupportAccountId + + deleteMySupportAccountRequest.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(true, "identity_domains") + _, error := identityDomainsClient.DeleteMySupportAccount(context.Background(), deleteMySupportAccountRequest) + if error != nil { + fmt.Printf("Error deleting MySupportAccount %s %s, It is possible that the resource is already deleted. Please verify manually \n", mySupportAccountId, error) + continue + } + } + } + return nil +} + +func getIdentityDomainsMySupportAccountIds(compartment string) ([]string, error) { + ids := acctest.GetResourceIdsToSweep(compartment, "MySupportAccountId") + if ids != nil { + return ids, nil + } + var resourceIds []string + compartmentId := compartment + identityDomainsClient := acctest.GetTestClients(&schema.ResourceData{}).IdentityDomainsClient() + + listMySupportAccountsRequest := oci_identity_domains.ListMySupportAccountsRequest{} + listMySupportAccountsResponse, err := identityDomainsClient.ListMySupportAccounts(context.Background(), listMySupportAccountsRequest) + + if err != nil { + return resourceIds, fmt.Errorf("Error getting MySupportAccount list for compartment id : %s , %s \n", compartmentId, err) + } + for _, mySupportAccount := range listMySupportAccountsResponse.Resources { + id := *mySupportAccount.Id + resourceIds = append(resourceIds, id) + acctest.AddResourceIdToSweeperResourceIdMap(compartmentId, "MySupportAccountId", id) + } + return resourceIds, nil +} diff --git a/internal/integrationtest/identity_domains_my_trusted_user_agent_test.go b/internal/integrationtest/identity_domains_my_trusted_user_agent_test.go new file mode 100644 index 00000000000..851fc8c6a73 --- /dev/null +++ b/internal/integrationtest/identity_domains_my_trusted_user_agent_test.go @@ -0,0 +1,164 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package integrationtest + +import ( + "context" + "fmt" + + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + "github.com/oracle/terraform-provider-oci/internal/tfresource" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/httpreplay" + "github.com/oracle/terraform-provider-oci/internal/acctest" + + "github.com/oracle/terraform-provider-oci/internal/utils" +) + +var ( + IdentityDomainsIdentityDomainsMyTrustedUserAgentSingularDataSourceRepresentation = map[string]interface{}{ + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "my_trusted_user_agent_id": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domains_my_trusted_user_agents.test_my_trusted_user_agents.my_trusted_user_agents.0.id}`}, + "attribute_sets": acctest.Representation{RepType: acctest.Optional, Create: []string{`all`}}, + } + + IdentityDomainsIdentityDomainsMyTrustedUserAgentDataSourceRepresentation = map[string]interface{}{ + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "my_trusted_user_agent_count": acctest.Representation{RepType: acctest.Optional, Create: `10`}, + "my_trusted_user_agent_filter": acctest.Representation{RepType: acctest.Optional, Create: ``}, + "attribute_sets": acctest.Representation{RepType: acctest.Optional, Create: []string{`all`}}, + "start_index": acctest.Representation{RepType: acctest.Optional, Create: `1`}, + } + + IdentityDomainsMyTrustedUserAgentResourceConfig = TestDomainDependencies +) + +// issue-routing-tag: identity_domains/default +func TestIdentityDomainsMyTrustedUserAgentResource_basic(t *testing.T) { + httpreplay.SetScenario("TestIdentityDomainsMyTrustedUserAgentResource_basic") + defer httpreplay.SaveScenario() + + config := acctest.ProviderTestConfig() + + compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid") + compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId) + + datasourceName := "data.oci_identity_domains_my_trusted_user_agents.test_my_trusted_user_agents" + singularDatasourceName := "data.oci_identity_domains_my_trusted_user_agent.test_my_trusted_user_agent" + + acctest.SaveConfigContent("", "", "", t) + + print(acctest.GenerateDataSourceFromRepresentationMap("oci_identity_domains_my_trusted_user_agents", "test_my_trusted_user_agents", acctest.Required, acctest.Create, IdentityDomainsIdentityDomainsMyTrustedUserAgentDataSourceRepresentation)) + + acctest.ResourceTest(t, nil, []resource.TestStep{ + // verify datasource + { + Config: config + + acctest.GenerateDataSourceFromRepresentationMap("oci_identity_domains_my_trusted_user_agents", "test_my_trusted_user_agents", acctest.Required, acctest.Create, IdentityDomainsIdentityDomainsMyTrustedUserAgentDataSourceRepresentation) + + compartmentIdVariableStr + IdentityDomainsMyTrustedUserAgentResourceConfig, + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(datasourceName, "start_index", "1"), + + resource.TestMatchResourceAttr(datasourceName, "my_trusted_user_agents.#", regexp.MustCompile("[1-9]+")), + resource.TestCheckResourceAttr(datasourceName, "my_trusted_user_agents.0.schemas.#", "1"), + ), + }, + // verify singular datasource + { + Config: config + + acctest.GenerateDataSourceFromRepresentationMap("oci_identity_domains_my_trusted_user_agents", "test_my_trusted_user_agents", acctest.Required, acctest.Create, IdentityDomainsIdentityDomainsMyTrustedUserAgentDataSourceRepresentation) + + acctest.GenerateDataSourceFromRepresentationMap("oci_identity_domains_my_trusted_user_agent", "test_my_trusted_user_agent", acctest.Required, acctest.Create, IdentityDomainsIdentityDomainsMyTrustedUserAgentSingularDataSourceRepresentation) + + compartmentIdVariableStr + IdentityDomainsMyTrustedUserAgentResourceConfig, + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttrSet(singularDatasourceName, "idcs_endpoint"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "my_trusted_user_agent_id"), + + resource.TestCheckResourceAttrSet(singularDatasourceName, "compartment_ocid"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "domain_ocid"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "expiry_time"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "id"), + resource.TestCheckResourceAttr(singularDatasourceName, "idcs_created_by.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "idcs_last_modified_by.#", "1"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "last_used_on"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "location"), + resource.TestCheckResourceAttr(singularDatasourceName, "meta.#", "1"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "name"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "ocid"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "platform"), + resource.TestCheckResourceAttr(singularDatasourceName, "schemas.#", "1"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "tenancy_ocid"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "token_type"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "trust_token"), + resource.TestCheckResourceAttr(singularDatasourceName, "trusted_factors.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "user.#", "1"), + ), + }, + }) +} + +func init() { + if acctest.DependencyGraph == nil { + acctest.InitDependencyGraph() + } + if !acctest.InSweeperExcludeList("IdentityDomainsMyTrustedUserAgent") { + resource.AddTestSweepers("IdentityDomainsMyTrustedUserAgent", &resource.Sweeper{ + Name: "IdentityDomainsMyTrustedUserAgent", + Dependencies: acctest.DependencyGraph["myTrustedUserAgent"], + F: sweepIdentityDomainsMyTrustedUserAgentResource, + }) + } +} + +func sweepIdentityDomainsMyTrustedUserAgentResource(compartment string) error { + identityDomainsClient := acctest.GetTestClients(&schema.ResourceData{}).IdentityDomainsClient() + myTrustedUserAgentIds, err := getIdentityDomainsMyTrustedUserAgentIds(compartment) + if err != nil { + return err + } + for _, myTrustedUserAgentId := range myTrustedUserAgentIds { + if ok := acctest.SweeperDefaultResourceId[myTrustedUserAgentId]; !ok { + deleteMyTrustedUserAgentRequest := oci_identity_domains.DeleteMyTrustedUserAgentRequest{} + + deleteMyTrustedUserAgentRequest.MyTrustedUserAgentId = &myTrustedUserAgentId + + deleteMyTrustedUserAgentRequest.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(true, "identity_domains") + _, error := identityDomainsClient.DeleteMyTrustedUserAgent(context.Background(), deleteMyTrustedUserAgentRequest) + if error != nil { + fmt.Printf("Error deleting MyTrustedUserAgent %s %s, It is possible that the resource is already deleted. Please verify manually \n", myTrustedUserAgentId, error) + continue + } + } + } + return nil +} + +func getIdentityDomainsMyTrustedUserAgentIds(compartment string) ([]string, error) { + ids := acctest.GetResourceIdsToSweep(compartment, "MyTrustedUserAgentId") + if ids != nil { + return ids, nil + } + var resourceIds []string + compartmentId := compartment + identityDomainsClient := acctest.GetTestClients(&schema.ResourceData{}).IdentityDomainsClient() + + listMyTrustedUserAgentsRequest := oci_identity_domains.ListMyTrustedUserAgentsRequest{} + listMyTrustedUserAgentsResponse, err := identityDomainsClient.ListMyTrustedUserAgents(context.Background(), listMyTrustedUserAgentsRequest) + + if err != nil { + return resourceIds, fmt.Errorf("Error getting MyTrustedUserAgent list for compartment id : %s , %s \n", compartmentId, err) + } + for _, myTrustedUserAgent := range listMyTrustedUserAgentsResponse.Resources { + id := *myTrustedUserAgent.Id + resourceIds = append(resourceIds, id) + acctest.AddResourceIdToSweeperResourceIdMap(compartmentId, "MyTrustedUserAgentId", id) + } + return resourceIds, nil +} diff --git a/internal/integrationtest/identity_domains_my_user_db_credential_test.go b/internal/integrationtest/identity_domains_my_user_db_credential_test.go new file mode 100644 index 00000000000..21b00ae9883 --- /dev/null +++ b/internal/integrationtest/identity_domains_my_user_db_credential_test.go @@ -0,0 +1,292 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package integrationtest + +import ( + "context" + "fmt" + "log" + "regexp" + "strconv" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + "github.com/oracle/terraform-provider-oci/internal/resourcediscovery" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + "github.com/oracle/oci-go-sdk/v65/common" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/httpreplay" + "github.com/oracle/terraform-provider-oci/internal/acctest" + tf_client "github.com/oracle/terraform-provider-oci/internal/client" + + "github.com/oracle/terraform-provider-oci/internal/tfresource" + "github.com/oracle/terraform-provider-oci/internal/utils" +) + +var ( + IdentityDomainsMyUserDbCredentialRequiredOnlyResource = IdentityDomainsMyUserDbCredentialResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_my_user_db_credential", "test_my_user_db_credential", acctest.Required, acctest.Create, IdentityDomainsMyUserDbCredentialRepresentation) + + IdentityDomainsMyUserDbCredentialResourceConfig = IdentityDomainsMyUserDbCredentialResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_my_user_db_credential", "test_my_user_db_credential", acctest.Optional, acctest.Update, IdentityDomainsMyUserDbCredentialRepresentation) + + IdentityDomainsIdentityDomainsMyUserDbCredentialSingularDataSourceRepresentation = map[string]interface{}{ + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "my_user_db_credential_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_identity_domains_my_user_db_credential.test_my_user_db_credential.id}`}, + } + + IdentityDomainsIdentityDomainsMyUserDbCredentialDataSourceRepresentation = map[string]interface{}{ + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "my_user_db_credential_count": acctest.Representation{RepType: acctest.Optional, Create: `10`}, + "my_user_db_credential_filter": acctest.Representation{RepType: acctest.Optional, Create: ``}, + "start_index": acctest.Representation{RepType: acctest.Optional, Create: `1`}, + } + + IdentityDomainsMyUserDbCredentialRepresentation = map[string]interface{}{ + "db_password": acctest.Representation{RepType: acctest.Required, Create: `dbPassword123456`}, + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "schemas": acctest.Representation{RepType: acctest.Required, Create: []string{`urn:ietf:params:scim:schemas:oracle:idcs:UserDbCredentials`}}, + "description": acctest.Representation{RepType: acctest.Optional, Create: `description`}, + "expires_on": acctest.Representation{RepType: acctest.Optional, Create: `2030-01-01T00:00:00Z`}, + "status": acctest.Representation{RepType: acctest.Optional, Create: `ACTIVE`}, + "tags": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsMyUserDbCredentialTagsRepresentation}, + "lifecycle": acctest.RepresentationGroup{RepType: acctest.Required, Group: ignoreChangeForIdentityDomainsMyUserDbCredential}, + } + ignoreChangeForIdentityDomainsMyUserDbCredential = map[string]interface{}{ + "ignore_changes": acctest.Representation{RepType: acctest.Required, Create: []string{ + // properties that are `returned:never` + `status`, + `tags`, // my_* resource will not return non-default attributes + `db_password`, + }}, + } + IdentityDomainsMyUserDbCredentialTagsRepresentation = map[string]interface{}{ + "key": acctest.Representation{RepType: acctest.Required, Create: `key`}, + "value": acctest.Representation{RepType: acctest.Required, Create: `value`}, + } + + IdentityDomainsMyUserDbCredentialResourceDependencies = TestDomainDependencies +) + +// issue-routing-tag: identity_domains/default +func TestIdentityDomainsMyUserDbCredentialResource_basic(t *testing.T) { + httpreplay.SetScenario("TestIdentityDomainsMyUserDbCredentialResource_basic") + defer httpreplay.SaveScenario() + + config := acctest.ProviderTestConfig() + + compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid") + compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId) + + resourceName := "oci_identity_domains_my_user_db_credential.test_my_user_db_credential" + datasourceName := "data.oci_identity_domains_my_user_db_credentials.test_my_user_db_credentials" + singularDatasourceName := "data.oci_identity_domains_my_user_db_credential.test_my_user_db_credential" + + var resId string + // Save TF content to Create resource with optional properties. This has to be exactly the same as the config part in the "create with optionals" step in the test. + acctest.SaveConfigContent(config+compartmentIdVariableStr+IdentityDomainsMyUserDbCredentialResourceDependencies+ + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_my_user_db_credential", "test_my_user_db_credential", acctest.Optional, acctest.Create, IdentityDomainsMyUserDbCredentialRepresentation), "identitydomains", "myUserDbCredential", t) + + print(config + compartmentIdVariableStr + IdentityDomainsMyUserDbCredentialResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_my_user_db_credential", "test_my_user_db_credential", acctest.Optional, acctest.Create, IdentityDomainsMyUserDbCredentialRepresentation)) + acctest.ResourceTest(t, testAccCheckIdentityDomainsMyUserDbCredentialDestroy, []resource.TestStep{ + // verify Create + { + Config: config + compartmentIdVariableStr + IdentityDomainsMyUserDbCredentialResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_my_user_db_credential", "test_my_user_db_credential", acctest.Required, acctest.Create, IdentityDomainsMyUserDbCredentialRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttrSet(resourceName, "db_password"), + resource.TestCheckResourceAttrSet(resourceName, "idcs_endpoint"), + resource.TestCheckResourceAttr(resourceName, "schemas.#", "1"), + ), + }, + + // delete before next Create + { + Config: config + compartmentIdVariableStr + IdentityDomainsMyUserDbCredentialResourceDependencies, + }, + // verify Create with optionals + { + Config: config + compartmentIdVariableStr + IdentityDomainsMyUserDbCredentialResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_my_user_db_credential", "test_my_user_db_credential", acctest.Optional, acctest.Create, IdentityDomainsMyUserDbCredentialRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttrSet(resourceName, "db_password"), + resource.TestCheckResourceAttr(resourceName, "description", "description"), + resource.TestCheckResourceAttr(resourceName, "expires_on", "2030-01-01T00:00:00Z"), + resource.TestCheckResourceAttrSet(resourceName, "id"), + resource.TestCheckResourceAttr(resourceName, "idcs_created_by.#", "1"), + resource.TestCheckResourceAttrSet(resourceName, "idcs_endpoint"), + resource.TestCheckResourceAttr(resourceName, "schemas.#", "1"), + + func(s *terraform.State) (err error) { + resId, err = acctest.FromInstanceState(s, resourceName, "id") + idcsEndpoint, err := acctest.FromInstanceState(s, "data.oci_identity_domain.test_domain", "url") + if err != nil { + return err + } + + compositeId := getIdentityDomainsCompositeId(idcsEndpoint, "myUserDbCredentials", resId) + log.Printf("[DEBUG] Composite ID to import: %s", compositeId) + if isEnableExportCompartment, _ := strconv.ParseBool(utils.GetEnvSettingWithDefault("enable_export_compartment", "true")); isEnableExportCompartment { + if errExport := resourcediscovery.TestExportCompartmentWithResourceName(&compositeId, &compartmentId, resourceName); errExport != nil { + return errExport + } + } + return err + }, + ), + }, + + // verify datasource + { + Config: config + + acctest.GenerateDataSourceFromRepresentationMap("oci_identity_domains_my_user_db_credentials", "test_my_user_db_credentials", acctest.Optional, acctest.Update, IdentityDomainsIdentityDomainsMyUserDbCredentialDataSourceRepresentation) + + compartmentIdVariableStr + IdentityDomainsMyUserDbCredentialResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_my_user_db_credential", "test_my_user_db_credential", acctest.Optional, acctest.Update, IdentityDomainsMyUserDbCredentialRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(datasourceName, "my_user_db_credential_count", "10"), + resource.TestCheckResourceAttr(datasourceName, "start_index", "1"), + + resource.TestMatchResourceAttr(datasourceName, "my_user_db_credentials.#", regexp.MustCompile("[1-9]+")), + resource.TestCheckResourceAttr(datasourceName, "my_user_db_credentials.0.schemas.#", "1"), + ), + }, + // verify singular datasource + { + Config: config + + acctest.GenerateDataSourceFromRepresentationMap("oci_identity_domains_my_user_db_credential", "test_my_user_db_credential", acctest.Required, acctest.Create, IdentityDomainsIdentityDomainsMyUserDbCredentialSingularDataSourceRepresentation) + + compartmentIdVariableStr + IdentityDomainsMyUserDbCredentialResourceConfig, + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttrSet(singularDatasourceName, "idcs_endpoint"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "my_user_db_credential_id"), + + resource.TestCheckResourceAttrSet(singularDatasourceName, "db_password"), + resource.TestCheckResourceAttr(singularDatasourceName, "description", "description"), + resource.TestCheckResourceAttr(singularDatasourceName, "expires_on", "2030-01-01T00:00:00Z"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "id"), + resource.TestCheckResourceAttr(singularDatasourceName, "idcs_created_by.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "schemas.#", "1"), + ), + }, + // verify resource import + { + Config: config + IdentityDomainsMyUserDbCredentialRequiredOnlyResource, + ImportState: true, + ImportStateVerify: true, + ImportStateIdFunc: getIdentityDomainsImportIdFn("oci_identity_domains_my_user_db_credential", "myUserDbCredentials"), + ImportStateVerifyIgnore: []string{ + "authorization", + "idcs_endpoint", + "resource_type_schema_version", + }, + ResourceName: resourceName, + }, + }) +} + +func testAccCheckIdentityDomainsMyUserDbCredentialDestroy(s *terraform.State) error { + noResourceFound := true + client := acctest.TestAccProvider.Meta().(*tf_client.OracleClients).IdentityDomainsClient() + for _, rs := range s.RootModule().Resources { + if rs.Type == "oci_identity_domains_my_user_db_credential" { + noResourceFound = false + request := oci_identity_domains.GetMyUserDbCredentialRequest{} + + if value, ok := rs.Primary.Attributes["authorization"]; ok { + request.Authorization = &value + } + + if value, ok := rs.Primary.Attributes["idcs_endpoint"]; ok { + client.Host = value + } + + tmp := rs.Primary.ID + request.MyUserDbCredentialId = &tmp + + if value, ok := rs.Primary.Attributes["resource_type_schema_version"]; ok { + request.ResourceTypeSchemaVersion = &value + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(true, "identity_domains") + + _, err := client.GetMyUserDbCredential(context.Background(), request) + + if err == nil { + return fmt.Errorf("resource still exists") + } + + //Verify that exception is for '404 not found'. + if failure, isServiceError := common.IsServiceError(err); !isServiceError || failure.GetHTTPStatusCode() != 404 { + return err + } + } + } + if noResourceFound { + return fmt.Errorf("at least one resource was expected from the state file, but could not be found") + } + + return nil +} + +func init() { + if acctest.DependencyGraph == nil { + acctest.InitDependencyGraph() + } + if !acctest.InSweeperExcludeList("IdentityDomainsMyUserDbCredential") { + resource.AddTestSweepers("IdentityDomainsMyUserDbCredential", &resource.Sweeper{ + Name: "IdentityDomainsMyUserDbCredential", + Dependencies: acctest.DependencyGraph["myUserDbCredential"], + F: sweepIdentityDomainsMyUserDbCredentialResource, + }) + } +} + +func sweepIdentityDomainsMyUserDbCredentialResource(compartment string) error { + identityDomainsClient := acctest.GetTestClients(&schema.ResourceData{}).IdentityDomainsClient() + myUserDbCredentialIds, err := getIdentityDomainsMyUserDbCredentialIds(compartment) + if err != nil { + return err + } + for _, myUserDbCredentialId := range myUserDbCredentialIds { + if ok := acctest.SweeperDefaultResourceId[myUserDbCredentialId]; !ok { + deleteMyUserDbCredentialRequest := oci_identity_domains.DeleteMyUserDbCredentialRequest{} + + deleteMyUserDbCredentialRequest.MyUserDbCredentialId = &myUserDbCredentialId + + deleteMyUserDbCredentialRequest.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(true, "identity_domains") + _, error := identityDomainsClient.DeleteMyUserDbCredential(context.Background(), deleteMyUserDbCredentialRequest) + if error != nil { + fmt.Printf("Error deleting MyUserDbCredential %s %s, It is possible that the resource is already deleted. Please verify manually \n", myUserDbCredentialId, error) + continue + } + } + } + return nil +} + +func getIdentityDomainsMyUserDbCredentialIds(compartment string) ([]string, error) { + ids := acctest.GetResourceIdsToSweep(compartment, "MyUserDbCredentialId") + if ids != nil { + return ids, nil + } + var resourceIds []string + compartmentId := compartment + identityDomainsClient := acctest.GetTestClients(&schema.ResourceData{}).IdentityDomainsClient() + + listMyUserDbCredentialsRequest := oci_identity_domains.ListMyUserDbCredentialsRequest{} + listMyUserDbCredentialsResponse, err := identityDomainsClient.ListMyUserDbCredentials(context.Background(), listMyUserDbCredentialsRequest) + + if err != nil { + return resourceIds, fmt.Errorf("Error getting MyUserDbCredential list for compartment id : %s , %s \n", compartmentId, err) + } + for _, myUserDbCredential := range listMyUserDbCredentialsResponse.Resources { + id := *myUserDbCredential.Id + resourceIds = append(resourceIds, id) + acctest.AddResourceIdToSweeperResourceIdMap(compartmentId, "MyUserDbCredentialId", id) + } + return resourceIds, nil +} diff --git a/internal/integrationtest/identity_domains_oauth2client_credential_test.go b/internal/integrationtest/identity_domains_oauth2client_credential_test.go new file mode 100644 index 00000000000..e0e1b9f95f7 --- /dev/null +++ b/internal/integrationtest/identity_domains_oauth2client_credential_test.go @@ -0,0 +1,333 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package integrationtest + +import ( + "context" + "fmt" + "log" + "strconv" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + "github.com/oracle/terraform-provider-oci/internal/resourcediscovery" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + "github.com/oracle/oci-go-sdk/v65/common" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/httpreplay" + "github.com/oracle/terraform-provider-oci/internal/acctest" + tf_client "github.com/oracle/terraform-provider-oci/internal/client" + + "github.com/oracle/terraform-provider-oci/internal/tfresource" + "github.com/oracle/terraform-provider-oci/internal/utils" +) + +var ( + IdentityDomainsOAuth2ClientCredentialRequiredOnlyResource = IdentityDomainsOAuth2ClientCredentialResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_oauth2client_credential", "test_oauth2client_credential", acctest.Required, acctest.Create, IdentityDomainsOAuth2ClientCredentialRepresentation) + + IdentityDomainsOAuth2ClientCredentialResourceConfig = IdentityDomainsOAuth2ClientCredentialResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_oauth2client_credential", "test_oauth2client_credential", acctest.Optional, acctest.Update, IdentityDomainsOAuth2ClientCredentialRepresentation) + + IdentityDomainsIdentityDomainsOAuth2ClientCredentialSingularDataSourceRepresentation = map[string]interface{}{ + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "o_auth2client_credential_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_identity_domains_oauth2client_credential.test_oauth2client_credential.id}`}, + "attribute_sets": acctest.Representation{RepType: acctest.Optional, Create: []string{`all`}}, + } + + IdentityDomainsIdentityDomainsOAuth2ClientCredentialDataSourceRepresentation = map[string]interface{}{ + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "oauth2client_credential_count": acctest.Representation{RepType: acctest.Optional, Create: `10`}, + "oauth2client_credential_filter": acctest.Representation{RepType: acctest.Optional, Create: `user.value eq \"${oci_identity_domains_user.test_user.id}\"`}, + "attribute_sets": acctest.Representation{RepType: acctest.Optional, Create: []string{`all`}}, + "start_index": acctest.Representation{RepType: acctest.Optional, Create: `1`}, + } + + IdentityDomainsOAuth2ClientCredentialRepresentation = map[string]interface{}{ + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "name": acctest.Representation{RepType: acctest.Required, Create: `name`}, + "schemas": acctest.Representation{RepType: acctest.Required, Create: []string{`urn:ietf:params:scim:schemas:oracle:idcs:oauth2ClientCredential`}}, + "scopes": acctest.RepresentationGroup{RepType: acctest.Required, Group: IdentityDomainsOAuth2ClientCredentialScopesRepresentation}, + "attribute_sets": acctest.Representation{RepType: acctest.Optional, Create: []string{`all`}}, + "description": acctest.Representation{RepType: acctest.Optional, Create: `description`}, + "expires_on": acctest.Representation{RepType: acctest.Optional, Create: `2030-01-01T00:00:00Z`}, + "is_reset_secret": acctest.Representation{RepType: acctest.Optional, Create: `false`}, + "status": acctest.Representation{RepType: acctest.Optional, Create: `ACTIVE`}, + "tags": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsOAuth2ClientCredentialTagsRepresentation}, + "urnietfparamsscimschemasoracleidcsextensionself_change_user": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsOAuth2ClientCredentialUrnietfparamsscimschemasoracleidcsextensionselfChangeUserRepresentation}, + "user": acctest.RepresentationGroup{RepType: acctest.Required, Group: IdentityDomainsOAuth2ClientCredentialUserRepresentation}, + "lifecycle": acctest.RepresentationGroup{RepType: acctest.Optional, Group: ignoreChangeForIdentityDomainsOAuth2ClientCredential}, + } + + ignoreChangeForIdentityDomainsOAuth2ClientCredential = map[string]interface{}{ + "ignore_changes": acctest.Representation{RepType: acctest.Optional, Create: []string{ + // properties that are `returned:never` + `status`, + `urnietfparamsscimschemasoracleidcsextensionself_change_user`, + // mutability: writeOnly + `is_reset_secret`, + }}, + } + IdentityDomainsOAuth2ClientCredentialScopesRepresentation = map[string]interface{}{ + "audience": acctest.Representation{RepType: acctest.Required, Create: `audience`}, + "scope": acctest.Representation{RepType: acctest.Required, Create: `scope`}, + } + IdentityDomainsOAuth2ClientCredentialTagsRepresentation = map[string]interface{}{ + "key": acctest.Representation{RepType: acctest.Required, Create: `key`}, + "value": acctest.Representation{RepType: acctest.Required, Create: `value`}, + } + IdentityDomainsOAuth2ClientCredentialUrnietfparamsscimschemasoracleidcsextensionselfChangeUserRepresentation = map[string]interface{}{ + "allow_self_change": acctest.Representation{RepType: acctest.Optional, Create: `false`}, + } + IdentityDomainsOAuth2ClientCredentialUserRepresentation = map[string]interface{}{ + "value": acctest.Representation{RepType: acctest.Required, Create: `${oci_identity_domains_user.test_user.id}`}, + } + + IdentityDomainsOAuth2ClientCredentialResourceDependencies = TestDomainDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_user", "test_user", acctest.Required, acctest.Create, IdentityDomainsUserRepresentation) +) + +// issue-routing-tag: identity_domains/default +func TestIdentityDomainsOAuth2ClientCredentialResource_basic(t *testing.T) { + httpreplay.SetScenario("TestIdentityDomainsOAuth2ClientCredentialResource_basic") + defer httpreplay.SaveScenario() + + config := acctest.ProviderTestConfig() + + compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid") + compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId) + + resourceName := "oci_identity_domains_oauth2client_credential.test_oauth2client_credential" + datasourceName := "data.oci_identity_domains_oauth2client_credentials.test_oauth2client_credentials" + singularDatasourceName := "data.oci_identity_domains_oauth2client_credential.test_oauth2client_credential" + + var resId string + // Save TF content to Create resource with optional properties. This has to be exactly the same as the config part in the "create with optionals" step in the test. + acctest.SaveConfigContent(config+compartmentIdVariableStr+IdentityDomainsOAuth2ClientCredentialResourceDependencies+ + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_oauth2client_credential", "test_oauth2client_credential", acctest.Optional, acctest.Create, IdentityDomainsOAuth2ClientCredentialRepresentation), "identitydomains", "oAuth2ClientCredential", t) + + print(config + compartmentIdVariableStr + IdentityDomainsOAuth2ClientCredentialResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_oauth2client_credential", "test_oauth2client_credential", acctest.Optional, acctest.Create, IdentityDomainsOAuth2ClientCredentialRepresentation)) + acctest.ResourceTest(t, testAccCheckIdentityDomainsOAuth2ClientCredentialDestroy, []resource.TestStep{ + // verify Create + { + Config: config + compartmentIdVariableStr + IdentityDomainsOAuth2ClientCredentialResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_oauth2client_credential", "test_oauth2client_credential", acctest.Required, acctest.Create, IdentityDomainsOAuth2ClientCredentialRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttrSet(resourceName, "idcs_endpoint"), + resource.TestCheckResourceAttr(resourceName, "name", "name"), + resource.TestCheckResourceAttr(resourceName, "schemas.#", "1"), + resource.TestCheckResourceAttr(resourceName, "scopes.#", "1"), + resource.TestCheckResourceAttr(resourceName, "scopes.0.audience", "audience"), + resource.TestCheckResourceAttr(resourceName, "scopes.0.scope", "scope"), + ), + }, + + // delete before next Create + { + Config: config + compartmentIdVariableStr + IdentityDomainsOAuth2ClientCredentialResourceDependencies, + }, + // verify Create with optionals + { + Config: config + compartmentIdVariableStr + IdentityDomainsOAuth2ClientCredentialResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_oauth2client_credential", "test_oauth2client_credential", acctest.Optional, acctest.Create, IdentityDomainsOAuth2ClientCredentialRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(resourceName, "attribute_sets.#", "1"), + resource.TestCheckResourceAttr(resourceName, "description", "description"), + resource.TestCheckResourceAttr(resourceName, "expires_on", "2030-01-01T00:00:00Z"), + resource.TestCheckResourceAttrSet(resourceName, "id"), + resource.TestCheckResourceAttr(resourceName, "idcs_created_by.#", "1"), + resource.TestCheckResourceAttrSet(resourceName, "idcs_endpoint"), + resource.TestCheckResourceAttr(resourceName, "name", "name"), + resource.TestCheckResourceAttr(resourceName, "schemas.#", "1"), + resource.TestCheckResourceAttr(resourceName, "scopes.#", "1"), + resource.TestCheckResourceAttr(resourceName, "scopes.0.audience", "audience"), + resource.TestCheckResourceAttr(resourceName, "scopes.0.scope", "scope"), + resource.TestCheckResourceAttr(resourceName, "tags.#", "1"), + resource.TestCheckResourceAttr(resourceName, "tags.0.key", "key"), + resource.TestCheckResourceAttr(resourceName, "tags.0.value", "value"), + resource.TestCheckResourceAttr(resourceName, "user.#", "1"), + resource.TestCheckResourceAttrSet(resourceName, "user.0.value"), + + func(s *terraform.State) (err error) { + resId, err = acctest.FromInstanceState(s, resourceName, "id") + idcsEndpoint, err := acctest.FromInstanceState(s, "data.oci_identity_domain.test_domain", "url") + if err != nil { + return err + } + + compositeId := getIdentityDomainsCompositeId(idcsEndpoint, "oAuth2ClientCredentials", resId) + log.Printf("[DEBUG] Composite ID to import: %s", compositeId) + if isEnableExportCompartment, _ := strconv.ParseBool(utils.GetEnvSettingWithDefault("enable_export_compartment", "true")); isEnableExportCompartment { + if errExport := resourcediscovery.TestExportCompartmentWithResourceName(&compositeId, &compartmentId, resourceName); errExport != nil { + return errExport + } + } + return err + }, + ), + }, + + // verify datasource + { + Config: config + + acctest.GenerateDataSourceFromRepresentationMap("oci_identity_domains_oauth2client_credentials", "test_oauth2client_credentials", acctest.Optional, acctest.Update, IdentityDomainsIdentityDomainsOAuth2ClientCredentialDataSourceRepresentation) + + compartmentIdVariableStr + IdentityDomainsOAuth2ClientCredentialResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_oauth2client_credential", "test_oauth2client_credential", acctest.Optional, acctest.Update, IdentityDomainsOAuth2ClientCredentialRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(datasourceName, "oauth2client_credential_count", "10"), + resource.TestCheckResourceAttr(datasourceName, "attribute_sets.#", "1"), + resource.TestCheckResourceAttr(datasourceName, "start_index", "1"), + + resource.TestCheckResourceAttr(datasourceName, "oauth2client_credentials.#", "1"), + resource.TestCheckResourceAttr(datasourceName, "oauth2client_credentials.0.schemas.#", "1"), + ), + }, + // verify singular datasource + { + Config: config + + acctest.GenerateDataSourceFromRepresentationMap("oci_identity_domains_oauth2client_credential", "test_oauth2client_credential", acctest.Required, acctest.Create, IdentityDomainsIdentityDomainsOAuth2ClientCredentialSingularDataSourceRepresentation) + + compartmentIdVariableStr + IdentityDomainsOAuth2ClientCredentialResourceConfig, + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttrSet(singularDatasourceName, "idcs_endpoint"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "o_auth2client_credential_id"), + + resource.TestCheckResourceAttr(singularDatasourceName, "description", "description"), + resource.TestCheckResourceAttr(singularDatasourceName, "expires_on", "2030-01-01T00:00:00Z"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "id"), + resource.TestCheckResourceAttr(singularDatasourceName, "idcs_created_by.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "name", "name"), + resource.TestCheckResourceAttr(singularDatasourceName, "schemas.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "scopes.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "scopes.0.audience", "audience"), + resource.TestCheckResourceAttr(singularDatasourceName, "scopes.0.scope", "scope"), + resource.TestCheckResourceAttr(singularDatasourceName, "user.#", "1"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "user.0.value"), + ), + }, + // verify resource import + { + Config: config + IdentityDomainsOAuth2ClientCredentialRequiredOnlyResource, + ImportState: true, + ImportStateVerify: true, + ImportStateIdFunc: getIdentityDomainsImportIdFn("oci_identity_domains_oauth2client_credential", "oAuth2ClientCredentials"), + ImportStateVerifyIgnore: []string{ + "attribute_sets", + "attributes", + "authorization", + "idcs_endpoint", + "resource_type_schema_version", + "tags", + "is_reset_secret", + }, + ResourceName: resourceName, + }, + }) +} + +func testAccCheckIdentityDomainsOAuth2ClientCredentialDestroy(s *terraform.State) error { + noResourceFound := true + client := acctest.TestAccProvider.Meta().(*tf_client.OracleClients).IdentityDomainsClient() + for _, rs := range s.RootModule().Resources { + if rs.Type == "oci_identity_domains_oauth2client_credential" { + noResourceFound = false + request := oci_identity_domains.GetOAuth2ClientCredentialRequest{} + + if value, ok := rs.Primary.Attributes["authorization"]; ok { + request.Authorization = &value + } + + if value, ok := rs.Primary.Attributes["idcs_endpoint"]; ok { + client.Host = value + } + + tmp := rs.Primary.ID + request.OAuth2ClientCredentialId = &tmp + + if value, ok := rs.Primary.Attributes["resource_type_schema_version"]; ok { + request.ResourceTypeSchemaVersion = &value + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(true, "identity_domains") + + _, err := client.GetOAuth2ClientCredential(context.Background(), request) + + if err == nil { + return fmt.Errorf("resource still exists") + } + + //Verify that exception is for '404 not found'. + if failure, isServiceError := common.IsServiceError(err); !isServiceError || failure.GetHTTPStatusCode() != 404 { + return err + } + } + } + if noResourceFound { + return fmt.Errorf("at least one resource was expected from the state file, but could not be found") + } + + return nil +} + +func init() { + if acctest.DependencyGraph == nil { + acctest.InitDependencyGraph() + } + if !acctest.InSweeperExcludeList("IdentityDomainsOAuth2ClientCredential") { + resource.AddTestSweepers("IdentityDomainsOAuth2ClientCredential", &resource.Sweeper{ + Name: "IdentityDomainsOAuth2ClientCredential", + Dependencies: acctest.DependencyGraph["oAuth2ClientCredential"], + F: sweepIdentityDomainsOAuth2ClientCredentialResource, + }) + } +} + +func sweepIdentityDomainsOAuth2ClientCredentialResource(compartment string) error { + identityDomainsClient := acctest.GetTestClients(&schema.ResourceData{}).IdentityDomainsClient() + oAuth2ClientCredentialIds, err := getIdentityDomainsOAuth2ClientCredentialIds(compartment) + if err != nil { + return err + } + for _, oAuth2ClientCredentialId := range oAuth2ClientCredentialIds { + if ok := acctest.SweeperDefaultResourceId[oAuth2ClientCredentialId]; !ok { + deleteOAuth2ClientCredentialRequest := oci_identity_domains.DeleteOAuth2ClientCredentialRequest{} + + deleteOAuth2ClientCredentialRequest.OAuth2ClientCredentialId = &oAuth2ClientCredentialId + + deleteOAuth2ClientCredentialRequest.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(true, "identity_domains") + _, error := identityDomainsClient.DeleteOAuth2ClientCredential(context.Background(), deleteOAuth2ClientCredentialRequest) + if error != nil { + fmt.Printf("Error deleting OAuth2ClientCredential %s %s, It is possible that the resource is already deleted. Please verify manually \n", oAuth2ClientCredentialId, error) + continue + } + } + } + return nil +} + +func getIdentityDomainsOAuth2ClientCredentialIds(compartment string) ([]string, error) { + ids := acctest.GetResourceIdsToSweep(compartment, "OAuth2ClientCredentialId") + if ids != nil { + return ids, nil + } + var resourceIds []string + compartmentId := compartment + identityDomainsClient := acctest.GetTestClients(&schema.ResourceData{}).IdentityDomainsClient() + + listOAuth2ClientCredentialsRequest := oci_identity_domains.ListOAuth2ClientCredentialsRequest{} + listOAuth2ClientCredentialsResponse, err := identityDomainsClient.ListOAuth2ClientCredentials(context.Background(), listOAuth2ClientCredentialsRequest) + + if err != nil { + return resourceIds, fmt.Errorf("Error getting OAuth2ClientCredential list for compartment id : %s , %s \n", compartmentId, err) + } + for _, oAuth2ClientCredential := range listOAuth2ClientCredentialsResponse.Resources { + id := *oAuth2ClientCredential.Id + resourceIds = append(resourceIds, id) + acctest.AddResourceIdToSweeperResourceIdMap(compartmentId, "OAuth2ClientCredentialId", id) + } + return resourceIds, nil +} diff --git a/internal/integrationtest/identity_domains_password_policy_test.go b/internal/integrationtest/identity_domains_password_policy_test.go new file mode 100644 index 00000000000..9857f855a63 --- /dev/null +++ b/internal/integrationtest/identity_domains_password_policy_test.go @@ -0,0 +1,454 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package integrationtest + +import ( + "context" + "fmt" + "log" + "strconv" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + "github.com/oracle/oci-go-sdk/v65/common" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/httpreplay" + "github.com/oracle/terraform-provider-oci/internal/acctest" + tf_client "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/resourcediscovery" + "github.com/oracle/terraform-provider-oci/internal/tfresource" + "github.com/oracle/terraform-provider-oci/internal/utils" +) + +var ( + IdentityDomainsPasswordPolicyRequiredOnlyResource = IdentityDomainsPasswordPolicyResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_password_policy", "test_password_policy", acctest.Required, acctest.Create, IdentityDomainsPasswordPolicyRepresentation) + + IdentityDomainsPasswordPolicyResourceConfig = IdentityDomainsPasswordPolicyResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_password_policy", "test_password_policy", acctest.Optional, acctest.Update, IdentityDomainsPasswordPolicyRepresentation) + + IdentityDomainsIdentityDomainsPasswordPolicySingularDataSourceRepresentation = map[string]interface{}{ + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "password_policy_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_identity_domains_password_policy.test_password_policy.id}`}, + "attribute_sets": acctest.Representation{RepType: acctest.Optional, Create: []string{`all`}}, + } + + IdentityDomainsIdentityDomainsPasswordPolicyDataSourceRepresentation = map[string]interface{}{ + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "password_policy_count": acctest.Representation{RepType: acctest.Optional, Create: `10`}, + "password_policy_filter": acctest.Representation{RepType: acctest.Optional, Create: `name eq \"name\"`}, + "attribute_sets": acctest.Representation{RepType: acctest.Optional, Create: []string{`all`}}, + "start_index": acctest.Representation{RepType: acctest.Optional, Create: `1`}, + } + + IdentityDomainsPasswordPolicyRepresentation = map[string]interface{}{ + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "name": acctest.Representation{RepType: acctest.Required, Create: `name`}, + "schemas": acctest.Representation{RepType: acctest.Required, Create: []string{`urn:ietf:params:scim:schemas:oracle:idcs:PasswordPolicy`}}, + "allowed_chars": acctest.Representation{RepType: acctest.Optional, Create: `allowedChars`, Update: `allowedChars2`}, + "attribute_sets": acctest.Representation{RepType: acctest.Optional, Create: []string{`all`}}, + "description": acctest.Representation{RepType: acctest.Optional, Create: `description`, Update: `description2`}, + "dictionary_delimiter": acctest.Representation{RepType: acctest.Optional, Create: `dictionaryDelimiter`, Update: `dictionaryDelimiter2`}, + "dictionary_location": acctest.Representation{RepType: acctest.Optional, Create: `dictionaryLocation`, Update: `dictionaryLocation2`}, + "dictionary_word_disallowed": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `true`}, + "disallowed_chars": acctest.Representation{RepType: acctest.Optional, Create: `a,b,c`, Update: `x,y,z`}, + "disallowed_substrings": acctest.Representation{RepType: acctest.Optional, Create: []string{`disallowedSubstrings`}, Update: []string{`disallowedSubstrings2`}}, + "external_id": acctest.Representation{RepType: acctest.Optional, Create: `externalId`}, + "first_name_disallowed": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `true`}, + "force_password_reset": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `true`}, + "groups": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsPasswordPolicyGroupsRepresentation}, + "last_name_disallowed": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `true`}, + "lockout_duration": acctest.Representation{RepType: acctest.Optional, Create: `10`, Update: `11`}, + "max_incorrect_attempts": acctest.Representation{RepType: acctest.Optional, Create: `10`, Update: `11`}, + "max_length": acctest.Representation{RepType: acctest.Optional, Create: `10`, Update: `11`}, + "max_repeated_chars": acctest.Representation{RepType: acctest.Optional, Create: `100`, Update: `101`}, + "max_special_chars": acctest.Representation{RepType: acctest.Optional, Create: `10`, Update: `11`}, + "min_alpha_numerals": acctest.Representation{RepType: acctest.Optional, Create: `1`, Update: `2`}, + "min_alphas": acctest.Representation{RepType: acctest.Optional, Create: `1`, Update: `2`}, + "min_length": acctest.Representation{RepType: acctest.Required, Create: `1`, Update: `2`}, + "min_lower_case": acctest.Representation{RepType: acctest.Optional, Create: `1`, Update: `2`}, + "min_numerals": acctest.Representation{RepType: acctest.Optional, Create: `1`, Update: `2`}, + "min_password_age": acctest.Representation{RepType: acctest.Optional, Create: `10`, Update: `11`}, + "min_special_chars": acctest.Representation{RepType: acctest.Optional, Create: `1`, Update: `2`}, + "min_unique_chars": acctest.Representation{RepType: acctest.Optional, Create: `1`, Update: `2`}, + "min_upper_case": acctest.Representation{RepType: acctest.Optional, Create: `1`, Update: `2`}, + "num_passwords_in_history": acctest.Representation{RepType: acctest.Optional, Create: `10`, Update: `11`}, + "password_expire_warning": acctest.Representation{RepType: acctest.Optional, Create: `10`, Update: `11`}, + "password_expires_after": acctest.Representation{RepType: acctest.Optional, Create: `10`, Update: `11`}, + "password_strength": acctest.Representation{RepType: acctest.Optional, Create: `Custom`}, + "priority": acctest.Representation{RepType: acctest.Required, Create: `10`, Update: `9`}, + "required_chars": acctest.Representation{RepType: acctest.Optional, Create: `x,y,z`, Update: `a,b,c`}, + "starts_with_alphabet": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `true`}, + "tags": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsPasswordPolicyTagsRepresentation}, + "user_name_disallowed": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `true`}, + } + IdentityDomainsPasswordPolicyGroupsRepresentation = map[string]interface{}{ + "value": acctest.Representation{RepType: acctest.Required, Create: `${oci_identity_domains_group.test_group.id}`}, + } + IdentityDomainsPasswordPolicyTagsRepresentation = map[string]interface{}{ + "key": acctest.Representation{RepType: acctest.Required, Create: `key`, Update: `key2`}, + "value": acctest.Representation{RepType: acctest.Required, Create: `value`, Update: `value2`}, + } + + IdentityDomainsPasswordPolicyResourceDependencies = TestDomainDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_group", "test_group", acctest.Required, acctest.Create, IdentityDomainsGroupRepresentation) +) + +// issue-routing-tag: identity_domains/default +func TestIdentityDomainsPasswordPolicyResource_basic(t *testing.T) { + httpreplay.SetScenario("TestIdentityDomainsPasswordPolicyResource_basic") + defer httpreplay.SaveScenario() + + config := acctest.ProviderTestConfig() + + compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid") + compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId) + + resourceName := "oci_identity_domains_password_policy.test_password_policy" + datasourceName := "data.oci_identity_domains_password_policies.test_password_policies" + singularDatasourceName := "data.oci_identity_domains_password_policy.test_password_policy" + + var resId, resId2 string + // Save TF content to Create resource with optional properties. This has to be exactly the same as the config part in the "create with optionals" step in the test. + acctest.SaveConfigContent(config+compartmentIdVariableStr+IdentityDomainsPasswordPolicyResourceDependencies+ + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_password_policy", "test_password_policy", acctest.Optional, acctest.Create, IdentityDomainsPasswordPolicyRepresentation), "identitydomains", "passwordPolicy", t) + + print(config + compartmentIdVariableStr + IdentityDomainsPasswordPolicyResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_password_policy", "test_password_policy", acctest.Optional, acctest.Create, IdentityDomainsPasswordPolicyRepresentation)) + acctest.ResourceTest(t, testAccCheckIdentityDomainsPasswordPolicyDestroy, []resource.TestStep{ + // verify Create + { + Config: config + compartmentIdVariableStr + IdentityDomainsPasswordPolicyResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_password_policy", "test_password_policy", acctest.Required, acctest.Create, IdentityDomainsPasswordPolicyRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttrSet(resourceName, "idcs_endpoint"), + resource.TestCheckResourceAttr(resourceName, "name", "name"), + resource.TestCheckResourceAttr(resourceName, "schemas.#", "1"), + + func(s *terraform.State) (err error) { + resId, err = acctest.FromInstanceState(s, resourceName, "id") + return err + }, + ), + }, + + // delete before next Create + { + Config: config + compartmentIdVariableStr + IdentityDomainsPasswordPolicyResourceDependencies, + }, + // verify Create with optionals + { + Config: config + compartmentIdVariableStr + IdentityDomainsPasswordPolicyResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_password_policy", "test_password_policy", acctest.Optional, acctest.Create, IdentityDomainsPasswordPolicyRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(resourceName, "allowed_chars", "allowedChars"), + resource.TestCheckResourceAttr(resourceName, "attribute_sets.#", "1"), + resource.TestCheckResourceAttr(resourceName, "description", "description"), + resource.TestCheckResourceAttr(resourceName, "dictionary_delimiter", "dictionaryDelimiter"), + resource.TestCheckResourceAttr(resourceName, "dictionary_location", "dictionaryLocation"), + resource.TestCheckResourceAttr(resourceName, "dictionary_word_disallowed", "false"), + resource.TestCheckResourceAttr(resourceName, "disallowed_chars", "a,b,c"), + resource.TestCheckResourceAttr(resourceName, "disallowed_substrings.#", "1"), + resource.TestCheckResourceAttrSet(resourceName, "external_id"), + resource.TestCheckResourceAttr(resourceName, "first_name_disallowed", "false"), + resource.TestCheckResourceAttr(resourceName, "force_password_reset", "false"), + resource.TestCheckResourceAttr(resourceName, "groups.#", "1"), + resource.TestCheckResourceAttrSet(resourceName, "groups.0.value"), + resource.TestCheckResourceAttrSet(resourceName, "id"), + resource.TestCheckResourceAttr(resourceName, "idcs_created_by.#", "1"), + resource.TestCheckResourceAttrSet(resourceName, "idcs_endpoint"), + resource.TestCheckResourceAttr(resourceName, "last_name_disallowed", "false"), + resource.TestCheckResourceAttr(resourceName, "lockout_duration", "10"), + resource.TestCheckResourceAttr(resourceName, "max_incorrect_attempts", "10"), + resource.TestCheckResourceAttr(resourceName, "max_length", "10"), + resource.TestCheckResourceAttr(resourceName, "max_repeated_chars", "100"), + resource.TestCheckResourceAttr(resourceName, "max_special_chars", "10"), + resource.TestCheckResourceAttr(resourceName, "min_alpha_numerals", "1"), + resource.TestCheckResourceAttr(resourceName, "min_alphas", "1"), + resource.TestCheckResourceAttr(resourceName, "min_length", "1"), + resource.TestCheckResourceAttr(resourceName, "min_lower_case", "1"), + resource.TestCheckResourceAttr(resourceName, "min_numerals", "1"), + resource.TestCheckResourceAttr(resourceName, "min_password_age", "10"), + resource.TestCheckResourceAttr(resourceName, "min_special_chars", "1"), + resource.TestCheckResourceAttr(resourceName, "min_unique_chars", "1"), + resource.TestCheckResourceAttr(resourceName, "min_upper_case", "1"), + resource.TestCheckResourceAttr(resourceName, "name", "name"), + resource.TestCheckResourceAttr(resourceName, "num_passwords_in_history", "10"), + resource.TestCheckResourceAttr(resourceName, "password_expire_warning", "10"), + resource.TestCheckResourceAttr(resourceName, "password_expires_after", "10"), + resource.TestCheckResourceAttr(resourceName, "password_strength", "Custom"), + resource.TestCheckResourceAttr(resourceName, "priority", "10"), + resource.TestCheckResourceAttr(resourceName, "required_chars", "x,y,z"), + resource.TestCheckResourceAttr(resourceName, "schemas.#", "1"), + resource.TestCheckResourceAttr(resourceName, "starts_with_alphabet", "false"), + resource.TestCheckResourceAttr(resourceName, "tags.#", "1"), + resource.TestCheckResourceAttr(resourceName, "tags.0.key", "key"), + resource.TestCheckResourceAttr(resourceName, "tags.0.value", "value"), + resource.TestCheckResourceAttr(resourceName, "user_name_disallowed", "false"), + + func(s *terraform.State) (err error) { + resId, err = acctest.FromInstanceState(s, resourceName, "id") + idcsEndpoint, err := acctest.FromInstanceState(s, "data.oci_identity_domain.test_domain", "url") + if err != nil { + return err + } + + compositeId := getIdentityDomainsCompositeId(idcsEndpoint, "passwordPolicies", resId) + log.Printf("[DEBUG] Composite ID to import: %s", compositeId) + if isEnableExportCompartment, _ := strconv.ParseBool(utils.GetEnvSettingWithDefault("enable_export_compartment", "true")); isEnableExportCompartment { + if errExport := resourcediscovery.TestExportCompartmentWithResourceName(&compositeId, &compartmentId, resourceName); errExport != nil { + return errExport + } + } + return err + }, + ), + }, + + // verify updates to updatable parameters + { + Config: config + compartmentIdVariableStr + IdentityDomainsPasswordPolicyResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_password_policy", "test_password_policy", acctest.Optional, acctest.Update, IdentityDomainsPasswordPolicyRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(resourceName, "allowed_chars", "allowedChars2"), + resource.TestCheckResourceAttr(resourceName, "attribute_sets.#", "1"), + resource.TestCheckResourceAttr(resourceName, "description", "description2"), + resource.TestCheckResourceAttr(resourceName, "dictionary_delimiter", "dictionaryDelimiter2"), + resource.TestCheckResourceAttr(resourceName, "dictionary_location", "dictionaryLocation2"), + resource.TestCheckResourceAttr(resourceName, "dictionary_word_disallowed", "true"), + resource.TestCheckResourceAttr(resourceName, "disallowed_chars", "x,y,z"), + resource.TestCheckResourceAttr(resourceName, "disallowed_substrings.#", "1"), + resource.TestCheckResourceAttrSet(resourceName, "external_id"), + resource.TestCheckResourceAttr(resourceName, "first_name_disallowed", "true"), + resource.TestCheckResourceAttr(resourceName, "force_password_reset", "true"), + resource.TestCheckResourceAttr(resourceName, "groups.#", "1"), + resource.TestCheckResourceAttrSet(resourceName, "groups.0.value"), + resource.TestCheckResourceAttr(resourceName, "idcs_created_by.#", "1"), + resource.TestCheckResourceAttrSet(resourceName, "idcs_endpoint"), + resource.TestCheckResourceAttr(resourceName, "last_name_disallowed", "true"), + resource.TestCheckResourceAttr(resourceName, "lockout_duration", "11"), + resource.TestCheckResourceAttr(resourceName, "max_incorrect_attempts", "11"), + resource.TestCheckResourceAttr(resourceName, "max_length", "11"), + resource.TestCheckResourceAttr(resourceName, "max_repeated_chars", "101"), + resource.TestCheckResourceAttr(resourceName, "max_special_chars", "11"), + resource.TestCheckResourceAttr(resourceName, "min_alpha_numerals", "2"), + resource.TestCheckResourceAttr(resourceName, "min_alphas", "2"), + resource.TestCheckResourceAttr(resourceName, "min_length", "2"), + resource.TestCheckResourceAttr(resourceName, "min_lower_case", "2"), + resource.TestCheckResourceAttr(resourceName, "min_numerals", "2"), + resource.TestCheckResourceAttr(resourceName, "min_password_age", "11"), + resource.TestCheckResourceAttr(resourceName, "min_special_chars", "2"), + resource.TestCheckResourceAttr(resourceName, "min_unique_chars", "2"), + resource.TestCheckResourceAttr(resourceName, "min_upper_case", "2"), + resource.TestCheckResourceAttr(resourceName, "name", "name"), + resource.TestCheckResourceAttr(resourceName, "num_passwords_in_history", "11"), + resource.TestCheckResourceAttr(resourceName, "password_expire_warning", "11"), + resource.TestCheckResourceAttr(resourceName, "password_expires_after", "11"), + resource.TestCheckResourceAttr(resourceName, "password_strength", "Custom"), + resource.TestCheckResourceAttr(resourceName, "priority", "9"), + resource.TestCheckResourceAttr(resourceName, "required_chars", "a,b,c"), + resource.TestCheckResourceAttr(resourceName, "schemas.#", "1"), + resource.TestCheckResourceAttr(resourceName, "starts_with_alphabet", "true"), + resource.TestCheckResourceAttr(resourceName, "tags.#", "1"), + resource.TestCheckResourceAttr(resourceName, "tags.0.key", "key2"), + resource.TestCheckResourceAttr(resourceName, "tags.0.value", "value2"), + resource.TestCheckResourceAttr(resourceName, "user_name_disallowed", "true"), + + func(s *terraform.State) (err error) { + resId2, err = acctest.FromInstanceState(s, resourceName, "id") + if resId != resId2 { + return fmt.Errorf("Resource recreated when it was supposed to be updated.") + } + return err + }, + ), + }, + // verify datasource + { + Config: config + + acctest.GenerateDataSourceFromRepresentationMap("oci_identity_domains_password_policies", "test_password_policies", acctest.Optional, acctest.Update, IdentityDomainsIdentityDomainsPasswordPolicyDataSourceRepresentation) + + compartmentIdVariableStr + IdentityDomainsPasswordPolicyResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_password_policy", "test_password_policy", acctest.Optional, acctest.Update, IdentityDomainsPasswordPolicyRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(datasourceName, "password_policy_count", "10"), + resource.TestCheckResourceAttr(datasourceName, "attribute_sets.#", "1"), + resource.TestCheckResourceAttr(datasourceName, "start_index", "1"), + + resource.TestCheckResourceAttr(datasourceName, "password_policies.#", "1"), + resource.TestCheckResourceAttr(datasourceName, "password_policies.0.schemas.#", "1"), + ), + }, + // verify singular datasource + { + Config: config + + acctest.GenerateDataSourceFromRepresentationMap("oci_identity_domains_password_policy", "test_password_policy", acctest.Required, acctest.Create, IdentityDomainsIdentityDomainsPasswordPolicySingularDataSourceRepresentation) + + compartmentIdVariableStr + IdentityDomainsPasswordPolicyResourceConfig, + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttrSet(singularDatasourceName, "idcs_endpoint"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "password_policy_id"), + + resource.TestCheckResourceAttr(singularDatasourceName, "disallowed_chars", "x,y,z"), + resource.TestCheckResourceAttr(singularDatasourceName, "description", "description2"), + resource.TestCheckResourceAttr(singularDatasourceName, "dictionary_delimiter", "dictionaryDelimiter2"), + resource.TestCheckResourceAttr(singularDatasourceName, "dictionary_location", "dictionaryLocation2"), + resource.TestCheckResourceAttr(singularDatasourceName, "dictionary_word_disallowed", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "allowed_chars", "allowedChars2"), + resource.TestCheckResourceAttr(singularDatasourceName, "disallowed_substrings.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "first_name_disallowed", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "groups.#", "1"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "groups.0.value"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "id"), + resource.TestCheckResourceAttr(singularDatasourceName, "idcs_created_by.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "last_name_disallowed", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "lockout_duration", "11"), + resource.TestCheckResourceAttr(singularDatasourceName, "max_incorrect_attempts", "11"), + resource.TestCheckResourceAttr(singularDatasourceName, "max_length", "11"), + resource.TestCheckResourceAttr(singularDatasourceName, "max_repeated_chars", "101"), + resource.TestCheckResourceAttr(singularDatasourceName, "max_special_chars", "11"), + resource.TestCheckResourceAttr(singularDatasourceName, "min_alpha_numerals", "2"), + resource.TestCheckResourceAttr(singularDatasourceName, "min_alphas", "2"), + resource.TestCheckResourceAttr(singularDatasourceName, "min_length", "2"), + resource.TestCheckResourceAttr(singularDatasourceName, "min_lower_case", "2"), + resource.TestCheckResourceAttr(singularDatasourceName, "min_numerals", "2"), + resource.TestCheckResourceAttr(singularDatasourceName, "min_password_age", "11"), + resource.TestCheckResourceAttr(singularDatasourceName, "min_special_chars", "2"), + resource.TestCheckResourceAttr(singularDatasourceName, "min_unique_chars", "2"), + resource.TestCheckResourceAttr(singularDatasourceName, "min_upper_case", "2"), + resource.TestCheckResourceAttr(singularDatasourceName, "name", "name"), + resource.TestCheckResourceAttr(singularDatasourceName, "num_passwords_in_history", "11"), + resource.TestCheckResourceAttr(singularDatasourceName, "password_expire_warning", "11"), + resource.TestCheckResourceAttr(singularDatasourceName, "password_expires_after", "11"), + resource.TestCheckResourceAttr(singularDatasourceName, "password_strength", "Custom"), + resource.TestCheckResourceAttr(singularDatasourceName, "priority", "9"), + resource.TestCheckResourceAttr(singularDatasourceName, "required_chars", "a,b,c"), + resource.TestCheckResourceAttr(singularDatasourceName, "schemas.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "starts_with_alphabet", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "user_name_disallowed", "true"), + ), + }, + // verify resource import + { + Config: config + IdentityDomainsPasswordPolicyRequiredOnlyResource, + ImportState: true, + ImportStateVerify: true, + ImportStateIdFunc: getIdentityDomainsImportIdFn("oci_identity_domains_password_policy", "passwordPolicies"), + ImportStateVerifyIgnore: []string{ + "authorization", + "idcs_endpoint", + "resource_type_schema_version", + "attribute_sets", + "attributes", + "force_password_reset", + "tags", + }, + ResourceName: resourceName, + }, + }) +} + +func testAccCheckIdentityDomainsPasswordPolicyDestroy(s *terraform.State) error { + noResourceFound := true + client := acctest.TestAccProvider.Meta().(*tf_client.OracleClients).IdentityDomainsClient() + for _, rs := range s.RootModule().Resources { + if rs.Type == "oci_identity_domains_password_policy" { + noResourceFound = false + request := oci_identity_domains.GetPasswordPolicyRequest{} + + if value, ok := rs.Primary.Attributes["authorization"]; ok { + request.Authorization = &value + } + + if value, ok := rs.Primary.Attributes["idcs_endpoint"]; ok { + client.Host = value + } + + tmp := rs.Primary.ID + request.PasswordPolicyId = &tmp + + if value, ok := rs.Primary.Attributes["resource_type_schema_version"]; ok { + request.ResourceTypeSchemaVersion = &value + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(true, "identity_domains") + + _, err := client.GetPasswordPolicy(context.Background(), request) + + if err == nil { + return fmt.Errorf("resource still exists") + } + + //Verify that exception is for '404 not found'. + if failure, isServiceError := common.IsServiceError(err); !isServiceError || failure.GetHTTPStatusCode() != 404 { + return err + } + } + } + if noResourceFound { + return fmt.Errorf("at least one resource was expected from the state file, but could not be found") + } + + return nil +} + +func init() { + if acctest.DependencyGraph == nil { + acctest.InitDependencyGraph() + } + if !acctest.InSweeperExcludeList("IdentityDomainsPasswordPolicy") { + resource.AddTestSweepers("IdentityDomainsPasswordPolicy", &resource.Sweeper{ + Name: "IdentityDomainsPasswordPolicy", + Dependencies: acctest.DependencyGraph["passwordPolicy"], + F: sweepIdentityDomainsPasswordPolicyResource, + }) + } +} + +func sweepIdentityDomainsPasswordPolicyResource(compartment string) error { + identityDomainsClient := acctest.GetTestClients(&schema.ResourceData{}).IdentityDomainsClient() + passwordPolicyIds, err := getIdentityDomainsPasswordPolicyIds(compartment) + if err != nil { + return err + } + for _, passwordPolicyId := range passwordPolicyIds { + if ok := acctest.SweeperDefaultResourceId[passwordPolicyId]; !ok { + deletePasswordPolicyRequest := oci_identity_domains.DeletePasswordPolicyRequest{} + + deletePasswordPolicyRequest.PasswordPolicyId = &passwordPolicyId + + deletePasswordPolicyRequest.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(true, "identity_domains") + _, error := identityDomainsClient.DeletePasswordPolicy(context.Background(), deletePasswordPolicyRequest) + if error != nil { + fmt.Printf("Error deleting PasswordPolicy %s %s, It is possible that the resource is already deleted. Please verify manually \n", passwordPolicyId, error) + continue + } + } + } + return nil +} + +func getIdentityDomainsPasswordPolicyIds(compartment string) ([]string, error) { + ids := acctest.GetResourceIdsToSweep(compartment, "PasswordPolicyId") + if ids != nil { + return ids, nil + } + var resourceIds []string + compartmentId := compartment + identityDomainsClient := acctest.GetTestClients(&schema.ResourceData{}).IdentityDomainsClient() + + listPasswordPoliciesRequest := oci_identity_domains.ListPasswordPoliciesRequest{} + listPasswordPoliciesResponse, err := identityDomainsClient.ListPasswordPolicies(context.Background(), listPasswordPoliciesRequest) + + if err != nil { + return resourceIds, fmt.Errorf("Error getting PasswordPolicy list for compartment id : %s , %s \n", compartmentId, err) + } + for _, passwordPolicy := range listPasswordPoliciesResponse.Resources { + id := *passwordPolicy.Id + resourceIds = append(resourceIds, id) + acctest.AddResourceIdToSweeperResourceIdMap(compartmentId, "PasswordPolicyId", id) + } + return resourceIds, nil +} diff --git a/internal/integrationtest/identity_domains_smtp_credential_test.go b/internal/integrationtest/identity_domains_smtp_credential_test.go new file mode 100644 index 00000000000..c7491009acb --- /dev/null +++ b/internal/integrationtest/identity_domains_smtp_credential_test.go @@ -0,0 +1,311 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package integrationtest + +import ( + "context" + "fmt" + "log" + "strconv" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + "github.com/oracle/terraform-provider-oci/internal/resourcediscovery" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + "github.com/oracle/oci-go-sdk/v65/common" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/httpreplay" + "github.com/oracle/terraform-provider-oci/internal/acctest" + tf_client "github.com/oracle/terraform-provider-oci/internal/client" + + "github.com/oracle/terraform-provider-oci/internal/tfresource" + "github.com/oracle/terraform-provider-oci/internal/utils" +) + +var ( + IdentityDomainsSmtpCredentialRequiredOnlyResource = IdentityDomainsSmtpCredentialResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_smtp_credential", "test_smtp_credential", acctest.Required, acctest.Create, IdentityDomainsSmtpCredentialRepresentation) + + IdentityDomainsSmtpCredentialResourceConfig = IdentityDomainsSmtpCredentialResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_smtp_credential", "test_smtp_credential", acctest.Optional, acctest.Update, IdentityDomainsSmtpCredentialRepresentation) + + IdentityDomainsIdentityDomainsSmtpCredentialSingularDataSourceRepresentation = map[string]interface{}{ + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "smtp_credential_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_identity_domains_smtp_credential.test_smtp_credential.id}`}, + "attribute_sets": acctest.Representation{RepType: acctest.Optional, Create: []string{`all`}}, + } + + IdentityDomainsIdentityDomainsSmtpCredentialDataSourceRepresentation = map[string]interface{}{ + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "smtp_credential_count": acctest.Representation{RepType: acctest.Optional, Create: `10`}, + "smtp_credential_filter": acctest.Representation{RepType: acctest.Optional, Create: `user.value eq \"${oci_identity_domains_user.test_user.id}\"`}, + "attribute_sets": acctest.Representation{RepType: acctest.Optional, Create: []string{`all`}}, + "start_index": acctest.Representation{RepType: acctest.Optional, Create: `1`}, + } + + IdentityDomainsSmtpCredentialRepresentation = map[string]interface{}{ + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "schemas": acctest.Representation{RepType: acctest.Required, Create: []string{`urn:ietf:params:scim:schemas:oracle:idcs:smtpCredential`}}, + "attribute_sets": acctest.Representation{RepType: acctest.Optional, Create: []string{`all`}}, + "description": acctest.Representation{RepType: acctest.Optional, Create: `description`}, + "expires_on": acctest.Representation{RepType: acctest.Optional, Create: `2030-01-01T00:00:00Z`}, + "status": acctest.Representation{RepType: acctest.Optional, Create: `ACTIVE`}, + "tags": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsSmtpCredentialTagsRepresentation}, + "urnietfparamsscimschemasoracleidcsextensionself_change_user": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsSmtpCredentialUrnietfparamsscimschemasoracleidcsextensionselfChangeUserRepresentation}, + "user": acctest.RepresentationGroup{RepType: acctest.Required, Group: IdentityDomainsSmtpCredentialUserRepresentation}, + "lifecycle": acctest.RepresentationGroup{RepType: acctest.Optional, Group: ignoreChangeForIdentityDomainsSmtpCredential}, + } + + ignoreChangeForIdentityDomainsSmtpCredential = map[string]interface{}{ + "ignore_changes": acctest.Representation{RepType: acctest.Optional, Create: []string{ + // properties that are `returned:never` + `urnietfparamsscimschemasoracleidcsextensionself_change_user`, + `status`, + }}, + } + IdentityDomainsSmtpCredentialTagsRepresentation = map[string]interface{}{ + "key": acctest.Representation{RepType: acctest.Required, Create: `key`}, + "value": acctest.Representation{RepType: acctest.Required, Create: `value`}, + } + IdentityDomainsSmtpCredentialUrnietfparamsscimschemasoracleidcsextensionselfChangeUserRepresentation = map[string]interface{}{ + "allow_self_change": acctest.Representation{RepType: acctest.Optional, Create: `false`}, + } + IdentityDomainsSmtpCredentialUserRepresentation = map[string]interface{}{ + "value": acctest.Representation{RepType: acctest.Required, Create: `${oci_identity_domains_user.test_user.id}`}, + } + + IdentityDomainsSmtpCredentialResourceDependencies = TestDomainDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_user", "test_user", acctest.Required, acctest.Create, IdentityDomainsUserRepresentation) +) + +// issue-routing-tag: identity_domains/default +func TestIdentityDomainsSmtpCredentialResource_basic(t *testing.T) { + httpreplay.SetScenario("TestIdentityDomainsSmtpCredentialResource_basic") + defer httpreplay.SaveScenario() + + config := acctest.ProviderTestConfig() + + compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid") + compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId) + + resourceName := "oci_identity_domains_smtp_credential.test_smtp_credential" + datasourceName := "data.oci_identity_domains_smtp_credentials.test_smtp_credentials" + singularDatasourceName := "data.oci_identity_domains_smtp_credential.test_smtp_credential" + + var resId string + // Save TF content to Create resource with optional properties. This has to be exactly the same as the config part in the "create with optionals" step in the test. + acctest.SaveConfigContent(config+compartmentIdVariableStr+IdentityDomainsSmtpCredentialResourceDependencies+ + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_smtp_credential", "test_smtp_credential", acctest.Optional, acctest.Create, IdentityDomainsSmtpCredentialRepresentation), "identitydomains", "smtpCredential", t) + + print(config + compartmentIdVariableStr + IdentityDomainsSmtpCredentialResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_smtp_credential", "test_smtp_credential", acctest.Optional, acctest.Create, IdentityDomainsSmtpCredentialRepresentation)) + acctest.ResourceTest(t, testAccCheckIdentityDomainsSmtpCredentialDestroy, []resource.TestStep{ + // verify Create + { + Config: config + compartmentIdVariableStr + IdentityDomainsSmtpCredentialResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_smtp_credential", "test_smtp_credential", acctest.Required, acctest.Create, IdentityDomainsSmtpCredentialRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttrSet(resourceName, "idcs_endpoint"), + resource.TestCheckResourceAttr(resourceName, "schemas.#", "1"), + ), + }, + + // delete before next Create + { + Config: config + compartmentIdVariableStr + IdentityDomainsSmtpCredentialResourceDependencies, + }, + // verify Create with optionals + { + Config: config + compartmentIdVariableStr + IdentityDomainsSmtpCredentialResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_smtp_credential", "test_smtp_credential", acctest.Optional, acctest.Create, IdentityDomainsSmtpCredentialRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(resourceName, "attribute_sets.#", "1"), + resource.TestCheckResourceAttr(resourceName, "description", "description"), + resource.TestCheckResourceAttr(resourceName, "expires_on", "2030-01-01T00:00:00Z"), + resource.TestCheckResourceAttrSet(resourceName, "id"), + resource.TestCheckResourceAttr(resourceName, "idcs_created_by.#", "1"), + resource.TestCheckResourceAttrSet(resourceName, "idcs_endpoint"), + resource.TestCheckResourceAttr(resourceName, "schemas.#", "1"), + resource.TestCheckResourceAttr(resourceName, "tags.#", "1"), + resource.TestCheckResourceAttr(resourceName, "tags.0.key", "key"), + resource.TestCheckResourceAttr(resourceName, "tags.0.value", "value"), + resource.TestCheckResourceAttr(resourceName, "user.#", "1"), + resource.TestCheckResourceAttrSet(resourceName, "user.0.value"), + resource.TestCheckResourceAttrSet(resourceName, "user_name"), + + func(s *terraform.State) (err error) { + resId, err = acctest.FromInstanceState(s, resourceName, "id") + idcsEndpoint, err := acctest.FromInstanceState(s, "data.oci_identity_domain.test_domain", "url") + if err != nil { + return err + } + + compositeId := getIdentityDomainsCompositeId(idcsEndpoint, "smtpCredentials", resId) + log.Printf("[DEBUG] Composite ID to import: %s", compositeId) + if isEnableExportCompartment, _ := strconv.ParseBool(utils.GetEnvSettingWithDefault("enable_export_compartment", "true")); isEnableExportCompartment { + if errExport := resourcediscovery.TestExportCompartmentWithResourceName(&compositeId, &compartmentId, resourceName); errExport != nil { + return errExport + } + } + return err + }, + ), + }, + + // verify datasource + { + Config: config + + acctest.GenerateDataSourceFromRepresentationMap("oci_identity_domains_smtp_credentials", "test_smtp_credentials", acctest.Optional, acctest.Update, IdentityDomainsIdentityDomainsSmtpCredentialDataSourceRepresentation) + + compartmentIdVariableStr + IdentityDomainsSmtpCredentialResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_smtp_credential", "test_smtp_credential", acctest.Optional, acctest.Update, IdentityDomainsSmtpCredentialRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(datasourceName, "smtp_credential_count", "10"), + resource.TestCheckResourceAttr(datasourceName, "start_index", "1"), + + resource.TestCheckResourceAttr(datasourceName, "smtp_credentials.#", "1"), + resource.TestCheckResourceAttr(datasourceName, "smtp_credentials.0.schemas.#", "1"), + ), + }, + // verify singular datasource + { + Config: config + + acctest.GenerateDataSourceFromRepresentationMap("oci_identity_domains_smtp_credential", "test_smtp_credential", acctest.Required, acctest.Create, IdentityDomainsIdentityDomainsSmtpCredentialSingularDataSourceRepresentation) + + compartmentIdVariableStr + IdentityDomainsSmtpCredentialResourceConfig, + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttrSet(singularDatasourceName, "idcs_endpoint"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "smtp_credential_id"), + + resource.TestCheckResourceAttr(singularDatasourceName, "description", "description"), + resource.TestCheckResourceAttr(singularDatasourceName, "expires_on", "2030-01-01T00:00:00Z"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "id"), + resource.TestCheckResourceAttr(singularDatasourceName, "idcs_created_by.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "schemas.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "user.#", "1"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "user.0.value"), + ), + }, + // verify resource import + { + Config: config + IdentityDomainsSmtpCredentialRequiredOnlyResource, + ImportState: true, + ImportStateVerify: true, + ImportStateIdFunc: getIdentityDomainsImportIdFn("oci_identity_domains_smtp_credential", "smtpCredentials"), + ImportStateVerifyIgnore: []string{ + "attribute_sets", + "attributes", + "authorization", + "idcs_endpoint", + "resource_type_schema_version", + "tags", + }, + ResourceName: resourceName, + }, + }) +} + +func testAccCheckIdentityDomainsSmtpCredentialDestroy(s *terraform.State) error { + noResourceFound := true + client := acctest.TestAccProvider.Meta().(*tf_client.OracleClients).IdentityDomainsClient() + for _, rs := range s.RootModule().Resources { + if rs.Type == "oci_identity_domains_smtp_credential" { + noResourceFound = false + request := oci_identity_domains.GetSmtpCredentialRequest{} + + if value, ok := rs.Primary.Attributes["authorization"]; ok { + request.Authorization = &value + } + + if value, ok := rs.Primary.Attributes["idcs_endpoint"]; ok { + client.Host = value + } + + if value, ok := rs.Primary.Attributes["resource_type_schema_version"]; ok { + request.ResourceTypeSchemaVersion = &value + } + + tmp := rs.Primary.ID + request.SmtpCredentialId = &tmp + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(true, "identity_domains") + + _, err := client.GetSmtpCredential(context.Background(), request) + + if err == nil { + return fmt.Errorf("resource still exists") + } + + //Verify that exception is for '404 not found'. + if failure, isServiceError := common.IsServiceError(err); !isServiceError || failure.GetHTTPStatusCode() != 404 { + return err + } + } + } + if noResourceFound { + return fmt.Errorf("at least one resource was expected from the state file, but could not be found") + } + + return nil +} + +func init() { + if acctest.DependencyGraph == nil { + acctest.InitDependencyGraph() + } + if !acctest.InSweeperExcludeList("IdentityDomainsSmtpCredential") { + resource.AddTestSweepers("IdentityDomainsSmtpCredential", &resource.Sweeper{ + Name: "IdentityDomainsSmtpCredential", + Dependencies: acctest.DependencyGraph["smtpCredential"], + F: sweepIdentityDomainsSmtpCredentialResource, + }) + } +} + +func sweepIdentityDomainsSmtpCredentialResource(compartment string) error { + identityDomainsClient := acctest.GetTestClients(&schema.ResourceData{}).IdentityDomainsClient() + smtpCredentialIds, err := getIdentityDomainsSmtpCredentialIds(compartment) + if err != nil { + return err + } + for _, smtpCredentialId := range smtpCredentialIds { + if ok := acctest.SweeperDefaultResourceId[smtpCredentialId]; !ok { + deleteSmtpCredentialRequest := oci_identity_domains.DeleteSmtpCredentialRequest{} + + deleteSmtpCredentialRequest.SmtpCredentialId = &smtpCredentialId + + deleteSmtpCredentialRequest.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(true, "identity_domains") + _, error := identityDomainsClient.DeleteSmtpCredential(context.Background(), deleteSmtpCredentialRequest) + if error != nil { + fmt.Printf("Error deleting SmtpCredential %s %s, It is possible that the resource is already deleted. Please verify manually \n", smtpCredentialId, error) + continue + } + } + } + return nil +} + +func getIdentityDomainsSmtpCredentialIds(compartment string) ([]string, error) { + ids := acctest.GetResourceIdsToSweep(compartment, "SmtpCredentialId") + if ids != nil { + return ids, nil + } + var resourceIds []string + compartmentId := compartment + identityDomainsClient := acctest.GetTestClients(&schema.ResourceData{}).IdentityDomainsClient() + + listSmtpCredentialsRequest := oci_identity_domains.ListSmtpCredentialsRequest{} + listSmtpCredentialsResponse, err := identityDomainsClient.ListSmtpCredentials(context.Background(), listSmtpCredentialsRequest) + + if err != nil { + return resourceIds, fmt.Errorf("Error getting SmtpCredential list for compartment id : %s , %s \n", compartmentId, err) + } + for _, smtpCredential := range listSmtpCredentialsResponse.Resources { + id := *smtpCredential.Id + resourceIds = append(resourceIds, id) + acctest.AddResourceIdToSweeperResourceIdMap(compartmentId, "SmtpCredentialId", id) + } + return resourceIds, nil +} diff --git a/internal/integrationtest/identity_domains_test_helpers.go b/internal/integrationtest/identity_domains_test_helpers.go new file mode 100644 index 00000000000..f23983575e6 --- /dev/null +++ b/internal/integrationtest/identity_domains_test_helpers.go @@ -0,0 +1,37 @@ +package integrationtest + +import ( + "fmt" + + "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + + "github.com/oracle/terraform-provider-oci/internal/utils" +) + +// by default is terraformtest-donottouch domain in domainsuxtest tenancy (YYZ) +var domainId = utils.GetEnvSettingWithDefault("identity_domain_id", "ocid1.domain.oc1..aaaaaaaanjdr33uufgat3t7mftmfo6qeggs3mgu43whydson2eeqtqoijaxq") +var domainIdVariableStr = fmt.Sprintf("variable \"domain_id\" { default = \"%s\" }\n", domainId) +var TestDomainDependencies = domainIdVariableStr + ` + data "oci_identity_domain" "test_domain" { + domain_id = "${var.domain_id}" + } + ` + +func getIdentityDomainsCompositeId(idcsEndpoint string, resourceName string, resId string) string { + // e.g. idcsEndpoint/https://something.com/groups/{groupId} + return fmt.Sprintf("idcsEndpoint/%s/%s/%s", idcsEndpoint, resourceName, resId) +} + +func getIdentityDomainsImportIdFn(typeName string, resourceName string) func(*terraform.State) (string, error) { + return func(state *terraform.State) (string, error) { + for _, rs := range state.RootModule().Resources { + idcsEndpoint := rs.Primary.Attributes["idcs_endpoint"] + id := rs.Primary.ID + if rs.Type == typeName { + return getIdentityDomainsCompositeId(idcsEndpoint, resourceName, id), nil + } + } + + return "", fmt.Errorf("[ERROR] unable to Create import id as no resource of type %s in state", typeName) + } +} diff --git a/internal/integrationtest/identity_domains_user_db_credential_test.go b/internal/integrationtest/identity_domains_user_db_credential_test.go new file mode 100644 index 00000000000..39b402b9b6a --- /dev/null +++ b/internal/integrationtest/identity_domains_user_db_credential_test.go @@ -0,0 +1,325 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package integrationtest + +import ( + "context" + "fmt" + "log" + "strconv" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + "github.com/oracle/terraform-provider-oci/internal/resourcediscovery" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + "github.com/oracle/oci-go-sdk/v65/common" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/httpreplay" + "github.com/oracle/terraform-provider-oci/internal/acctest" + tf_client "github.com/oracle/terraform-provider-oci/internal/client" + + "github.com/oracle/terraform-provider-oci/internal/tfresource" + "github.com/oracle/terraform-provider-oci/internal/utils" +) + +var ( + IdentityDomainsUserDbCredentialRequiredOnlyResource = IdentityDomainsUserDbCredentialResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_user_db_credential", "test_user_db_credential", acctest.Required, acctest.Create, IdentityDomainsUserDbCredentialRepresentation) + + IdentityDomainsUserDbCredentialResourceConfig = IdentityDomainsUserDbCredentialResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_user_db_credential", "test_user_db_credential", acctest.Optional, acctest.Update, IdentityDomainsUserDbCredentialRepresentation) + + IdentityDomainsIdentityDomainsUserDbCredentialSingularDataSourceRepresentation = map[string]interface{}{ + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "user_db_credential_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_identity_domains_user_db_credential.test_user_db_credential.id}`}, + "attribute_sets": acctest.Representation{RepType: acctest.Optional, Create: []string{`all`}}, + } + + IdentityDomainsIdentityDomainsUserDbCredentialDataSourceRepresentation = map[string]interface{}{ + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "user_db_credential_count": acctest.Representation{RepType: acctest.Optional, Create: `10`}, + "user_db_credential_filter": acctest.Representation{RepType: acctest.Optional, Create: `user.value eq \"${oci_identity_domains_user.test_user.id}\"`}, + "attribute_sets": acctest.Representation{RepType: acctest.Optional, Create: []string{`all`}}, + "start_index": acctest.Representation{RepType: acctest.Optional, Create: `1`}, + } + + IdentityDomainsUserDbCredentialRepresentation = map[string]interface{}{ + "db_password": acctest.Representation{RepType: acctest.Required, Create: `dbPassword123456`}, + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "schemas": acctest.Representation{RepType: acctest.Required, Create: []string{`urn:ietf:params:scim:schemas:oracle:idcs:UserDbCredentials`}}, + "attribute_sets": acctest.Representation{RepType: acctest.Optional, Create: []string{`all`}}, + "description": acctest.Representation{RepType: acctest.Optional, Create: `description`}, + "expires_on": acctest.Representation{RepType: acctest.Optional, Create: `2030-01-01T00:00:00Z`}, + "status": acctest.Representation{RepType: acctest.Optional, Create: `ACTIVE`}, + "tags": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsUserDbCredentialTagsRepresentation}, + "urnietfparamsscimschemasoracleidcsextensionself_change_user": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsUserDbCredentialUrnietfparamsscimschemasoracleidcsextensionselfChangeUserRepresentation}, + "user": acctest.RepresentationGroup{RepType: acctest.Required, Group: IdentityDomainsUserDbCredentialUserRepresentation}, + "lifecycle": acctest.RepresentationGroup{RepType: acctest.Required, Group: ignoreChangeForIdentityDomainsUserDbCredential}, + } + + ignoreChangeForIdentityDomainsUserDbCredential = map[string]interface{}{ + "ignore_changes": acctest.Representation{RepType: acctest.Required, Create: []string{ + // properties that are `returned:never` + `status`, + `urnietfparamsscimschemasoracleidcsextensionself_change_user`, + `db_password`, + }}, + } + IdentityDomainsUserDbCredentialTagsRepresentation = map[string]interface{}{ + "key": acctest.Representation{RepType: acctest.Required, Create: `key`}, + "value": acctest.Representation{RepType: acctest.Required, Create: `value`}, + } + IdentityDomainsUserDbCredentialUrnietfparamsscimschemasoracleidcsextensionselfChangeUserRepresentation = map[string]interface{}{ + "allow_self_change": acctest.Representation{RepType: acctest.Optional, Create: `false`}, + } + IdentityDomainsUserDbCredentialUserRepresentation = map[string]interface{}{ + "value": acctest.Representation{RepType: acctest.Required, Create: `${oci_identity_domains_user.test_user.id}`}, + } + + IdentityDomainsUserDbCredentialResourceDependencies = TestDomainDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_user", "test_user", acctest.Required, acctest.Create, + acctest.RepresentationCopyWithNewProperties(IdentityDomainsUserRepresentation, map[string]interface{}{ + "urnietfparamsscimschemasoracleidcsextensiondb_credentials_user": acctest.RepresentationGroup{RepType: acctest.Required, Group: TestDbUserName}, + "lifecycle": acctest.RepresentationGroup{RepType: acctest.Required, Group: ignoreChangeForTestDbUserNameUser}, + })) + + TestDbUserName = map[string]interface{}{"db_user_name": acctest.Representation{RepType: acctest.Required, Create: `dbUserName`}} + ignoreChangeForTestDbUserNameUser = map[string]interface{}{ + "ignore_changes": acctest.Representation{RepType: acctest.Required, Create: []string{`emails`, `schemas`, `urnietfparamsscimschemasoracleidcsextensiondb_credentials_user`}}, + } +) + +// issue-routing-tag: identity_domains/default +func TestIdentityDomainsUserDbCredentialResource_basic(t *testing.T) { + httpreplay.SetScenario("TestIdentityDomainsUserDbCredentialResource_basic") + defer httpreplay.SaveScenario() + + config := acctest.ProviderTestConfig() + + compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid") + compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId) + + resourceName := "oci_identity_domains_user_db_credential.test_user_db_credential" + datasourceName := "data.oci_identity_domains_user_db_credentials.test_user_db_credentials" + singularDatasourceName := "data.oci_identity_domains_user_db_credential.test_user_db_credential" + + var resId string + // Save TF content to Create resource with optional properties. This has to be exactly the same as the config part in the "create with optionals" step in the test. + acctest.SaveConfigContent(config+compartmentIdVariableStr+IdentityDomainsUserDbCredentialResourceDependencies+ + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_user_db_credential", "test_user_db_credential", acctest.Optional, acctest.Create, IdentityDomainsUserDbCredentialRepresentation), "identitydomains", "userDbCredential", t) + + print(config + compartmentIdVariableStr + IdentityDomainsUserDbCredentialResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_user_db_credential", "test_user_db_credential", acctest.Optional, acctest.Create, IdentityDomainsUserDbCredentialRepresentation)) + acctest.ResourceTest(t, testAccCheckIdentityDomainsUserDbCredentialDestroy, []resource.TestStep{ + // verify Create + { + Config: config + compartmentIdVariableStr + IdentityDomainsUserDbCredentialResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_user_db_credential", "test_user_db_credential", acctest.Required, acctest.Create, IdentityDomainsUserDbCredentialRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttrSet(resourceName, "db_password"), + resource.TestCheckResourceAttrSet(resourceName, "idcs_endpoint"), + resource.TestCheckResourceAttr(resourceName, "schemas.#", "1"), + ), + }, + + // delete before next Create + { + Config: config + compartmentIdVariableStr + IdentityDomainsUserDbCredentialResourceDependencies, + }, + // verify Create with optionals + { + Config: config + compartmentIdVariableStr + IdentityDomainsUserDbCredentialResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_user_db_credential", "test_user_db_credential", acctest.Optional, acctest.Create, IdentityDomainsUserDbCredentialRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(resourceName, "attribute_sets.#", "1"), + resource.TestCheckResourceAttrSet(resourceName, "db_password"), + resource.TestCheckResourceAttr(resourceName, "description", "description"), + resource.TestCheckResourceAttr(resourceName, "expires_on", "2030-01-01T00:00:00Z"), + resource.TestCheckResourceAttrSet(resourceName, "id"), + resource.TestCheckResourceAttr(resourceName, "idcs_created_by.#", "1"), + resource.TestCheckResourceAttrSet(resourceName, "idcs_endpoint"), + resource.TestCheckResourceAttr(resourceName, "schemas.#", "1"), + resource.TestCheckResourceAttr(resourceName, "tags.#", "1"), + resource.TestCheckResourceAttr(resourceName, "tags.0.key", "key"), + resource.TestCheckResourceAttr(resourceName, "tags.0.value", "value"), + resource.TestCheckResourceAttr(resourceName, "user.#", "1"), + resource.TestCheckResourceAttrSet(resourceName, "user.0.value"), + + func(s *terraform.State) (err error) { + resId, err = acctest.FromInstanceState(s, resourceName, "id") + idcsEndpoint, err := acctest.FromInstanceState(s, "data.oci_identity_domain.test_domain", "url") + if err != nil { + return err + } + + compositeId := getIdentityDomainsCompositeId(idcsEndpoint, "userDbCredentials", resId) + log.Printf("[DEBUG] Composite ID to import: %s", compositeId) + if isEnableExportCompartment, _ := strconv.ParseBool(utils.GetEnvSettingWithDefault("enable_export_compartment", "true")); isEnableExportCompartment { + if errExport := resourcediscovery.TestExportCompartmentWithResourceName(&compositeId, &compartmentId, resourceName); errExport != nil { + return errExport + } + } + return err + }, + ), + }, + + // verify datasource + { + Config: config + + acctest.GenerateDataSourceFromRepresentationMap("oci_identity_domains_user_db_credentials", "test_user_db_credentials", acctest.Optional, acctest.Update, IdentityDomainsIdentityDomainsUserDbCredentialDataSourceRepresentation) + + compartmentIdVariableStr + IdentityDomainsUserDbCredentialResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_user_db_credential", "test_user_db_credential", acctest.Optional, acctest.Update, IdentityDomainsUserDbCredentialRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(datasourceName, "user_db_credential_count", "10"), + resource.TestCheckResourceAttr(datasourceName, "attribute_sets.#", "1"), + resource.TestCheckResourceAttr(datasourceName, "start_index", "1"), + + resource.TestCheckResourceAttr(datasourceName, "user_db_credentials.#", "1"), + resource.TestCheckResourceAttr(datasourceName, "user_db_credentials.0.schemas.#", "1"), + ), + }, + // verify singular datasource + { + Config: config + + acctest.GenerateDataSourceFromRepresentationMap("oci_identity_domains_user_db_credential", "test_user_db_credential", acctest.Required, acctest.Create, IdentityDomainsIdentityDomainsUserDbCredentialSingularDataSourceRepresentation) + + compartmentIdVariableStr + IdentityDomainsUserDbCredentialResourceConfig, + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttrSet(singularDatasourceName, "idcs_endpoint"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "user_db_credential_id"), + + resource.TestCheckResourceAttrSet(singularDatasourceName, "db_password"), + resource.TestCheckResourceAttr(singularDatasourceName, "description", "description"), + resource.TestCheckResourceAttr(singularDatasourceName, "expires_on", "2030-01-01T00:00:00Z"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "id"), + resource.TestCheckResourceAttr(singularDatasourceName, "idcs_created_by.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "schemas.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "user.#", "1"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "user.0.value"), + ), + }, + // verify resource import + { + Config: config + IdentityDomainsUserDbCredentialRequiredOnlyResource, + ImportState: true, + ImportStateVerify: true, + ImportStateIdFunc: getIdentityDomainsImportIdFn("oci_identity_domains_user_db_credential", "userDbCredentials"), + ImportStateVerifyIgnore: []string{ + "attribute_sets", + "attributes", + "authorization", + "idcs_endpoint", + "resource_type_schema_version", + "tags", + }, + ResourceName: resourceName, + }, + }) +} + +func testAccCheckIdentityDomainsUserDbCredentialDestroy(s *terraform.State) error { + noResourceFound := true + client := acctest.TestAccProvider.Meta().(*tf_client.OracleClients).IdentityDomainsClient() + for _, rs := range s.RootModule().Resources { + if rs.Type == "oci_identity_domains_user_db_credential" { + noResourceFound = false + request := oci_identity_domains.GetUserDbCredentialRequest{} + + if value, ok := rs.Primary.Attributes["authorization"]; ok { + request.Authorization = &value + } + + if value, ok := rs.Primary.Attributes["idcs_endpoint"]; ok { + client.Host = value + } + + if value, ok := rs.Primary.Attributes["resource_type_schema_version"]; ok { + request.ResourceTypeSchemaVersion = &value + } + + tmp := rs.Primary.ID + request.UserDbCredentialId = &tmp + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(true, "identity_domains") + + _, err := client.GetUserDbCredential(context.Background(), request) + + if err == nil { + return fmt.Errorf("resource still exists") + } + + //Verify that exception is for '404 not found'. + if failure, isServiceError := common.IsServiceError(err); !isServiceError || failure.GetHTTPStatusCode() != 404 { + return err + } + } + } + if noResourceFound { + return fmt.Errorf("at least one resource was expected from the state file, but could not be found") + } + + return nil +} + +func init() { + if acctest.DependencyGraph == nil { + acctest.InitDependencyGraph() + } + if !acctest.InSweeperExcludeList("IdentityDomainsUserDbCredential") { + resource.AddTestSweepers("IdentityDomainsUserDbCredential", &resource.Sweeper{ + Name: "IdentityDomainsUserDbCredential", + Dependencies: acctest.DependencyGraph["userDbCredential"], + F: sweepIdentityDomainsUserDbCredentialResource, + }) + } +} + +func sweepIdentityDomainsUserDbCredentialResource(compartment string) error { + identityDomainsClient := acctest.GetTestClients(&schema.ResourceData{}).IdentityDomainsClient() + userDbCredentialIds, err := getIdentityDomainsUserDbCredentialIds(compartment) + if err != nil { + return err + } + for _, userDbCredentialId := range userDbCredentialIds { + if ok := acctest.SweeperDefaultResourceId[userDbCredentialId]; !ok { + deleteUserDbCredentialRequest := oci_identity_domains.DeleteUserDbCredentialRequest{} + + deleteUserDbCredentialRequest.UserDbCredentialId = &userDbCredentialId + + deleteUserDbCredentialRequest.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(true, "identity_domains") + _, error := identityDomainsClient.DeleteUserDbCredential(context.Background(), deleteUserDbCredentialRequest) + if error != nil { + fmt.Printf("Error deleting UserDbCredential %s %s, It is possible that the resource is already deleted. Please verify manually \n", userDbCredentialId, error) + continue + } + } + } + return nil +} + +func getIdentityDomainsUserDbCredentialIds(compartment string) ([]string, error) { + ids := acctest.GetResourceIdsToSweep(compartment, "UserDbCredentialId") + if ids != nil { + return ids, nil + } + var resourceIds []string + compartmentId := compartment + identityDomainsClient := acctest.GetTestClients(&schema.ResourceData{}).IdentityDomainsClient() + + listUserDbCredentialsRequest := oci_identity_domains.ListUserDbCredentialsRequest{} + listUserDbCredentialsResponse, err := identityDomainsClient.ListUserDbCredentials(context.Background(), listUserDbCredentialsRequest) + + if err != nil { + return resourceIds, fmt.Errorf("Error getting UserDbCredential list for compartment id : %s , %s \n", compartmentId, err) + } + for _, userDbCredential := range listUserDbCredentialsResponse.Resources { + id := *userDbCredential.Id + resourceIds = append(resourceIds, id) + acctest.AddResourceIdToSweeperResourceIdMap(compartmentId, "UserDbCredentialId", id) + } + return resourceIds, nil +} diff --git a/internal/integrationtest/identity_domains_user_test.go b/internal/integrationtest/identity_domains_user_test.go new file mode 100644 index 00000000000..ce5651cb84d --- /dev/null +++ b/internal/integrationtest/identity_domains_user_test.go @@ -0,0 +1,819 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package integrationtest + +import ( + "context" + "fmt" + "log" + "regexp" + "strconv" + "testing" + + "github.com/oracle/terraform-provider-oci/internal/resourcediscovery" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + "github.com/oracle/oci-go-sdk/v65/common" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/httpreplay" + "github.com/oracle/terraform-provider-oci/internal/acctest" + tf_client "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" + "github.com/oracle/terraform-provider-oci/internal/utils" +) + +var ( + IdentityDomainsUserRequiredOnlyResource = acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_user", "test_user", acctest.Required, acctest.Create, + acctest.RepresentationCopyWithNewProperties(acctest.RepresentationCopyWithRemovedProperties(IdentityDomainsUserRepresentation, []string{"password"}), map[string]interface{}{ + "password": acctest.Representation{RepType: acctest.Required, Create: `toBeIgnored_#15`}, + }), + ) + + IdentityDomainsUserResourceConfig = IdentityDomainsUserResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_user", "test_user", acctest.Optional, acctest.Update, IdentityDomainsUserRepresentation) + + IdentityDomainsIdentityDomainsUserSingularDataSourceRepresentation = map[string]interface{}{ + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "user_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_identity_domains_user.test_user.id}`}, + "attribute_sets": acctest.Representation{RepType: acctest.Optional, Create: []string{`all`}}, + } + + IdentityDomainsIdentityDomainsUserDataSourceRepresentation = map[string]interface{}{ + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "user_count": acctest.Representation{RepType: acctest.Optional, Create: `10`}, + "user_filter": acctest.Representation{RepType: acctest.Optional, Create: `userName sw \"userName\"`}, + "attribute_sets": acctest.Representation{RepType: acctest.Optional, Create: []string{`all`}}, + "start_index": acctest.Representation{RepType: acctest.Optional, Create: `1`}, + } + + IdentityDomainsUserRepresentation = map[string]interface{}{ + "idcs_endpoint": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_identity_domain.test_domain.url}`}, + "name": acctest.RepresentationGroup{RepType: acctest.Required, Group: IdentityDomainsUserNameRepresentation}, + "schemas": acctest.Representation{RepType: acctest.Required, Create: []string{`urn:ietf:params:scim:schemas:core:2.0:User`}}, + "user_name": acctest.Representation{RepType: acctest.Required, Create: `userName`}, + "active": acctest.Representation{RepType: acctest.Optional, Create: `true`}, + "addresses": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsUserAddressesRepresentation}, + "attribute_sets": acctest.Representation{RepType: acctest.Optional, Create: []string{`all`}}, + "description": acctest.Representation{RepType: acctest.Optional, Create: `description`, Update: `description2`}, + "display_name": acctest.Representation{RepType: acctest.Optional, Create: `displayName`, Update: `displayName2`}, + "emails": acctest.RepresentationGroup{RepType: acctest.Required, Group: IdentityDomainsUserEmailsRepresentation}, + "entitlements": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsUserEntitlementsRepresentation}, + "external_id": acctest.Representation{RepType: acctest.Optional, Create: `externalId`}, + "ims": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsUserImsRepresentation}, + "locale": acctest.Representation{RepType: acctest.Optional, Create: `en`, Update: `es`}, + "nick_name": acctest.Representation{RepType: acctest.Optional, Create: `nickName`, Update: `nickName2`}, + "password": acctest.Representation{RepType: acctest.Optional, Create: `BEstrO0ng_#11`, Update: `BEstrO0ng_#12`}, + "phone_numbers": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsUserPhoneNumbersRepresentation}, + "photos": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsUserPhotosRepresentation}, + "preferred_language": acctest.Representation{RepType: acctest.Optional, Create: `en`, Update: `es`}, + "profile_url": acctest.Representation{RepType: acctest.Optional, Create: `https://profileUrl.com`, Update: `https://profileUrl2.com`}, + "roles": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsUserRolesRepresentation}, + "tags": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsUserTagsRepresentation}, + "timezone": acctest.Representation{RepType: acctest.Optional, Create: `America/Los_Angeles`, Update: `America/Vancouver`}, + "title": acctest.Representation{RepType: acctest.Optional, Create: `title`, Update: `title2`}, + "urnietfparamsscimschemasextensionenterprise20user": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsUserUrnietfparamsscimschemasextensionenterprise20UserRepresentation}, + "urnietfparamsscimschemasoracleidcsextension_oci_tags": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsUserUrnietfparamsscimschemasoracleidcsextensionOCITagsRepresentation}, + "urnietfparamsscimschemasoracleidcsextensionadaptive_user": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsUserUrnietfparamsscimschemasoracleidcsextensionadaptiveUserRepresentation}, + "urnietfparamsscimschemasoracleidcsextensioncapabilities_user": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsUserUrnietfparamsscimschemasoracleidcsextensioncapabilitiesUserRepresentation}, + "urnietfparamsscimschemasoracleidcsextensiondb_credentials_user": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsUserUrnietfparamsscimschemasoracleidcsextensiondbCredentialsUserRepresentation}, + "urnietfparamsscimschemasoracleidcsextensionpasswordless_user": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsUserUrnietfparamsscimschemasoracleidcsextensionpasswordlessUserRepresentation}, + "urnietfparamsscimschemasoracleidcsextensionposix_user": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsUserUrnietfparamsscimschemasoracleidcsextensionposixUserRepresentation}, + "urnietfparamsscimschemasoracleidcsextensionself_change_user": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsUserUrnietfparamsscimschemasoracleidcsextensionselfChangeUserRepresentation}, + "urnietfparamsscimschemasoracleidcsextensionsff_user": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsUserUrnietfparamsscimschemasoracleidcsextensionsffUserRepresentation}, + "urnietfparamsscimschemasoracleidcsextensionuser_state_user": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsUserUrnietfparamsscimschemasoracleidcsextensionuserStateUserRepresentation}, + "urnietfparamsscimschemasoracleidcsextensionuser_user": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsUserUrnietfparamsscimschemasoracleidcsextensionuserUserRepresentation}, + "user_type": acctest.Representation{RepType: acctest.Optional, Create: `Contractor`, Update: `Employee`}, + "x509certificates": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsUserX509CertificatesRepresentation}, + "lifecycle": acctest.RepresentationGroup{RepType: acctest.Required, Group: ignoreChangeForIdentityDomainsUser}, + } + + ignoreChangeForIdentityDomainsUser = map[string]interface{}{ + "ignore_changes": acctest.Representation{RepType: acctest.Required, Create: []string{ + `urnietfparamsscimschemasoracleidcsextension_oci_tags[0].defined_tags`, + `emails`, + `schemas`, + `urnietfparamsscimschemasoracleidcsextensionself_change_user`, + `urnietfparamsscimschemasoracleidcsextensionsecurity_questions_user[0].sec_questions`, + }}, + } + + IdentityDomainsUserNameRepresentation = map[string]interface{}{ + "family_name": acctest.Representation{RepType: acctest.Required, Create: `familyName`, Update: `familyName2`}, + "formatted": acctest.Representation{RepType: acctest.Optional, Create: `formatted`, Update: `formatted2`}, + "given_name": acctest.Representation{RepType: acctest.Optional, Create: `givenName`, Update: `givenName2`}, + "honorific_prefix": acctest.Representation{RepType: acctest.Optional, Create: `honorificPrefix`, Update: `honorificPrefix2`}, + "honorific_suffix": acctest.Representation{RepType: acctest.Optional, Create: `honorificSuffix`, Update: `honorificSuffix2`}, + "middle_name": acctest.Representation{RepType: acctest.Optional, Create: `middleName`, Update: `middleName2`}, + } + IdentityDomainsUserAddressesRepresentation = map[string]interface{}{ + "type": acctest.Representation{RepType: acctest.Required, Create: `work`, Update: `home`}, + "country": acctest.Representation{RepType: acctest.Optional, Create: `us`, Update: `gb`}, + "formatted": acctest.Representation{RepType: acctest.Optional, Create: `formatted`, Update: `formatted2`}, + "locality": acctest.Representation{RepType: acctest.Optional, Create: `locality`, Update: `locality2`}, + "postal_code": acctest.Representation{RepType: acctest.Optional, Create: `postalCode`, Update: `postalCode2`}, + "primary": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `true`}, + "region": acctest.Representation{RepType: acctest.Optional, Create: `region`, Update: `region2`}, + "street_address": acctest.Representation{RepType: acctest.Optional, Create: `streetAddress`, Update: `streetAddress2`}, + } + IdentityDomainsUserEmailsRepresentation = map[string]interface{}{ + "type": acctest.Representation{RepType: acctest.Required, Create: `work`, Update: `home`}, + "value": acctest.Representation{RepType: acctest.Required, Create: `value@email.com`, Update: `value2@email.com`}, + "primary": acctest.Representation{RepType: acctest.Required, Create: `true`}, + "secondary": acctest.Representation{RepType: acctest.Optional, Create: `false`}, + "verified": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `true`}, + } + IdentityDomainsUserEntitlementsRepresentation = map[string]interface{}{ + "type": acctest.Representation{RepType: acctest.Required, Create: `type`, Update: `type2`}, + "value": acctest.Representation{RepType: acctest.Required, Create: `value`, Update: `value2`}, + "display": acctest.Representation{RepType: acctest.Optional, Create: `display`, Update: `display2`}, + "primary": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `true`}, + } + IdentityDomainsUserImsRepresentation = map[string]interface{}{ + "type": acctest.Representation{RepType: acctest.Required, Create: `aim`, Update: `gtalk`}, + "value": acctest.Representation{RepType: acctest.Required, Create: `value`, Update: `value2`}, + "display": acctest.Representation{RepType: acctest.Optional, Create: `display`, Update: `display2`}, + "primary": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `true`}, + } + IdentityDomainsUserPhoneNumbersRepresentation = map[string]interface{}{ + "type": acctest.Representation{RepType: acctest.Required, Create: `work`, Update: `home`}, + "value": acctest.Representation{RepType: acctest.Required, Create: `1112223333`, Update: `1112223334`}, + "primary": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `true`}, + } + IdentityDomainsUserPhotosRepresentation = map[string]interface{}{ + "type": acctest.Representation{RepType: acctest.Required, Create: `photo`, Update: `thumbnail`}, + "value": acctest.Representation{RepType: acctest.Required, Create: `https://value.com`, Update: `https://value2.com`}, + "display": acctest.Representation{RepType: acctest.Optional, Create: `display`, Update: `display2`}, + "primary": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `true`}, + } + IdentityDomainsUserRolesRepresentation = map[string]interface{}{ + "type": acctest.Representation{RepType: acctest.Required, Create: `type`, Update: `type2`}, + "value": acctest.Representation{RepType: acctest.Required, Create: `value`, Update: `value2`}, + "display": acctest.Representation{RepType: acctest.Optional, Create: `display`, Update: `display2`}, + "primary": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `true`}, + } + IdentityDomainsUserTagsRepresentation = map[string]interface{}{ + "key": acctest.Representation{RepType: acctest.Required, Create: `key`, Update: `key2`}, + "value": acctest.Representation{RepType: acctest.Required, Create: `value`, Update: `value2`}, + } + IdentityDomainsUserUrnietfparamsscimschemasextensionenterprise20UserRepresentation = map[string]interface{}{ + "cost_center": acctest.Representation{RepType: acctest.Optional, Create: `costCenter`, Update: `costCenter2`}, + "department": acctest.Representation{RepType: acctest.Optional, Create: `department`, Update: `department2`}, + "division": acctest.Representation{RepType: acctest.Optional, Create: `division`, Update: `division2`}, + "employee_number": acctest.Representation{RepType: acctest.Optional, Create: `employeeNumber`, Update: `employeeNumber2`}, + "manager": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsUserUrnietfparamsscimschemasextensionenterprise20UserManagerRepresentation}, + "organization": acctest.Representation{RepType: acctest.Optional, Create: `organization`, Update: `organization2`}, + } + IdentityDomainsUserUrnietfparamsscimschemasoracleidcsextensionOCITagsRepresentation = map[string]interface{}{ + "defined_tags": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsUserUrnietfparamsscimschemasoracleidcsextensionOCITagsDefinedTagsRepresentation}, + "freeform_tags": acctest.RepresentationGroup{RepType: acctest.Optional, Group: IdentityDomainsUserUrnietfparamsscimschemasoracleidcsextensionOCITagsFreeformTagsRepresentation}, + } + IdentityDomainsUserUrnietfparamsscimschemasoracleidcsextensionadaptiveUserRepresentation = map[string]interface{}{ + "risk_level": acctest.Representation{RepType: acctest.Optional, Create: `LOW`, Update: `MEDIUM`}, + } + IdentityDomainsUserUrnietfparamsscimschemasoracleidcsextensioncapabilitiesUserRepresentation = map[string]interface{}{ + "can_use_api_keys": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `true`}, + "can_use_auth_tokens": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `true`}, + "can_use_console_password": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `true`}, + "can_use_customer_secret_keys": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `true`}, + "can_use_db_credentials": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `true`}, + "can_use_oauth2client_credentials": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `true`}, + "can_use_smtp_credentials": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `true`}, + } + IdentityDomainsUserUrnietfparamsscimschemasoracleidcsextensiondbCredentialsUserRepresentation = map[string]interface{}{ + "db_user_name": acctest.Representation{RepType: acctest.Optional, Create: `dbUserName`}, + } + IdentityDomainsUserUrnietfparamsscimschemasoracleidcsextensionpasswordlessUserRepresentation = map[string]interface{}{ + "factor_method": acctest.Representation{RepType: acctest.Optional, Create: `factorMethod`, Update: `factorMethod2`}, + "factor_type": acctest.Representation{RepType: acctest.Optional, Create: `EMAIL`, Update: `SMS`}, + } + IdentityDomainsUserUrnietfparamsscimschemasoracleidcsextensionposixUserRepresentation = map[string]interface{}{ + "gecos": acctest.Representation{RepType: acctest.Optional, Create: `gecos`, Update: `gecos2`}, + "home_directory": acctest.Representation{RepType: acctest.Optional, Create: `homeDirectory`, Update: `homeDirectory2`}, + "login_shell": acctest.Representation{RepType: acctest.Optional, Create: `loginShell`, Update: `loginShell2`}, + "uid_number": acctest.Representation{RepType: acctest.Optional, Create: `500`, Update: `501`}, + } + IdentityDomainsUserUrnietfparamsscimschemasoracleidcsextensionselfChangeUserRepresentation = map[string]interface{}{ + "allow_self_change": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `true`}, + } + IdentityDomainsUserUrnietfparamsscimschemasoracleidcsextensionsffUserRepresentation = map[string]interface{}{ + "sff_auth_keys": acctest.Representation{RepType: acctest.Optional, Create: `sffAuthKeys`, Update: `sffAuthKeys2`}, + } + IdentityDomainsUserUrnietfparamsscimschemasoracleidcsextensionuserStateUserRepresentation = map[string]interface{}{ + "max_concurrent_sessions": acctest.Representation{RepType: acctest.Optional, Create: `10`, Update: `11`}, + } + IdentityDomainsUserUrnietfparamsscimschemasoracleidcsextensionuserUserRepresentation = map[string]interface{}{ + "user_provider": acctest.Representation{RepType: acctest.Optional, Create: `facebook`}, + "account_recovery_required": acctest.Representation{RepType: acctest.Optional, Create: `true`}, + "bypass_notification": acctest.Representation{RepType: acctest.Optional, Create: `false`}, + "creation_mechanism": acctest.Representation{RepType: acctest.Optional, Create: `api`}, + "do_not_show_getting_started": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `true`}, + "is_authentication_delegated": acctest.Representation{RepType: acctest.Optional, Create: `false`}, + "is_federated_user": acctest.Representation{RepType: acctest.Optional, Create: `false`}, + "is_group_membership_normalized": acctest.Representation{RepType: acctest.Optional, Create: `false`}, + "user_flow_controlled_by_external_client": acctest.Representation{RepType: acctest.Optional, Create: `false`}, + "is_group_membership_synced_to_users_groups": acctest.Representation{RepType: acctest.Optional, Create: `false`}, + } + IdentityDomainsUserX509CertificatesRepresentation = map[string]interface{}{ + "value": acctest.Representation{RepType: acctest.Required, Create: `MIIBPDCB56ADAgECAhAucicVzKJi9WsJknMUyFhRMA0GCSqGSIb3DQEBBAUAMA4xDDAKBgNVBAMTA29pZDAeFw0wNDA1MjUwMDEwMjNaFw0wNDExMjEwMDEwMjNaMDExCzAJBgNVBAYTAnVzMQwwCgYDVQQKEwNJTUMxFDASBgNVBAMTC0thbCBCYWlsZXlzMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMqsqm5/ZE2Fy57YmUNC6Lc6j70z+DNhmCADhsxpA4DXwrOkDDaIpAXG45y4NvsImjjpaFGxSE0upxBIQAHj9CMCAwEAATANBgkqhkiG9w0BAQQFAANBAGktTIBlB3VyN+7a9mRzdeYgS8ZwVsee1iGVRHCTfF1quxtVyWVwMX0dxffwz6pK0Pm3bV7uiEVu5qf3rO1hYSE=`}, + "display": acctest.Representation{RepType: acctest.Optional, Create: `display`, Update: `display2`}, + "primary": acctest.Representation{RepType: acctest.Optional, Create: `false`, Update: `true`}, + "type": acctest.Representation{RepType: acctest.Optional, Create: `type`, Update: `type2`}, + } + IdentityDomainsUserUrnietfparamsscimschemasextensionenterprise20UserManagerRepresentation = map[string]interface{}{ + "value": acctest.Representation{RepType: acctest.Optional, Create: `${oci_identity_domains_user.test_user_manager.id}`}, + } + IdentityDomainsUserUrnietfparamsscimschemasoracleidcsextensionOCITagsDefinedTagsRepresentation = map[string]interface{}{ + "key": acctest.Representation{RepType: acctest.Required, Create: `${oci_identity_tag.tag1.name}`}, + "namespace": acctest.Representation{RepType: acctest.Required, Create: `${oci_identity_tag_namespace.tag-namespace1.name}`}, + "value": acctest.Representation{RepType: acctest.Required, Create: `value`, Update: `value2`}, + } + IdentityDomainsUserUrnietfparamsscimschemasoracleidcsextensionOCITagsFreeformTagsRepresentation = map[string]interface{}{ + "key": acctest.Representation{RepType: acctest.Required, Create: `freeformKey`, Update: `freeformKey2`}, + "value": acctest.Representation{RepType: acctest.Required, Create: `freeformValue`, Update: `freeformValue2`}, + } + + IdentityDomainsUserResourceDependencies = DefinedTagsDependencies + TestDomainDependencies + IdentityDomainsUserManager + + IdentityDomainsUserManager = ` +resource "oci_identity_domains_user" "test_user_manager" { + # Required + emails { + value = "value@email.com" + type = "work" + primary = "true" + } + idcs_endpoint = "${data.oci_identity_domain.test_domain.url}" + name { + family_name = "managerFamilyName" + } + schemas = ["urn:ietf:params:scim:schemas:core:2.0:User"] + user_name = "managerUserName" + lifecycle { + ignore_changes = ["urnietfparamsscimschemasoracleidcsextension_oci_tags[0].defined_tags", "emails", "schemas"] + } +} +` +) + +// issue-routing-tag: identity_domains/default +func TestIdentityDomainsUserResource_basic(t *testing.T) { + httpreplay.SetScenario("TestIdentityDomainsUserResource_basic") + defer httpreplay.SaveScenario() + + config := acctest.ProviderTestConfig() + + compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid") + compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId) + + resourceName := "oci_identity_domains_user.test_user" + datasourceName := "data.oci_identity_domains_users.test_users" + singularDatasourceName := "data.oci_identity_domains_user.test_user" + + var resId, resId2 string + // Save TF content to Create resource with optional properties. This has to be exactly the same as the config part in the "create with optionals" step in the test. + acctest.SaveConfigContent(config+compartmentIdVariableStr+IdentityDomainsUserResourceDependencies+ + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_user", "test_user", acctest.Optional, acctest.Create, IdentityDomainsUserRepresentation), "identitydomains", "user", t) + + print(config + compartmentIdVariableStr + IdentityDomainsUserResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_user", "test_user", acctest.Optional, acctest.Create, IdentityDomainsUserRepresentation)) + acctest.ResourceTest(t, testAccCheckIdentityDomainsUserDestroy, []resource.TestStep{ + // verify Create + { + Config: config + compartmentIdVariableStr + IdentityDomainsUserResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_user", "test_user", acctest.Required, acctest.Create, IdentityDomainsUserRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttrSet(resourceName, "idcs_endpoint"), + resource.TestCheckResourceAttr(resourceName, "name.#", "1"), + resource.TestCheckResourceAttr(resourceName, "name.0.family_name", "familyName"), + resource.TestMatchResourceAttr(resourceName, "schemas.#", regexp.MustCompile("[1-9]+")), + resource.TestCheckResourceAttrSet(resourceName, "user_name"), + + func(s *terraform.State) (err error) { + resId, err = acctest.FromInstanceState(s, resourceName, "id") + return err + }, + ), + }, + + // delete before next Create + { + Config: config + compartmentIdVariableStr + IdentityDomainsUserResourceDependencies, + }, + // verify Create with optionals + { + Config: config + compartmentIdVariableStr + IdentityDomainsUserResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_user", "test_user", acctest.Optional, acctest.Create, IdentityDomainsUserRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(resourceName, "active", "true"), + resource.TestCheckResourceAttr(resourceName, "addresses.#", "1"), + resource.TestCheckResourceAttr(resourceName, "addresses.0.country", "us"), + resource.TestCheckResourceAttr(resourceName, "addresses.0.formatted", "formatted"), + resource.TestCheckResourceAttr(resourceName, "addresses.0.locality", "locality"), + resource.TestCheckResourceAttr(resourceName, "addresses.0.postal_code", "postalCode"), + resource.TestCheckResourceAttr(resourceName, "addresses.0.primary", "false"), + resource.TestCheckResourceAttr(resourceName, "addresses.0.region", "region"), + resource.TestCheckResourceAttr(resourceName, "addresses.0.street_address", "streetAddress"), + resource.TestCheckResourceAttr(resourceName, "addresses.0.type", "work"), + resource.TestCheckResourceAttr(resourceName, "attribute_sets.#", "1"), + resource.TestCheckResourceAttr(resourceName, "description", "description"), + resource.TestCheckResourceAttr(resourceName, "display_name", "displayName"), + resource.TestCheckResourceAttr(resourceName, "emails.#", "2"), + resource.TestCheckResourceAttr(resourceName, "emails.0.value", "value@email.com"), + resource.TestCheckResourceAttr(resourceName, "emails.1.value", "value@email.com"), + resource.TestCheckResourceAttr(resourceName, "entitlements.#", "1"), + resource.TestCheckResourceAttr(resourceName, "entitlements.0.display", "display"), + resource.TestCheckResourceAttr(resourceName, "entitlements.0.primary", "false"), + resource.TestCheckResourceAttr(resourceName, "entitlements.0.type", "type"), + resource.TestCheckResourceAttr(resourceName, "entitlements.0.value", "value"), + resource.TestCheckResourceAttrSet(resourceName, "external_id"), + resource.TestCheckResourceAttrSet(resourceName, "id"), + resource.TestCheckResourceAttr(resourceName, "idcs_created_by.#", "1"), + resource.TestCheckResourceAttrSet(resourceName, "idcs_endpoint"), + resource.TestCheckResourceAttr(resourceName, "ims.#", "1"), + resource.TestCheckResourceAttr(resourceName, "ims.0.display", "display"), + resource.TestCheckResourceAttr(resourceName, "ims.0.primary", "false"), + resource.TestCheckResourceAttr(resourceName, "ims.0.type", "aim"), + resource.TestCheckResourceAttr(resourceName, "ims.0.value", "value"), + resource.TestCheckResourceAttr(resourceName, "locale", "en"), + resource.TestCheckResourceAttr(resourceName, "name.#", "1"), + resource.TestCheckResourceAttr(resourceName, "name.0.family_name", "familyName"), + resource.TestCheckResourceAttr(resourceName, "name.0.formatted", "formatted"), + resource.TestCheckResourceAttr(resourceName, "name.0.given_name", "givenName"), + resource.TestCheckResourceAttr(resourceName, "name.0.honorific_prefix", "honorificPrefix"), + resource.TestCheckResourceAttr(resourceName, "name.0.honorific_suffix", "honorificSuffix"), + resource.TestCheckResourceAttr(resourceName, "name.0.middle_name", "middleName"), + resource.TestCheckResourceAttr(resourceName, "nick_name", "nickName"), + resource.TestCheckResourceAttr(resourceName, "password", "BEstrO0ng_#11"), + resource.TestCheckResourceAttr(resourceName, "phone_numbers.#", "1"), + resource.TestCheckResourceAttr(resourceName, "phone_numbers.0.primary", "false"), + resource.TestCheckResourceAttr(resourceName, "phone_numbers.0.type", "work"), + resource.TestCheckResourceAttr(resourceName, "phone_numbers.0.value", "1112223333"), + resource.TestCheckResourceAttr(resourceName, "photos.#", "1"), + resource.TestCheckResourceAttr(resourceName, "photos.0.display", "display"), + resource.TestCheckResourceAttr(resourceName, "photos.0.primary", "false"), + resource.TestCheckResourceAttr(resourceName, "photos.0.type", "photo"), + resource.TestCheckResourceAttr(resourceName, "photos.0.value", "https://value.com"), + resource.TestCheckResourceAttr(resourceName, "preferred_language", "en"), + resource.TestCheckResourceAttr(resourceName, "profile_url", "https://profileUrl.com"), + resource.TestCheckResourceAttr(resourceName, "roles.#", "1"), + resource.TestCheckResourceAttr(resourceName, "roles.0.display", "display"), + resource.TestCheckResourceAttr(resourceName, "roles.0.primary", "false"), + resource.TestCheckResourceAttr(resourceName, "roles.0.type", "type"), + resource.TestCheckResourceAttr(resourceName, "roles.0.value", "value"), + resource.TestMatchResourceAttr(resourceName, "schemas.#", regexp.MustCompile("[1-9]+")), + resource.TestCheckResourceAttr(resourceName, "tags.#", "1"), + resource.TestCheckResourceAttr(resourceName, "tags.0.key", "key"), + resource.TestCheckResourceAttr(resourceName, "tags.0.value", "value"), + resource.TestCheckResourceAttr(resourceName, "timezone", "America/Los_Angeles"), + resource.TestCheckResourceAttr(resourceName, "title", "title"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasextensionenterprise20user.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasextensionenterprise20user.0.cost_center", "costCenter"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasextensionenterprise20user.0.department", "department"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasextensionenterprise20user.0.division", "division"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasextensionenterprise20user.0.employee_number", "employeeNumber"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasextensionenterprise20user.0.manager.#", "1"), + resource.TestCheckResourceAttrSet(resourceName, "urnietfparamsscimschemasextensionenterprise20user.0.manager.0.value"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasextensionenterprise20user.0.organization", "organization"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextension_oci_tags.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextension_oci_tags.0.freeform_tags.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextension_oci_tags.0.freeform_tags.0.key", "freeformKey"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextension_oci_tags.0.freeform_tags.0.value", "freeformValue"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionadaptive_user.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionadaptive_user.0.risk_level", "LOW"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensioncapabilities_user.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensioncapabilities_user.0.can_use_api_keys", "false"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensioncapabilities_user.0.can_use_auth_tokens", "false"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensioncapabilities_user.0.can_use_console_password", "false"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensioncapabilities_user.0.can_use_customer_secret_keys", "false"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensioncapabilities_user.0.can_use_db_credentials", "false"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensioncapabilities_user.0.can_use_oauth2client_credentials", "false"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensioncapabilities_user.0.can_use_smtp_credentials", "false"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensiondb_credentials_user.#", "1"), + resource.TestCheckResourceAttrSet(resourceName, "urnietfparamsscimschemasoracleidcsextensiondb_credentials_user.0.db_user_name"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionpasswordless_user.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionpasswordless_user.0.factor_method", "factorMethod"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionpasswordless_user.0.factor_type", "EMAIL"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionposix_user.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionposix_user.0.gecos", "gecos"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionposix_user.0.home_directory", "homeDirectory"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionposix_user.0.login_shell", "loginShell"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionposix_user.0.uid_number", "500"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionsff_user.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionsff_user.0.sff_auth_keys", "sffAuthKeys"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionuser_state_user.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionuser_state_user.0.max_concurrent_sessions", "10"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionuser_user.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionuser_user.0.user_provider", "facebook"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionuser_user.0.account_recovery_required", "true"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionuser_user.0.bypass_notification", "false"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionuser_user.0.creation_mechanism", "api"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionuser_user.0.do_not_show_getting_started", "false"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionuser_user.0.is_authentication_delegated", "false"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionuser_user.0.is_federated_user", "false"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionuser_user.0.is_group_membership_normalized", "false"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionuser_user.0.is_group_membership_synced_to_users_groups", "false"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionuser_user.0.user_flow_controlled_by_external_client", "false"), + resource.TestCheckResourceAttrSet(resourceName, "user_name"), + resource.TestCheckResourceAttr(resourceName, "user_type", "Contractor"), + resource.TestCheckResourceAttr(resourceName, "x509certificates.#", "1"), + resource.TestCheckResourceAttr(resourceName, "x509certificates.0.display", "display"), + resource.TestCheckResourceAttr(resourceName, "x509certificates.0.primary", "false"), + resource.TestCheckResourceAttr(resourceName, "x509certificates.0.type", "type"), + resource.TestCheckResourceAttr(resourceName, "x509certificates.0.value", "MIIBPDCB56ADAgECAhAucicVzKJi9WsJknMUyFhRMA0GCSqGSIb3DQEBBAUAMA4xDDAKBgNVBAMTA29pZDAeFw0wNDA1MjUwMDEwMjNaFw0wNDExMjEwMDEwMjNaMDExCzAJBgNVBAYTAnVzMQwwCgYDVQQKEwNJTUMxFDASBgNVBAMTC0thbCBCYWlsZXlzMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMqsqm5/ZE2Fy57YmUNC6Lc6j70z+DNhmCADhsxpA4DXwrOkDDaIpAXG45y4NvsImjjpaFGxSE0upxBIQAHj9CMCAwEAATANBgkqhkiG9w0BAQQFAANBAGktTIBlB3VyN+7a9mRzdeYgS8ZwVsee1iGVRHCTfF1quxtVyWVwMX0dxffwz6pK0Pm3bV7uiEVu5qf3rO1hYSE="), + + func(s *terraform.State) (err error) { + resId, err = acctest.FromInstanceState(s, resourceName, "id") + idcsEndpoint, err := acctest.FromInstanceState(s, "data.oci_identity_domain.test_domain", "url") + if err != nil { + return err + } + + compositeId := getIdentityDomainsCompositeId(idcsEndpoint, "users", resId) + log.Printf("[DEBUG] Composite ID to import: %s", compositeId) + if isEnableExportCompartment, _ := strconv.ParseBool(utils.GetEnvSettingWithDefault("enable_export_compartment", "true")); isEnableExportCompartment { + if errExport := resourcediscovery.TestExportCompartmentWithResourceName(&compositeId, &compartmentId, resourceName); errExport != nil { + return errExport + } + } + return err + }, + ), + }, + + // verify updates to updatable parameters + { + Config: config + compartmentIdVariableStr + IdentityDomainsUserResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_user", "test_user", acctest.Optional, acctest.Update, IdentityDomainsUserRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(resourceName, "active", "true"), + resource.TestCheckResourceAttr(resourceName, "addresses.#", "1"), + resource.TestCheckResourceAttr(resourceName, "addresses.0.country", "gb"), + resource.TestCheckResourceAttr(resourceName, "addresses.0.formatted", "formatted2"), + resource.TestCheckResourceAttr(resourceName, "addresses.0.locality", "locality2"), + resource.TestCheckResourceAttr(resourceName, "addresses.0.postal_code", "postalCode2"), + resource.TestCheckResourceAttr(resourceName, "addresses.0.primary", "true"), + resource.TestCheckResourceAttr(resourceName, "addresses.0.region", "region2"), + resource.TestCheckResourceAttr(resourceName, "addresses.0.street_address", "streetAddress2"), + resource.TestCheckResourceAttr(resourceName, "addresses.0.type", "home"), + resource.TestCheckResourceAttr(resourceName, "attribute_sets.#", "1"), + resource.TestCheckResourceAttr(resourceName, "description", "description2"), + resource.TestCheckResourceAttr(resourceName, "display_name", "displayName2"), + resource.TestCheckResourceAttr(resourceName, "emails.#", "2"), + resource.TestCheckResourceAttr(resourceName, "entitlements.#", "1"), + resource.TestCheckResourceAttr(resourceName, "entitlements.0.display", "display2"), + resource.TestCheckResourceAttr(resourceName, "entitlements.0.primary", "true"), + resource.TestCheckResourceAttr(resourceName, "entitlements.0.type", "type2"), + resource.TestCheckResourceAttr(resourceName, "entitlements.0.value", "value2"), + resource.TestCheckResourceAttrSet(resourceName, "external_id"), + resource.TestCheckResourceAttrSet(resourceName, "id"), + resource.TestCheckResourceAttr(resourceName, "idcs_created_by.#", "1"), + resource.TestCheckResourceAttrSet(resourceName, "idcs_endpoint"), + resource.TestCheckResourceAttr(resourceName, "ims.#", "1"), + resource.TestCheckResourceAttr(resourceName, "ims.0.display", "display2"), + resource.TestCheckResourceAttr(resourceName, "ims.0.primary", "true"), + resource.TestCheckResourceAttr(resourceName, "ims.0.type", "gtalk"), + resource.TestCheckResourceAttr(resourceName, "ims.0.value", "value2"), + resource.TestCheckResourceAttr(resourceName, "locale", "es"), + resource.TestCheckResourceAttr(resourceName, "name.#", "1"), + resource.TestCheckResourceAttr(resourceName, "name.0.family_name", "familyName2"), + resource.TestCheckResourceAttr(resourceName, "name.0.formatted", "formatted2"), + resource.TestCheckResourceAttr(resourceName, "name.0.given_name", "givenName2"), + resource.TestCheckResourceAttr(resourceName, "name.0.honorific_prefix", "honorificPrefix2"), + resource.TestCheckResourceAttr(resourceName, "name.0.honorific_suffix", "honorificSuffix2"), + resource.TestCheckResourceAttr(resourceName, "name.0.middle_name", "middleName2"), + resource.TestCheckResourceAttr(resourceName, "nick_name", "nickName2"), + resource.TestCheckResourceAttr(resourceName, "password", "BEstrO0ng_#12"), + resource.TestCheckResourceAttr(resourceName, "phone_numbers.#", "1"), + resource.TestCheckResourceAttr(resourceName, "phone_numbers.0.primary", "true"), + resource.TestCheckResourceAttr(resourceName, "phone_numbers.0.type", "home"), + resource.TestCheckResourceAttr(resourceName, "phone_numbers.0.value", "1112223334"), + resource.TestCheckResourceAttr(resourceName, "photos.#", "1"), + resource.TestCheckResourceAttr(resourceName, "photos.0.display", "display2"), + resource.TestCheckResourceAttr(resourceName, "photos.0.primary", "true"), + resource.TestCheckResourceAttr(resourceName, "photos.0.type", "thumbnail"), + resource.TestCheckResourceAttr(resourceName, "photos.0.value", "https://value2.com"), + resource.TestCheckResourceAttr(resourceName, "preferred_language", "es"), + resource.TestCheckResourceAttr(resourceName, "profile_url", "https://profileUrl2.com"), + resource.TestCheckResourceAttr(resourceName, "roles.#", "1"), + resource.TestCheckResourceAttr(resourceName, "roles.0.display", "display2"), + resource.TestCheckResourceAttr(resourceName, "roles.0.primary", "true"), + resource.TestCheckResourceAttr(resourceName, "roles.0.type", "type2"), + resource.TestCheckResourceAttr(resourceName, "roles.0.value", "value2"), + resource.TestMatchResourceAttr(resourceName, "schemas.#", regexp.MustCompile("[1-9]+")), + resource.TestCheckResourceAttr(resourceName, "tags.#", "1"), + resource.TestCheckResourceAttr(resourceName, "tags.0.key", "key2"), + resource.TestCheckResourceAttr(resourceName, "tags.0.value", "value2"), + resource.TestCheckResourceAttr(resourceName, "timezone", "America/Vancouver"), + resource.TestCheckResourceAttr(resourceName, "title", "title2"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasextensionenterprise20user.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasextensionenterprise20user.0.cost_center", "costCenter2"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasextensionenterprise20user.0.department", "department2"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasextensionenterprise20user.0.division", "division2"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasextensionenterprise20user.0.employee_number", "employeeNumber2"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasextensionenterprise20user.0.manager.#", "1"), + resource.TestCheckResourceAttrSet(resourceName, "urnietfparamsscimschemasextensionenterprise20user.0.manager.0.value"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasextensionenterprise20user.0.organization", "organization2"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextension_oci_tags.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextension_oci_tags.0.freeform_tags.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextension_oci_tags.0.freeform_tags.0.key", "freeformKey2"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextension_oci_tags.0.freeform_tags.0.value", "freeformValue2"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionadaptive_user.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionadaptive_user.0.risk_level", "MEDIUM"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensioncapabilities_user.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensioncapabilities_user.0.can_use_api_keys", "true"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensioncapabilities_user.0.can_use_auth_tokens", "true"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensioncapabilities_user.0.can_use_console_password", "true"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensioncapabilities_user.0.can_use_customer_secret_keys", "true"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensioncapabilities_user.0.can_use_db_credentials", "true"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensioncapabilities_user.0.can_use_oauth2client_credentials", "true"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensioncapabilities_user.0.can_use_smtp_credentials", "true"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensiondb_credentials_user.#", "1"), + resource.TestCheckResourceAttrSet(resourceName, "urnietfparamsscimschemasoracleidcsextensiondb_credentials_user.0.db_user_name"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionpasswordless_user.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionpasswordless_user.0.factor_method", "factorMethod2"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionpasswordless_user.0.factor_type", "SMS"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionposix_user.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionposix_user.0.gecos", "gecos2"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionposix_user.0.home_directory", "homeDirectory2"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionposix_user.0.login_shell", "loginShell2"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionposix_user.0.uid_number", "501"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionsff_user.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionsff_user.0.sff_auth_keys", "sffAuthKeys2"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionuser_state_user.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionuser_state_user.0.max_concurrent_sessions", "11"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionuser_user.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionuser_user.0.account_recovery_required", "true"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionuser_user.0.applicable_authentication_target_app.#", "1"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionuser_user.0.creation_mechanism", "api"), + resource.TestCheckResourceAttr(resourceName, "urnietfparamsscimschemasoracleidcsextensionuser_user.0.do_not_show_getting_started", "true"), + resource.TestCheckResourceAttrSet(resourceName, "user_name"), + resource.TestCheckResourceAttr(resourceName, "user_type", "Employee"), + resource.TestCheckResourceAttr(resourceName, "x509certificates.#", "1"), + resource.TestCheckResourceAttr(resourceName, "x509certificates.0.display", "display2"), + resource.TestCheckResourceAttr(resourceName, "x509certificates.0.primary", "true"), + resource.TestCheckResourceAttr(resourceName, "x509certificates.0.type", "type2"), + resource.TestCheckResourceAttr(resourceName, "x509certificates.0.value", "MIIBPDCB56ADAgECAhAucicVzKJi9WsJknMUyFhRMA0GCSqGSIb3DQEBBAUAMA4xDDAKBgNVBAMTA29pZDAeFw0wNDA1MjUwMDEwMjNaFw0wNDExMjEwMDEwMjNaMDExCzAJBgNVBAYTAnVzMQwwCgYDVQQKEwNJTUMxFDASBgNVBAMTC0thbCBCYWlsZXlzMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMqsqm5/ZE2Fy57YmUNC6Lc6j70z+DNhmCADhsxpA4DXwrOkDDaIpAXG45y4NvsImjjpaFGxSE0upxBIQAHj9CMCAwEAATANBgkqhkiG9w0BAQQFAANBAGktTIBlB3VyN+7a9mRzdeYgS8ZwVsee1iGVRHCTfF1quxtVyWVwMX0dxffwz6pK0Pm3bV7uiEVu5qf3rO1hYSE="), + + func(s *terraform.State) (err error) { + resId2, err = acctest.FromInstanceState(s, resourceName, "id") + if resId != resId2 { + return fmt.Errorf("Resource recreated when it was supposed to be updated.") + } + return err + }, + ), + }, + // verify datasource + { + Config: config + + acctest.GenerateDataSourceFromRepresentationMap("oci_identity_domains_users", "test_users", acctest.Optional, acctest.Update, IdentityDomainsIdentityDomainsUserDataSourceRepresentation) + + compartmentIdVariableStr + IdentityDomainsUserResourceDependencies + + acctest.GenerateResourceFromRepresentationMap("oci_identity_domains_user", "test_user", acctest.Optional, acctest.Update, IdentityDomainsUserRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(datasourceName, "user_count", "10"), + resource.TestCheckResourceAttr(datasourceName, "attribute_sets.#", "1"), + resource.TestCheckResourceAttr(datasourceName, "start_index", "1"), + resource.TestCheckResourceAttr(datasourceName, "total_results", "1"), + + resource.TestCheckResourceAttr(datasourceName, "users.#", "1"), + ), + }, + // verify singular datasource + { + Config: config + + acctest.GenerateDataSourceFromRepresentationMap("oci_identity_domains_user", "test_user", acctest.Required, acctest.Create, IdentityDomainsIdentityDomainsUserSingularDataSourceRepresentation) + + compartmentIdVariableStr + IdentityDomainsUserResourceConfig, + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + //resource.TestCheckResourceAttr(singularDatasourceName, "attribute_sets.#", "1"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "idcs_endpoint"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "user_id"), + + resource.TestCheckResourceAttr(singularDatasourceName, "active", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "addresses.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "addresses.0.country", "gb"), + resource.TestCheckResourceAttr(singularDatasourceName, "addresses.0.formatted", "formatted2"), + resource.TestCheckResourceAttr(singularDatasourceName, "addresses.0.locality", "locality2"), + resource.TestCheckResourceAttr(singularDatasourceName, "addresses.0.postal_code", "postalCode2"), + resource.TestCheckResourceAttr(singularDatasourceName, "addresses.0.primary", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "addresses.0.region", "region2"), + resource.TestCheckResourceAttr(singularDatasourceName, "addresses.0.street_address", "streetAddress2"), + resource.TestCheckResourceAttr(singularDatasourceName, "addresses.0.type", "home"), + resource.TestCheckResourceAttr(singularDatasourceName, "description", "description2"), + resource.TestCheckResourceAttr(singularDatasourceName, "display_name", "displayName2"), + resource.TestCheckResourceAttr(singularDatasourceName, "emails.#", "2"), + resource.TestCheckResourceAttr(singularDatasourceName, "entitlements.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "entitlements.0.display", "display2"), + resource.TestCheckResourceAttr(singularDatasourceName, "entitlements.0.primary", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "entitlements.0.type", "type2"), + resource.TestCheckResourceAttr(singularDatasourceName, "entitlements.0.value", "value2"), + resource.TestCheckResourceAttr(singularDatasourceName, "idcs_created_by.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "ims.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "ims.0.display", "display2"), + resource.TestCheckResourceAttr(singularDatasourceName, "ims.0.primary", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "ims.0.type", "gtalk"), + resource.TestCheckResourceAttr(singularDatasourceName, "ims.0.value", "value2"), + resource.TestCheckResourceAttr(singularDatasourceName, "locale", "es"), + resource.TestCheckResourceAttr(singularDatasourceName, "name.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "name.0.family_name", "familyName2"), + resource.TestCheckResourceAttr(singularDatasourceName, "name.0.formatted", "formatted2"), + resource.TestCheckResourceAttr(singularDatasourceName, "name.0.given_name", "givenName2"), + resource.TestCheckResourceAttr(singularDatasourceName, "name.0.honorific_prefix", "honorificPrefix2"), + resource.TestCheckResourceAttr(singularDatasourceName, "name.0.honorific_suffix", "honorificSuffix2"), + resource.TestCheckResourceAttr(singularDatasourceName, "name.0.middle_name", "middleName2"), + resource.TestCheckResourceAttr(singularDatasourceName, "nick_name", "nickName2"), + resource.TestCheckResourceAttr(singularDatasourceName, "phone_numbers.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "phone_numbers.0.primary", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "phone_numbers.0.type", "home"), + resource.TestCheckResourceAttr(singularDatasourceName, "phone_numbers.0.value", "1112223334"), + resource.TestCheckResourceAttr(singularDatasourceName, "photos.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "photos.0.display", "display2"), + resource.TestCheckResourceAttr(singularDatasourceName, "photos.0.primary", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "photos.0.type", "thumbnail"), + resource.TestCheckResourceAttr(singularDatasourceName, "photos.0.value", "https://value2.com"), + resource.TestCheckResourceAttr(singularDatasourceName, "preferred_language", "es"), + resource.TestCheckResourceAttr(singularDatasourceName, "profile_url", "https://profileUrl2.com"), + resource.TestCheckResourceAttr(singularDatasourceName, "roles.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "roles.0.display", "display2"), + resource.TestCheckResourceAttr(singularDatasourceName, "roles.0.primary", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "roles.0.type", "type2"), + resource.TestCheckResourceAttr(singularDatasourceName, "roles.0.value", "value2"), + resource.TestMatchResourceAttr(singularDatasourceName, "schemas.#", regexp.MustCompile("[1-9]+")), + resource.TestCheckResourceAttr(singularDatasourceName, "timezone", "America/Vancouver"), + resource.TestCheckResourceAttr(singularDatasourceName, "title", "title2"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasextensionenterprise20user.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasextensionenterprise20user.0.cost_center", "costCenter2"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasextensionenterprise20user.0.department", "department2"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasextensionenterprise20user.0.division", "division2"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasextensionenterprise20user.0.employee_number", "employeeNumber2"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasextensionenterprise20user.0.manager.#", "1"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "urnietfparamsscimschemasextensionenterprise20user.0.manager.0.value"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasextensionenterprise20user.0.organization", "organization2"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextension_oci_tags.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextension_oci_tags.0.freeform_tags.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextension_oci_tags.0.freeform_tags.0.key", "freeformKey2"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextension_oci_tags.0.freeform_tags.0.value", "freeformValue2"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensioncapabilities_user.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensioncapabilities_user.0.can_use_api_keys", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensioncapabilities_user.0.can_use_auth_tokens", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensioncapabilities_user.0.can_use_console_password", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensioncapabilities_user.0.can_use_customer_secret_keys", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensioncapabilities_user.0.can_use_db_credentials", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensioncapabilities_user.0.can_use_oauth2client_credentials", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensioncapabilities_user.0.can_use_smtp_credentials", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionpasswordless_user.0.factor_method", "factorMethod2"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionpasswordless_user.0.factor_type", "SMS"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionuser_state_user.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionuser_state_user.0.max_concurrent_sessions", "11"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionuser_user.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionuser_user.0.user_provider", "facebook"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionuser_user.0.account_recovery_required", "false"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionuser_user.0.bypass_notification", "false"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionuser_user.0.do_not_show_getting_started", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionuser_user.0.is_authentication_delegated", "false"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionuser_user.0.is_federated_user", "false"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionuser_user.0.is_group_membership_normalized", "false"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionuser_user.0.is_group_membership_synced_to_users_groups", "false"), + resource.TestCheckResourceAttr(singularDatasourceName, "urnietfparamsscimschemasoracleidcsextensionuser_user.0.user_flow_controlled_by_external_client", "false"), + resource.TestCheckResourceAttr(singularDatasourceName, "user_type", "Employee"), + resource.TestCheckResourceAttr(singularDatasourceName, "x509certificates.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "x509certificates.0.display", "display2"), + resource.TestCheckResourceAttr(singularDatasourceName, "x509certificates.0.primary", "true"), + resource.TestCheckResourceAttr(singularDatasourceName, "x509certificates.0.type", "type2"), + resource.TestCheckResourceAttr(singularDatasourceName, "x509certificates.0.value", "MIIBPDCB56ADAgECAhAucicVzKJi9WsJknMUyFhRMA0GCSqGSIb3DQEBBAUAMA4xDDAKBgNVBAMTA29pZDAeFw0wNDA1MjUwMDEwMjNaFw0wNDExMjEwMDEwMjNaMDExCzAJBgNVBAYTAnVzMQwwCgYDVQQKEwNJTUMxFDASBgNVBAMTC0thbCBCYWlsZXlzMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMqsqm5/ZE2Fy57YmUNC6Lc6j70z+DNhmCADhsxpA4DXwrOkDDaIpAXG45y4NvsImjjpaFGxSE0upxBIQAHj9CMCAwEAATANBgkqhkiG9w0BAQQFAANBAGktTIBlB3VyN+7a9mRzdeYgS8ZwVsee1iGVRHCTfF1quxtVyWVwMX0dxffwz6pK0Pm3bV7uiEVu5qf3rO1hYSE="), + ), + }, + + // reset to required only resource for import + { + Config: config + compartmentIdVariableStr + IdentityDomainsUserResourceDependencies + IdentityDomainsUserRequiredOnlyResource, + }, + // verify resource import + { + Config: config + IdentityDomainsUserRequiredOnlyResource, + ImportState: true, + ImportStateVerify: true, + ImportStateIdFunc: getIdentityDomainsImportIdFn("oci_identity_domains_user", "users"), + ImportStateVerifyIgnore: []string{ + "attribute_sets", + "attributes", + "authorization", + "idcs_endpoint", + "resource_type_schema_version", + "password", + "schemas", + }, + ResourceName: resourceName, + }, + // dependency manager user needs to be removed after test user + { + Config: config + compartmentIdVariableStr + IdentityDomainsUserResourceDependencies, + }, + }) +} + +func testAccCheckIdentityDomainsUserDestroy(s *terraform.State) error { + noResourceFound := true + client := acctest.TestAccProvider.Meta().(*tf_client.OracleClients).IdentityDomainsClient() + for _, rs := range s.RootModule().Resources { + if rs.Type == "oci_identity_domains_user" { + noResourceFound = false + request := oci_identity_domains.GetUserRequest{} + + if value, ok := rs.Primary.Attributes["authorization"]; ok { + request.Authorization = &value + } + + if value, ok := rs.Primary.Attributes["idcs_endpoint"]; ok { + client.Host = value + } + + if value, ok := rs.Primary.Attributes["resource_type_schema_version"]; ok { + request.ResourceTypeSchemaVersion = &value + } + + tmp := rs.Primary.ID + request.UserId = &tmp + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(true, "identity_domains") + + _, err := client.GetUser(context.Background(), request) + + if err == nil { + return fmt.Errorf("resource still exists") + } + + //Verify that exception is for '404 not found'. + if failure, isServiceError := common.IsServiceError(err); !isServiceError || failure.GetHTTPStatusCode() != 404 { + return err + } + } + } + if noResourceFound { + return fmt.Errorf("at least one resource was expected from the state file, but could not be found") + } + + return nil +} + +func init() { + if acctest.DependencyGraph == nil { + acctest.InitDependencyGraph() + } + if !acctest.InSweeperExcludeList("IdentityDomainsUser") { + resource.AddTestSweepers("IdentityDomainsUser", &resource.Sweeper{ + Name: "IdentityDomainsUser", + Dependencies: acctest.DependencyGraph["user"], + F: sweepIdentityDomainsUserResource, + }) + } +} + +func sweepIdentityDomainsUserResource(compartment string) error { + identityDomainsClient := acctest.GetTestClients(&schema.ResourceData{}).IdentityDomainsClient() + userIds, err := getIdentityDomainsUserIds(compartment) + if err != nil { + return err + } + for _, userId := range userIds { + if ok := acctest.SweeperDefaultResourceId[userId]; !ok { + deleteUserRequest := oci_identity_domains.DeleteUserRequest{} + + deleteUserRequest.UserId = &userId + + deleteUserRequest.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(true, "identity_domains") + _, error := identityDomainsClient.DeleteUser(context.Background(), deleteUserRequest) + if error != nil { + fmt.Printf("Error deleting User %s %s, It is possible that the resource is already deleted. Please verify manually \n", userId, error) + continue + } + } + } + return nil +} + +func getIdentityDomainsUserIds(compartment string) ([]string, error) { + ids := acctest.GetResourceIdsToSweep(compartment, "UserId") + if ids != nil { + return ids, nil + } + var resourceIds []string + compartmentId := compartment + identityDomainsClient := acctest.GetTestClients(&schema.ResourceData{}).IdentityDomainsClient() + + listUsersRequest := oci_identity_domains.ListUsersRequest{} + listUsersResponse, err := identityDomainsClient.ListUsers(context.Background(), listUsersRequest) + + if err != nil { + return resourceIds, fmt.Errorf("Error getting User list for compartment id : %s , %s \n", compartmentId, err) + } + for _, user := range listUsersResponse.Resources { + id := *user.Id + resourceIds = append(resourceIds, id) + acctest.AddResourceIdToSweeperResourceIdMap(compartmentId, "UserId", id) + } + return resourceIds, nil +} diff --git a/internal/provider/register_datasource.go b/internal/provider/register_datasource.go index 00f9eb53f10..b6aca68e86c 100644 --- a/internal/provider/register_datasource.go +++ b/internal/provider/register_datasource.go @@ -55,6 +55,7 @@ import ( tf_health_checks "github.com/oracle/terraform-provider-oci/internal/service/health_checks" tf_identity "github.com/oracle/terraform-provider-oci/internal/service/identity" tf_identity_data_plane "github.com/oracle/terraform-provider-oci/internal/service/identity_data_plane" + tf_identity_domains "github.com/oracle/terraform-provider-oci/internal/service/identity_domains" tf_integration "github.com/oracle/terraform-provider-oci/internal/service/integration" tf_jms "github.com/oracle/terraform-provider-oci/internal/service/jms" tf_kms "github.com/oracle/terraform-provider-oci/internal/service/kms" @@ -163,6 +164,7 @@ func init() { tf_health_checks.RegisterDatasource() tf_identity.RegisterDatasource() tf_identity_data_plane.RegisterDatasource() + tf_identity_domains.RegisterDatasource() tf_integration.RegisterDatasource() tf_jms.RegisterDatasource() tf_kms.RegisterDatasource() diff --git a/internal/provider/register_resource.go b/internal/provider/register_resource.go index fa6de4517ac..084462e1c32 100644 --- a/internal/provider/register_resource.go +++ b/internal/provider/register_resource.go @@ -55,6 +55,7 @@ import ( tf_health_checks "github.com/oracle/terraform-provider-oci/internal/service/health_checks" tf_identity "github.com/oracle/terraform-provider-oci/internal/service/identity" tf_identity_data_plane "github.com/oracle/terraform-provider-oci/internal/service/identity_data_plane" + tf_identity_domains "github.com/oracle/terraform-provider-oci/internal/service/identity_domains" tf_integration "github.com/oracle/terraform-provider-oci/internal/service/integration" tf_jms "github.com/oracle/terraform-provider-oci/internal/service/jms" tf_kms "github.com/oracle/terraform-provider-oci/internal/service/kms" @@ -163,6 +164,7 @@ func init() { tf_health_checks.RegisterResource() tf_identity.RegisterResource() tf_identity_data_plane.RegisterResource() + tf_identity_domains.RegisterResource() tf_integration.RegisterResource() tf_jms.RegisterResource() tf_kms.RegisterResource() diff --git a/internal/service/identity_domains/identity_domains_api_key_data_source.go b/internal/service/identity_domains/identity_domains_api_key_data_source.go new file mode 100644 index 00000000000..3d63b6c6da5 --- /dev/null +++ b/internal/service/identity_domains/identity_domains_api_key_data_source.go @@ -0,0 +1,207 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsApiKeyDataSource() *schema.Resource { + fieldMap := make(map[string]*schema.Schema) + fieldMap["api_key_id"] = &schema.Schema{ + Type: schema.TypeString, + Required: true, + } + fieldMap["attribute_sets"] = &schema.Schema{ + Type: schema.TypeList, + Optional: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + } + fieldMap["attributes"] = &schema.Schema{ + Type: schema.TypeString, + Optional: true, + } + fieldMap["authorization"] = &schema.Schema{ + Type: schema.TypeString, + Optional: true, + } + fieldMap["idcs_endpoint"] = &schema.Schema{ + Type: schema.TypeString, + Required: true, + } + fieldMap["resource_type_schema_version"] = &schema.Schema{ + Type: schema.TypeString, + Optional: true, + } + return tfresource.GetSingularDataSourceItemSchema(IdentityDomainsApiKeyResource(), fieldMap, readSingularIdentityDomainsApiKey) +} + +func readSingularIdentityDomainsApiKey(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsApiKeyDataSourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + + return tfresource.ReadResource(sync) +} + +type IdentityDomainsApiKeyDataSourceCrud struct { + D *schema.ResourceData + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.GetApiKeyResponse +} + +func (s *IdentityDomainsApiKeyDataSourceCrud) VoidState() { + s.D.SetId("") +} + +func (s *IdentityDomainsApiKeyDataSourceCrud) Get() error { + request := oci_identity_domains.GetApiKeyRequest{} + + if apiKeyId, ok := s.D.GetOkExists("api_key_id"); ok { + tmp := apiKeyId.(string) + request.ApiKeyId = &tmp + } + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "identity_domains") + + response, err := s.Client.GetApiKey(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response + return nil +} + +func (s *IdentityDomainsApiKeyDataSourceCrud) SetData() error { + if s.Res == nil { + return nil + } + + s.D.SetId(*s.Res.Id) + + if s.Res.CompartmentOcid != nil { + s.D.Set("compartment_ocid", *s.Res.CompartmentOcid) + } + + if s.Res.DeleteInProgress != nil { + s.D.Set("delete_in_progress", *s.Res.DeleteInProgress) + } + + if s.Res.Description != nil { + s.D.Set("description", *s.Res.Description) + } + + if s.Res.DomainOcid != nil { + s.D.Set("domain_ocid", *s.Res.DomainOcid) + } + + if s.Res.Fingerprint != nil { + s.D.Set("fingerprint", *s.Res.Fingerprint) + } + + if s.Res.IdcsCreatedBy != nil { + s.D.Set("idcs_created_by", []interface{}{idcsCreatedByToMap(s.Res.IdcsCreatedBy)}) + } else { + s.D.Set("idcs_created_by", nil) + } + + if s.Res.IdcsLastModifiedBy != nil { + s.D.Set("idcs_last_modified_by", []interface{}{idcsLastModifiedByToMap(s.Res.IdcsLastModifiedBy)}) + } else { + s.D.Set("idcs_last_modified_by", nil) + } + + if s.Res.IdcsLastUpgradedInRelease != nil { + s.D.Set("idcs_last_upgraded_in_release", *s.Res.IdcsLastUpgradedInRelease) + } + + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + + if s.Res.Key != nil { + s.D.Set("key", *s.Res.Key) + } + + if s.Res.Meta != nil { + s.D.Set("meta", []interface{}{metaToMap(s.Res.Meta)}) + } else { + s.D.Set("meta", nil) + } + + if s.Res.Ocid != nil { + s.D.Set("ocid", *s.Res.Ocid) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + tags := []interface{}{} + for _, item := range s.Res.Tags { + tags = append(tags, tagsToMap(item)) + } + s.D.Set("tags", tags) + + if s.Res.TenancyOcid != nil { + s.D.Set("tenancy_ocid", *s.Res.TenancyOcid) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionself_change_user", []interface{}{ExtensionSelfChangeUserToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionself_change_user", nil) + } + + if s.Res.User != nil { + s.D.Set("user", []interface{}{ApiKeyUserToMap(s.Res.User)}) + } else { + s.D.Set("user", nil) + } + + return nil +} diff --git a/internal/service/identity_domains/identity_domains_api_key_resource.go b/internal/service/identity_domains/identity_domains_api_key_resource.go new file mode 100644 index 00000000000..5fb41ef5477 --- /dev/null +++ b/internal/service/identity_domains/identity_domains_api_key_resource.go @@ -0,0 +1,855 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + "fmt" + "log" + "net/url" + "regexp" + "strings" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsApiKeyResource() *schema.Resource { + return &schema.Resource{ + Importer: &schema.ResourceImporter{ + State: schema.ImportStatePassthrough, + }, + Timeouts: tfresource.DefaultTimeout, + Create: createIdentityDomainsApiKey, + Read: readIdentityDomainsApiKey, + Delete: deleteIdentityDomainsApiKey, + Schema: map[string]*schema.Schema{ + // Required + "idcs_endpoint": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "key": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "schemas": { + Type: schema.TypeList, + Required: true, + ForceNew: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + + // Optional + "attribute_sets": { + Type: schema.TypeList, + Optional: true, + ForceNew: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "attributes": { + Type: schema.TypeString, + Optional: true, + ForceNew: true, + }, + "authorization": { + Type: schema.TypeString, + Optional: true, + ForceNew: true, + }, + "description": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "resource_type_schema_version": { + Type: schema.TypeString, + Optional: true, + ForceNew: true, + }, + "tags": { + Type: schema.TypeList, + Optional: true, + Computed: true, + ForceNew: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "key": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "value": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + + // Optional + + // Computed + }, + }, + }, + "urnietfparamsscimschemasoracleidcsextensionself_change_user": { + Type: schema.TypeList, + Optional: true, + Computed: true, + ForceNew: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "allow_self_change": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + }, + }, + }, + "user": { + Type: schema.TypeList, + Optional: true, + Computed: true, + ForceNew: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "value": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + "display": { + Type: schema.TypeString, + Computed: true, + }, + "name": { + Type: schema.TypeString, + Computed: true, + }, + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + + // Computed + "compartment_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "delete_in_progress": { + Type: schema.TypeBool, + Computed: true, + }, + "domain_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "fingerprint": { + Type: schema.TypeString, + Computed: true, + }, + "id": { + Type: schema.TypeString, + Computed: true, + }, + "idcs_created_by": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "idcs_last_modified_by": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "idcs_last_upgraded_in_release": { + Type: schema.TypeString, + Computed: true, + }, + "idcs_prevented_operations": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "meta": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "created": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "last_modified": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "location": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "resource_type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "version": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + }, + }, + }, + "tenancy_ocid": { + Type: schema.TypeString, + Computed: true, + }, + }, + } +} + +func createIdentityDomainsApiKey(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsApiKeyResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.CreateResource(d, sync) +} + +func readIdentityDomainsApiKey(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsApiKeyResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpointForRead(d, "apiKeys") + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.ReadResource(sync) +} + +func deleteIdentityDomainsApiKey(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsApiKeyResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + sync.DisableNotFoundRetries = true + + return tfresource.DeleteResource(d, sync) +} + +type IdentityDomainsApiKeyResourceCrud struct { + tfresource.BaseCrud + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.ApiKey + DisableNotFoundRetries bool +} + +func (s *IdentityDomainsApiKeyResourceCrud) ID() string { + return *s.Res.Id +} + +func (s *IdentityDomainsApiKeyResourceCrud) Create() error { + request := oci_identity_domains.CreateApiKeyRequest{} + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if description, ok := s.D.GetOkExists("description"); ok { + tmp := description.(string) + request.Description = &tmp + } + + if id, ok := s.D.GetOkExists("id"); ok { + tmp := id.(string) + request.Id = &tmp + } + + if key, ok := s.D.GetOkExists("key"); ok { + tmp := key.(string) + request.Key = &tmp + } + + if ocid, ok := s.D.GetOkExists("ocid"); ok { + tmp := ocid.(string) + request.Ocid = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + if schemas, ok := s.D.GetOkExists("schemas"); ok { + interfaces := schemas.([]interface{}) + tmp := make([]string, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = interfaces[i].(string) + } + } + if len(tmp) != 0 || s.D.HasChange("schemas") { + request.Schemas = tmp + } + } + + if tags, ok := s.D.GetOkExists("tags"); ok { + interfaces := tags.([]interface{}) + tmp := make([]oci_identity_domains.Tags, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "tags", stateDataIndex) + converted, err := s.mapTotags(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("tags") { + request.Tags = tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensionselfChangeUser, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextensionself_change_user"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensionselfChangeUser.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextensionself_change_user", 0) + tmp, err := s.mapToExtensionSelfChangeUser(fieldKeyFormat) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser = &tmp + } + } + + if user, ok := s.D.GetOkExists("user"); ok { + if tmpList := user.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "user", 0) + tmp, err := s.mapToApiKeyUser(fieldKeyFormat) + if err != nil { + return err + } + request.User = &tmp + } + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + response, err := s.Client.CreateApiKey(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response.ApiKey + return nil +} + +func (s *IdentityDomainsApiKeyResourceCrud) Get() error { + request := oci_identity_domains.GetApiKeyRequest{} + + tmp := s.D.Id() + request.ApiKeyId = &tmp + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + apiKeyId, err := parseApiKeyCompositeId(s.D.Id()) + if err == nil { + request.ApiKeyId = &apiKeyId + } else { + log.Printf("[WARN] Get() unable to parse current ID: %s", s.D.Id()) + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + response, err := s.Client.GetApiKey(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response.ApiKey + return nil +} + +func (s *IdentityDomainsApiKeyResourceCrud) Delete() error { + request := oci_identity_domains.DeleteApiKeyRequest{} + + tmp := s.D.Id() + request.ApiKeyId = &tmp + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if forceDelete, ok := s.D.GetOkExists("force_delete"); ok { + tmp := forceDelete.(bool) + request.ForceDelete = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + _, err := s.Client.DeleteApiKey(context.Background(), request) + return err +} + +func (s *IdentityDomainsApiKeyResourceCrud) SetData() error { + + apiKeyId, err := parseApiKeyCompositeId(s.D.Id()) + if err == nil { + s.D.SetId(apiKeyId) + } else { + log.Printf("[WARN] SetData() unable to parse current ID: %s", s.D.Id()) + } + + if s.Res.CompartmentOcid != nil { + s.D.Set("compartment_ocid", *s.Res.CompartmentOcid) + } + + if s.Res.DeleteInProgress != nil { + s.D.Set("delete_in_progress", *s.Res.DeleteInProgress) + } + + if s.Res.Description != nil { + s.D.Set("description", *s.Res.Description) + } + + if s.Res.DomainOcid != nil { + s.D.Set("domain_ocid", *s.Res.DomainOcid) + } + + if s.Res.Fingerprint != nil { + s.D.Set("fingerprint", *s.Res.Fingerprint) + } + + if s.Res.IdcsCreatedBy != nil { + s.D.Set("idcs_created_by", []interface{}{idcsCreatedByToMap(s.Res.IdcsCreatedBy)}) + } else { + s.D.Set("idcs_created_by", nil) + } + + if s.Res.IdcsLastModifiedBy != nil { + s.D.Set("idcs_last_modified_by", []interface{}{idcsLastModifiedByToMap(s.Res.IdcsLastModifiedBy)}) + } else { + s.D.Set("idcs_last_modified_by", nil) + } + + if s.Res.IdcsLastUpgradedInRelease != nil { + s.D.Set("idcs_last_upgraded_in_release", *s.Res.IdcsLastUpgradedInRelease) + } + + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + + if s.Res.Key != nil { + s.D.Set("key", *s.Res.Key) + } + + if s.Res.Meta != nil { + s.D.Set("meta", []interface{}{metaToMap(s.Res.Meta)}) + } else { + s.D.Set("meta", nil) + } + + if s.Res.Ocid != nil { + s.D.Set("ocid", *s.Res.Ocid) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + tags := []interface{}{} + for _, item := range s.Res.Tags { + tags = append(tags, tagsToMap(item)) + } + s.D.Set("tags", tags) + + if s.Res.TenancyOcid != nil { + s.D.Set("tenancy_ocid", *s.Res.TenancyOcid) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionself_change_user", []interface{}{ExtensionSelfChangeUserToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionself_change_user", nil) + } + + if s.Res.User != nil { + s.D.Set("user", []interface{}{ApiKeyUserToMap(s.Res.User)}) + } else { + s.D.Set("user", nil) + } + + return nil +} + +func parseApiKeyCompositeId(compositeId string) (apiKeyId string, err error) { + parts := strings.Split(compositeId, "/") + match, _ := regexp.MatchString("idcsEndpoint/.*/apiKeys/.*", compositeId) + if !match || len(parts) != 4 { + err = fmt.Errorf("illegal compositeId %s encountered", compositeId) + return + } + //idcsEndpoint, _ = url.PathUnescape(parts[1]) + apiKeyId, _ = url.PathUnescape(parts[3]) + + return +} + +func ApiKeyToMap(obj oci_identity_domains.ApiKey) map[string]interface{} { + result := map[string]interface{}{} + + if obj.CompartmentOcid != nil { + result["compartment_ocid"] = string(*obj.CompartmentOcid) + } + + if obj.DeleteInProgress != nil { + result["delete_in_progress"] = bool(*obj.DeleteInProgress) + } + + if obj.Description != nil { + result["description"] = string(*obj.Description) + } + + if obj.DomainOcid != nil { + result["domain_ocid"] = string(*obj.DomainOcid) + } + + if obj.Fingerprint != nil { + result["fingerprint"] = string(*obj.Fingerprint) + } + + if obj.Id != nil { + result["id"] = string(*obj.Id) + } + + if obj.IdcsCreatedBy != nil { + result["idcs_created_by"] = []interface{}{idcsCreatedByToMap(obj.IdcsCreatedBy)} + } + + if obj.IdcsLastModifiedBy != nil { + result["idcs_last_modified_by"] = []interface{}{idcsLastModifiedByToMap(obj.IdcsLastModifiedBy)} + } + + if obj.IdcsLastUpgradedInRelease != nil { + result["idcs_last_upgraded_in_release"] = string(*obj.IdcsLastUpgradedInRelease) + } + + result["idcs_prevented_operations"] = obj.IdcsPreventedOperations + result["idcs_prevented_operations"] = obj.IdcsPreventedOperations + + if obj.Key != nil { + result["key"] = string(*obj.Key) + } + + if obj.Meta != nil { + result["meta"] = []interface{}{metaToMap(obj.Meta)} + } + + if obj.Ocid != nil { + result["ocid"] = string(*obj.Ocid) + } + + result["schemas"] = obj.Schemas + result["schemas"] = obj.Schemas + + tags := []interface{}{} + for _, item := range obj.Tags { + tags = append(tags, tagsToMap(item)) + } + result["tags"] = tags + + if obj.TenancyOcid != nil { + result["tenancy_ocid"] = string(*obj.TenancyOcid) + } + + if obj.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser != nil { + result["urnietfparamsscimschemasoracleidcsextensionself_change_user"] = []interface{}{ExtensionSelfChangeUserToMap(obj.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser)} + } + + if obj.User != nil { + result["user"] = []interface{}{ApiKeyUserToMap(obj.User)} + } + + return result +} + +func (s *IdentityDomainsApiKeyResourceCrud) mapToApiKeyUser(fieldKeyFormat string) (oci_identity_domains.ApiKeyUser, error) { + result := oci_identity_domains.ApiKeyUser{} + + if display, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "display")); ok { + tmp := display.(string) + result.Display = &tmp + } + + if name, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "name")); ok { + tmp := name.(string) + result.Name = &tmp + } + + if ocid, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ocid")); ok { + tmp := ocid.(string) + result.Ocid = &tmp + } + + if ref, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ref")); ok { + tmp := ref.(string) + result.Ref = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func ApiKeyUserToMap(obj *oci_identity_domains.ApiKeyUser) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Display != nil { + result["display"] = string(*obj.Display) + } + + if obj.Name != nil { + result["name"] = string(*obj.Name) + } + + if obj.Ocid != nil { + result["ocid"] = string(*obj.Ocid) + } + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func (s *IdentityDomainsApiKeyResourceCrud) mapToExtensionSelfChangeUser(fieldKeyFormat string) (oci_identity_domains.ExtensionSelfChangeUser, error) { + result := oci_identity_domains.ExtensionSelfChangeUser{} + + if allowSelfChange, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "allow_self_change")); ok { + tmp := allowSelfChange.(bool) + result.AllowSelfChange = &tmp + } + + return result, nil +} + +func (s *IdentityDomainsApiKeyResourceCrud) mapTotags(fieldKeyFormat string) (oci_identity_domains.Tags, error) { + result := oci_identity_domains.Tags{} + + if key, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "key")); ok { + tmp := key.(string) + result.Key = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} diff --git a/internal/service/identity_domains/identity_domains_api_keys_data_source.go b/internal/service/identity_domains/identity_domains_api_keys_data_source.go new file mode 100644 index 00000000000..11231d7be24 --- /dev/null +++ b/internal/service/identity_domains/identity_domains_api_keys_data_source.go @@ -0,0 +1,229 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsApiKeysDataSource() *schema.Resource { + return &schema.Resource{ + Read: readIdentityDomainsApiKeys, + Schema: map[string]*schema.Schema{ + "idcs_endpoint": { + Type: schema.TypeString, + Required: true, + }, + "compartment_id": { + Type: schema.TypeString, + Optional: true, + }, + "api_key_count": { + Type: schema.TypeInt, + Optional: true, + }, + "api_key_filter": { + Type: schema.TypeString, + Optional: true, + }, + "attribute_sets": { + Type: schema.TypeList, + Optional: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "attributes": { + Type: schema.TypeString, + Optional: true, + }, + "authorization": { + Type: schema.TypeString, + Optional: true, + }, + "resource_type_schema_version": { + Type: schema.TypeString, + Optional: true, + }, + "start_index": { + Type: schema.TypeInt, + Optional: true, + }, + "sort_order": { + Type: schema.TypeString, + Optional: true, + }, + "sort_by": { + Type: schema.TypeString, + Optional: true, + }, + // Computed + "api_keys": { + Type: schema.TypeList, + Computed: true, + Elem: tfresource.GetDataSourceItemSchema(IdentityDomainsApiKeyResource()), + }, + "items_per_page": { + Type: schema.TypeInt, + Computed: true, + }, + "schemas": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "total_results": { + Type: schema.TypeInt, + Computed: true, + }, + }, + } +} + +func readIdentityDomainsApiKeys(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsApiKeysDataSourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + + return tfresource.ReadResource(sync) +} + +type IdentityDomainsApiKeysDataSourceCrud struct { + D *schema.ResourceData + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.ListApiKeysResponse +} + +func (s *IdentityDomainsApiKeysDataSourceCrud) VoidState() { + s.D.SetId("") +} + +func (s *IdentityDomainsApiKeysDataSourceCrud) Get() error { + request := oci_identity_domains.ListApiKeysRequest{} + + if apiKeyCount, ok := s.D.GetOkExists("api_key_count"); ok { + tmp := apiKeyCount.(int) + request.Count = &tmp + } + + if apiKeyFilter, ok := s.D.GetOkExists("api_key_filter"); ok { + tmp := apiKeyFilter.(string) + // additional step to try match user sub-resources' pattern + tmp = tryMatchUserSubResFilter(tmp) + request.Filter = &tmp + } + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + if startIndex, ok := s.D.GetOkExists("start_index"); ok { + tmp := startIndex.(int) + request.StartIndex = &tmp + } + + if sortOrder, ok := s.D.GetOkExists("sort_order"); ok { + tmp := oci_identity_domains.ListApiKeysSortOrderEnum(sortOrder.(string)) + request.SortOrder = tmp + } + + if sortBy, ok := s.D.GetOkExists("sort_by"); ok { + tmp := sortBy.(string) + request.SortBy = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "identity_domains") + + response, err := s.Client.ListApiKeys(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response + // IDCS pagination + startIndex := *response.StartIndex + for startIndex+*response.ItemsPerPage <= *response.TotalResults { + startIndex += *response.ItemsPerPage + request.StartIndex = &startIndex + listResponse, err := s.Client.ListApiKeys(context.Background(), request) + if err != nil { + return err + } + + s.Res.Resources = append(s.Res.Resources, listResponse.Resources...) + } + + return nil +} + +func (s *IdentityDomainsApiKeysDataSourceCrud) SetData() error { + if s.Res == nil { + return nil + } + + s.D.SetId(tfresource.GenerateDataSourceHashID("IdentityDomainsApiKeysDataSource-", IdentityDomainsApiKeysDataSource(), s.D)) + + resources := []interface{}{} + for _, item := range s.Res.Resources { + resources = append(resources, ApiKeyToMap(item)) + } + s.D.Set("api_keys", resources) + + if s.Res.ItemsPerPage != nil { + s.D.Set("items_per_page", *s.Res.ItemsPerPage) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + if s.Res.StartIndex != nil { + s.D.Set("start_index", *s.Res.StartIndex) + } + + if s.Res.TotalResults != nil { + s.D.Set("total_results", *s.Res.TotalResults) + } + + return nil +} diff --git a/internal/service/identity_domains/identity_domains_auth_token_data_source.go b/internal/service/identity_domains/identity_domains_auth_token_data_source.go new file mode 100644 index 00000000000..1aee9fd4e49 --- /dev/null +++ b/internal/service/identity_domains/identity_domains_auth_token_data_source.go @@ -0,0 +1,205 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsAuthTokenDataSource() *schema.Resource { + fieldMap := make(map[string]*schema.Schema) + fieldMap["attribute_sets"] = &schema.Schema{ + Type: schema.TypeList, + Optional: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + } + fieldMap["attributes"] = &schema.Schema{ + Type: schema.TypeString, + Optional: true, + } + fieldMap["auth_token_id"] = &schema.Schema{ + Type: schema.TypeString, + Required: true, + } + fieldMap["authorization"] = &schema.Schema{ + Type: schema.TypeString, + Optional: true, + } + fieldMap["idcs_endpoint"] = &schema.Schema{ + Type: schema.TypeString, + Required: true, + } + fieldMap["resource_type_schema_version"] = &schema.Schema{ + Type: schema.TypeString, + Optional: true, + } + return tfresource.GetSingularDataSourceItemSchema(IdentityDomainsAuthTokenResource(), fieldMap, readSingularIdentityDomainsAuthToken) +} + +func readSingularIdentityDomainsAuthToken(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsAuthTokenDataSourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + + return tfresource.ReadResource(sync) +} + +type IdentityDomainsAuthTokenDataSourceCrud struct { + D *schema.ResourceData + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.GetAuthTokenResponse +} + +func (s *IdentityDomainsAuthTokenDataSourceCrud) VoidState() { + s.D.SetId("") +} + +func (s *IdentityDomainsAuthTokenDataSourceCrud) Get() error { + request := oci_identity_domains.GetAuthTokenRequest{} + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authTokenId, ok := s.D.GetOkExists("auth_token_id"); ok { + tmp := authTokenId.(string) + request.AuthTokenId = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "identity_domains") + + response, err := s.Client.GetAuthToken(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response + return nil +} + +func (s *IdentityDomainsAuthTokenDataSourceCrud) SetData() error { + if s.Res == nil { + return nil + } + + s.D.SetId(*s.Res.Id) + + if s.Res.CompartmentOcid != nil { + s.D.Set("compartment_ocid", *s.Res.CompartmentOcid) + } + + if s.Res.DeleteInProgress != nil { + s.D.Set("delete_in_progress", *s.Res.DeleteInProgress) + } + + if s.Res.Description != nil { + s.D.Set("description", *s.Res.Description) + } + + if s.Res.DomainOcid != nil { + s.D.Set("domain_ocid", *s.Res.DomainOcid) + } + + if s.Res.ExpiresOn != nil { + s.D.Set("expires_on", *s.Res.ExpiresOn) + } + + if s.Res.IdcsCreatedBy != nil { + s.D.Set("idcs_created_by", []interface{}{idcsCreatedByToMap(s.Res.IdcsCreatedBy)}) + } else { + s.D.Set("idcs_created_by", nil) + } + + if s.Res.IdcsLastModifiedBy != nil { + s.D.Set("idcs_last_modified_by", []interface{}{idcsLastModifiedByToMap(s.Res.IdcsLastModifiedBy)}) + } else { + s.D.Set("idcs_last_modified_by", nil) + } + + if s.Res.IdcsLastUpgradedInRelease != nil { + s.D.Set("idcs_last_upgraded_in_release", *s.Res.IdcsLastUpgradedInRelease) + } + + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + + if s.Res.Meta != nil { + s.D.Set("meta", []interface{}{metaToMap(s.Res.Meta)}) + } else { + s.D.Set("meta", nil) + } + + if s.Res.Ocid != nil { + s.D.Set("ocid", *s.Res.Ocid) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + s.D.Set("status", s.Res.Status) + + tags := []interface{}{} + for _, item := range s.Res.Tags { + tags = append(tags, tagsToMap(item)) + } + s.D.Set("tags", tags) + + if s.Res.TenancyOcid != nil { + s.D.Set("tenancy_ocid", *s.Res.TenancyOcid) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionself_change_user", []interface{}{ExtensionSelfChangeUserToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionself_change_user", nil) + } + + if s.Res.User != nil { + s.D.Set("user", []interface{}{AuthTokenUserToMap(s.Res.User)}) + } else { + s.D.Set("user", nil) + } + + return nil +} diff --git a/internal/service/identity_domains/identity_domains_auth_token_resource.go b/internal/service/identity_domains/identity_domains_auth_token_resource.go new file mode 100644 index 00000000000..61d433612b4 --- /dev/null +++ b/internal/service/identity_domains/identity_domains_auth_token_resource.go @@ -0,0 +1,866 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + "fmt" + "log" + "net/url" + "regexp" + "strings" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsAuthTokenResource() *schema.Resource { + return &schema.Resource{ + Importer: &schema.ResourceImporter{ + State: schema.ImportStatePassthrough, + }, + Timeouts: tfresource.DefaultTimeout, + Create: createIdentityDomainsAuthToken, + Read: readIdentityDomainsAuthToken, + Delete: deleteIdentityDomainsAuthToken, + Schema: map[string]*schema.Schema{ + // Required + "idcs_endpoint": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "schemas": { + Type: schema.TypeList, + Required: true, + ForceNew: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + + // Optional + "attribute_sets": { + Type: schema.TypeList, + Optional: true, + ForceNew: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "attributes": { + Type: schema.TypeString, + Optional: true, + ForceNew: true, + }, + "authorization": { + Type: schema.TypeString, + Optional: true, + ForceNew: true, + }, + "description": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "expires_on": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "resource_type_schema_version": { + Type: schema.TypeString, + Optional: true, + ForceNew: true, + }, + "status": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "tags": { + Type: schema.TypeList, + Optional: true, + Computed: true, + ForceNew: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "key": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "value": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + + // Optional + + // Computed + }, + }, + }, + "urnietfparamsscimschemasoracleidcsextensionself_change_user": { + Type: schema.TypeList, + Optional: true, + Computed: true, + ForceNew: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "allow_self_change": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + }, + }, + }, + "user": { + Type: schema.TypeList, + Optional: true, + Computed: true, + ForceNew: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "value": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + "display": { + Type: schema.TypeString, + Computed: true, + }, + "name": { + Type: schema.TypeString, + Computed: true, + }, + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + + // Computed + "compartment_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "delete_in_progress": { + Type: schema.TypeBool, + Computed: true, + }, + "domain_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "id": { + Type: schema.TypeString, + Computed: true, + }, + "idcs_created_by": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "idcs_last_modified_by": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "idcs_last_upgraded_in_release": { + Type: schema.TypeString, + Computed: true, + }, + "idcs_prevented_operations": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "meta": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "created": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "last_modified": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "location": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "resource_type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "version": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + }, + }, + }, + "tenancy_ocid": { + Type: schema.TypeString, + Computed: true, + }, + }, + } +} + +func createIdentityDomainsAuthToken(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsAuthTokenResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.CreateResource(d, sync) +} + +func readIdentityDomainsAuthToken(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsAuthTokenResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpointForRead(d, "authTokens") + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.ReadResource(sync) +} + +func deleteIdentityDomainsAuthToken(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsAuthTokenResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + sync.DisableNotFoundRetries = true + + return tfresource.DeleteResource(d, sync) +} + +type IdentityDomainsAuthTokenResourceCrud struct { + tfresource.BaseCrud + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.AuthToken + DisableNotFoundRetries bool +} + +func (s *IdentityDomainsAuthTokenResourceCrud) ID() string { + return *s.Res.Id +} + +func (s *IdentityDomainsAuthTokenResourceCrud) Create() error { + request := oci_identity_domains.CreateAuthTokenRequest{} + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if description, ok := s.D.GetOkExists("description"); ok { + tmp := description.(string) + request.Description = &tmp + } + + if expiresOn, ok := s.D.GetOkExists("expires_on"); ok { + tmp := expiresOn.(string) + request.ExpiresOn = &tmp + } + + if id, ok := s.D.GetOkExists("id"); ok { + tmp := id.(string) + request.Id = &tmp + } + + if ocid, ok := s.D.GetOkExists("ocid"); ok { + tmp := ocid.(string) + request.Ocid = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + if schemas, ok := s.D.GetOkExists("schemas"); ok { + interfaces := schemas.([]interface{}) + tmp := make([]string, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = interfaces[i].(string) + } + } + if len(tmp) != 0 || s.D.HasChange("schemas") { + request.Schemas = tmp + } + } + + if status, ok := s.D.GetOkExists("status"); ok { + request.Status = oci_identity_domains.AuthTokenStatusEnum(status.(string)) + } + + if tags, ok := s.D.GetOkExists("tags"); ok { + interfaces := tags.([]interface{}) + tmp := make([]oci_identity_domains.Tags, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "tags", stateDataIndex) + converted, err := s.mapTotags(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("tags") { + request.Tags = tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensionselfChangeUser, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextensionself_change_user"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensionselfChangeUser.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextensionself_change_user", 0) + tmp, err := s.mapToExtensionSelfChangeUser(fieldKeyFormat) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser = &tmp + } + } + + if user, ok := s.D.GetOkExists("user"); ok { + if tmpList := user.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "user", 0) + tmp, err := s.mapToAuthTokenUser(fieldKeyFormat) + if err != nil { + return err + } + request.User = &tmp + } + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + response, err := s.Client.CreateAuthToken(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response.AuthToken + return nil +} + +func (s *IdentityDomainsAuthTokenResourceCrud) Get() error { + request := oci_identity_domains.GetAuthTokenRequest{} + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + tmp := s.D.Id() + request.AuthTokenId = &tmp + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + authTokenId, err := parseAuthTokenCompositeId(s.D.Id()) + if err == nil { + request.AuthTokenId = &authTokenId + } else { + log.Printf("[WARN] Get() unable to parse current ID: %s", s.D.Id()) + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + response, err := s.Client.GetAuthToken(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response.AuthToken + return nil +} + +func (s *IdentityDomainsAuthTokenResourceCrud) Delete() error { + request := oci_identity_domains.DeleteAuthTokenRequest{} + + tmp := s.D.Id() + request.AuthTokenId = &tmp + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if forceDelete, ok := s.D.GetOkExists("force_delete"); ok { + tmp := forceDelete.(bool) + request.ForceDelete = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + _, err := s.Client.DeleteAuthToken(context.Background(), request) + return err +} + +func (s *IdentityDomainsAuthTokenResourceCrud) SetData() error { + + authTokenId, err := parseAuthTokenCompositeId(s.D.Id()) + if err == nil { + s.D.SetId(authTokenId) + } else { + log.Printf("[WARN] SetData() unable to parse current ID: %s", s.D.Id()) + } + + if s.Res.CompartmentOcid != nil { + s.D.Set("compartment_ocid", *s.Res.CompartmentOcid) + } + + if s.Res.DeleteInProgress != nil { + s.D.Set("delete_in_progress", *s.Res.DeleteInProgress) + } + + if s.Res.Description != nil { + s.D.Set("description", *s.Res.Description) + } + + if s.Res.DomainOcid != nil { + s.D.Set("domain_ocid", *s.Res.DomainOcid) + } + + if s.Res.ExpiresOn != nil { + s.D.Set("expires_on", *s.Res.ExpiresOn) + } + + if s.Res.IdcsCreatedBy != nil { + s.D.Set("idcs_created_by", []interface{}{idcsCreatedByToMap(s.Res.IdcsCreatedBy)}) + } else { + s.D.Set("idcs_created_by", nil) + } + + if s.Res.IdcsLastModifiedBy != nil { + s.D.Set("idcs_last_modified_by", []interface{}{idcsLastModifiedByToMap(s.Res.IdcsLastModifiedBy)}) + } else { + s.D.Set("idcs_last_modified_by", nil) + } + + if s.Res.IdcsLastUpgradedInRelease != nil { + s.D.Set("idcs_last_upgraded_in_release", *s.Res.IdcsLastUpgradedInRelease) + } + + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + + if s.Res.Meta != nil { + s.D.Set("meta", []interface{}{metaToMap(s.Res.Meta)}) + } else { + s.D.Set("meta", nil) + } + + if s.Res.Ocid != nil { + s.D.Set("ocid", *s.Res.Ocid) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + s.D.Set("status", s.Res.Status) + + tags := []interface{}{} + for _, item := range s.Res.Tags { + tags = append(tags, tagsToMap(item)) + } + s.D.Set("tags", tags) + + if s.Res.TenancyOcid != nil { + s.D.Set("tenancy_ocid", *s.Res.TenancyOcid) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionself_change_user", []interface{}{ExtensionSelfChangeUserToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionself_change_user", nil) + } + + if s.Res.User != nil { + s.D.Set("user", []interface{}{AuthTokenUserToMap(s.Res.User)}) + } else { + s.D.Set("user", nil) + } + + return nil +} + +//func GetAuthTokenCompositeId(authTokenId string) string { +// authTokenId = url.PathEscape(authTokenId) +// id = url.PathEscape(id) +// idcsEndpoint = url.PathEscape(idcsEndpoint) +// compositeId := "idcsEndpoint/" + idcsEndpoint + "/authTokens/" + authTokenId +// return compositeId +//} + +func parseAuthTokenCompositeId(compositeId string) (authTokenId string, err error) { + parts := strings.Split(compositeId, "/") + match, _ := regexp.MatchString("idcsEndpoint/.*/authTokens/.*", compositeId) + if !match || len(parts) != 4 { + err = fmt.Errorf("illegal compositeId %s encountered", compositeId) + return + } + //idcsEndpoint, _ = url.PathUnescape(parts[1]) + authTokenId, _ = url.PathUnescape(parts[3]) + + return +} + +func AuthTokenToMap(obj oci_identity_domains.AuthToken) map[string]interface{} { + result := map[string]interface{}{} + + if obj.CompartmentOcid != nil { + result["compartment_ocid"] = string(*obj.CompartmentOcid) + } + + if obj.DeleteInProgress != nil { + result["delete_in_progress"] = bool(*obj.DeleteInProgress) + } + + if obj.Description != nil { + result["description"] = string(*obj.Description) + } + + if obj.DomainOcid != nil { + result["domain_ocid"] = string(*obj.DomainOcid) + } + + if obj.ExpiresOn != nil { + result["expires_on"] = string(*obj.ExpiresOn) + } + + if obj.Id != nil { + result["id"] = string(*obj.Id) + } + + if obj.IdcsCreatedBy != nil { + result["idcs_created_by"] = []interface{}{idcsCreatedByToMap(obj.IdcsCreatedBy)} + } + + if obj.IdcsLastModifiedBy != nil { + result["idcs_last_modified_by"] = []interface{}{idcsLastModifiedByToMap(obj.IdcsLastModifiedBy)} + } + + if obj.IdcsLastUpgradedInRelease != nil { + result["idcs_last_upgraded_in_release"] = string(*obj.IdcsLastUpgradedInRelease) + } + + result["idcs_prevented_operations"] = obj.IdcsPreventedOperations + result["idcs_prevented_operations"] = obj.IdcsPreventedOperations + + if obj.Meta != nil { + result["meta"] = []interface{}{metaToMap(obj.Meta)} + } + + if obj.Ocid != nil { + result["ocid"] = string(*obj.Ocid) + } + + result["schemas"] = obj.Schemas + result["schemas"] = obj.Schemas + + result["status"] = string(obj.Status) + + tags := []interface{}{} + for _, item := range obj.Tags { + tags = append(tags, tagsToMap(item)) + } + result["tags"] = tags + + if obj.TenancyOcid != nil { + result["tenancy_ocid"] = string(*obj.TenancyOcid) + } + + if obj.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser != nil { + result["urnietfparamsscimschemasoracleidcsextensionself_change_user"] = []interface{}{ExtensionSelfChangeUserToMap(obj.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser)} + } + + if obj.User != nil { + result["user"] = []interface{}{AuthTokenUserToMap(obj.User)} + } + + return result +} + +func (s *IdentityDomainsAuthTokenResourceCrud) mapToAuthTokenUser(fieldKeyFormat string) (oci_identity_domains.AuthTokenUser, error) { + result := oci_identity_domains.AuthTokenUser{} + + if display, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "display")); ok { + tmp := display.(string) + result.Display = &tmp + } + + if name, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "name")); ok { + tmp := name.(string) + result.Name = &tmp + } + + if ocid, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ocid")); ok { + tmp := ocid.(string) + result.Ocid = &tmp + } + + if ref, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ref")); ok { + tmp := ref.(string) + result.Ref = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func AuthTokenUserToMap(obj *oci_identity_domains.AuthTokenUser) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Display != nil { + result["display"] = string(*obj.Display) + } + + if obj.Name != nil { + result["name"] = string(*obj.Name) + } + + if obj.Ocid != nil { + result["ocid"] = string(*obj.Ocid) + } + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func (s *IdentityDomainsAuthTokenResourceCrud) mapToExtensionSelfChangeUser(fieldKeyFormat string) (oci_identity_domains.ExtensionSelfChangeUser, error) { + result := oci_identity_domains.ExtensionSelfChangeUser{} + + if allowSelfChange, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "allow_self_change")); ok { + tmp := allowSelfChange.(bool) + result.AllowSelfChange = &tmp + } + + return result, nil +} + +func (s *IdentityDomainsAuthTokenResourceCrud) mapTotags(fieldKeyFormat string) (oci_identity_domains.Tags, error) { + result := oci_identity_domains.Tags{} + + if key, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "key")); ok { + tmp := key.(string) + result.Key = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} diff --git a/internal/service/identity_domains/identity_domains_auth_tokens_data_source.go b/internal/service/identity_domains/identity_domains_auth_tokens_data_source.go new file mode 100644 index 00000000000..6a0cda8b033 --- /dev/null +++ b/internal/service/identity_domains/identity_domains_auth_tokens_data_source.go @@ -0,0 +1,227 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsAuthTokensDataSource() *schema.Resource { + return &schema.Resource{ + Read: readIdentityDomainsAuthTokens, + Schema: map[string]*schema.Schema{ + "idcs_endpoint": { + Type: schema.TypeString, + Required: true, + }, + "compartment_id": { + Type: schema.TypeString, + Optional: true, + }, + "auth_token_count": { + Type: schema.TypeInt, + Optional: true, + }, + "auth_token_filter": { + Type: schema.TypeString, + Optional: true, + }, + "attribute_sets": { + Type: schema.TypeList, + Optional: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "attributes": { + Type: schema.TypeString, + Optional: true, + }, + "authorization": { + Type: schema.TypeString, + Optional: true, + }, + "resource_type_schema_version": { + Type: schema.TypeString, + Optional: true, + }, + "start_index": { + Type: schema.TypeInt, + Optional: true, + }, + "sort_order": { + Type: schema.TypeString, + Optional: true, + }, + "sort_by": { + Type: schema.TypeString, + Optional: true, + }, + // Computed + "auth_tokens": { + Type: schema.TypeList, + Computed: true, + Elem: tfresource.GetDataSourceItemSchema(IdentityDomainsAuthTokenResource()), + }, + "items_per_page": { + Type: schema.TypeInt, + Computed: true, + }, + "schemas": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "total_results": { + Type: schema.TypeInt, + Computed: true, + }, + }, + } +} + +func readIdentityDomainsAuthTokens(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsAuthTokensDataSourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.ReadResource(sync) +} + +type IdentityDomainsAuthTokensDataSourceCrud struct { + D *schema.ResourceData + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.ListAuthTokensResponse +} + +func (s *IdentityDomainsAuthTokensDataSourceCrud) VoidState() { + s.D.SetId("") +} + +func (s *IdentityDomainsAuthTokensDataSourceCrud) Get() error { + request := oci_identity_domains.ListAuthTokensRequest{} + + if authTokenCount, ok := s.D.GetOkExists("auth_token_count"); ok { + tmp := authTokenCount.(int) + request.Count = &tmp + } + + if authTokenFilter, ok := s.D.GetOkExists("auth_token_filter"); ok { + tmp := authTokenFilter.(string) + tmp = tryMatchUserSubResFilter(tmp) + request.Filter = &tmp + } + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + if startIndex, ok := s.D.GetOkExists("start_index"); ok { + tmp := startIndex.(int) + request.StartIndex = &tmp + } + + if sortOrder, ok := s.D.GetOkExists("sort_order"); ok { + tmp := oci_identity_domains.ListAuthTokensSortOrderEnum(sortOrder.(string)) + request.SortOrder = tmp + } + + if sortBy, ok := s.D.GetOkExists("sort_by"); ok { + tmp := sortBy.(string) + request.SortBy = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "identity_domains") + + response, err := s.Client.ListAuthTokens(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response + // IDCS pagination + startIndex := *response.StartIndex + for startIndex+*response.ItemsPerPage <= *response.TotalResults { + startIndex += *response.ItemsPerPage + request.StartIndex = &startIndex + listResponse, err := s.Client.ListAuthTokens(context.Background(), request) + if err != nil { + return err + } + + s.Res.Resources = append(s.Res.Resources, listResponse.Resources...) + } + + return nil +} + +func (s *IdentityDomainsAuthTokensDataSourceCrud) SetData() error { + if s.Res == nil { + return nil + } + + s.D.SetId(tfresource.GenerateDataSourceHashID("IdentityDomainsAuthTokensDataSource-", IdentityDomainsAuthTokensDataSource(), s.D)) + + resources := []interface{}{} + for _, item := range s.Res.Resources { + resources = append(resources, AuthTokenToMap(item)) + } + s.D.Set("auth_tokens", resources) + + if s.Res.ItemsPerPage != nil { + s.D.Set("items_per_page", *s.Res.ItemsPerPage) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + if s.Res.StartIndex != nil { + s.D.Set("start_index", *s.Res.StartIndex) + } + + if s.Res.TotalResults != nil { + s.D.Set("total_results", *s.Res.TotalResults) + } + + return nil +} diff --git a/internal/service/identity_domains/identity_domains_authentication_factor_setting_data_source.go b/internal/service/identity_domains/identity_domains_authentication_factor_setting_data_source.go new file mode 100644 index 00000000000..8bb66a9bc25 --- /dev/null +++ b/internal/service/identity_domains/identity_domains_authentication_factor_setting_data_source.go @@ -0,0 +1,303 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsAuthenticationFactorSettingDataSource() *schema.Resource { + fieldMap := make(map[string]*schema.Schema) + fieldMap["attribute_sets"] = &schema.Schema{ + Type: schema.TypeList, + Optional: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + } + fieldMap["attributes"] = &schema.Schema{ + Type: schema.TypeString, + Optional: true, + } + fieldMap["authentication_factor_setting_id"] = &schema.Schema{ + Type: schema.TypeString, + Optional: true, + } + fieldMap["authorization"] = &schema.Schema{ + Type: schema.TypeString, + Optional: true, + } + fieldMap["idcs_endpoint"] = &schema.Schema{ + Type: schema.TypeString, + Required: true, + } + fieldMap["resource_type_schema_version"] = &schema.Schema{ + Type: schema.TypeString, + Optional: true, + } + return tfresource.GetSingularDataSourceItemSchema(IdentityDomainsAuthenticationFactorSettingResource(), fieldMap, readSingularIdentityDomainsAuthenticationFactorSetting) +} + +func readSingularIdentityDomainsAuthenticationFactorSetting(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsAuthenticationFactorSettingDataSourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.ReadResource(sync) +} + +type IdentityDomainsAuthenticationFactorSettingDataSourceCrud struct { + D *schema.ResourceData + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.GetAuthenticationFactorSettingResponse +} + +func (s *IdentityDomainsAuthenticationFactorSettingDataSourceCrud) VoidState() { + s.D.SetId("") +} + +func (s *IdentityDomainsAuthenticationFactorSettingDataSourceCrud) Get() error { + request := oci_identity_domains.GetAuthenticationFactorSettingRequest{} + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authenticationFactorSettingId, ok := s.D.GetOkExists("authentication_factor_setting_id"); ok { + tmp := authenticationFactorSettingId.(string) + request.AuthenticationFactorSettingId = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "identity_domains") + + response, err := s.Client.GetAuthenticationFactorSetting(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response + return nil +} + +func (s *IdentityDomainsAuthenticationFactorSettingDataSourceCrud) SetData() error { + if s.Res == nil { + return nil + } + + s.D.SetId(*s.Res.Id) + + if s.Res.AutoEnrollEmailFactorDisabled != nil { + s.D.Set("auto_enroll_email_factor_disabled", *s.Res.AutoEnrollEmailFactorDisabled) + } + + if s.Res.BypassCodeEnabled != nil { + s.D.Set("bypass_code_enabled", *s.Res.BypassCodeEnabled) + } + + if s.Res.BypassCodeSettings != nil { + s.D.Set("bypass_code_settings", []interface{}{AuthenticationFactorSettingsBypassCodeSettingsToMap(s.Res.BypassCodeSettings)}) + } else { + s.D.Set("bypass_code_settings", nil) + } + + if s.Res.ClientAppSettings != nil { + s.D.Set("client_app_settings", []interface{}{AuthenticationFactorSettingsClientAppSettingsToMap(s.Res.ClientAppSettings)}) + } else { + s.D.Set("client_app_settings", nil) + } + + if s.Res.CompartmentOcid != nil { + s.D.Set("compartment_ocid", *s.Res.CompartmentOcid) + } + + compliancePolicy := []interface{}{} + for _, item := range s.Res.CompliancePolicy { + compliancePolicy = append(compliancePolicy, AuthenticationFactorSettingsCompliancePolicyToMap(item)) + } + s.D.Set("compliance_policy", compliancePolicy) + + if s.Res.DeleteInProgress != nil { + s.D.Set("delete_in_progress", *s.Res.DeleteInProgress) + } + + if s.Res.DomainOcid != nil { + s.D.Set("domain_ocid", *s.Res.DomainOcid) + } + + if s.Res.EmailEnabled != nil { + s.D.Set("email_enabled", *s.Res.EmailEnabled) + } + + if s.Res.EmailSettings != nil { + s.D.Set("email_settings", []interface{}{AuthenticationFactorSettingsEmailSettingsToMap(s.Res.EmailSettings)}) + } else { + s.D.Set("email_settings", nil) + } + + if s.Res.EndpointRestrictions != nil { + s.D.Set("endpoint_restrictions", []interface{}{AuthenticationFactorSettingsEndpointRestrictionsToMap(s.Res.EndpointRestrictions)}) + } else { + s.D.Set("endpoint_restrictions", nil) + } + + if s.Res.FidoAuthenticatorEnabled != nil { + s.D.Set("fido_authenticator_enabled", *s.Res.FidoAuthenticatorEnabled) + } + + if s.Res.HideBackupFactorEnabled != nil { + s.D.Set("hide_backup_factor_enabled", *s.Res.HideBackupFactorEnabled) + } + + if s.Res.IdcsCreatedBy != nil { + s.D.Set("idcs_created_by", []interface{}{idcsCreatedByToMap(s.Res.IdcsCreatedBy)}) + } else { + s.D.Set("idcs_created_by", nil) + } + + if s.Res.IdcsLastModifiedBy != nil { + s.D.Set("idcs_last_modified_by", []interface{}{idcsLastModifiedByToMap(s.Res.IdcsLastModifiedBy)}) + } else { + s.D.Set("idcs_last_modified_by", nil) + } + + if s.Res.IdcsLastUpgradedInRelease != nil { + s.D.Set("idcs_last_upgraded_in_release", *s.Res.IdcsLastUpgradedInRelease) + } + + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + + if s.Res.IdentityStoreSettings != nil { + s.D.Set("identity_store_settings", []interface{}{AuthenticationFactorSettingsIdentityStoreSettingsToMap(s.Res.IdentityStoreSettings)}) + } else { + s.D.Set("identity_store_settings", nil) + } + + if s.Res.Meta != nil { + s.D.Set("meta", []interface{}{metaToMap(s.Res.Meta)}) + } else { + s.D.Set("meta", nil) + } + + if s.Res.MfaEnabledCategory != nil { + s.D.Set("mfa_enabled_category", *s.Res.MfaEnabledCategory) + } + + if s.Res.MfaEnrollmentType != nil { + s.D.Set("mfa_enrollment_type", *s.Res.MfaEnrollmentType) + } + + if s.Res.NotificationSettings != nil { + s.D.Set("notification_settings", []interface{}{AuthenticationFactorSettingsNotificationSettingsToMap(s.Res.NotificationSettings)}) + } else { + s.D.Set("notification_settings", nil) + } + + if s.Res.Ocid != nil { + s.D.Set("ocid", *s.Res.Ocid) + } + + if s.Res.PhoneCallEnabled != nil { + s.D.Set("phone_call_enabled", *s.Res.PhoneCallEnabled) + } + + if s.Res.PushEnabled != nil { + s.D.Set("push_enabled", *s.Res.PushEnabled) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + if s.Res.SecurityQuestionsEnabled != nil { + s.D.Set("security_questions_enabled", *s.Res.SecurityQuestionsEnabled) + } + + if s.Res.SmsEnabled != nil { + s.D.Set("sms_enabled", *s.Res.SmsEnabled) + } + + tags := []interface{}{} + for _, item := range s.Res.Tags { + tags = append(tags, tagsToMap(item)) + } + s.D.Set("tags", tags) + + if s.Res.TenancyOcid != nil { + s.D.Set("tenancy_ocid", *s.Res.TenancyOcid) + } + + if s.Res.ThirdPartyFactor != nil { + s.D.Set("third_party_factor", []interface{}{AuthenticationFactorSettingsThirdPartyFactorToMap(s.Res.ThirdPartyFactor)}) + } else { + s.D.Set("third_party_factor", nil) + } + + if s.Res.TotpEnabled != nil { + s.D.Set("totp_enabled", *s.Res.TotpEnabled) + } + + if s.Res.TotpSettings != nil { + s.D.Set("totp_settings", []interface{}{AuthenticationFactorSettingsTotpSettingsToMap(s.Res.TotpSettings)}) + } else { + s.D.Set("totp_settings", nil) + } + + if s.Res.UrnietfparamsscimschemasoracleidcsextensionfidoAuthenticationFactorSettings != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings", []interface{}{ExtensionFidoAuthenticationFactorSettingsToMap(s.Res.UrnietfparamsscimschemasoracleidcsextensionfidoAuthenticationFactorSettings)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings", nil) + } + + if s.Res.UrnietfparamsscimschemasoracleidcsextensionthirdPartyAuthenticationFactorSettings != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionthird_party_authentication_factor_settings", []interface{}{ExtensionThirdPartyAuthenticationFactorSettingsToMap(s.Res.UrnietfparamsscimschemasoracleidcsextensionthirdPartyAuthenticationFactorSettings)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionthird_party_authentication_factor_settings", nil) + } + + s.D.Set("user_enrollment_disabled_factors", s.Res.UserEnrollmentDisabledFactors) + s.D.Set("user_enrollment_disabled_factors", s.Res.UserEnrollmentDisabledFactors) + + if s.Res.YubicoOtpEnabled != nil { + s.D.Set("yubico_otp_enabled", *s.Res.YubicoOtpEnabled) + } + + return nil +} diff --git a/internal/service/identity_domains/identity_domains_authentication_factor_setting_resource.go b/internal/service/identity_domains/identity_domains_authentication_factor_setting_resource.go new file mode 100644 index 00000000000..679afa9465c --- /dev/null +++ b/internal/service/identity_domains/identity_domains_authentication_factor_setting_resource.go @@ -0,0 +1,2473 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + "fmt" + "log" + "net/url" + "regexp" + "strings" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsAuthenticationFactorSettingResource() *schema.Resource { + return &schema.Resource{ + Importer: &schema.ResourceImporter{ + State: schema.ImportStatePassthrough, + }, + Timeouts: tfresource.DefaultTimeout, + Create: createIdentityDomainsAuthenticationFactorSetting, + Read: readIdentityDomainsAuthenticationFactorSetting, + Update: updateIdentityDomainsAuthenticationFactorSetting, + Delete: deleteIdentityDomainsAuthenticationFactorSetting, + Schema: map[string]*schema.Schema{ + // Required + "authentication_factor_setting_id": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "bypass_code_enabled": { + Type: schema.TypeBool, + Required: true, + }, + "bypass_code_settings": { + Type: schema.TypeList, + Required: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "help_desk_code_expiry_in_mins": { + Type: schema.TypeInt, + Required: true, + }, + "help_desk_generation_enabled": { + Type: schema.TypeBool, + Required: true, + }, + "help_desk_max_usage": { + Type: schema.TypeInt, + Required: true, + }, + "length": { + Type: schema.TypeInt, + Required: true, + }, + "max_active": { + Type: schema.TypeInt, + Required: true, + }, + "self_service_generation_enabled": { + Type: schema.TypeBool, + Required: true, + }, + + // Optional + + // Computed + }, + }, + }, + "client_app_settings": { + Type: schema.TypeList, + Required: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "device_protection_policy": { + Type: schema.TypeString, + Required: true, + }, + "initial_lockout_period_in_secs": { + Type: schema.TypeInt, + Required: true, + }, + "key_pair_length": { + Type: schema.TypeInt, + Required: true, + }, + "lockout_escalation_pattern": { + Type: schema.TypeString, + Required: true, + }, + "max_failures_before_lockout": { + Type: schema.TypeInt, + Required: true, + }, + "max_failures_before_warning": { + Type: schema.TypeInt, + Required: true, + }, + "max_lockout_interval_in_secs": { + Type: schema.TypeInt, + Required: true, + }, + "min_pin_length": { + Type: schema.TypeInt, + Required: true, + }, + "policy_update_freq_in_days": { + Type: schema.TypeInt, + Required: true, + }, + "request_signing_algo": { + Type: schema.TypeString, + Required: true, + }, + "shared_secret_encoding": { + Type: schema.TypeString, + Required: true, + }, + "unlock_app_for_each_request_enabled": { + Type: schema.TypeBool, + Required: true, + }, + "unlock_app_interval_in_secs": { + Type: schema.TypeInt, + Required: true, + }, + "unlock_on_app_foreground_enabled": { + Type: schema.TypeBool, + Required: true, + }, + "unlock_on_app_start_enabled": { + Type: schema.TypeBool, + Required: true, + }, + + // Optional + + // Computed + }, + }, + }, + "compliance_policy": { + Type: schema.TypeList, + Required: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "action": { + Type: schema.TypeString, + Required: true, + }, + "name": { + Type: schema.TypeString, + Required: true, + }, + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + + // Computed + }, + }, + }, + "endpoint_restrictions": { + Type: schema.TypeList, + Required: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "max_endpoint_trust_duration_in_days": { + Type: schema.TypeInt, + Required: true, + }, + "max_enrolled_devices": { + Type: schema.TypeInt, + Required: true, + }, + "max_incorrect_attempts": { + Type: schema.TypeInt, + Required: true, + }, + "max_trusted_endpoints": { + Type: schema.TypeInt, + Required: true, + }, + "trusted_endpoints_enabled": { + Type: schema.TypeBool, + Required: true, + }, + + // Optional + + // Computed + }, + }, + }, + "idcs_endpoint": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "mfa_enrollment_type": { + Type: schema.TypeString, + Required: true, + }, + "notification_settings": { + Type: schema.TypeList, + Required: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "pull_enabled": { + Type: schema.TypeBool, + Required: true, + }, + + // Optional + + // Computed + }, + }, + }, + "push_enabled": { + Type: schema.TypeBool, + Required: true, + }, + "schemas": { + Type: schema.TypeList, + Required: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "security_questions_enabled": { + Type: schema.TypeBool, + Required: true, + }, + "sms_enabled": { + Type: schema.TypeBool, + Required: true, + }, + "totp_enabled": { + Type: schema.TypeBool, + Required: true, + }, + "totp_settings": { + Type: schema.TypeList, + Required: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "email_otp_validity_duration_in_mins": { + Type: schema.TypeInt, + Required: true, + }, + "email_passcode_length": { + Type: schema.TypeInt, + Required: true, + }, + "hashing_algorithm": { + Type: schema.TypeString, + Required: true, + }, + "jwt_validity_duration_in_secs": { + Type: schema.TypeInt, + Required: true, + }, + "key_refresh_interval_in_days": { + Type: schema.TypeInt, + Required: true, + }, + "passcode_length": { + Type: schema.TypeInt, + Required: true, + }, + "sms_otp_validity_duration_in_mins": { + Type: schema.TypeInt, + Required: true, + }, + "sms_passcode_length": { + Type: schema.TypeInt, + Required: true, + }, + "time_step_in_secs": { + Type: schema.TypeInt, + Required: true, + }, + "time_step_tolerance": { + Type: schema.TypeInt, + Required: true, + }, + + // Optional + + // Computed + }, + }, + }, + + // Optional + "attribute_sets": { + Type: schema.TypeList, + Optional: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "attributes": { + Type: schema.TypeString, + Optional: true, + }, + "authorization": { + Type: schema.TypeString, + Optional: true, + }, + "auto_enroll_email_factor_disabled": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "email_enabled": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "email_settings": { + Type: schema.TypeList, + Optional: true, + Computed: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "email_link_enabled": { + Type: schema.TypeBool, + Required: true, + }, + + // Optional + "email_link_custom_url": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + }, + }, + }, + "fido_authenticator_enabled": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "hide_backup_factor_enabled": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "identity_store_settings": { + Type: schema.TypeList, + Optional: true, + Computed: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "mobile_number_enabled": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "mobile_number_update_enabled": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + + // Computed + }, + }, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "phone_call_enabled": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "resource_type_schema_version": { + Type: schema.TypeString, + Optional: true, + }, + "tags": { + Type: schema.TypeList, + Optional: true, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "key": { + Type: schema.TypeString, + Required: true, + }, + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + + // Computed + }, + }, + }, + "third_party_factor": { + Type: schema.TypeList, + Optional: true, + Computed: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "duo_security": { + Type: schema.TypeBool, + Required: true, + }, + + // Optional + + // Computed + }, + }, + }, + "urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings": { + Type: schema.TypeList, + Optional: true, + Computed: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "attestation": { + Type: schema.TypeString, + Required: true, + }, + "authenticator_selection_attachment": { + Type: schema.TypeString, + Required: true, + }, + "authenticator_selection_require_resident_key": { + Type: schema.TypeBool, + Required: true, + }, + "authenticator_selection_resident_key": { + Type: schema.TypeString, + Required: true, + }, + "authenticator_selection_user_verification": { + Type: schema.TypeString, + Required: true, + }, + "exclude_credentials": { + Type: schema.TypeBool, + Required: true, + }, + "public_key_types": { + Type: schema.TypeList, + Required: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "timeout": { + Type: schema.TypeInt, + Required: true, + }, + + // Optional + "domain_validation_level": { + Type: schema.TypeInt, + Optional: true, + Computed: true, + }, + + // Computed + }, + }, + }, + "urnietfparamsscimschemasoracleidcsextensionthird_party_authentication_factor_settings": { + Type: schema.TypeList, + Optional: true, + Computed: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "duo_security_settings": { + Type: schema.TypeList, + Optional: true, + Computed: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "api_hostname": { + Type: schema.TypeString, + Required: true, + }, + "integration_key": { + Type: schema.TypeString, + Required: true, + }, + "secret_key": { + Type: schema.TypeString, + Required: true, + }, + "user_mapping_attribute": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + "attestation_key": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + }, + }, + }, + + // Computed + }, + }, + }, + "user_enrollment_disabled_factors": { + Type: schema.TypeList, + Optional: true, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "yubico_otp_enabled": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + + // Computed + "compartment_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "delete_in_progress": { + Type: schema.TypeBool, + Computed: true, + }, + "domain_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "id": { + Type: schema.TypeString, + Computed: true, + }, + "idcs_created_by": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "idcs_last_modified_by": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "idcs_last_upgraded_in_release": { + Type: schema.TypeString, + Computed: true, + }, + "idcs_prevented_operations": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "meta": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "created": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "last_modified": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "location": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "resource_type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "version": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + }, + }, + }, + "mfa_enabled_category": { + Type: schema.TypeString, + Computed: true, + }, + "tenancy_ocid": { + Type: schema.TypeString, + Computed: true, + }, + }, + } +} + +func createIdentityDomainsAuthenticationFactorSetting(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsAuthenticationFactorSettingResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.CreateResource(d, sync) +} + +func readIdentityDomainsAuthenticationFactorSetting(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsAuthenticationFactorSettingResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpointForRead(d, "authenticationFactorSettings") + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.ReadResource(sync) +} + +func updateIdentityDomainsAuthenticationFactorSetting(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsAuthenticationFactorSettingResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.UpdateResource(d, sync) +} + +func deleteIdentityDomainsAuthenticationFactorSetting(d *schema.ResourceData, m interface{}) error { + return nil +} + +type IdentityDomainsAuthenticationFactorSettingResourceCrud struct { + tfresource.BaseCrud + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.AuthenticationFactorSetting + DisableNotFoundRetries bool +} + +func (s *IdentityDomainsAuthenticationFactorSettingResourceCrud) ID() string { + return *s.Res.Id +} + +func (s *IdentityDomainsAuthenticationFactorSettingResourceCrud) Create() error { + request := oci_identity_domains.PutAuthenticationFactorSettingRequest{} + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authenticationFactorSettingId, ok := s.D.GetOkExists("authentication_factor_setting_id"); ok { + tmp := authenticationFactorSettingId.(string) + request.AuthenticationFactorSettingId = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if autoEnrollEmailFactorDisabled, ok := s.D.GetOkExists("auto_enroll_email_factor_disabled"); ok { + tmp := autoEnrollEmailFactorDisabled.(bool) + request.AutoEnrollEmailFactorDisabled = &tmp + } + + if bypassCodeEnabled, ok := s.D.GetOkExists("bypass_code_enabled"); ok { + tmp := bypassCodeEnabled.(bool) + request.BypassCodeEnabled = &tmp + } + + if bypassCodeSettings, ok := s.D.GetOkExists("bypass_code_settings"); ok { + if tmpList := bypassCodeSettings.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "bypass_code_settings", 0) + tmp, err := s.mapToAuthenticationFactorSettingsBypassCodeSettings(fieldKeyFormat) + if err != nil { + return err + } + request.BypassCodeSettings = &tmp + } + } + + if clientAppSettings, ok := s.D.GetOkExists("client_app_settings"); ok { + if tmpList := clientAppSettings.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "client_app_settings", 0) + tmp, err := s.mapToAuthenticationFactorSettingsClientAppSettings(fieldKeyFormat) + if err != nil { + return err + } + request.ClientAppSettings = &tmp + } + } + + if compliancePolicy, ok := s.D.GetOkExists("compliance_policy"); ok { + interfaces := compliancePolicy.([]interface{}) + tmp := make([]oci_identity_domains.AuthenticationFactorSettingsCompliancePolicy, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "compliance_policy", stateDataIndex) + converted, err := s.mapToAuthenticationFactorSettingsCompliancePolicy(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("compliance_policy") { + request.CompliancePolicy = tmp + } + } + + if emailEnabled, ok := s.D.GetOkExists("email_enabled"); ok { + tmp := emailEnabled.(bool) + request.EmailEnabled = &tmp + } + + if emailSettings, ok := s.D.GetOkExists("email_settings"); ok { + if tmpList := emailSettings.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "email_settings", 0) + tmp, err := s.mapToAuthenticationFactorSettingsEmailSettings(fieldKeyFormat) + if err != nil { + return err + } + request.EmailSettings = &tmp + } + } + + if endpointRestrictions, ok := s.D.GetOkExists("endpoint_restrictions"); ok { + if tmpList := endpointRestrictions.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "endpoint_restrictions", 0) + tmp, err := s.mapToAuthenticationFactorSettingsEndpointRestrictions(fieldKeyFormat) + if err != nil { + return err + } + request.EndpointRestrictions = &tmp + } + } + + if fidoAuthenticatorEnabled, ok := s.D.GetOkExists("fido_authenticator_enabled"); ok { + tmp := fidoAuthenticatorEnabled.(bool) + request.FidoAuthenticatorEnabled = &tmp + } + + if hideBackupFactorEnabled, ok := s.D.GetOkExists("hide_backup_factor_enabled"); ok { + tmp := hideBackupFactorEnabled.(bool) + request.HideBackupFactorEnabled = &tmp + } + + if id, ok := s.D.GetOkExists("id"); ok { + tmp := id.(string) + request.Id = &tmp + } + + if identityStoreSettings, ok := s.D.GetOkExists("identity_store_settings"); ok { + if tmpList := identityStoreSettings.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "identity_store_settings", 0) + tmp, err := s.mapToAuthenticationFactorSettingsIdentityStoreSettings(fieldKeyFormat) + if err != nil { + return err + } + request.IdentityStoreSettings = &tmp + } + } + + if mfaEnrollmentType, ok := s.D.GetOkExists("mfa_enrollment_type"); ok { + tmp := mfaEnrollmentType.(string) + request.MfaEnrollmentType = &tmp + } + + if notificationSettings, ok := s.D.GetOkExists("notification_settings"); ok { + if tmpList := notificationSettings.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "notification_settings", 0) + tmp, err := s.mapToAuthenticationFactorSettingsNotificationSettings(fieldKeyFormat) + if err != nil { + return err + } + request.NotificationSettings = &tmp + } + } + + if ocid, ok := s.D.GetOkExists("ocid"); ok { + tmp := ocid.(string) + request.Ocid = &tmp + } + + if phoneCallEnabled, ok := s.D.GetOkExists("phone_call_enabled"); ok { + tmp := phoneCallEnabled.(bool) + request.PhoneCallEnabled = &tmp + } + + if pushEnabled, ok := s.D.GetOkExists("push_enabled"); ok { + tmp := pushEnabled.(bool) + request.PushEnabled = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + if schemas, ok := s.D.GetOkExists("schemas"); ok { + interfaces := schemas.([]interface{}) + tmp := make([]string, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = interfaces[i].(string) + } + } + if len(tmp) != 0 || s.D.HasChange("schemas") { + request.Schemas = tmp + } + } + + if securityQuestionsEnabled, ok := s.D.GetOkExists("security_questions_enabled"); ok { + tmp := securityQuestionsEnabled.(bool) + request.SecurityQuestionsEnabled = &tmp + } + + if smsEnabled, ok := s.D.GetOkExists("sms_enabled"); ok { + tmp := smsEnabled.(bool) + request.SmsEnabled = &tmp + } + + if tags, ok := s.D.GetOkExists("tags"); ok { + interfaces := tags.([]interface{}) + tmp := make([]oci_identity_domains.Tags, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "tags", stateDataIndex) + converted, err := s.mapTotags(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("tags") { + request.Tags = tmp + } + } + + if thirdPartyFactor, ok := s.D.GetOkExists("third_party_factor"); ok { + if tmpList := thirdPartyFactor.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "third_party_factor", 0) + tmp, err := s.mapToAuthenticationFactorSettingsThirdPartyFactor(fieldKeyFormat) + if err != nil { + return err + } + request.ThirdPartyFactor = &tmp + } + } + + if totpEnabled, ok := s.D.GetOkExists("totp_enabled"); ok { + tmp := totpEnabled.(bool) + request.TotpEnabled = &tmp + } + + if totpSettings, ok := s.D.GetOkExists("totp_settings"); ok { + if tmpList := totpSettings.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "totp_settings", 0) + tmp, err := s.mapToAuthenticationFactorSettingsTotpSettings(fieldKeyFormat) + if err != nil { + return err + } + request.TotpSettings = &tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensionfidoAuthenticationFactorSettings, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensionfidoAuthenticationFactorSettings.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings", 0) + tmp, err := s.mapToExtensionFidoAuthenticationFactorSettings(fieldKeyFormat) + if err != nil { + return err + } + request.UrnietfparamsscimschemasoracleidcsextensionfidoAuthenticationFactorSettings = &tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensionthirdPartyAuthenticationFactorSettings, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextensionthird_party_authentication_factor_settings"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensionthirdPartyAuthenticationFactorSettings.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextensionthird_party_authentication_factor_settings", 0) + tmp, err := s.mapToExtensionThirdPartyAuthenticationFactorSettings(fieldKeyFormat) + if err != nil { + return err + } + request.UrnietfparamsscimschemasoracleidcsextensionthirdPartyAuthenticationFactorSettings = &tmp + } + } + + if userEnrollmentDisabledFactors, ok := s.D.GetOkExists("user_enrollment_disabled_factors"); ok { + interfaces := userEnrollmentDisabledFactors.([]interface{}) + tmp := make([]oci_identity_domains.AuthenticationFactorSettingUserEnrollmentDisabledFactorsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AuthenticationFactorSettingUserEnrollmentDisabledFactorsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("user_enrollment_disabled_factors") { + request.UserEnrollmentDisabledFactors = tmp + } + } + + if yubicoOtpEnabled, ok := s.D.GetOkExists("yubico_otp_enabled"); ok { + tmp := yubicoOtpEnabled.(bool) + request.YubicoOtpEnabled = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + response, err := s.Client.PutAuthenticationFactorSetting(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response.AuthenticationFactorSetting + return nil +} + +func (s *IdentityDomainsAuthenticationFactorSettingResourceCrud) Get() error { + request := oci_identity_domains.GetAuthenticationFactorSettingRequest{} + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + tmp := s.D.Id() + request.AuthenticationFactorSettingId = &tmp + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + authenticationFactorSettingId, err := parseAuthenticationFactorSettingCompositeId(s.D.Id()) + if err == nil { + request.AuthenticationFactorSettingId = &authenticationFactorSettingId + } else { + log.Printf("[WARN] Get() unable to parse current ID: %s", s.D.Id()) + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + response, err := s.Client.GetAuthenticationFactorSetting(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response.AuthenticationFactorSetting + return nil +} + +func (s *IdentityDomainsAuthenticationFactorSettingResourceCrud) Update() error { + request := oci_identity_domains.PutAuthenticationFactorSettingRequest{} + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + tmp := s.D.Id() + request.AuthenticationFactorSettingId = &tmp + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if autoEnrollEmailFactorDisabled, ok := s.D.GetOkExists("auto_enroll_email_factor_disabled"); ok { + tmp := autoEnrollEmailFactorDisabled.(bool) + request.AutoEnrollEmailFactorDisabled = &tmp + } + + if bypassCodeEnabled, ok := s.D.GetOkExists("bypass_code_enabled"); ok { + tmp := bypassCodeEnabled.(bool) + request.BypassCodeEnabled = &tmp + } + + if bypassCodeSettings, ok := s.D.GetOkExists("bypass_code_settings"); ok { + if tmpList := bypassCodeSettings.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "bypass_code_settings", 0) + tmp, err := s.mapToAuthenticationFactorSettingsBypassCodeSettings(fieldKeyFormat) + if err != nil { + return err + } + request.BypassCodeSettings = &tmp + } + } + + if clientAppSettings, ok := s.D.GetOkExists("client_app_settings"); ok { + if tmpList := clientAppSettings.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "client_app_settings", 0) + tmp, err := s.mapToAuthenticationFactorSettingsClientAppSettings(fieldKeyFormat) + if err != nil { + return err + } + request.ClientAppSettings = &tmp + } + } + + if compliancePolicy, ok := s.D.GetOkExists("compliance_policy"); ok { + interfaces := compliancePolicy.([]interface{}) + tmp := make([]oci_identity_domains.AuthenticationFactorSettingsCompliancePolicy, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "compliance_policy", stateDataIndex) + converted, err := s.mapToAuthenticationFactorSettingsCompliancePolicy(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("compliance_policy") { + request.CompliancePolicy = tmp + } + } + + if emailEnabled, ok := s.D.GetOkExists("email_enabled"); ok { + tmp := emailEnabled.(bool) + request.EmailEnabled = &tmp + } + + if emailSettings, ok := s.D.GetOkExists("email_settings"); ok { + if tmpList := emailSettings.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "email_settings", 0) + tmp, err := s.mapToAuthenticationFactorSettingsEmailSettings(fieldKeyFormat) + if err != nil { + return err + } + request.EmailSettings = &tmp + } + } + + if endpointRestrictions, ok := s.D.GetOkExists("endpoint_restrictions"); ok { + if tmpList := endpointRestrictions.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "endpoint_restrictions", 0) + tmp, err := s.mapToAuthenticationFactorSettingsEndpointRestrictions(fieldKeyFormat) + if err != nil { + return err + } + request.EndpointRestrictions = &tmp + } + } + + if fidoAuthenticatorEnabled, ok := s.D.GetOkExists("fido_authenticator_enabled"); ok { + tmp := fidoAuthenticatorEnabled.(bool) + request.FidoAuthenticatorEnabled = &tmp + } + + if hideBackupFactorEnabled, ok := s.D.GetOkExists("hide_backup_factor_enabled"); ok { + tmp := hideBackupFactorEnabled.(bool) + request.HideBackupFactorEnabled = &tmp + } + + tmp = s.D.Id() + request.Id = &tmp + + if identityStoreSettings, ok := s.D.GetOkExists("identity_store_settings"); ok { + if tmpList := identityStoreSettings.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "identity_store_settings", 0) + tmp, err := s.mapToAuthenticationFactorSettingsIdentityStoreSettings(fieldKeyFormat) + if err != nil { + return err + } + request.IdentityStoreSettings = &tmp + } + } + + if mfaEnrollmentType, ok := s.D.GetOkExists("mfa_enrollment_type"); ok { + tmp := mfaEnrollmentType.(string) + request.MfaEnrollmentType = &tmp + } + + if notificationSettings, ok := s.D.GetOkExists("notification_settings"); ok { + if tmpList := notificationSettings.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "notification_settings", 0) + tmp, err := s.mapToAuthenticationFactorSettingsNotificationSettings(fieldKeyFormat) + if err != nil { + return err + } + request.NotificationSettings = &tmp + } + } + + if ocid, ok := s.D.GetOkExists("ocid"); ok { + tmp := ocid.(string) + request.Ocid = &tmp + } + + if phoneCallEnabled, ok := s.D.GetOkExists("phone_call_enabled"); ok { + tmp := phoneCallEnabled.(bool) + request.PhoneCallEnabled = &tmp + } + + if pushEnabled, ok := s.D.GetOkExists("push_enabled"); ok { + tmp := pushEnabled.(bool) + request.PushEnabled = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + if schemas, ok := s.D.GetOkExists("schemas"); ok { + interfaces := schemas.([]interface{}) + tmp := make([]string, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = interfaces[i].(string) + } + } + if len(tmp) != 0 || s.D.HasChange("schemas") { + request.Schemas = tmp + } + } + + if securityQuestionsEnabled, ok := s.D.GetOkExists("security_questions_enabled"); ok { + tmp := securityQuestionsEnabled.(bool) + request.SecurityQuestionsEnabled = &tmp + } + + if smsEnabled, ok := s.D.GetOkExists("sms_enabled"); ok { + tmp := smsEnabled.(bool) + request.SmsEnabled = &tmp + } + + if tags, ok := s.D.GetOkExists("tags"); ok { + interfaces := tags.([]interface{}) + tmp := make([]oci_identity_domains.Tags, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "tags", stateDataIndex) + converted, err := s.mapTotags(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("tags") { + request.Tags = tmp + } + } + + if thirdPartyFactor, ok := s.D.GetOkExists("third_party_factor"); ok { + if tmpList := thirdPartyFactor.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "third_party_factor", 0) + tmp, err := s.mapToAuthenticationFactorSettingsThirdPartyFactor(fieldKeyFormat) + if err != nil { + return err + } + request.ThirdPartyFactor = &tmp + } + } + + if totpEnabled, ok := s.D.GetOkExists("totp_enabled"); ok { + tmp := totpEnabled.(bool) + request.TotpEnabled = &tmp + } + + if totpSettings, ok := s.D.GetOkExists("totp_settings"); ok { + if tmpList := totpSettings.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "totp_settings", 0) + tmp, err := s.mapToAuthenticationFactorSettingsTotpSettings(fieldKeyFormat) + if err != nil { + return err + } + request.TotpSettings = &tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensionfidoAuthenticationFactorSettings, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensionfidoAuthenticationFactorSettings.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings", 0) + tmp, err := s.mapToExtensionFidoAuthenticationFactorSettings(fieldKeyFormat) + if err != nil { + return err + } + request.UrnietfparamsscimschemasoracleidcsextensionfidoAuthenticationFactorSettings = &tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensionthirdPartyAuthenticationFactorSettings, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextensionthird_party_authentication_factor_settings"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensionthirdPartyAuthenticationFactorSettings.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextensionthird_party_authentication_factor_settings", 0) + tmp, err := s.mapToExtensionThirdPartyAuthenticationFactorSettings(fieldKeyFormat) + if err != nil { + return err + } + request.UrnietfparamsscimschemasoracleidcsextensionthirdPartyAuthenticationFactorSettings = &tmp + } + } + + if userEnrollmentDisabledFactors, ok := s.D.GetOkExists("user_enrollment_disabled_factors"); ok { + interfaces := userEnrollmentDisabledFactors.([]interface{}) + tmp := make([]oci_identity_domains.AuthenticationFactorSettingUserEnrollmentDisabledFactorsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AuthenticationFactorSettingUserEnrollmentDisabledFactorsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("user_enrollment_disabled_factors") { + request.UserEnrollmentDisabledFactors = tmp + } + } + + if yubicoOtpEnabled, ok := s.D.GetOkExists("yubico_otp_enabled"); ok { + tmp := yubicoOtpEnabled.(bool) + request.YubicoOtpEnabled = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + response, err := s.Client.PutAuthenticationFactorSetting(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response.AuthenticationFactorSetting + return nil +} + +func (s *IdentityDomainsAuthenticationFactorSettingResourceCrud) SetData() error { + + authenticationFactorSettingId, err := parseAuthenticationFactorSettingCompositeId(s.D.Id()) + if err == nil { + s.D.SetId(authenticationFactorSettingId) + } else { + log.Printf("[WARN] SetData() unable to parse current ID: %s", s.D.Id()) + } + + if s.Res.AutoEnrollEmailFactorDisabled != nil { + s.D.Set("auto_enroll_email_factor_disabled", *s.Res.AutoEnrollEmailFactorDisabled) + } + + if s.Res.BypassCodeEnabled != nil { + s.D.Set("bypass_code_enabled", *s.Res.BypassCodeEnabled) + } + + if s.Res.BypassCodeSettings != nil { + s.D.Set("bypass_code_settings", []interface{}{AuthenticationFactorSettingsBypassCodeSettingsToMap(s.Res.BypassCodeSettings)}) + } else { + s.D.Set("bypass_code_settings", nil) + } + + if s.Res.ClientAppSettings != nil { + s.D.Set("client_app_settings", []interface{}{AuthenticationFactorSettingsClientAppSettingsToMap(s.Res.ClientAppSettings)}) + } else { + s.D.Set("client_app_settings", nil) + } + + if s.Res.CompartmentOcid != nil { + s.D.Set("compartment_ocid", *s.Res.CompartmentOcid) + } + + compliancePolicy := []interface{}{} + for _, item := range s.Res.CompliancePolicy { + compliancePolicy = append(compliancePolicy, AuthenticationFactorSettingsCompliancePolicyToMap(item)) + } + s.D.Set("compliance_policy", compliancePolicy) + + if s.Res.DeleteInProgress != nil { + s.D.Set("delete_in_progress", *s.Res.DeleteInProgress) + } + + if s.Res.DomainOcid != nil { + s.D.Set("domain_ocid", *s.Res.DomainOcid) + } + + if s.Res.EmailEnabled != nil { + s.D.Set("email_enabled", *s.Res.EmailEnabled) + } + + if s.Res.EmailSettings != nil { + s.D.Set("email_settings", []interface{}{AuthenticationFactorSettingsEmailSettingsToMap(s.Res.EmailSettings)}) + } else { + s.D.Set("email_settings", nil) + } + + if s.Res.EndpointRestrictions != nil { + s.D.Set("endpoint_restrictions", []interface{}{AuthenticationFactorSettingsEndpointRestrictionsToMap(s.Res.EndpointRestrictions)}) + } else { + s.D.Set("endpoint_restrictions", nil) + } + + if s.Res.FidoAuthenticatorEnabled != nil { + s.D.Set("fido_authenticator_enabled", *s.Res.FidoAuthenticatorEnabled) + } + + if s.Res.HideBackupFactorEnabled != nil { + s.D.Set("hide_backup_factor_enabled", *s.Res.HideBackupFactorEnabled) + } + + if s.Res.IdcsCreatedBy != nil { + s.D.Set("idcs_created_by", []interface{}{idcsCreatedByToMap(s.Res.IdcsCreatedBy)}) + } else { + s.D.Set("idcs_created_by", nil) + } + + if s.Res.IdcsLastModifiedBy != nil { + s.D.Set("idcs_last_modified_by", []interface{}{idcsLastModifiedByToMap(s.Res.IdcsLastModifiedBy)}) + } else { + s.D.Set("idcs_last_modified_by", nil) + } + + if s.Res.IdcsLastUpgradedInRelease != nil { + s.D.Set("idcs_last_upgraded_in_release", *s.Res.IdcsLastUpgradedInRelease) + } + + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + + if s.Res.IdentityStoreSettings != nil { + s.D.Set("identity_store_settings", []interface{}{AuthenticationFactorSettingsIdentityStoreSettingsToMap(s.Res.IdentityStoreSettings)}) + } else { + s.D.Set("identity_store_settings", nil) + } + + if s.Res.Meta != nil { + s.D.Set("meta", []interface{}{metaToMap(s.Res.Meta)}) + } else { + s.D.Set("meta", nil) + } + + if s.Res.MfaEnabledCategory != nil { + s.D.Set("mfa_enabled_category", *s.Res.MfaEnabledCategory) + } + + if s.Res.MfaEnrollmentType != nil { + s.D.Set("mfa_enrollment_type", *s.Res.MfaEnrollmentType) + } + + if s.Res.NotificationSettings != nil { + s.D.Set("notification_settings", []interface{}{AuthenticationFactorSettingsNotificationSettingsToMap(s.Res.NotificationSettings)}) + } else { + s.D.Set("notification_settings", nil) + } + + if s.Res.Ocid != nil { + s.D.Set("ocid", *s.Res.Ocid) + } + + if s.Res.PhoneCallEnabled != nil { + s.D.Set("phone_call_enabled", *s.Res.PhoneCallEnabled) + } + + if s.Res.PushEnabled != nil { + s.D.Set("push_enabled", *s.Res.PushEnabled) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + if s.Res.SecurityQuestionsEnabled != nil { + s.D.Set("security_questions_enabled", *s.Res.SecurityQuestionsEnabled) + } + + if s.Res.SmsEnabled != nil { + s.D.Set("sms_enabled", *s.Res.SmsEnabled) + } + + tags := []interface{}{} + for _, item := range s.Res.Tags { + tags = append(tags, tagsToMap(item)) + } + s.D.Set("tags", tags) + + if s.Res.TenancyOcid != nil { + s.D.Set("tenancy_ocid", *s.Res.TenancyOcid) + } + + if s.Res.ThirdPartyFactor != nil { + s.D.Set("third_party_factor", []interface{}{AuthenticationFactorSettingsThirdPartyFactorToMap(s.Res.ThirdPartyFactor)}) + } else { + s.D.Set("third_party_factor", nil) + } + + if s.Res.TotpEnabled != nil { + s.D.Set("totp_enabled", *s.Res.TotpEnabled) + } + + if s.Res.TotpSettings != nil { + s.D.Set("totp_settings", []interface{}{AuthenticationFactorSettingsTotpSettingsToMap(s.Res.TotpSettings)}) + } else { + s.D.Set("totp_settings", nil) + } + + if s.Res.UrnietfparamsscimschemasoracleidcsextensionfidoAuthenticationFactorSettings != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings", []interface{}{ExtensionFidoAuthenticationFactorSettingsToMap(s.Res.UrnietfparamsscimschemasoracleidcsextensionfidoAuthenticationFactorSettings)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings", nil) + } + + if s.Res.UrnietfparamsscimschemasoracleidcsextensionthirdPartyAuthenticationFactorSettings != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionthird_party_authentication_factor_settings", []interface{}{ExtensionThirdPartyAuthenticationFactorSettingsToMap(s.Res.UrnietfparamsscimschemasoracleidcsextensionthirdPartyAuthenticationFactorSettings)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionthird_party_authentication_factor_settings", nil) + } + + s.D.Set("user_enrollment_disabled_factors", s.Res.UserEnrollmentDisabledFactors) + s.D.Set("user_enrollment_disabled_factors", s.Res.UserEnrollmentDisabledFactors) + + if s.Res.YubicoOtpEnabled != nil { + s.D.Set("yubico_otp_enabled", *s.Res.YubicoOtpEnabled) + } + + return nil +} + +//func GetAuthenticationFactorSettingCompositeId(authenticationFactorSettingId string) string { +// authenticationFactorSettingId = url.PathEscape(authenticationFactorSettingId) +// id = url.PathEscape(id) +// idcsEndpoint = url.PathEscape(idcsEndpoint) +// compositeId := "idcsEndpoint/" + idcsEndpoint + "/authenticationFactorSettings/" + authenticationFactorSettingId +// return compositeId +//} + +func parseAuthenticationFactorSettingCompositeId(compositeId string) (authenticationFactorSettingId string, err error) { + parts := strings.Split(compositeId, "/") + match, _ := regexp.MatchString("idcsEndpoint/.*/authenticationFactorSettings/.*", compositeId) + if !match || len(parts) != 4 { + err = fmt.Errorf("illegal compositeId %s encountered", compositeId) + return + } + //idcsEndpoint, _ = url.PathUnescape(parts[1]) + authenticationFactorSettingId, _ = url.PathUnescape(parts[3]) + + return +} + +func AuthenticationFactorSettingToMap(obj oci_identity_domains.AuthenticationFactorSetting) map[string]interface{} { + result := map[string]interface{}{} + + if obj.AutoEnrollEmailFactorDisabled != nil { + result["auto_enroll_email_factor_disabled"] = bool(*obj.AutoEnrollEmailFactorDisabled) + } + + if obj.BypassCodeEnabled != nil { + result["bypass_code_enabled"] = bool(*obj.BypassCodeEnabled) + } + + if obj.BypassCodeSettings != nil { + result["bypass_code_settings"] = []interface{}{AuthenticationFactorSettingsBypassCodeSettingsToMap(obj.BypassCodeSettings)} + } + + if obj.ClientAppSettings != nil { + result["client_app_settings"] = []interface{}{AuthenticationFactorSettingsClientAppSettingsToMap(obj.ClientAppSettings)} + } + + if obj.CompartmentOcid != nil { + result["compartment_ocid"] = string(*obj.CompartmentOcid) + } + + compliancePolicy := []interface{}{} + for _, item := range obj.CompliancePolicy { + compliancePolicy = append(compliancePolicy, AuthenticationFactorSettingsCompliancePolicyToMap(item)) + } + result["compliance_policy"] = compliancePolicy + + if obj.DeleteInProgress != nil { + result["delete_in_progress"] = bool(*obj.DeleteInProgress) + } + + if obj.DomainOcid != nil { + result["domain_ocid"] = string(*obj.DomainOcid) + } + + if obj.EmailEnabled != nil { + result["email_enabled"] = bool(*obj.EmailEnabled) + } + + if obj.EmailSettings != nil { + result["email_settings"] = []interface{}{AuthenticationFactorSettingsEmailSettingsToMap(obj.EmailSettings)} + } + + if obj.EndpointRestrictions != nil { + result["endpoint_restrictions"] = []interface{}{AuthenticationFactorSettingsEndpointRestrictionsToMap(obj.EndpointRestrictions)} + } + + if obj.FidoAuthenticatorEnabled != nil { + result["fido_authenticator_enabled"] = bool(*obj.FidoAuthenticatorEnabled) + } + + if obj.HideBackupFactorEnabled != nil { + result["hide_backup_factor_enabled"] = bool(*obj.HideBackupFactorEnabled) + } + + if obj.Id != nil { + result["id"] = string(*obj.Id) + } + + if obj.IdcsCreatedBy != nil { + result["idcs_created_by"] = []interface{}{idcsCreatedByToMap(obj.IdcsCreatedBy)} + } + + if obj.IdcsLastModifiedBy != nil { + result["idcs_last_modified_by"] = []interface{}{idcsLastModifiedByToMap(obj.IdcsLastModifiedBy)} + } + + if obj.IdcsLastUpgradedInRelease != nil { + result["idcs_last_upgraded_in_release"] = string(*obj.IdcsLastUpgradedInRelease) + } + + result["idcs_prevented_operations"] = obj.IdcsPreventedOperations + result["idcs_prevented_operations"] = obj.IdcsPreventedOperations + + if obj.IdentityStoreSettings != nil { + result["identity_store_settings"] = []interface{}{AuthenticationFactorSettingsIdentityStoreSettingsToMap(obj.IdentityStoreSettings)} + } + + if obj.Meta != nil { + result["meta"] = []interface{}{metaToMap(obj.Meta)} + } + + if obj.MfaEnabledCategory != nil { + result["mfa_enabled_category"] = string(*obj.MfaEnabledCategory) + } + + if obj.MfaEnrollmentType != nil { + result["mfa_enrollment_type"] = string(*obj.MfaEnrollmentType) + } + + if obj.NotificationSettings != nil { + result["notification_settings"] = []interface{}{AuthenticationFactorSettingsNotificationSettingsToMap(obj.NotificationSettings)} + } + + if obj.Ocid != nil { + result["ocid"] = string(*obj.Ocid) + } + + if obj.PhoneCallEnabled != nil { + result["phone_call_enabled"] = bool(*obj.PhoneCallEnabled) + } + + if obj.PushEnabled != nil { + result["push_enabled"] = bool(*obj.PushEnabled) + } + + result["schemas"] = obj.Schemas + result["schemas"] = obj.Schemas + + if obj.SecurityQuestionsEnabled != nil { + result["security_questions_enabled"] = bool(*obj.SecurityQuestionsEnabled) + } + + if obj.SmsEnabled != nil { + result["sms_enabled"] = bool(*obj.SmsEnabled) + } + + tags := []interface{}{} + for _, item := range obj.Tags { + tags = append(tags, tagsToMap(item)) + } + result["tags"] = tags + + if obj.TenancyOcid != nil { + result["tenancy_ocid"] = string(*obj.TenancyOcid) + } + + if obj.ThirdPartyFactor != nil { + result["third_party_factor"] = []interface{}{AuthenticationFactorSettingsThirdPartyFactorToMap(obj.ThirdPartyFactor)} + } + + if obj.TotpEnabled != nil { + result["totp_enabled"] = bool(*obj.TotpEnabled) + } + + if obj.TotpSettings != nil { + result["totp_settings"] = []interface{}{AuthenticationFactorSettingsTotpSettingsToMap(obj.TotpSettings)} + } + + if obj.UrnietfparamsscimschemasoracleidcsextensionfidoAuthenticationFactorSettings != nil { + result["urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings"] = []interface{}{ExtensionFidoAuthenticationFactorSettingsToMap(obj.UrnietfparamsscimschemasoracleidcsextensionfidoAuthenticationFactorSettings)} + } + + if obj.UrnietfparamsscimschemasoracleidcsextensionthirdPartyAuthenticationFactorSettings != nil { + result["urnietfparamsscimschemasoracleidcsextensionthird_party_authentication_factor_settings"] = []interface{}{ExtensionThirdPartyAuthenticationFactorSettingsToMap(obj.UrnietfparamsscimschemasoracleidcsextensionthirdPartyAuthenticationFactorSettings)} + } + + result["user_enrollment_disabled_factors"] = obj.UserEnrollmentDisabledFactors + result["user_enrollment_disabled_factors"] = obj.UserEnrollmentDisabledFactors + + if obj.YubicoOtpEnabled != nil { + result["yubico_otp_enabled"] = bool(*obj.YubicoOtpEnabled) + } + + return result +} + +func (s *IdentityDomainsAuthenticationFactorSettingResourceCrud) mapToAuthenticationFactorSettingsBypassCodeSettings(fieldKeyFormat string) (oci_identity_domains.AuthenticationFactorSettingsBypassCodeSettings, error) { + result := oci_identity_domains.AuthenticationFactorSettingsBypassCodeSettings{} + + if helpDeskCodeExpiryInMins, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "help_desk_code_expiry_in_mins")); ok { + tmp := helpDeskCodeExpiryInMins.(int) + result.HelpDeskCodeExpiryInMins = &tmp + } + + if helpDeskGenerationEnabled, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "help_desk_generation_enabled")); ok { + tmp := helpDeskGenerationEnabled.(bool) + result.HelpDeskGenerationEnabled = &tmp + } + + if helpDeskMaxUsage, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "help_desk_max_usage")); ok { + tmp := helpDeskMaxUsage.(int) + result.HelpDeskMaxUsage = &tmp + } + + if length, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "length")); ok { + tmp := length.(int) + result.Length = &tmp + } + + if maxActive, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "max_active")); ok { + tmp := maxActive.(int) + result.MaxActive = &tmp + } + + if selfServiceGenerationEnabled, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "self_service_generation_enabled")); ok { + tmp := selfServiceGenerationEnabled.(bool) + result.SelfServiceGenerationEnabled = &tmp + } + + return result, nil +} + +func AuthenticationFactorSettingsBypassCodeSettingsToMap(obj *oci_identity_domains.AuthenticationFactorSettingsBypassCodeSettings) map[string]interface{} { + result := map[string]interface{}{} + + if obj.HelpDeskCodeExpiryInMins != nil { + result["help_desk_code_expiry_in_mins"] = int(*obj.HelpDeskCodeExpiryInMins) + } + + if obj.HelpDeskGenerationEnabled != nil { + result["help_desk_generation_enabled"] = bool(*obj.HelpDeskGenerationEnabled) + } + + if obj.HelpDeskMaxUsage != nil { + result["help_desk_max_usage"] = int(*obj.HelpDeskMaxUsage) + } + + if obj.Length != nil { + result["length"] = int(*obj.Length) + } + + if obj.MaxActive != nil { + result["max_active"] = int(*obj.MaxActive) + } + + if obj.SelfServiceGenerationEnabled != nil { + result["self_service_generation_enabled"] = bool(*obj.SelfServiceGenerationEnabled) + } + + return result +} + +func (s *IdentityDomainsAuthenticationFactorSettingResourceCrud) mapToAuthenticationFactorSettingsClientAppSettings(fieldKeyFormat string) (oci_identity_domains.AuthenticationFactorSettingsClientAppSettings, error) { + result := oci_identity_domains.AuthenticationFactorSettingsClientAppSettings{} + + if deviceProtectionPolicy, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "device_protection_policy")); ok { + tmp := deviceProtectionPolicy.(string) + result.DeviceProtectionPolicy = &tmp + } + + if initialLockoutPeriodInSecs, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "initial_lockout_period_in_secs")); ok { + tmp := initialLockoutPeriodInSecs.(int) + result.InitialLockoutPeriodInSecs = &tmp + } + + if keyPairLength, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "key_pair_length")); ok { + tmp := keyPairLength.(int) + result.KeyPairLength = &tmp + } + + if lockoutEscalationPattern, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "lockout_escalation_pattern")); ok { + tmp := lockoutEscalationPattern.(string) + result.LockoutEscalationPattern = &tmp + } + + if maxFailuresBeforeLockout, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "max_failures_before_lockout")); ok { + tmp := maxFailuresBeforeLockout.(int) + result.MaxFailuresBeforeLockout = &tmp + } + + if maxFailuresBeforeWarning, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "max_failures_before_warning")); ok { + tmp := maxFailuresBeforeWarning.(int) + result.MaxFailuresBeforeWarning = &tmp + } + + if maxLockoutIntervalInSecs, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "max_lockout_interval_in_secs")); ok { + tmp := maxLockoutIntervalInSecs.(int) + result.MaxLockoutIntervalInSecs = &tmp + } + + if minPinLength, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "min_pin_length")); ok { + tmp := minPinLength.(int) + result.MinPinLength = &tmp + } + + if policyUpdateFreqInDays, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "policy_update_freq_in_days")); ok { + tmp := policyUpdateFreqInDays.(int) + result.PolicyUpdateFreqInDays = &tmp + } + + if requestSigningAlgo, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "request_signing_algo")); ok { + result.RequestSigningAlgo = oci_identity_domains.AuthenticationFactorSettingsClientAppSettingsRequestSigningAlgoEnum(requestSigningAlgo.(string)) + } + + if sharedSecretEncoding, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "shared_secret_encoding")); ok { + result.SharedSecretEncoding = oci_identity_domains.AuthenticationFactorSettingsClientAppSettingsSharedSecretEncodingEnum(sharedSecretEncoding.(string)) + } + + if unlockAppForEachRequestEnabled, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "unlock_app_for_each_request_enabled")); ok { + tmp := unlockAppForEachRequestEnabled.(bool) + result.UnlockAppForEachRequestEnabled = &tmp + } + + if unlockAppIntervalInSecs, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "unlock_app_interval_in_secs")); ok { + tmp := unlockAppIntervalInSecs.(int) + result.UnlockAppIntervalInSecs = &tmp + } + + if unlockOnAppForegroundEnabled, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "unlock_on_app_foreground_enabled")); ok { + tmp := unlockOnAppForegroundEnabled.(bool) + result.UnlockOnAppForegroundEnabled = &tmp + } + + if unlockOnAppStartEnabled, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "unlock_on_app_start_enabled")); ok { + tmp := unlockOnAppStartEnabled.(bool) + result.UnlockOnAppStartEnabled = &tmp + } + + return result, nil +} + +func AuthenticationFactorSettingsClientAppSettingsToMap(obj *oci_identity_domains.AuthenticationFactorSettingsClientAppSettings) map[string]interface{} { + result := map[string]interface{}{} + + if obj.DeviceProtectionPolicy != nil { + result["device_protection_policy"] = string(*obj.DeviceProtectionPolicy) + } + + if obj.InitialLockoutPeriodInSecs != nil { + result["initial_lockout_period_in_secs"] = int(*obj.InitialLockoutPeriodInSecs) + } + + if obj.KeyPairLength != nil { + result["key_pair_length"] = int(*obj.KeyPairLength) + } + + if obj.LockoutEscalationPattern != nil { + result["lockout_escalation_pattern"] = string(*obj.LockoutEscalationPattern) + } + + if obj.MaxFailuresBeforeLockout != nil { + result["max_failures_before_lockout"] = int(*obj.MaxFailuresBeforeLockout) + } + + if obj.MaxFailuresBeforeWarning != nil { + result["max_failures_before_warning"] = int(*obj.MaxFailuresBeforeWarning) + } + + if obj.MaxLockoutIntervalInSecs != nil { + result["max_lockout_interval_in_secs"] = int(*obj.MaxLockoutIntervalInSecs) + } + + if obj.MinPinLength != nil { + result["min_pin_length"] = int(*obj.MinPinLength) + } + + if obj.PolicyUpdateFreqInDays != nil { + result["policy_update_freq_in_days"] = int(*obj.PolicyUpdateFreqInDays) + } + + result["request_signing_algo"] = string(obj.RequestSigningAlgo) + + result["shared_secret_encoding"] = string(obj.SharedSecretEncoding) + + if obj.UnlockAppForEachRequestEnabled != nil { + result["unlock_app_for_each_request_enabled"] = bool(*obj.UnlockAppForEachRequestEnabled) + } + + if obj.UnlockAppIntervalInSecs != nil { + result["unlock_app_interval_in_secs"] = int(*obj.UnlockAppIntervalInSecs) + } + + if obj.UnlockOnAppForegroundEnabled != nil { + result["unlock_on_app_foreground_enabled"] = bool(*obj.UnlockOnAppForegroundEnabled) + } + + if obj.UnlockOnAppStartEnabled != nil { + result["unlock_on_app_start_enabled"] = bool(*obj.UnlockOnAppStartEnabled) + } + + return result +} + +func (s *IdentityDomainsAuthenticationFactorSettingResourceCrud) mapToAuthenticationFactorSettingsCompliancePolicy(fieldKeyFormat string) (oci_identity_domains.AuthenticationFactorSettingsCompliancePolicy, error) { + result := oci_identity_domains.AuthenticationFactorSettingsCompliancePolicy{} + + if action, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "action")); ok { + result.Action = oci_identity_domains.AuthenticationFactorSettingsCompliancePolicyActionEnum(action.(string)) + } + + if name, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "name")); ok { + tmp := name.(string) + result.Name = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func AuthenticationFactorSettingsCompliancePolicyToMap(obj oci_identity_domains.AuthenticationFactorSettingsCompliancePolicy) map[string]interface{} { + result := map[string]interface{}{} + + result["action"] = string(obj.Action) + + if obj.Name != nil { + result["name"] = string(*obj.Name) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func (s *IdentityDomainsAuthenticationFactorSettingResourceCrud) mapToAuthenticationFactorSettingsDuoSecuritySettings(fieldKeyFormat string) (oci_identity_domains.AuthenticationFactorSettingsDuoSecuritySettings, error) { + result := oci_identity_domains.AuthenticationFactorSettingsDuoSecuritySettings{} + + if apiHostname, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "api_hostname")); ok { + tmp := apiHostname.(string) + result.ApiHostname = &tmp + } + + if attestationKey, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "attestation_key")); ok { + tmp := attestationKey.(string) + result.AttestationKey = &tmp + } + + if integrationKey, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "integration_key")); ok { + tmp := integrationKey.(string) + result.IntegrationKey = &tmp + } + + if secretKey, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "secret_key")); ok { + tmp := secretKey.(string) + result.SecretKey = &tmp + } + + if userMappingAttribute, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "user_mapping_attribute")); ok { + result.UserMappingAttribute = oci_identity_domains.AuthenticationFactorSettingsDuoSecuritySettingsUserMappingAttributeEnum(userMappingAttribute.(string)) + } + + return result, nil +} + +func AuthenticationFactorSettingsDuoSecuritySettingsToMap(obj *oci_identity_domains.AuthenticationFactorSettingsDuoSecuritySettings) map[string]interface{} { + result := map[string]interface{}{} + + if obj.ApiHostname != nil { + result["api_hostname"] = string(*obj.ApiHostname) + } + + if obj.AttestationKey != nil { + result["attestation_key"] = string(*obj.AttestationKey) + } + + if obj.IntegrationKey != nil { + result["integration_key"] = string(*obj.IntegrationKey) + } + + if obj.SecretKey != nil { + result["secret_key"] = string(*obj.SecretKey) + } + + result["user_mapping_attribute"] = string(obj.UserMappingAttribute) + + return result +} + +func (s *IdentityDomainsAuthenticationFactorSettingResourceCrud) mapToAuthenticationFactorSettingsEmailSettings(fieldKeyFormat string) (oci_identity_domains.AuthenticationFactorSettingsEmailSettings, error) { + result := oci_identity_domains.AuthenticationFactorSettingsEmailSettings{} + + if emailLinkCustomUrl, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "email_link_custom_url")); ok { + tmp := emailLinkCustomUrl.(string) + result.EmailLinkCustomUrl = &tmp + } + + if emailLinkEnabled, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "email_link_enabled")); ok { + tmp := emailLinkEnabled.(bool) + result.EmailLinkEnabled = &tmp + } + + return result, nil +} + +func AuthenticationFactorSettingsEmailSettingsToMap(obj *oci_identity_domains.AuthenticationFactorSettingsEmailSettings) map[string]interface{} { + result := map[string]interface{}{} + + if obj.EmailLinkCustomUrl != nil { + result["email_link_custom_url"] = string(*obj.EmailLinkCustomUrl) + } + + if obj.EmailLinkEnabled != nil { + result["email_link_enabled"] = bool(*obj.EmailLinkEnabled) + } + + return result +} + +func (s *IdentityDomainsAuthenticationFactorSettingResourceCrud) mapToAuthenticationFactorSettingsEndpointRestrictions(fieldKeyFormat string) (oci_identity_domains.AuthenticationFactorSettingsEndpointRestrictions, error) { + result := oci_identity_domains.AuthenticationFactorSettingsEndpointRestrictions{} + + if maxEndpointTrustDurationInDays, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "max_endpoint_trust_duration_in_days")); ok { + tmp := maxEndpointTrustDurationInDays.(int) + result.MaxEndpointTrustDurationInDays = &tmp + } + + if maxEnrolledDevices, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "max_enrolled_devices")); ok { + tmp := maxEnrolledDevices.(int) + result.MaxEnrolledDevices = &tmp + } + + if maxIncorrectAttempts, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "max_incorrect_attempts")); ok { + tmp := maxIncorrectAttempts.(int) + result.MaxIncorrectAttempts = &tmp + } + + if maxTrustedEndpoints, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "max_trusted_endpoints")); ok { + tmp := maxTrustedEndpoints.(int) + result.MaxTrustedEndpoints = &tmp + } + + if trustedEndpointsEnabled, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "trusted_endpoints_enabled")); ok { + tmp := trustedEndpointsEnabled.(bool) + result.TrustedEndpointsEnabled = &tmp + } + + return result, nil +} + +func AuthenticationFactorSettingsEndpointRestrictionsToMap(obj *oci_identity_domains.AuthenticationFactorSettingsEndpointRestrictions) map[string]interface{} { + result := map[string]interface{}{} + + if obj.MaxEndpointTrustDurationInDays != nil { + result["max_endpoint_trust_duration_in_days"] = int(*obj.MaxEndpointTrustDurationInDays) + } + + if obj.MaxEnrolledDevices != nil { + result["max_enrolled_devices"] = int(*obj.MaxEnrolledDevices) + } + + if obj.MaxIncorrectAttempts != nil { + result["max_incorrect_attempts"] = int(*obj.MaxIncorrectAttempts) + } + + if obj.MaxTrustedEndpoints != nil { + result["max_trusted_endpoints"] = int(*obj.MaxTrustedEndpoints) + } + + if obj.TrustedEndpointsEnabled != nil { + result["trusted_endpoints_enabled"] = bool(*obj.TrustedEndpointsEnabled) + } + + return result +} + +func (s *IdentityDomainsAuthenticationFactorSettingResourceCrud) mapToAuthenticationFactorSettingsIdentityStoreSettings(fieldKeyFormat string) (oci_identity_domains.AuthenticationFactorSettingsIdentityStoreSettings, error) { + result := oci_identity_domains.AuthenticationFactorSettingsIdentityStoreSettings{} + + if mobileNumberEnabled, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "mobile_number_enabled")); ok { + tmp := mobileNumberEnabled.(bool) + result.MobileNumberEnabled = &tmp + } + + if mobileNumberUpdateEnabled, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "mobile_number_update_enabled")); ok { + tmp := mobileNumberUpdateEnabled.(bool) + result.MobileNumberUpdateEnabled = &tmp + } + + return result, nil +} + +func AuthenticationFactorSettingsIdentityStoreSettingsToMap(obj *oci_identity_domains.AuthenticationFactorSettingsIdentityStoreSettings) map[string]interface{} { + result := map[string]interface{}{} + + if obj.MobileNumberEnabled != nil { + result["mobile_number_enabled"] = bool(*obj.MobileNumberEnabled) + } + + if obj.MobileNumberUpdateEnabled != nil { + result["mobile_number_update_enabled"] = bool(*obj.MobileNumberUpdateEnabled) + } + + return result +} + +func (s *IdentityDomainsAuthenticationFactorSettingResourceCrud) mapToAuthenticationFactorSettingsNotificationSettings(fieldKeyFormat string) (oci_identity_domains.AuthenticationFactorSettingsNotificationSettings, error) { + result := oci_identity_domains.AuthenticationFactorSettingsNotificationSettings{} + + if pullEnabled, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "pull_enabled")); ok { + tmp := pullEnabled.(bool) + result.PullEnabled = &tmp + } + + return result, nil +} + +func AuthenticationFactorSettingsNotificationSettingsToMap(obj *oci_identity_domains.AuthenticationFactorSettingsNotificationSettings) map[string]interface{} { + result := map[string]interface{}{} + + if obj.PullEnabled != nil { + result["pull_enabled"] = bool(*obj.PullEnabled) + } + + return result +} + +func (s *IdentityDomainsAuthenticationFactorSettingResourceCrud) mapToAuthenticationFactorSettingsThirdPartyFactor(fieldKeyFormat string) (oci_identity_domains.AuthenticationFactorSettingsThirdPartyFactor, error) { + result := oci_identity_domains.AuthenticationFactorSettingsThirdPartyFactor{} + + if duoSecurity, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "duo_security")); ok { + tmp := duoSecurity.(bool) + result.DuoSecurity = &tmp + } + + return result, nil +} + +func AuthenticationFactorSettingsThirdPartyFactorToMap(obj *oci_identity_domains.AuthenticationFactorSettingsThirdPartyFactor) map[string]interface{} { + result := map[string]interface{}{} + + if obj.DuoSecurity != nil { + result["duo_security"] = bool(*obj.DuoSecurity) + } + + return result +} + +func (s *IdentityDomainsAuthenticationFactorSettingResourceCrud) mapToAuthenticationFactorSettingsTotpSettings(fieldKeyFormat string) (oci_identity_domains.AuthenticationFactorSettingsTotpSettings, error) { + result := oci_identity_domains.AuthenticationFactorSettingsTotpSettings{} + + if emailOtpValidityDurationInMins, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "email_otp_validity_duration_in_mins")); ok { + tmp := emailOtpValidityDurationInMins.(int) + result.EmailOtpValidityDurationInMins = &tmp + } + + if emailPasscodeLength, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "email_passcode_length")); ok { + tmp := emailPasscodeLength.(int) + result.EmailPasscodeLength = &tmp + } + + if hashingAlgorithm, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "hashing_algorithm")); ok { + result.HashingAlgorithm = oci_identity_domains.AuthenticationFactorSettingsTotpSettingsHashingAlgorithmEnum(hashingAlgorithm.(string)) + } + + if jwtValidityDurationInSecs, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "jwt_validity_duration_in_secs")); ok { + tmp := jwtValidityDurationInSecs.(int) + result.JwtValidityDurationInSecs = &tmp + } + + if keyRefreshIntervalInDays, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "key_refresh_interval_in_days")); ok { + tmp := keyRefreshIntervalInDays.(int) + result.KeyRefreshIntervalInDays = &tmp + } + + if passcodeLength, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "passcode_length")); ok { + tmp := passcodeLength.(int) + result.PasscodeLength = &tmp + } + + if smsOtpValidityDurationInMins, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "sms_otp_validity_duration_in_mins")); ok { + tmp := smsOtpValidityDurationInMins.(int) + result.SmsOtpValidityDurationInMins = &tmp + } + + if smsPasscodeLength, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "sms_passcode_length")); ok { + tmp := smsPasscodeLength.(int) + result.SmsPasscodeLength = &tmp + } + + if timeStepInSecs, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "time_step_in_secs")); ok { + tmp := timeStepInSecs.(int) + result.TimeStepInSecs = &tmp + } + + if timeStepTolerance, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "time_step_tolerance")); ok { + tmp := timeStepTolerance.(int) + result.TimeStepTolerance = &tmp + } + + return result, nil +} + +func AuthenticationFactorSettingsTotpSettingsToMap(obj *oci_identity_domains.AuthenticationFactorSettingsTotpSettings) map[string]interface{} { + result := map[string]interface{}{} + + if obj.EmailOtpValidityDurationInMins != nil { + result["email_otp_validity_duration_in_mins"] = int(*obj.EmailOtpValidityDurationInMins) + } + + if obj.EmailPasscodeLength != nil { + result["email_passcode_length"] = int(*obj.EmailPasscodeLength) + } + + result["hashing_algorithm"] = string(obj.HashingAlgorithm) + + if obj.JwtValidityDurationInSecs != nil { + result["jwt_validity_duration_in_secs"] = int(*obj.JwtValidityDurationInSecs) + } + + if obj.KeyRefreshIntervalInDays != nil { + result["key_refresh_interval_in_days"] = int(*obj.KeyRefreshIntervalInDays) + } + + if obj.PasscodeLength != nil { + result["passcode_length"] = int(*obj.PasscodeLength) + } + + if obj.SmsOtpValidityDurationInMins != nil { + result["sms_otp_validity_duration_in_mins"] = int(*obj.SmsOtpValidityDurationInMins) + } + + if obj.SmsPasscodeLength != nil { + result["sms_passcode_length"] = int(*obj.SmsPasscodeLength) + } + + if obj.TimeStepInSecs != nil { + result["time_step_in_secs"] = int(*obj.TimeStepInSecs) + } + + if obj.TimeStepTolerance != nil { + result["time_step_tolerance"] = int(*obj.TimeStepTolerance) + } + + return result +} + +func (s *IdentityDomainsAuthenticationFactorSettingResourceCrud) mapToExtensionFidoAuthenticationFactorSettings(fieldKeyFormat string) (oci_identity_domains.ExtensionFidoAuthenticationFactorSettings, error) { + result := oci_identity_domains.ExtensionFidoAuthenticationFactorSettings{} + + if attestation, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "attestation")); ok { + result.Attestation = oci_identity_domains.ExtensionFidoAuthenticationFactorSettingsAttestationEnum(attestation.(string)) + } + + if authenticatorSelectionAttachment, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "authenticator_selection_attachment")); ok { + result.AuthenticatorSelectionAttachment = oci_identity_domains.ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionAttachmentEnum(authenticatorSelectionAttachment.(string)) + } + + if authenticatorSelectionRequireResidentKey, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "authenticator_selection_require_resident_key")); ok { + tmp := authenticatorSelectionRequireResidentKey.(bool) + result.AuthenticatorSelectionRequireResidentKey = &tmp + } + + if authenticatorSelectionResidentKey, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "authenticator_selection_resident_key")); ok { + result.AuthenticatorSelectionResidentKey = oci_identity_domains.ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionResidentKeyEnum(authenticatorSelectionResidentKey.(string)) + } + + if authenticatorSelectionUserVerification, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "authenticator_selection_user_verification")); ok { + result.AuthenticatorSelectionUserVerification = oci_identity_domains.ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionUserVerificationEnum(authenticatorSelectionUserVerification.(string)) + } + + if domainValidationLevel, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "domain_validation_level")); ok { + tmp := domainValidationLevel.(int) + result.DomainValidationLevel = &tmp + } + + if excludeCredentials, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "exclude_credentials")); ok { + tmp := excludeCredentials.(bool) + result.ExcludeCredentials = &tmp + } + + if publicKeyTypes, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "public_key_types")); ok { + interfaces := publicKeyTypes.([]interface{}) + tmp := make([]oci_identity_domains.ExtensionFidoAuthenticationFactorSettingsPublicKeyTypesEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.ExtensionFidoAuthenticationFactorSettingsPublicKeyTypesEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange(fmt.Sprintf(fieldKeyFormat, "public_key_types")) { + result.PublicKeyTypes = tmp + } + } + + if timeout, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "timeout")); ok { + tmp := timeout.(int) + result.Timeout = &tmp + } + + return result, nil +} + +func ExtensionFidoAuthenticationFactorSettingsToMap(obj *oci_identity_domains.ExtensionFidoAuthenticationFactorSettings) map[string]interface{} { + result := map[string]interface{}{} + + result["attestation"] = string(obj.Attestation) + + result["authenticator_selection_attachment"] = string(obj.AuthenticatorSelectionAttachment) + + if obj.AuthenticatorSelectionRequireResidentKey != nil { + result["authenticator_selection_require_resident_key"] = bool(*obj.AuthenticatorSelectionRequireResidentKey) + } + + result["authenticator_selection_resident_key"] = string(obj.AuthenticatorSelectionResidentKey) + + result["authenticator_selection_user_verification"] = string(obj.AuthenticatorSelectionUserVerification) + + if obj.DomainValidationLevel != nil { + result["domain_validation_level"] = int(*obj.DomainValidationLevel) + } + + if obj.ExcludeCredentials != nil { + result["exclude_credentials"] = bool(*obj.ExcludeCredentials) + } + + result["public_key_types"] = obj.PublicKeyTypes + result["public_key_types"] = obj.PublicKeyTypes + + if obj.Timeout != nil { + result["timeout"] = int(*obj.Timeout) + } + + return result +} + +func (s *IdentityDomainsAuthenticationFactorSettingResourceCrud) mapToExtensionThirdPartyAuthenticationFactorSettings(fieldKeyFormat string) (oci_identity_domains.ExtensionThirdPartyAuthenticationFactorSettings, error) { + result := oci_identity_domains.ExtensionThirdPartyAuthenticationFactorSettings{} + + if duoSecuritySettings, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "duo_security_settings")); ok { + if tmpList := duoSecuritySettings.([]interface{}); len(tmpList) > 0 { + fieldKeyFormatNextLevel := fmt.Sprintf("%s.%d.%%s", fmt.Sprintf(fieldKeyFormat, "duo_security_settings"), 0) + tmp, err := s.mapToAuthenticationFactorSettingsDuoSecuritySettings(fieldKeyFormatNextLevel) + if err != nil { + return result, fmt.Errorf("unable to convert duo_security_settings, encountered error: %v", err) + } + result.DuoSecuritySettings = &tmp + } + } + + return result, nil +} + +func ExtensionThirdPartyAuthenticationFactorSettingsToMap(obj *oci_identity_domains.ExtensionThirdPartyAuthenticationFactorSettings) map[string]interface{} { + result := map[string]interface{}{} + + if obj.DuoSecuritySettings != nil { + result["duo_security_settings"] = []interface{}{AuthenticationFactorSettingsDuoSecuritySettingsToMap(obj.DuoSecuritySettings)} + } + + return result +} + +func (s *IdentityDomainsAuthenticationFactorSettingResourceCrud) mapTotags(fieldKeyFormat string) (oci_identity_domains.Tags, error) { + result := oci_identity_domains.Tags{} + + if key, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "key")); ok { + tmp := key.(string) + result.Key = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} diff --git a/internal/service/identity_domains/identity_domains_authentication_factor_settings_data_source.go b/internal/service/identity_domains/identity_domains_authentication_factor_settings_data_source.go new file mode 100644 index 00000000000..38d967dad23 --- /dev/null +++ b/internal/service/identity_domains/identity_domains_authentication_factor_settings_data_source.go @@ -0,0 +1,172 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsAuthenticationFactorSettingsDataSource() *schema.Resource { + return &schema.Resource{ + Read: readIdentityDomainsAuthenticationFactorSettings, + Schema: map[string]*schema.Schema{ + "idcs_endpoint": { + Type: schema.TypeString, + Required: true, + }, + "compartment_id": { + Type: schema.TypeString, + Optional: true, + }, + "attribute_sets": { + Type: schema.TypeList, + Optional: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "attributes": { + Type: schema.TypeString, + Optional: true, + }, + "authorization": { + Type: schema.TypeString, + Optional: true, + }, + "resource_type_schema_version": { + Type: schema.TypeString, + Optional: true, + }, + // Computed + "authentication_factor_settings": { + Type: schema.TypeList, + Computed: true, + Elem: tfresource.GetDataSourceItemSchema(IdentityDomainsAuthenticationFactorSettingResource()), + }, + "items_per_page": { + Type: schema.TypeInt, + Computed: true, + }, + "schemas": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "start_index": { + Type: schema.TypeInt, + Computed: true, + }, + "total_results": { + Type: schema.TypeInt, + Computed: true, + }, + }, + } +} + +func readIdentityDomainsAuthenticationFactorSettings(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsAuthenticationFactorSettingsDataSourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.ReadResource(sync) +} + +type IdentityDomainsAuthenticationFactorSettingsDataSourceCrud struct { + D *schema.ResourceData + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.ListAuthenticationFactorSettingsResponse +} + +func (s *IdentityDomainsAuthenticationFactorSettingsDataSourceCrud) VoidState() { + s.D.SetId("") +} + +func (s *IdentityDomainsAuthenticationFactorSettingsDataSourceCrud) Get() error { + request := oci_identity_domains.ListAuthenticationFactorSettingsRequest{} + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "identity_domains") + + response, err := s.Client.ListAuthenticationFactorSettings(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response + return nil +} + +func (s *IdentityDomainsAuthenticationFactorSettingsDataSourceCrud) SetData() error { + if s.Res == nil { + return nil + } + + s.D.SetId(tfresource.GenerateDataSourceHashID("IdentityDomainsAuthenticationFactorSettingsDataSource-", IdentityDomainsAuthenticationFactorSettingsDataSource(), s.D)) + + resources := []interface{}{} + for _, item := range s.Res.Resources { + resources = append(resources, AuthenticationFactorSettingToMap(item)) + } + s.D.Set("authentication_factor_settings", resources) + + if s.Res.ItemsPerPage != nil { + s.D.Set("items_per_page", *s.Res.ItemsPerPage) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + if s.Res.StartIndex != nil { + s.D.Set("start_index", *s.Res.StartIndex) + } + + if s.Res.TotalResults != nil { + s.D.Set("total_results", *s.Res.TotalResults) + } + + return nil +} diff --git a/internal/service/identity_domains/identity_domains_customer_secret_key_data_source.go b/internal/service/identity_domains/identity_domains_customer_secret_key_data_source.go new file mode 100644 index 00000000000..cea4e0d9a78 --- /dev/null +++ b/internal/service/identity_domains/identity_domains_customer_secret_key_data_source.go @@ -0,0 +1,213 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsCustomerSecretKeyDataSource() *schema.Resource { + fieldMap := make(map[string]*schema.Schema) + fieldMap["attribute_sets"] = &schema.Schema{ + Type: schema.TypeList, + Optional: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + } + fieldMap["attributes"] = &schema.Schema{ + Type: schema.TypeString, + Optional: true, + } + fieldMap["authorization"] = &schema.Schema{ + Type: schema.TypeString, + Optional: true, + } + fieldMap["customer_secret_key_id"] = &schema.Schema{ + Type: schema.TypeString, + Required: true, + } + fieldMap["idcs_endpoint"] = &schema.Schema{ + Type: schema.TypeString, + Required: true, + } + fieldMap["resource_type_schema_version"] = &schema.Schema{ + Type: schema.TypeString, + Optional: true, + } + return tfresource.GetSingularDataSourceItemSchema(IdentityDomainsCustomerSecretKeyResource(), fieldMap, readSingularIdentityDomainsCustomerSecretKey) +} + +func readSingularIdentityDomainsCustomerSecretKey(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsCustomerSecretKeyDataSourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + + return tfresource.ReadResource(sync) +} + +type IdentityDomainsCustomerSecretKeyDataSourceCrud struct { + D *schema.ResourceData + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.GetCustomerSecretKeyResponse +} + +func (s *IdentityDomainsCustomerSecretKeyDataSourceCrud) VoidState() { + s.D.SetId("") +} + +func (s *IdentityDomainsCustomerSecretKeyDataSourceCrud) Get() error { + request := oci_identity_domains.GetCustomerSecretKeyRequest{} + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if customerSecretKeyId, ok := s.D.GetOkExists("customer_secret_key_id"); ok { + tmp := customerSecretKeyId.(string) + request.CustomerSecretKeyId = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "identity_domains") + + response, err := s.Client.GetCustomerSecretKey(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response + return nil +} + +func (s *IdentityDomainsCustomerSecretKeyDataSourceCrud) SetData() error { + if s.Res == nil { + return nil + } + + s.D.SetId(*s.Res.Id) + + if s.Res.AccessKey != nil { + s.D.Set("access_key", *s.Res.AccessKey) + } + + if s.Res.CompartmentOcid != nil { + s.D.Set("compartment_ocid", *s.Res.CompartmentOcid) + } + + if s.Res.DeleteInProgress != nil { + s.D.Set("delete_in_progress", *s.Res.DeleteInProgress) + } + + if s.Res.Description != nil { + s.D.Set("description", *s.Res.Description) + } + + if s.Res.DisplayName != nil { + s.D.Set("display_name", *s.Res.DisplayName) + } + + if s.Res.DomainOcid != nil { + s.D.Set("domain_ocid", *s.Res.DomainOcid) + } + + if s.Res.ExpiresOn != nil { + s.D.Set("expires_on", *s.Res.ExpiresOn) + } + + if s.Res.IdcsCreatedBy != nil { + s.D.Set("idcs_created_by", []interface{}{idcsCreatedByToMap(s.Res.IdcsCreatedBy)}) + } else { + s.D.Set("idcs_created_by", nil) + } + + if s.Res.IdcsLastModifiedBy != nil { + s.D.Set("idcs_last_modified_by", []interface{}{idcsLastModifiedByToMap(s.Res.IdcsLastModifiedBy)}) + } else { + s.D.Set("idcs_last_modified_by", nil) + } + + if s.Res.IdcsLastUpgradedInRelease != nil { + s.D.Set("idcs_last_upgraded_in_release", *s.Res.IdcsLastUpgradedInRelease) + } + + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + + if s.Res.Meta != nil { + s.D.Set("meta", []interface{}{metaToMap(s.Res.Meta)}) + } else { + s.D.Set("meta", nil) + } + + if s.Res.Ocid != nil { + s.D.Set("ocid", *s.Res.Ocid) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + s.D.Set("status", s.Res.Status) + + tags := []interface{}{} + for _, item := range s.Res.Tags { + tags = append(tags, tagsToMap(item)) + } + s.D.Set("tags", tags) + + if s.Res.TenancyOcid != nil { + s.D.Set("tenancy_ocid", *s.Res.TenancyOcid) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionself_change_user", []interface{}{ExtensionSelfChangeUserToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionself_change_user", nil) + } + + if s.Res.User != nil { + s.D.Set("user", []interface{}{CustomerSecretKeyUserToMap(s.Res.User)}) + } else { + s.D.Set("user", nil) + } + + return nil +} diff --git a/internal/service/identity_domains/identity_domains_customer_secret_key_resource.go b/internal/service/identity_domains/identity_domains_customer_secret_key_resource.go new file mode 100644 index 00000000000..15722abd89c --- /dev/null +++ b/internal/service/identity_domains/identity_domains_customer_secret_key_resource.go @@ -0,0 +1,897 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + "fmt" + "log" + "net/url" + "regexp" + "strings" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsCustomerSecretKeyResource() *schema.Resource { + return &schema.Resource{ + Importer: &schema.ResourceImporter{ + State: schema.ImportStatePassthrough, + }, + Timeouts: tfresource.DefaultTimeout, + Create: createIdentityDomainsCustomerSecretKey, + Read: readIdentityDomainsCustomerSecretKey, + Delete: deleteIdentityDomainsCustomerSecretKey, + Schema: map[string]*schema.Schema{ + // Required + "idcs_endpoint": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "schemas": { + Type: schema.TypeList, + Required: true, + ForceNew: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + + // Optional + "attribute_sets": { + Type: schema.TypeList, + Optional: true, + ForceNew: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "attributes": { + Type: schema.TypeString, + Optional: true, + ForceNew: true, + }, + "authorization": { + Type: schema.TypeString, + Optional: true, + ForceNew: true, + }, + "description": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "display_name": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "expires_on": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "resource_type_schema_version": { + Type: schema.TypeString, + Optional: true, + ForceNew: true, + }, + "status": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "tags": { + Type: schema.TypeList, + Optional: true, + Computed: true, + ForceNew: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "key": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "value": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + + // Optional + + // Computed + }, + }, + }, + "urnietfparamsscimschemasoracleidcsextensionself_change_user": { + Type: schema.TypeList, + Optional: true, + Computed: true, + ForceNew: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "allow_self_change": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + }, + }, + }, + "user": { + Type: schema.TypeList, + Optional: true, + Computed: true, + ForceNew: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "value": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + "display": { + Type: schema.TypeString, + Computed: true, + }, + "name": { + Type: schema.TypeString, + Computed: true, + }, + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + + // Computed + "access_key": { + Type: schema.TypeString, + Computed: true, + }, + "compartment_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "delete_in_progress": { + Type: schema.TypeBool, + Computed: true, + }, + "domain_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "id": { + Type: schema.TypeString, + Computed: true, + }, + "idcs_created_by": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "idcs_last_modified_by": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "idcs_last_upgraded_in_release": { + Type: schema.TypeString, + Computed: true, + }, + "idcs_prevented_operations": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "meta": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "created": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "last_modified": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "location": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "resource_type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "version": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + }, + }, + }, + "tenancy_ocid": { + Type: schema.TypeString, + Computed: true, + }, + }, + } +} + +func createIdentityDomainsCustomerSecretKey(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsCustomerSecretKeyResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.CreateResource(d, sync) +} + +func readIdentityDomainsCustomerSecretKey(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsCustomerSecretKeyResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpointForRead(d, "customerSecretKeys") + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.ReadResource(sync) +} + +func deleteIdentityDomainsCustomerSecretKey(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsCustomerSecretKeyResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + sync.DisableNotFoundRetries = true + + return tfresource.DeleteResource(d, sync) +} + +type IdentityDomainsCustomerSecretKeyResourceCrud struct { + tfresource.BaseCrud + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.CustomerSecretKey + DisableNotFoundRetries bool +} + +func (s *IdentityDomainsCustomerSecretKeyResourceCrud) ID() string { + return *s.Res.Id +} + +func (s *IdentityDomainsCustomerSecretKeyResourceCrud) Create() error { + request := oci_identity_domains.CreateCustomerSecretKeyRequest{} + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if description, ok := s.D.GetOkExists("description"); ok { + tmp := description.(string) + request.Description = &tmp + } + + if displayName, ok := s.D.GetOkExists("display_name"); ok { + tmp := displayName.(string) + request.DisplayName = &tmp + } + + if expiresOn, ok := s.D.GetOkExists("expires_on"); ok { + tmp := expiresOn.(string) + request.ExpiresOn = &tmp + } + + if id, ok := s.D.GetOkExists("id"); ok { + tmp := id.(string) + request.Id = &tmp + } + + if ocid, ok := s.D.GetOkExists("ocid"); ok { + tmp := ocid.(string) + request.Ocid = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + if schemas, ok := s.D.GetOkExists("schemas"); ok { + interfaces := schemas.([]interface{}) + tmp := make([]string, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = interfaces[i].(string) + } + } + if len(tmp) != 0 || s.D.HasChange("schemas") { + request.Schemas = tmp + } + } + + if status, ok := s.D.GetOkExists("status"); ok { + request.Status = oci_identity_domains.CustomerSecretKeyStatusEnum(status.(string)) + } + + if tags, ok := s.D.GetOkExists("tags"); ok { + interfaces := tags.([]interface{}) + tmp := make([]oci_identity_domains.Tags, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "tags", stateDataIndex) + converted, err := s.mapTotags(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("tags") { + request.Tags = tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensionselfChangeUser, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextensionself_change_user"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensionselfChangeUser.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextensionself_change_user", 0) + tmp, err := s.mapToExtensionSelfChangeUser(fieldKeyFormat) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser = &tmp + } + } + + if user, ok := s.D.GetOkExists("user"); ok { + if tmpList := user.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "user", 0) + tmp, err := s.mapToCustomerSecretKeyUser(fieldKeyFormat) + if err != nil { + return err + } + request.User = &tmp + } + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + response, err := s.Client.CreateCustomerSecretKey(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response.CustomerSecretKey + return nil +} + +func (s *IdentityDomainsCustomerSecretKeyResourceCrud) Get() error { + request := oci_identity_domains.GetCustomerSecretKeyRequest{} + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + tmp := s.D.Id() + request.CustomerSecretKeyId = &tmp + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + customerSecretKeyId, err := parseCustomerSecretKeyCompositeId(s.D.Id()) + if err == nil { + request.CustomerSecretKeyId = &customerSecretKeyId + } else { + log.Printf("[WARN] Get() unable to parse current ID: %s", s.D.Id()) + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + response, err := s.Client.GetCustomerSecretKey(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response.CustomerSecretKey + return nil +} + +func (s *IdentityDomainsCustomerSecretKeyResourceCrud) Delete() error { + request := oci_identity_domains.DeleteCustomerSecretKeyRequest{} + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + tmp := s.D.Id() + request.CustomerSecretKeyId = &tmp + + if forceDelete, ok := s.D.GetOkExists("force_delete"); ok { + tmp := forceDelete.(bool) + request.ForceDelete = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + _, err := s.Client.DeleteCustomerSecretKey(context.Background(), request) + return err +} + +func (s *IdentityDomainsCustomerSecretKeyResourceCrud) SetData() error { + + customerSecretKeyId, err := parseCustomerSecretKeyCompositeId(s.D.Id()) + if err == nil { + s.D.SetId(customerSecretKeyId) + } else { + log.Printf("[WARN] SetData() unable to parse current ID: %s", s.D.Id()) + } + + if s.Res.AccessKey != nil { + s.D.Set("access_key", *s.Res.AccessKey) + } + + if s.Res.CompartmentOcid != nil { + s.D.Set("compartment_ocid", *s.Res.CompartmentOcid) + } + + if s.Res.DeleteInProgress != nil { + s.D.Set("delete_in_progress", *s.Res.DeleteInProgress) + } + + if s.Res.Description != nil { + s.D.Set("description", *s.Res.Description) + } + + if s.Res.DisplayName != nil { + s.D.Set("display_name", *s.Res.DisplayName) + } + + if s.Res.DomainOcid != nil { + s.D.Set("domain_ocid", *s.Res.DomainOcid) + } + + if s.Res.ExpiresOn != nil { + s.D.Set("expires_on", *s.Res.ExpiresOn) + } + + if s.Res.IdcsCreatedBy != nil { + s.D.Set("idcs_created_by", []interface{}{idcsCreatedByToMap(s.Res.IdcsCreatedBy)}) + } else { + s.D.Set("idcs_created_by", nil) + } + + if s.Res.IdcsLastModifiedBy != nil { + s.D.Set("idcs_last_modified_by", []interface{}{idcsLastModifiedByToMap(s.Res.IdcsLastModifiedBy)}) + } else { + s.D.Set("idcs_last_modified_by", nil) + } + + if s.Res.IdcsLastUpgradedInRelease != nil { + s.D.Set("idcs_last_upgraded_in_release", *s.Res.IdcsLastUpgradedInRelease) + } + + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + + if s.Res.Meta != nil { + s.D.Set("meta", []interface{}{metaToMap(s.Res.Meta)}) + } else { + s.D.Set("meta", nil) + } + + if s.Res.Ocid != nil { + s.D.Set("ocid", *s.Res.Ocid) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + s.D.Set("status", s.Res.Status) + + tags := []interface{}{} + for _, item := range s.Res.Tags { + tags = append(tags, tagsToMap(item)) + } + s.D.Set("tags", tags) + + if s.Res.TenancyOcid != nil { + s.D.Set("tenancy_ocid", *s.Res.TenancyOcid) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionself_change_user", []interface{}{ExtensionSelfChangeUserToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionself_change_user", nil) + } + + if s.Res.User != nil { + s.D.Set("user", []interface{}{CustomerSecretKeyUserToMap(s.Res.User)}) + } else { + s.D.Set("user", nil) + } + + return nil +} + +//func GetCustomerSecretKeyCompositeId(customerSecretKeyId string) string { +// customerSecretKeyId = url.PathEscape(customerSecretKeyId) +// id = url.PathEscape(id) +// idcsEndpoint = url.PathEscape(idcsEndpoint) +// compositeId := "idcsEndpoint/" + idcsEndpoint + "/customerSecretKeys/" + customerSecretKeyId +// return compositeId +//} + +func parseCustomerSecretKeyCompositeId(compositeId string) (customerSecretKeyId string, err error) { + parts := strings.Split(compositeId, "/") + match, _ := regexp.MatchString("idcsEndpoint/.*/customerSecretKeys/.*", compositeId) + if !match || len(parts) != 4 { + err = fmt.Errorf("illegal compositeId %s encountered", compositeId) + return + } + //idcsEndpoint, _ = url.PathUnescape(parts[1]) + customerSecretKeyId, _ = url.PathUnescape(parts[3]) + + return +} + +func CustomerSecretKeyToMap(obj oci_identity_domains.CustomerSecretKey) map[string]interface{} { + result := map[string]interface{}{} + + if obj.AccessKey != nil { + result["access_key"] = string(*obj.AccessKey) + } + + if obj.CompartmentOcid != nil { + result["compartment_ocid"] = string(*obj.CompartmentOcid) + } + + if obj.DeleteInProgress != nil { + result["delete_in_progress"] = bool(*obj.DeleteInProgress) + } + + if obj.Description != nil { + result["description"] = string(*obj.Description) + } + + if obj.DisplayName != nil { + result["display_name"] = string(*obj.DisplayName) + } + + if obj.DomainOcid != nil { + result["domain_ocid"] = string(*obj.DomainOcid) + } + + if obj.ExpiresOn != nil { + result["expires_on"] = string(*obj.ExpiresOn) + } + + if obj.Id != nil { + result["id"] = string(*obj.Id) + } + + if obj.IdcsCreatedBy != nil { + result["idcs_created_by"] = []interface{}{idcsCreatedByToMap(obj.IdcsCreatedBy)} + } + + if obj.IdcsLastModifiedBy != nil { + result["idcs_last_modified_by"] = []interface{}{idcsLastModifiedByToMap(obj.IdcsLastModifiedBy)} + } + + if obj.IdcsLastUpgradedInRelease != nil { + result["idcs_last_upgraded_in_release"] = string(*obj.IdcsLastUpgradedInRelease) + } + + result["idcs_prevented_operations"] = obj.IdcsPreventedOperations + result["idcs_prevented_operations"] = obj.IdcsPreventedOperations + + if obj.Meta != nil { + result["meta"] = []interface{}{metaToMap(obj.Meta)} + } + + if obj.Ocid != nil { + result["ocid"] = string(*obj.Ocid) + } + + result["schemas"] = obj.Schemas + result["schemas"] = obj.Schemas + + result["status"] = string(obj.Status) + + tags := []interface{}{} + for _, item := range obj.Tags { + tags = append(tags, tagsToMap(item)) + } + result["tags"] = tags + + if obj.TenancyOcid != nil { + result["tenancy_ocid"] = string(*obj.TenancyOcid) + } + + if obj.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser != nil { + result["urnietfparamsscimschemasoracleidcsextensionself_change_user"] = []interface{}{ExtensionSelfChangeUserToMap(obj.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser)} + } + + if obj.User != nil { + result["user"] = []interface{}{CustomerSecretKeyUserToMap(obj.User)} + } + + return result +} + +func (s *IdentityDomainsCustomerSecretKeyResourceCrud) mapToCustomerSecretKeyUser(fieldKeyFormat string) (oci_identity_domains.CustomerSecretKeyUser, error) { + result := oci_identity_domains.CustomerSecretKeyUser{} + + if display, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "display")); ok { + tmp := display.(string) + result.Display = &tmp + } + + if name, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "name")); ok { + tmp := name.(string) + result.Name = &tmp + } + + if ocid, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ocid")); ok { + tmp := ocid.(string) + result.Ocid = &tmp + } + + if ref, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ref")); ok { + tmp := ref.(string) + result.Ref = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func CustomerSecretKeyUserToMap(obj *oci_identity_domains.CustomerSecretKeyUser) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Display != nil { + result["display"] = string(*obj.Display) + } + + if obj.Name != nil { + result["name"] = string(*obj.Name) + } + + if obj.Ocid != nil { + result["ocid"] = string(*obj.Ocid) + } + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func (s *IdentityDomainsCustomerSecretKeyResourceCrud) mapToExtensionSelfChangeUser(fieldKeyFormat string) (oci_identity_domains.ExtensionSelfChangeUser, error) { + result := oci_identity_domains.ExtensionSelfChangeUser{} + + if allowSelfChange, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "allow_self_change")); ok { + tmp := allowSelfChange.(bool) + result.AllowSelfChange = &tmp + } + + return result, nil +} + +func (s *IdentityDomainsCustomerSecretKeyResourceCrud) mapTotags(fieldKeyFormat string) (oci_identity_domains.Tags, error) { + result := oci_identity_domains.Tags{} + + if key, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "key")); ok { + tmp := key.(string) + result.Key = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} diff --git a/internal/service/identity_domains/identity_domains_customer_secret_keys_data_source.go b/internal/service/identity_domains/identity_domains_customer_secret_keys_data_source.go new file mode 100644 index 00000000000..592b8e380ca --- /dev/null +++ b/internal/service/identity_domains/identity_domains_customer_secret_keys_data_source.go @@ -0,0 +1,227 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsCustomerSecretKeysDataSource() *schema.Resource { + return &schema.Resource{ + Read: readIdentityDomainsCustomerSecretKeys, + Schema: map[string]*schema.Schema{ + "idcs_endpoint": { + Type: schema.TypeString, + Required: true, + }, + "compartment_id": { + Type: schema.TypeString, + Optional: true, + }, + "customer_secret_key_count": { + Type: schema.TypeInt, + Optional: true, + }, + "customer_secret_key_filter": { + Type: schema.TypeString, + Optional: true, + }, + "attribute_sets": { + Type: schema.TypeList, + Optional: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "attributes": { + Type: schema.TypeString, + Optional: true, + }, + "authorization": { + Type: schema.TypeString, + Optional: true, + }, + "resource_type_schema_version": { + Type: schema.TypeString, + Optional: true, + }, + "start_index": { + Type: schema.TypeInt, + Optional: true, + }, + "sort_order": { + Type: schema.TypeString, + Optional: true, + }, + "sort_by": { + Type: schema.TypeString, + Optional: true, + }, + // Computed + "customer_secret_keys": { + Type: schema.TypeList, + Computed: true, + Elem: tfresource.GetDataSourceItemSchema(IdentityDomainsCustomerSecretKeyResource()), + }, + "items_per_page": { + Type: schema.TypeInt, + Computed: true, + }, + "schemas": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "total_results": { + Type: schema.TypeInt, + Computed: true, + }, + }, + } +} + +func readIdentityDomainsCustomerSecretKeys(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsCustomerSecretKeysDataSourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.ReadResource(sync) +} + +type IdentityDomainsCustomerSecretKeysDataSourceCrud struct { + D *schema.ResourceData + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.ListCustomerSecretKeysResponse +} + +func (s *IdentityDomainsCustomerSecretKeysDataSourceCrud) VoidState() { + s.D.SetId("") +} + +func (s *IdentityDomainsCustomerSecretKeysDataSourceCrud) Get() error { + request := oci_identity_domains.ListCustomerSecretKeysRequest{} + + if customerSecretKeyCount, ok := s.D.GetOkExists("customer_secret_key_count"); ok { + tmp := customerSecretKeyCount.(int) + request.Count = &tmp + } + + if customerSecretKeyFilter, ok := s.D.GetOkExists("customer_secret_key_filter"); ok { + tmp := customerSecretKeyFilter.(string) + tmp = tryMatchUserSubResFilter(tmp) + request.Filter = &tmp + } + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + if startIndex, ok := s.D.GetOkExists("start_index"); ok { + tmp := startIndex.(int) + request.StartIndex = &tmp + } + + if sortOrder, ok := s.D.GetOkExists("sort_order"); ok { + tmp := oci_identity_domains.ListCustomerSecretKeysSortOrderEnum(sortOrder.(string)) + request.SortOrder = tmp + } + + if sortBy, ok := s.D.GetOkExists("sort_by"); ok { + tmp := sortBy.(string) + request.SortBy = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "identity_domains") + + response, err := s.Client.ListCustomerSecretKeys(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response + // IDCS pagination + startIndex := *response.StartIndex + for startIndex+*response.ItemsPerPage <= *response.TotalResults { + startIndex += *response.ItemsPerPage + request.StartIndex = &startIndex + listResponse, err := s.Client.ListCustomerSecretKeys(context.Background(), request) + if err != nil { + return err + } + + s.Res.Resources = append(s.Res.Resources, listResponse.Resources...) + } + + return nil +} + +func (s *IdentityDomainsCustomerSecretKeysDataSourceCrud) SetData() error { + if s.Res == nil { + return nil + } + + s.D.SetId(tfresource.GenerateDataSourceHashID("IdentityDomainsCustomerSecretKeysDataSource-", IdentityDomainsCustomerSecretKeysDataSource(), s.D)) + + resources := []interface{}{} + for _, item := range s.Res.Resources { + resources = append(resources, CustomerSecretKeyToMap(item)) + } + s.D.Set("customer_secret_keys", resources) + + if s.Res.ItemsPerPage != nil { + s.D.Set("items_per_page", *s.Res.ItemsPerPage) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + if s.Res.StartIndex != nil { + s.D.Set("start_index", *s.Res.StartIndex) + } + + if s.Res.TotalResults != nil { + s.D.Set("total_results", *s.Res.TotalResults) + } + + return nil +} diff --git a/internal/service/identity_domains/identity_domains_dynamic_resource_group_data_source.go b/internal/service/identity_domains/identity_domains_dynamic_resource_group_data_source.go new file mode 100644 index 00000000000..9452cce2e9b --- /dev/null +++ b/internal/service/identity_domains/identity_domains_dynamic_resource_group_data_source.go @@ -0,0 +1,213 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsDynamicResourceGroupDataSource() *schema.Resource { + fieldMap := make(map[string]*schema.Schema) + fieldMap["attribute_sets"] = &schema.Schema{ + Type: schema.TypeList, + Optional: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + } + fieldMap["attributes"] = &schema.Schema{ + Type: schema.TypeString, + Optional: true, + } + fieldMap["authorization"] = &schema.Schema{ + Type: schema.TypeString, + Optional: true, + } + fieldMap["dynamic_resource_group_id"] = &schema.Schema{ + Type: schema.TypeString, + Required: true, + } + fieldMap["idcs_endpoint"] = &schema.Schema{ + Type: schema.TypeString, + Required: true, + } + fieldMap["resource_type_schema_version"] = &schema.Schema{ + Type: schema.TypeString, + Optional: true, + } + return tfresource.GetSingularDataSourceItemSchema(IdentityDomainsDynamicResourceGroupResource(), fieldMap, readSingularIdentityDomainsDynamicResourceGroup) +} + +func readSingularIdentityDomainsDynamicResourceGroup(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsDynamicResourceGroupDataSourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + + return tfresource.ReadResource(sync) +} + +type IdentityDomainsDynamicResourceGroupDataSourceCrud struct { + D *schema.ResourceData + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.GetDynamicResourceGroupResponse +} + +func (s *IdentityDomainsDynamicResourceGroupDataSourceCrud) VoidState() { + s.D.SetId("") +} + +func (s *IdentityDomainsDynamicResourceGroupDataSourceCrud) Get() error { + request := oci_identity_domains.GetDynamicResourceGroupRequest{} + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if dynamicResourceGroupId, ok := s.D.GetOkExists("dynamic_resource_group_id"); ok { + tmp := dynamicResourceGroupId.(string) + request.DynamicResourceGroupId = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "identity_domains") + + response, err := s.Client.GetDynamicResourceGroup(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response + return nil +} + +func (s *IdentityDomainsDynamicResourceGroupDataSourceCrud) SetData() error { + if s.Res == nil { + return nil + } + + s.D.SetId(*s.Res.Id) + + if s.Res.CompartmentOcid != nil { + s.D.Set("compartment_ocid", *s.Res.CompartmentOcid) + } + + if s.Res.DeleteInProgress != nil { + s.D.Set("delete_in_progress", *s.Res.DeleteInProgress) + } + + if s.Res.Description != nil { + s.D.Set("description", *s.Res.Description) + } + + if s.Res.DisplayName != nil { + s.D.Set("display_name", *s.Res.DisplayName) + } + + if s.Res.DomainOcid != nil { + s.D.Set("domain_ocid", *s.Res.DomainOcid) + } + + dynamicGroupAppRoles := []interface{}{} + for _, item := range s.Res.DynamicGroupAppRoles { + dynamicGroupAppRoles = append(dynamicGroupAppRoles, DynamicResourceGroupDynamicGroupAppRolesToMap(item)) + } + s.D.Set("dynamic_group_app_roles", dynamicGroupAppRoles) + + grants := []interface{}{} + for _, item := range s.Res.Grants { + grants = append(grants, DynamicResourceGroupGrantsToMap(item)) + } + s.D.Set("grants", grants) + + if s.Res.IdcsCreatedBy != nil { + s.D.Set("idcs_created_by", []interface{}{idcsCreatedByToMap(s.Res.IdcsCreatedBy)}) + } else { + s.D.Set("idcs_created_by", nil) + } + + if s.Res.IdcsLastModifiedBy != nil { + s.D.Set("idcs_last_modified_by", []interface{}{idcsLastModifiedByToMap(s.Res.IdcsLastModifiedBy)}) + } else { + s.D.Set("idcs_last_modified_by", nil) + } + + if s.Res.IdcsLastUpgradedInRelease != nil { + s.D.Set("idcs_last_upgraded_in_release", *s.Res.IdcsLastUpgradedInRelease) + } + + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + + if s.Res.MatchingRule != nil { + s.D.Set("matching_rule", *s.Res.MatchingRule) + } + + if s.Res.Meta != nil { + s.D.Set("meta", []interface{}{metaToMap(s.Res.Meta)}) + } else { + s.D.Set("meta", nil) + } + + if s.Res.Ocid != nil { + s.D.Set("ocid", *s.Res.Ocid) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + tags := []interface{}{} + for _, item := range s.Res.Tags { + tags = append(tags, tagsToMap(item)) + } + s.D.Set("tags", tags) + + if s.Res.TenancyOcid != nil { + s.D.Set("tenancy_ocid", *s.Res.TenancyOcid) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionOciTags != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextension_oci_tags", []interface{}{ExtensionOCITagsToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionOciTags)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextension_oci_tags", nil) + } + + return nil +} diff --git a/internal/service/identity_domains/identity_domains_dynamic_resource_group_resource.go b/internal/service/identity_domains/identity_domains_dynamic_resource_group_resource.go new file mode 100644 index 00000000000..32edd4e657a --- /dev/null +++ b/internal/service/identity_domains/identity_domains_dynamic_resource_group_resource.go @@ -0,0 +1,1122 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + "fmt" + "log" + "net/url" + "regexp" + "strings" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsDynamicResourceGroupResource() *schema.Resource { + return &schema.Resource{ + Importer: &schema.ResourceImporter{ + State: schema.ImportStatePassthrough, + }, + Timeouts: tfresource.DefaultTimeout, + Create: createIdentityDomainsDynamicResourceGroup, + Read: readIdentityDomainsDynamicResourceGroup, + Update: updateIdentityDomainsDynamicResourceGroup, + Delete: deleteIdentityDomainsDynamicResourceGroup, + Schema: map[string]*schema.Schema{ + // Required + "display_name": { + Type: schema.TypeString, + Required: true, + }, + "idcs_endpoint": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "matching_rule": { + Type: schema.TypeString, + Required: true, + }, + "schemas": { + Type: schema.TypeList, + Required: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + + // Optional + "attribute_sets": { + Type: schema.TypeList, + Optional: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "attributes": { + Type: schema.TypeString, + Optional: true, + }, + "authorization": { + Type: schema.TypeString, + Optional: true, + }, + "description": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "resource_type_schema_version": { + Type: schema.TypeString, + Optional: true, + }, + "tags": { + Type: schema.TypeList, + Optional: true, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "key": { + Type: schema.TypeString, + Required: true, + }, + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + + // Computed + }, + }, + }, + "urnietfparamsscimschemasoracleidcsextension_oci_tags": { + Type: schema.TypeList, + Optional: true, + Computed: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "defined_tags": { + Type: schema.TypeList, + Optional: true, + Computed: true, + DiffSuppressFunc: tfresource.DefinedTagsDiffSuppressFunction, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "key": { + Type: schema.TypeString, + Required: true, + }, + "namespace": { + Type: schema.TypeString, + Required: true, + }, + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + + // Computed + }, + }, + }, + "freeform_tags": { + Type: schema.TypeList, + Optional: true, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "key": { + Type: schema.TypeString, + Required: true, + }, + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + + // Computed + }, + }, + }, + + // Computed + "tag_slug": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + + // Computed + "compartment_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "delete_in_progress": { + Type: schema.TypeBool, + Computed: true, + }, + "domain_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "dynamic_group_app_roles": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + "admin_role": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "app_id": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "app_name": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "legacy_group_name": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "grants": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "app_id": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "grant_mechanism": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "value": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "id": { + Type: schema.TypeString, + Computed: true, + }, + "idcs_created_by": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "idcs_last_modified_by": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "idcs_last_upgraded_in_release": { + Type: schema.TypeString, + Computed: true, + }, + "idcs_prevented_operations": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "meta": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "created": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "last_modified": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "location": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "resource_type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "version": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + }, + }, + }, + "tenancy_ocid": { + Type: schema.TypeString, + Computed: true, + }, + }, + } +} + +func createIdentityDomainsDynamicResourceGroup(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsDynamicResourceGroupResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.CreateResource(d, sync) +} + +func readIdentityDomainsDynamicResourceGroup(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsDynamicResourceGroupResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpointForRead(d, "dynamicResourceGroups") + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.ReadResource(sync) +} + +func updateIdentityDomainsDynamicResourceGroup(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsDynamicResourceGroupResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.UpdateResource(d, sync) +} + +func deleteIdentityDomainsDynamicResourceGroup(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsDynamicResourceGroupResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + sync.DisableNotFoundRetries = true + + return tfresource.DeleteResource(d, sync) +} + +type IdentityDomainsDynamicResourceGroupResourceCrud struct { + tfresource.BaseCrud + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.DynamicResourceGroup + DisableNotFoundRetries bool +} + +func (s *IdentityDomainsDynamicResourceGroupResourceCrud) ID() string { + return *s.Res.Id +} + +func (s *IdentityDomainsDynamicResourceGroupResourceCrud) Create() error { + request := oci_identity_domains.CreateDynamicResourceGroupRequest{} + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if description, ok := s.D.GetOkExists("description"); ok { + tmp := description.(string) + request.Description = &tmp + } + + if displayName, ok := s.D.GetOkExists("display_name"); ok { + tmp := displayName.(string) + request.DisplayName = &tmp + } + + if id, ok := s.D.GetOkExists("id"); ok { + tmp := id.(string) + request.Id = &tmp + } + + if matchingRule, ok := s.D.GetOkExists("matching_rule"); ok { + tmp := matchingRule.(string) + request.MatchingRule = &tmp + } + + if ocid, ok := s.D.GetOkExists("ocid"); ok { + tmp := ocid.(string) + request.Ocid = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + if schemas, ok := s.D.GetOkExists("schemas"); ok { + interfaces := schemas.([]interface{}) + tmp := make([]string, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = interfaces[i].(string) + } + } + if len(tmp) != 0 || s.D.HasChange("schemas") { + request.Schemas = tmp + } + } + + if tags, ok := s.D.GetOkExists("tags"); ok { + interfaces := tags.([]interface{}) + tmp := make([]oci_identity_domains.Tags, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "tags", stateDataIndex) + converted, err := s.mapTotags(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("tags") { + request.Tags = tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensionOCITags, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextension_oci_tags"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensionOCITags.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextension_oci_tags", 0) + tmp, err := s.mapToExtensionOCITags(fieldKeyFormat) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasOracleIdcsExtensionOciTags = &tmp + } + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + response, err := s.Client.CreateDynamicResourceGroup(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response.DynamicResourceGroup + return nil +} + +func (s *IdentityDomainsDynamicResourceGroupResourceCrud) Get() error { + request := oci_identity_domains.GetDynamicResourceGroupRequest{} + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + tmp := s.D.Id() + request.DynamicResourceGroupId = &tmp + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + dynamicResourceGroupId, err := parseDynamicResourceGroupCompositeId(s.D.Id()) + if err == nil { + request.DynamicResourceGroupId = &dynamicResourceGroupId + } else { + log.Printf("[WARN] Get() unable to parse current ID: %s", s.D.Id()) + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + response, err := s.Client.GetDynamicResourceGroup(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response.DynamicResourceGroup + return nil +} + +func (s *IdentityDomainsDynamicResourceGroupResourceCrud) Update() error { + request := oci_identity_domains.PutDynamicResourceGroupRequest{} + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if description, ok := s.D.GetOkExists("description"); ok { + tmp := description.(string) + request.Description = &tmp + } + + if displayName, ok := s.D.GetOkExists("display_name"); ok { + tmp := displayName.(string) + request.DisplayName = &tmp + } + + tmp := s.D.Id() + request.DynamicResourceGroupId = &tmp + + tmp = s.D.Id() + request.Id = &tmp + + if matchingRule, ok := s.D.GetOkExists("matching_rule"); ok { + tmp := matchingRule.(string) + request.MatchingRule = &tmp + } + + if ocid, ok := s.D.GetOkExists("ocid"); ok { + tmp := ocid.(string) + request.Ocid = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + if schemas, ok := s.D.GetOkExists("schemas"); ok { + interfaces := schemas.([]interface{}) + tmp := make([]string, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = interfaces[i].(string) + } + } + if len(tmp) != 0 || s.D.HasChange("schemas") { + request.Schemas = tmp + } + } + + if tags, ok := s.D.GetOkExists("tags"); ok { + interfaces := tags.([]interface{}) + tmp := make([]oci_identity_domains.Tags, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "tags", stateDataIndex) + converted, err := s.mapTotags(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("tags") { + request.Tags = tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensionOCITags, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextension_oci_tags"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensionOCITags.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextension_oci_tags", 0) + tmp, err := s.mapToExtensionOCITags(fieldKeyFormat) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasOracleIdcsExtensionOciTags = &tmp + } + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + response, err := s.Client.PutDynamicResourceGroup(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response.DynamicResourceGroup + return nil +} + +func (s *IdentityDomainsDynamicResourceGroupResourceCrud) Delete() error { + request := oci_identity_domains.DeleteDynamicResourceGroupRequest{} + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + tmp := s.D.Id() + request.DynamicResourceGroupId = &tmp + + if forceDelete, ok := s.D.GetOkExists("force_delete"); ok { + tmp := forceDelete.(bool) + request.ForceDelete = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + _, err := s.Client.DeleteDynamicResourceGroup(context.Background(), request) + return err +} + +func (s *IdentityDomainsDynamicResourceGroupResourceCrud) SetData() error { + + dynamicResourceGroupId, err := parseDynamicResourceGroupCompositeId(s.D.Id()) + if err == nil { + s.D.SetId(dynamicResourceGroupId) + } else { + log.Printf("[WARN] SetData() unable to parse current ID: %s", s.D.Id()) + } + + if s.Res.CompartmentOcid != nil { + s.D.Set("compartment_ocid", *s.Res.CompartmentOcid) + } + + if s.Res.DeleteInProgress != nil { + s.D.Set("delete_in_progress", *s.Res.DeleteInProgress) + } + + if s.Res.Description != nil { + s.D.Set("description", *s.Res.Description) + } + + if s.Res.DisplayName != nil { + s.D.Set("display_name", *s.Res.DisplayName) + } + + if s.Res.DomainOcid != nil { + s.D.Set("domain_ocid", *s.Res.DomainOcid) + } + + dynamicGroupAppRoles := []interface{}{} + for _, item := range s.Res.DynamicGroupAppRoles { + dynamicGroupAppRoles = append(dynamicGroupAppRoles, DynamicResourceGroupDynamicGroupAppRolesToMap(item)) + } + s.D.Set("dynamic_group_app_roles", dynamicGroupAppRoles) + + grants := []interface{}{} + for _, item := range s.Res.Grants { + grants = append(grants, DynamicResourceGroupGrantsToMap(item)) + } + s.D.Set("grants", grants) + + if s.Res.IdcsCreatedBy != nil { + s.D.Set("idcs_created_by", []interface{}{idcsCreatedByToMap(s.Res.IdcsCreatedBy)}) + } else { + s.D.Set("idcs_created_by", nil) + } + + if s.Res.IdcsLastModifiedBy != nil { + s.D.Set("idcs_last_modified_by", []interface{}{idcsLastModifiedByToMap(s.Res.IdcsLastModifiedBy)}) + } else { + s.D.Set("idcs_last_modified_by", nil) + } + + if s.Res.IdcsLastUpgradedInRelease != nil { + s.D.Set("idcs_last_upgraded_in_release", *s.Res.IdcsLastUpgradedInRelease) + } + + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + + if s.Res.MatchingRule != nil { + s.D.Set("matching_rule", *s.Res.MatchingRule) + } + + if s.Res.Meta != nil { + s.D.Set("meta", []interface{}{metaToMap(s.Res.Meta)}) + } else { + s.D.Set("meta", nil) + } + + if s.Res.Ocid != nil { + s.D.Set("ocid", *s.Res.Ocid) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + tags := []interface{}{} + for _, item := range s.Res.Tags { + tags = append(tags, tagsToMap(item)) + } + s.D.Set("tags", tags) + + if s.Res.TenancyOcid != nil { + s.D.Set("tenancy_ocid", *s.Res.TenancyOcid) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionOciTags != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextension_oci_tags", []interface{}{ExtensionOCITagsToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionOciTags)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextension_oci_tags", nil) + } + + return nil +} + +//func GetDynamicResourceGroupCompositeId(dynamicResourceGroupId string) string { +// dynamicResourceGroupId = url.PathEscape(dynamicResourceGroupId) +// id = url.PathEscape(id) +// idcsEndpoint = url.PathEscape(idcsEndpoint) +// compositeId := "idcsEndpoint/" + idcsEndpoint + "/dynamicResourceGroups/" + dynamicResourceGroupId +// return compositeId +//} + +func parseDynamicResourceGroupCompositeId(compositeId string) (dynamicResourceGroupId string, err error) { + parts := strings.Split(compositeId, "/") + match, _ := regexp.MatchString("idcsEndpoint/.*/dynamicResourceGroups/.*", compositeId) + if !match || len(parts) != 4 { + err = fmt.Errorf("illegal compositeId %s encountered", compositeId) + return + } + //idcsEndpoint, _ = url.PathUnescape(parts[1]) + dynamicResourceGroupId, _ = url.PathUnescape(parts[3]) + + return +} + +func DynamicResourceGroupToMap(obj oci_identity_domains.DynamicResourceGroup) map[string]interface{} { + result := map[string]interface{}{} + + if obj.CompartmentOcid != nil { + result["compartment_ocid"] = string(*obj.CompartmentOcid) + } + + if obj.DeleteInProgress != nil { + result["delete_in_progress"] = bool(*obj.DeleteInProgress) + } + + if obj.Description != nil { + result["description"] = string(*obj.Description) + } + + if obj.DisplayName != nil { + result["display_name"] = string(*obj.DisplayName) + } + + if obj.DomainOcid != nil { + result["domain_ocid"] = string(*obj.DomainOcid) + } + + dynamicGroupAppRoles := []interface{}{} + for _, item := range obj.DynamicGroupAppRoles { + dynamicGroupAppRoles = append(dynamicGroupAppRoles, DynamicResourceGroupDynamicGroupAppRolesToMap(item)) + } + result["dynamic_group_app_roles"] = dynamicGroupAppRoles + + grants := []interface{}{} + for _, item := range obj.Grants { + grants = append(grants, DynamicResourceGroupGrantsToMap(item)) + } + result["grants"] = grants + + if obj.Id != nil { + result["id"] = string(*obj.Id) + } + + if obj.IdcsCreatedBy != nil { + result["idcs_created_by"] = []interface{}{idcsCreatedByToMap(obj.IdcsCreatedBy)} + } + + if obj.IdcsLastModifiedBy != nil { + result["idcs_last_modified_by"] = []interface{}{idcsLastModifiedByToMap(obj.IdcsLastModifiedBy)} + } + + if obj.IdcsLastUpgradedInRelease != nil { + result["idcs_last_upgraded_in_release"] = string(*obj.IdcsLastUpgradedInRelease) + } + + result["idcs_prevented_operations"] = obj.IdcsPreventedOperations + result["idcs_prevented_operations"] = obj.IdcsPreventedOperations + + if obj.MatchingRule != nil { + result["matching_rule"] = string(*obj.MatchingRule) + } + + if obj.Meta != nil { + result["meta"] = []interface{}{metaToMap(obj.Meta)} + } + + if obj.Ocid != nil { + result["ocid"] = string(*obj.Ocid) + } + + result["schemas"] = obj.Schemas + result["schemas"] = obj.Schemas + + tags := []interface{}{} + for _, item := range obj.Tags { + tags = append(tags, tagsToMap(item)) + } + result["tags"] = tags + + if obj.TenancyOcid != nil { + result["tenancy_ocid"] = string(*obj.TenancyOcid) + } + + if obj.UrnIetfParamsScimSchemasOracleIdcsExtensionOciTags != nil { + result["urnietfparamsscimschemasoracleidcsextension_oci_tags"] = []interface{}{ExtensionOCITagsToMap(obj.UrnIetfParamsScimSchemasOracleIdcsExtensionOciTags)} + } + + return result +} + +func DynamicResourceGroupDynamicGroupAppRolesToMap(obj oci_identity_domains.DynamicResourceGroupDynamicGroupAppRoles) map[string]interface{} { + result := map[string]interface{}{} + + if obj.AdminRole != nil { + result["admin_role"] = bool(*obj.AdminRole) + } + + if obj.AppId != nil { + result["app_id"] = string(*obj.AppId) + } + + if obj.AppName != nil { + result["app_name"] = string(*obj.AppName) + } + + if obj.Display != nil { + result["display"] = string(*obj.Display) + } + + if obj.LegacyGroupName != nil { + result["legacy_group_name"] = string(*obj.LegacyGroupName) + } + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func DynamicResourceGroupGrantsToMap(obj oci_identity_domains.DynamicResourceGroupGrants) map[string]interface{} { + result := map[string]interface{}{} + + if obj.AppId != nil { + result["app_id"] = string(*obj.AppId) + } + + result["grant_mechanism"] = string(obj.GrantMechanism) + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func (s *IdentityDomainsDynamicResourceGroupResourceCrud) mapToExtensionOCITags(fieldKeyFormat string) (oci_identity_domains.ExtensionOciTags, error) { + result := oci_identity_domains.ExtensionOciTags{} + + if definedTags, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "defined_tags")); ok { + interfaces := definedTags.([]interface{}) + tmp := make([]oci_identity_domains.DefinedTags, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormatNextLevel := fmt.Sprintf("%s.%d.%%s", fmt.Sprintf(fieldKeyFormat, "defined_tags"), stateDataIndex) + converted, err := s.mapTodefinedTags(fieldKeyFormatNextLevel) + if err != nil { + return result, err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange(fmt.Sprintf(fieldKeyFormat, "defined_tags")) { + result.DefinedTags = tmp + } + } + + if freeformTags, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "freeform_tags")); ok { + interfaces := freeformTags.([]interface{}) + tmp := make([]oci_identity_domains.FreeformTags, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormatNextLevel := fmt.Sprintf("%s.%d.%%s", fmt.Sprintf(fieldKeyFormat, "freeform_tags"), stateDataIndex) + converted, err := s.mapTofreeformTags(fieldKeyFormatNextLevel) + if err != nil { + return result, err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange(fmt.Sprintf(fieldKeyFormat, "freeform_tags")) { + result.FreeformTags = tmp + } + } + + if tagSlug, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "tag_slug")); ok { + result.TagSlug = &tagSlug + } + + return result, nil +} + +func (s *IdentityDomainsDynamicResourceGroupResourceCrud) mapTofreeformTags(fieldKeyFormat string) (oci_identity_domains.FreeformTags, error) { + result := oci_identity_domains.FreeformTags{} + + if key, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "key")); ok { + tmp := key.(string) + result.Key = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func (s *IdentityDomainsDynamicResourceGroupResourceCrud) mapTotags(fieldKeyFormat string) (oci_identity_domains.Tags, error) { + result := oci_identity_domains.Tags{} + + if key, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "key")); ok { + tmp := key.(string) + result.Key = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func (s *IdentityDomainsDynamicResourceGroupResourceCrud) mapTodefinedTags(fieldKeyFormat string) (oci_identity_domains.DefinedTags, error) { + result := oci_identity_domains.DefinedTags{} + + if namespace, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "namespace")); ok { + tmp := namespace.(string) + result.Namespace = &tmp + } + + if key, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "key")); ok { + tmp := key.(string) + result.Key = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} diff --git a/internal/service/identity_domains/identity_domains_dynamic_resource_groups_data_source.go b/internal/service/identity_domains/identity_domains_dynamic_resource_groups_data_source.go new file mode 100644 index 00000000000..a5b5e6348db --- /dev/null +++ b/internal/service/identity_domains/identity_domains_dynamic_resource_groups_data_source.go @@ -0,0 +1,226 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsDynamicResourceGroupsDataSource() *schema.Resource { + return &schema.Resource{ + Read: readIdentityDomainsDynamicResourceGroups, + Schema: map[string]*schema.Schema{ + "idcs_endpoint": { + Type: schema.TypeString, + Required: true, + }, + "compartment_id": { + Type: schema.TypeString, + Optional: true, + }, + "dynamic_resource_group_count": { + Type: schema.TypeInt, + Optional: true, + }, + "dynamic_resource_group_filter": { + Type: schema.TypeString, + Optional: true, + }, + "attribute_sets": { + Type: schema.TypeList, + Optional: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "attributes": { + Type: schema.TypeString, + Optional: true, + }, + "authorization": { + Type: schema.TypeString, + Optional: true, + }, + "resource_type_schema_version": { + Type: schema.TypeString, + Optional: true, + }, + "start_index": { + Type: schema.TypeInt, + Optional: true, + }, + "sort_order": { + Type: schema.TypeString, + Optional: true, + }, + "sort_by": { + Type: schema.TypeString, + Optional: true, + }, + // Computed + "dynamic_resource_groups": { + Type: schema.TypeList, + Computed: true, + Elem: tfresource.GetDataSourceItemSchema(IdentityDomainsDynamicResourceGroupResource()), + }, + "items_per_page": { + Type: schema.TypeInt, + Computed: true, + }, + "schemas": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "total_results": { + Type: schema.TypeInt, + Computed: true, + }, + }, + } +} + +func readIdentityDomainsDynamicResourceGroups(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsDynamicResourceGroupsDataSourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.ReadResource(sync) +} + +type IdentityDomainsDynamicResourceGroupsDataSourceCrud struct { + D *schema.ResourceData + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.ListDynamicResourceGroupsResponse +} + +func (s *IdentityDomainsDynamicResourceGroupsDataSourceCrud) VoidState() { + s.D.SetId("") +} + +func (s *IdentityDomainsDynamicResourceGroupsDataSourceCrud) Get() error { + request := oci_identity_domains.ListDynamicResourceGroupsRequest{} + + if dynamicResourceGroupCount, ok := s.D.GetOkExists("dynamic_resource_group_count"); ok { + tmp := dynamicResourceGroupCount.(int) + request.Count = &tmp + } + + if dynamicResourceGroupFilter, ok := s.D.GetOkExists("dynamic_resource_group_filter"); ok { + tmp := dynamicResourceGroupFilter.(string) + request.Filter = &tmp + } + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + if startIndex, ok := s.D.GetOkExists("start_index"); ok { + tmp := startIndex.(int) + request.StartIndex = &tmp + } + + if sortOrder, ok := s.D.GetOkExists("sort_order"); ok { + tmp := oci_identity_domains.ListDynamicResourceGroupsSortOrderEnum(sortOrder.(string)) + request.SortOrder = tmp + } + + if sortBy, ok := s.D.GetOkExists("sort_by"); ok { + tmp := sortBy.(string) + request.SortBy = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "identity_domains") + + response, err := s.Client.ListDynamicResourceGroups(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response + // IDCS pagination + startIndex := *response.StartIndex + for startIndex+*response.ItemsPerPage <= *response.TotalResults { + startIndex += *response.ItemsPerPage + request.StartIndex = &startIndex + listResponse, err := s.Client.ListDynamicResourceGroups(context.Background(), request) + if err != nil { + return err + } + + s.Res.Resources = append(s.Res.Resources, listResponse.Resources...) + } + + return nil +} + +func (s *IdentityDomainsDynamicResourceGroupsDataSourceCrud) SetData() error { + if s.Res == nil { + return nil + } + + s.D.SetId(tfresource.GenerateDataSourceHashID("IdentityDomainsDynamicResourceGroupsDataSource-", IdentityDomainsDynamicResourceGroupsDataSource(), s.D)) + + resources := []interface{}{} + for _, item := range s.Res.Resources { + resources = append(resources, DynamicResourceGroupToMap(item)) + } + s.D.Set("dynamic_resource_groups", resources) + + if s.Res.ItemsPerPage != nil { + s.D.Set("items_per_page", *s.Res.ItemsPerPage) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + if s.Res.StartIndex != nil { + s.D.Set("start_index", *s.Res.StartIndex) + } + + if s.Res.TotalResults != nil { + s.D.Set("total_results", *s.Res.TotalResults) + } + + return nil +} diff --git a/internal/service/identity_domains/identity_domains_export.go b/internal/service/identity_domains/identity_domains_export.go new file mode 100644 index 00000000000..ae5fc1f4cfb --- /dev/null +++ b/internal/service/identity_domains/identity_domains_export.go @@ -0,0 +1,480 @@ +package identity_domains + +import ( + "fmt" + "regexp" + + oci_identity "github.com/oracle/oci-go-sdk/v65/identity" + + tf_export "github.com/oracle/terraform-provider-oci/internal/commonexport" +) + +func init() { + exportIdentityDomainsGroupHints.GetIdFn = getGetIdFn("groups") + exportIdentityDomainsGroupHints.ProcessDiscoveredResourcesFn = processIdentityDomainsResources + exportIdentityDomainsUserHints.GetIdFn = getGetIdFn("users") + exportIdentityDomainsUserHints.ProcessDiscoveredResourcesFn = processIdentityDomainsResources + exportIdentityDomainsDynamicResourceGroupHints.GetIdFn = getGetIdFn("dynamicResourceGroups") + exportIdentityDomainsDynamicResourceGroupHints.ProcessDiscoveredResourcesFn = processIdentityDomainsResources + exportIdentityDomainsPasswordPolicyHints.GetIdFn = getGetIdFn("passwordPolicies") + exportIdentityDomainsPasswordPolicyHints.ProcessDiscoveredResourcesFn = processIdentityDomainsResources + exportIdentityDomainsIdentityProviderHints.GetIdFn = getGetIdFn("identityProviders") + exportIdentityDomainsIdentityProviderHints.ProcessDiscoveredResourcesFn = processIdentityDomainsResources + exportIdentityDomainsKmsiSettingHints.GetIdFn = getGetIdFn("kmsiSettings") + exportIdentityDomainsKmsiSettingHints.ProcessDiscoveredResourcesFn = processIdentityDomainsResources + exportIdentityDomainsAuthenticationFactorSettingHints.GetIdFn = getGetIdFn("authenticationFactorSettings") + exportIdentityDomainsAuthenticationFactorSettingHints.ProcessDiscoveredResourcesFn = processIdentityDomainsResources + + //// User sub-resources + exportIdentityDomainsApiKeyHints.GetIdFn = getUserSubResourceGetIdFn("apiKeys") + exportIdentityDomainsApiKeyHints.ProcessDiscoveredResourcesFn = processUserSubResources + exportIdentityDomainsApiKeyHints.FindResourcesOverrideFn = findUserSubResources + exportIdentityDomainsAuthTokenHints.GetIdFn = getUserSubResourceGetIdFn("authTokens") + exportIdentityDomainsAuthTokenHints.ProcessDiscoveredResourcesFn = processUserSubResources + exportIdentityDomainsAuthTokenHints.FindResourcesOverrideFn = findUserSubResources + exportIdentityDomainsCustomerSecretKeyHints.GetIdFn = getUserSubResourceGetIdFn("customerSecretKeys") + exportIdentityDomainsCustomerSecretKeyHints.ProcessDiscoveredResourcesFn = processUserSubResources + exportIdentityDomainsCustomerSecretKeyHints.FindResourcesOverrideFn = findUserSubResources + exportIdentityDomainsOAuth2ClientCredentialHints.GetIdFn = getUserSubResourceGetIdFn("oAuth2ClientCredentials") + exportIdentityDomainsOAuth2ClientCredentialHints.ProcessDiscoveredResourcesFn = processUserSubResources + exportIdentityDomainsOAuth2ClientCredentialHints.FindResourcesOverrideFn = findUserSubResources + exportIdentityDomainsSmtpCredentialHints.GetIdFn = getUserSubResourceGetIdFn("smtpCredentials") + exportIdentityDomainsSmtpCredentialHints.ProcessDiscoveredResourcesFn = processUserSubResources + exportIdentityDomainsSmtpCredentialHints.FindResourcesOverrideFn = findUserSubResources + exportIdentityDomainsUserDbCredentialHints.GetIdFn = getUserSubResourceGetIdFn("userDbCredentials") + exportIdentityDomainsUserDbCredentialHints.ProcessDiscoveredResourcesFn = processUserSubResources + exportIdentityDomainsUserDbCredentialHints.FindResourcesOverrideFn = findUserSubResources + + // My/Self resources + exportIdentityDomainsMyApiKeyHints.GetIdFn = getGetIdFn("myApiKeys") + exportIdentityDomainsMyApiKeyHints.ProcessDiscoveredResourcesFn = processIdentityDomainsResources + exportIdentityDomainsMyApiKeyHints.FindResourcesOverrideFn = getFindMyResources("myApiKeys") + exportIdentityDomainsMyAuthTokenHints.GetIdFn = getGetIdFn("myAuthTokens") + exportIdentityDomainsMyAuthTokenHints.ProcessDiscoveredResourcesFn = processIdentityDomainsResources + exportIdentityDomainsMyAuthTokenHints.FindResourcesOverrideFn = getFindMyResources("myAuthTokens") + exportIdentityDomainsMyCustomerSecretKeyHints.GetIdFn = getGetIdFn("myCustomerSecretKeys") + exportIdentityDomainsMyCustomerSecretKeyHints.ProcessDiscoveredResourcesFn = processIdentityDomainsResources + exportIdentityDomainsMyCustomerSecretKeyHints.FindResourcesOverrideFn = getFindMyResources("myCustomerSecretKeys") + exportIdentityDomainsMyOAuth2ClientCredentialHints.GetIdFn = getGetIdFn("myOAuth2ClientCredentials") + exportIdentityDomainsMyOAuth2ClientCredentialHints.ProcessDiscoveredResourcesFn = processIdentityDomainsResources + exportIdentityDomainsMyOAuth2ClientCredentialHints.FindResourcesOverrideFn = getFindMyResources("myOAuth2ClientCredentials") + exportIdentityDomainsMySmtpCredentialHints.GetIdFn = getGetIdFn("mySmtpCredentials") + exportIdentityDomainsMySmtpCredentialHints.ProcessDiscoveredResourcesFn = processIdentityDomainsResources + exportIdentityDomainsMySmtpCredentialHints.FindResourcesOverrideFn = getFindMyResources("mySmtpCredentials") + exportIdentityDomainsMyUserDbCredentialHints.GetIdFn = getGetIdFn("myUserDbCredentials") + exportIdentityDomainsMyUserDbCredentialHints.ProcessDiscoveredResourcesFn = processIdentityDomainsResources + exportIdentityDomainsMyUserDbCredentialHints.FindResourcesOverrideFn = getFindMyResources("myUserDbCredentials") + exportIdentityDomainsMySupportAccountHints.GetIdFn = getGetIdFn("mySupportAccounts") + exportIdentityDomainsMySupportAccountHints.ProcessDiscoveredResourcesFn = processIdentityDomainsResources + exportIdentityDomainsMySupportAccountHints.FindResourcesOverrideFn = getFindMyResources("mySupportAccounts") + + tf_export.RegisterTenancyGraphs("identity_domains", identityDomainsResourceGraph) + +} + +func processIdentityDomainsResources(ctx *tf_export.ResourceDiscoveryContext, resources []*tf_export.OCIResource) ([]*tf_export.OCIResource, error) { + for _, resource := range resources { + if resource.Parent == nil { + continue + } + resource.SourceAttributes["idcs_endpoint"] = resource.Parent.SourceAttributes["url"].(string) + resource.ImportId = resource.Id + } + return resources, nil +} + +// Custom overrides for generating composite IDs within the resource discovery framework + +func getResourceUrl(resource *tf_export.OCIResource) (string, error) { + idcsEndpoint, ok := resource.SourceAttributes["url"].(string) + if !ok { + return "", fmt.Errorf("[ERROR] unable to find url for idcsEndpoint") + } + return idcsEndpoint, nil +} + +func getResourceId(resource *tf_export.OCIResource) (string, error) { + var resourceMap map[string]interface{} = resource.RawResource.(map[string]interface{}) + id, ok := resourceMap["id"].(string) + if !ok { + return "", fmt.Errorf("[ERROR] unable to find id in resourceMap") + } + + return id, nil +} + +func getDomainResourceInfo(resource *tf_export.OCIResource) (string, string, error) { + idcsEndpoint, err := getResourceUrl(resource.Parent) + if err != nil { + return "", "", err + } + id, err := getResourceId(resource) + if err != nil { + return idcsEndpoint, "", err + } + + return idcsEndpoint, id, nil +} + +func getGetIdFn(resourceName string) func(*tf_export.OCIResource) (string, error) { + return func(resource *tf_export.OCIResource) (string, error) { + idcsEndpoint, id, err := getDomainResourceInfo(resource) + if err != nil { + return "", err + } + + return GetIdentityDomainsCompositeId(idcsEndpoint, resourceName, id), nil + } +} + +//region User sub-resources +func findUserSubResources(ctx *tf_export.ResourceDiscoveryContext, tfMeta *tf_export.TerraformResourceAssociation, parent *tf_export.OCIResource, resourceGraph *tf_export.TerraformResourceGraph) ([]*tf_export.OCIResource, error) { + licenseType, ok := parent.Parent.SourceAttributes["license_type"].(string) + if !ok { + return nil, fmt.Errorf("[ERROR] Failed to get domain licenseType from parent resource attribute `license_type`") + } + // User subresources e.g. api keys, auth tokens, etc are not available in external-user domain + if licenseType == "external-user" { + return nil, nil + } + + return tf_export.FindResourcesGeneric(ctx, tfMeta, parent, resourceGraph) +} + +func processUserSubResources(ctx *tf_export.ResourceDiscoveryContext, resources []*tf_export.OCIResource) ([]*tf_export.OCIResource, error) { + for _, resource := range resources { + if resource.Parent == nil { + continue + } + resource.SourceAttributes["idcs_endpoint"] = resource.Parent.SourceAttributes["idcs_endpoint"].(string) + resource.ImportId = resource.Id + } + return resources, nil +} + +func getUserSubResourceGetIdFn(resourceName string) func(*tf_export.OCIResource) (string, error) { + return func(resource *tf_export.OCIResource) (string, error) { + idcsEndpoint, err := getResourceUrl(resource.Parent.Parent) + if err != nil { + return "", err + } + id, err := getResourceId(resource) + if err != nil { + return "", err + } + return GetIdentityDomainsCompositeId(idcsEndpoint, resourceName, id), nil + } +} + +//endregion User sub-resources + +func getFindMyResources(resourceName string) func(*tf_export.ResourceDiscoveryContext, *tf_export.TerraformResourceAssociation, *tf_export.OCIResource, *tf_export.TerraformResourceGraph) ([]*tf_export.OCIResource, error) { + return func(ctx *tf_export.ResourceDiscoveryContext, tfMeta *tf_export.TerraformResourceAssociation, parent *tf_export.OCIResource, resourceGraph *tf_export.TerraformResourceGraph) ([]*tf_export.OCIResource, error) { + idcsEndpoint, ok := parent.SourceAttributes["url"].(string) + if !ok { + return nil, fmt.Errorf("[ERROR] Failed to get domain url from parent resource attribute `url`") + } + + // My* resources only allows GET with current domain's endpoint url, + // so only call Find when idcs_endpoint matches + for resourceId, _ := range ctx.ExpectedResourceIds { + regex, _ := regexp.Compile("^idcsEndpoint/(.*)/" + resourceName + "/(.*)$") + tokens := regex.FindStringSubmatch(resourceId) + if len(tokens) == 3 && tokens[1] == idcsEndpoint { + return tf_export.FindResourcesGeneric(ctx, tfMeta, parent, resourceGraph) + } + } + + return nil, nil + } +} + +// Hints for discovering and exporting this resource to configuration and state files +var exportIdentityDomainsPasswordPolicyHints = &tf_export.TerraformResourceHints{ + ResourceClass: "oci_identity_domains_password_policy", + DatasourceClass: "oci_identity_domains_password_policies", + DatasourceItemsAttr: "password_policies", + ResourceAbbreviation: "password_policy", +} + +var exportIdentityDomainsSmtpCredentialHints = &tf_export.TerraformResourceHints{ + ResourceClass: "oci_identity_domains_smtp_credential", + DatasourceClass: "oci_identity_domains_smtp_credentials", + DatasourceItemsAttr: "smtp_credentials", + ResourceAbbreviation: "smtp_credential", +} + +var exportIdentityDomainsApiKeyHints = &tf_export.TerraformResourceHints{ + ResourceClass: "oci_identity_domains_api_key", + DatasourceClass: "oci_identity_domains_api_keys", + DatasourceItemsAttr: "api_keys", + ResourceAbbreviation: "api_key", +} + +var exportIdentityDomainsMySupportAccountHints = &tf_export.TerraformResourceHints{ + ResourceClass: "oci_identity_domains_my_support_account", + DatasourceClass: "oci_identity_domains_my_support_accounts", + DatasourceItemsAttr: "my_support_accounts", + ResourceAbbreviation: "my_support_account", +} + +var exportIdentityDomainsCustomerSecretKeyHints = &tf_export.TerraformResourceHints{ + ResourceClass: "oci_identity_domains_customer_secret_key", + DatasourceClass: "oci_identity_domains_customer_secret_keys", + DatasourceItemsAttr: "customer_secret_keys", + ResourceAbbreviation: "customer_secret_key", +} + +var exportIdentityDomainsKmsiSettingHints = &tf_export.TerraformResourceHints{ + ResourceClass: "oci_identity_domains_kmsi_setting", + DatasourceClass: "oci_identity_domains_kmsi_settings", + DatasourceItemsAttr: "kmsi_settings", + ResourceAbbreviation: "kmsi_setting", +} + +var exportIdentityDomainsMyAuthTokenHints = &tf_export.TerraformResourceHints{ + ResourceClass: "oci_identity_domains_my_auth_token", + DatasourceClass: "oci_identity_domains_my_auth_tokens", + DatasourceItemsAttr: "my_auth_tokens", + ResourceAbbreviation: "my_auth_token", +} + +var exportIdentityDomainsUserDbCredentialHints = &tf_export.TerraformResourceHints{ + ResourceClass: "oci_identity_domains_user_db_credential", + DatasourceClass: "oci_identity_domains_user_db_credentials", + DatasourceItemsAttr: "user_db_credentials", + ResourceAbbreviation: "user_db_credential", +} + +var exportIdentityDomainsIdentityProviderHints = &tf_export.TerraformResourceHints{ + ResourceClass: "oci_identity_domains_identity_provider", + DatasourceClass: "oci_identity_domains_identity_providers", + DatasourceItemsAttr: "identity_providers", + ResourceAbbreviation: "identity_provider", +} + +var exportIdentityDomainsAuthTokenHints = &tf_export.TerraformResourceHints{ + ResourceClass: "oci_identity_domains_auth_token", + DatasourceClass: "oci_identity_domains_auth_tokens", + DatasourceItemsAttr: "auth_tokens", + ResourceAbbreviation: "auth_token", +} + +var exportIdentityDomainsDynamicResourceGroupHints = &tf_export.TerraformResourceHints{ + ResourceClass: "oci_identity_domains_dynamic_resource_group", + DatasourceClass: "oci_identity_domains_dynamic_resource_groups", + DatasourceItemsAttr: "dynamic_resource_groups", + ResourceAbbreviation: "dynamic_resource_group", +} + +var exportIdentityDomainsMyCustomerSecretKeyHints = &tf_export.TerraformResourceHints{ + ResourceClass: "oci_identity_domains_my_customer_secret_key", + DatasourceClass: "oci_identity_domains_my_customer_secret_keys", + DatasourceItemsAttr: "my_customer_secret_keys", + ResourceAbbreviation: "my_customer_secret_key", +} + +var exportIdentityDomainsMyUserDbCredentialHints = &tf_export.TerraformResourceHints{ + ResourceClass: "oci_identity_domains_my_user_db_credential", + DatasourceClass: "oci_identity_domains_my_user_db_credentials", + DatasourceItemsAttr: "my_user_db_credentials", + ResourceAbbreviation: "my_user_db_credential", +} + +var exportIdentityDomainsMySmtpCredentialHints = &tf_export.TerraformResourceHints{ + ResourceClass: "oci_identity_domains_my_smtp_credential", + DatasourceClass: "oci_identity_domains_my_smtp_credentials", + DatasourceItemsAttr: "my_smtp_credentials", + ResourceAbbreviation: "my_smtp_credential", +} + +var exportIdentityDomainsMyApiKeyHints = &tf_export.TerraformResourceHints{ + ResourceClass: "oci_identity_domains_my_api_key", + DatasourceClass: "oci_identity_domains_my_api_keys", + DatasourceItemsAttr: "my_api_keys", + ResourceAbbreviation: "my_api_key", +} + +var exportIdentityDomainsUserHints = &tf_export.TerraformResourceHints{ + ResourceClass: "oci_identity_domains_user", + DatasourceClass: "oci_identity_domains_users", + DatasourceItemsAttr: "users", + ResourceAbbreviation: "user", +} + +var exportIdentityDomainsGroupHints = &tf_export.TerraformResourceHints{ + ResourceClass: "oci_identity_domains_group", + DatasourceClass: "oci_identity_domains_groups", + DatasourceItemsAttr: "groups", + ResourceAbbreviation: "group", +} + +var exportIdentityDomainsOAuth2ClientCredentialHints = &tf_export.TerraformResourceHints{ + ResourceClass: "oci_identity_domains_oauth2client_credential", + DatasourceClass: "oci_identity_domains_oauth2client_credentials", + DatasourceItemsAttr: "oauth2client_credentials", + ResourceAbbreviation: "oauth2client_credential", +} + +var exportIdentityDomainsMyOAuth2ClientCredentialHints = &tf_export.TerraformResourceHints{ + ResourceClass: "oci_identity_domains_my_oauth2client_credential", + DatasourceClass: "oci_identity_domains_my_oauth2client_credentials", + DatasourceItemsAttr: "my_oauth2client_credentials", + ResourceAbbreviation: "my_oauth2client_credential", +} + +var exportIdentityDomainsAuthenticationFactorSettingHints = &tf_export.TerraformResourceHints{ + ResourceClass: "oci_identity_domains_authentication_factor_setting", + DatasourceClass: "oci_identity_domains_authentication_factor_settings", + DatasourceItemsAttr: "authentication_factor_settings", + ResourceAbbreviation: "authentication_factor_setting", +} + +/** +Same as in identity_export.go +*/ +var exportIdentityDomainHints = &tf_export.TerraformResourceHints{ + ResourceClass: "oci_identity_domain", + DatasourceClass: "oci_identity_domains", + DatasourceItemsAttr: "domains", + ResourceAbbreviation: "domain", + DiscoverableLifecycleStates: []string{ + string(oci_identity.DomainLifecycleStateActive), + }, +} + +var identityDomainsResourceGraph = tf_export.TerraformResourceGraph{ + "oci_identity_tenancy": { + {TerraformResourceHints: exportIdentityDomainHints}, + }, + "oci_identity_domain": { + { + TerraformResourceHints: exportIdentityDomainsUserHints, + DatasourceQueryParams: map[string]string{ + "idcs_endpoint": "url", + }, + }, + { + TerraformResourceHints: exportIdentityDomainsGroupHints, + DatasourceQueryParams: map[string]string{ + "idcs_endpoint": "url", + }, + }, + { + TerraformResourceHints: exportIdentityDomainsPasswordPolicyHints, + DatasourceQueryParams: map[string]string{ + "idcs_endpoint": "url", + }, + }, + { + TerraformResourceHints: exportIdentityDomainsIdentityProviderHints, + DatasourceQueryParams: map[string]string{ + "idcs_endpoint": "url", + }, + }, + { + TerraformResourceHints: exportIdentityDomainsDynamicResourceGroupHints, + DatasourceQueryParams: map[string]string{ + "idcs_endpoint": "url", + }, + }, + { + TerraformResourceHints: exportIdentityDomainsKmsiSettingHints, + DatasourceQueryParams: map[string]string{ + "idcs_endpoint": "url", + }, + }, + { + TerraformResourceHints: exportIdentityDomainsMyApiKeyHints, + DatasourceQueryParams: map[string]string{ + "idcs_endpoint": "url", + }, + }, + { + TerraformResourceHints: exportIdentityDomainsMyAuthTokenHints, + DatasourceQueryParams: map[string]string{ + "idcs_endpoint": "url", + }, + }, + { + TerraformResourceHints: exportIdentityDomainsMyCustomerSecretKeyHints, + DatasourceQueryParams: map[string]string{ + "idcs_endpoint": "url", + }, + }, + { + TerraformResourceHints: exportIdentityDomainsMyOAuth2ClientCredentialHints, + DatasourceQueryParams: map[string]string{ + "idcs_endpoint": "url", + }, + }, + { + TerraformResourceHints: exportIdentityDomainsMySmtpCredentialHints, + DatasourceQueryParams: map[string]string{ + "idcs_endpoint": "url", + }, + }, + { + TerraformResourceHints: exportIdentityDomainsMyUserDbCredentialHints, + DatasourceQueryParams: map[string]string{ + "idcs_endpoint": "url", + }, + }, + { + TerraformResourceHints: exportIdentityDomainsMySupportAccountHints, + DatasourceQueryParams: map[string]string{ + "idcs_endpoint": "url", + }, + }, + { + TerraformResourceHints: exportIdentityDomainsAuthenticationFactorSettingHints, + DatasourceQueryParams: map[string]string{ + "idcs_endpoint": "url", + }, + }, + }, + "oci_identity_domains_user": { + { + TerraformResourceHints: exportIdentityDomainsApiKeyHints, + DatasourceQueryParams: map[string]string{ + "idcs_endpoint": "idcs_endpoint", + "api_key_filter": "id", + }, + }, + { + TerraformResourceHints: exportIdentityDomainsAuthTokenHints, + DatasourceQueryParams: map[string]string{ + "idcs_endpoint": "idcs_endpoint", + "auth_token_filter": "id", + }, + }, + { + TerraformResourceHints: exportIdentityDomainsCustomerSecretKeyHints, + DatasourceQueryParams: map[string]string{ + "idcs_endpoint": "idcs_endpoint", + "customer_secret_key_filter": "id", + }, + }, + { + TerraformResourceHints: exportIdentityDomainsOAuth2ClientCredentialHints, + DatasourceQueryParams: map[string]string{ + "idcs_endpoint": "idcs_endpoint", + "oauth2client_credential_filter": "id", + }, + }, + { + TerraformResourceHints: exportIdentityDomainsSmtpCredentialHints, + DatasourceQueryParams: map[string]string{ + "idcs_endpoint": "idcs_endpoint", + "smtp_credential_filter": "id", + }, + }, + { + TerraformResourceHints: exportIdentityDomainsUserDbCredentialHints, + DatasourceQueryParams: map[string]string{ + "idcs_endpoint": "idcs_endpoint", + "user_db_credential_filter": "id", + }, + }, + }, +} diff --git a/internal/service/identity_domains/identity_domains_group_data_source.go b/internal/service/identity_domains/identity_domains_group_data_source.go new file mode 100644 index 00000000000..fdd043dddb9 --- /dev/null +++ b/internal/service/identity_domains/identity_domains_group_data_source.go @@ -0,0 +1,237 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsGroupDataSource() *schema.Resource { + fieldMap := make(map[string]*schema.Schema) + fieldMap["attribute_sets"] = &schema.Schema{ + Type: schema.TypeList, + Optional: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + } + fieldMap["attributes"] = &schema.Schema{ + Type: schema.TypeString, + Optional: true, + } + fieldMap["authorization"] = &schema.Schema{ + Type: schema.TypeString, + Optional: true, + } + fieldMap["group_id"] = &schema.Schema{ + Type: schema.TypeString, + Required: true, + } + fieldMap["idcs_endpoint"] = &schema.Schema{ + Type: schema.TypeString, + Required: true, + } + fieldMap["resource_type_schema_version"] = &schema.Schema{ + Type: schema.TypeString, + Optional: true, + } + return tfresource.GetSingularDataSourceItemSchema(IdentityDomainsGroupResource(), fieldMap, readSingularIdentityDomainsGroup) +} + +func readSingularIdentityDomainsGroup(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsGroupDataSourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpointForRead(d, "groups") + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + + return tfresource.ReadResource(sync) +} + +type IdentityDomainsGroupDataSourceCrud struct { + D *schema.ResourceData + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.GetGroupResponse +} + +func (s *IdentityDomainsGroupDataSourceCrud) VoidState() { + s.D.SetId("") +} + +func (s *IdentityDomainsGroupDataSourceCrud) Get() error { + request := oci_identity_domains.GetGroupRequest{} + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if groupId, ok := s.D.GetOkExists("group_id"); ok { + tmp := groupId.(string) + request.GroupId = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "identity_domains") + + response, err := s.Client.GetGroup(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response + return nil +} + +func (s *IdentityDomainsGroupDataSourceCrud) SetData() error { + if s.Res == nil { + return nil + } + + s.D.SetId(*s.Res.Id) + + if s.Res.CompartmentOcid != nil { + s.D.Set("compartment_ocid", *s.Res.CompartmentOcid) + } + + if s.Res.DeleteInProgress != nil { + s.D.Set("delete_in_progress", *s.Res.DeleteInProgress) + } + + if s.Res.DisplayName != nil { + s.D.Set("display_name", *s.Res.DisplayName) + } + + if s.Res.DomainOcid != nil { + s.D.Set("domain_ocid", *s.Res.DomainOcid) + } + + if s.Res.ExternalId != nil { + s.D.Set("external_id", *s.Res.ExternalId) + } + + if s.Res.IdcsCreatedBy != nil { + s.D.Set("idcs_created_by", []interface{}{idcsCreatedByToMap(s.Res.IdcsCreatedBy)}) + } else { + s.D.Set("idcs_created_by", nil) + } + + if s.Res.IdcsLastModifiedBy != nil { + s.D.Set("idcs_last_modified_by", []interface{}{idcsLastModifiedByToMap(s.Res.IdcsLastModifiedBy)}) + } else { + s.D.Set("idcs_last_modified_by", nil) + } + + if s.Res.IdcsLastUpgradedInRelease != nil { + s.D.Set("idcs_last_upgraded_in_release", *s.Res.IdcsLastUpgradedInRelease) + } + + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + + members := []interface{}{} + for _, item := range s.Res.Members { + members = append(members, GroupMembersToMap(item)) + } + s.D.Set("members", members) + + if s.Res.Meta != nil { + s.D.Set("meta", []interface{}{metaToMap(s.Res.Meta)}) + } else { + s.D.Set("meta", nil) + } + + if s.Res.NonUniqueDisplayName != nil { + s.D.Set("non_unique_display_name", *s.Res.NonUniqueDisplayName) + } + + if s.Res.Ocid != nil { + s.D.Set("ocid", *s.Res.Ocid) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + tags := []interface{}{} + for _, item := range s.Res.Tags { + tags = append(tags, tagsToMap(item)) + } + s.D.Set("tags", tags) + + if s.Res.TenancyOcid != nil { + s.D.Set("tenancy_ocid", *s.Res.TenancyOcid) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionOciTags != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextension_oci_tags", []interface{}{ExtensionOCITagsToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionOciTags)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextension_oci_tags", nil) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionDbcsGroup != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensiondbcs_group", []interface{}{ExtensionDbcsGroupToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionDbcsGroup)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensiondbcs_group", nil) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionDynamicGroup != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensiondynamic_group", []interface{}{ExtensionDynamicGroupToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionDynamicGroup)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensiondynamic_group", nil) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionGroupGroup != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensiongroup_group", []interface{}{ExtensionGroupGroupToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionGroupGroup)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensiongroup_group", nil) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionPosixGroup != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionposix_group", []interface{}{ExtensionPosixGroupToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionPosixGroup)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionposix_group", nil) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionRequestableGroup != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionrequestable_group", []interface{}{ExtensionRequestableGroupToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionRequestableGroup)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionrequestable_group", nil) + } + + return nil +} diff --git a/internal/service/identity_domains/identity_domains_group_resource.go b/internal/service/identity_domains/identity_domains_group_resource.go new file mode 100644 index 00000000000..a0835145718 --- /dev/null +++ b/internal/service/identity_domains/identity_domains_group_resource.go @@ -0,0 +1,2163 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + "fmt" + "log" + "net/url" + "regexp" + "strings" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsGroupResource() *schema.Resource { + return &schema.Resource{ + Importer: &schema.ResourceImporter{ + State: schema.ImportStatePassthrough, + }, + Timeouts: tfresource.DefaultTimeout, + Create: createIdentityDomainsGroup, + Read: readIdentityDomainsGroup, + Update: updateIdentityDomainsGroup, + Delete: deleteIdentityDomainsGroup, + Schema: map[string]*schema.Schema{ + // Required + "display_name": { + Type: schema.TypeString, + Required: true, + }, + "idcs_endpoint": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "schemas": { + Type: schema.TypeList, + Required: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + + // Optional + "attribute_sets": { + Type: schema.TypeList, + Optional: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "attributes": { + Type: schema.TypeString, + Optional: true, + }, + "authorization": { + Type: schema.TypeString, + Optional: true, + }, + "external_id": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "members": { + Type: schema.TypeList, + Optional: true, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "type": { + Type: schema.TypeString, + Required: true, + }, + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + "date_added": { + Type: schema.TypeString, + Computed: true, + }, + "display": { + Type: schema.TypeString, + Computed: true, + }, + "membership_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "name": { + Type: schema.TypeString, + Computed: true, + }, + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "non_unique_display_name": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "resource_type_schema_version": { + Type: schema.TypeString, + Optional: true, + }, + "tags": { + Type: schema.TypeList, + Optional: true, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "key": { + Type: schema.TypeString, + Required: true, + }, + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + + // Computed + }, + }, + }, + "urnietfparamsscimschemasoracleidcsextension_oci_tags": { + Type: schema.TypeList, + Optional: true, + Computed: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "defined_tags": { + Type: schema.TypeList, + Optional: true, + Computed: true, + DiffSuppressFunc: tfresource.DefinedTagsDiffSuppressFunction, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "key": { + Type: schema.TypeString, + Required: true, + }, + "namespace": { + Type: schema.TypeString, + Required: true, + }, + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + + // Computed + }, + }, + }, + "freeform_tags": { + Type: schema.TypeList, + Optional: true, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "key": { + Type: schema.TypeString, + Required: true, + }, + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + + // Computed + }, + }, + }, + + // Computed + "tag_slug": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "urnietfparamsscimschemasoracleidcsextensiondynamic_group": { + Type: schema.TypeList, + Optional: true, + Computed: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "membership_rule": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "membership_type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + }, + }, + }, + "urnietfparamsscimschemasoracleidcsextensiongroup_group": { + Type: schema.TypeList, + Optional: true, + Computed: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "creation_mechanism": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "description": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "owners": { + Type: schema.TypeList, + Optional: true, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "type": { + Type: schema.TypeString, + Required: true, + }, + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + + // Computed + "display": { + Type: schema.TypeString, + Computed: true, + }, + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + + // Computed + "app_roles": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + "admin_role": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "app_id": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "app_name": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "legacy_group_name": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "grants": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "app_id": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "grant_mechanism": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "value": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "password_policy": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + "name": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "priority": { + Type: schema.TypeInt, + Optional: true, + Computed: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "synced_from_app": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "type": { + Type: schema.TypeString, + Required: true, + }, + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + }, + }, + }, + "urnietfparamsscimschemasoracleidcsextensionposix_group": { + Type: schema.TypeList, + Optional: true, + Computed: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "gid_number": { + Type: schema.TypeInt, + Optional: true, + Computed: true, + }, + + // Computed + }, + }, + }, + "urnietfparamsscimschemasoracleidcsextensionrequestable_group": { + Type: schema.TypeList, + Optional: true, + Computed: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "requestable": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + + // Computed + }, + }, + }, + + // Computed + "compartment_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "delete_in_progress": { + Type: schema.TypeBool, + Computed: true, + }, + "domain_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "id": { + Type: schema.TypeString, + Computed: true, + }, + "idcs_created_by": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "idcs_last_modified_by": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "idcs_last_upgraded_in_release": { + Type: schema.TypeString, + Computed: true, + }, + "idcs_prevented_operations": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "meta": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "created": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "last_modified": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "location": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "resource_type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "version": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + }, + }, + }, + "tenancy_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "urnietfparamsscimschemasoracleidcsextensiondbcs_group": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "domain_level_schema": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "domain_level_schema_names": { + Type: schema.TypeList, + Optional: true, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "domain_name": { + Type: schema.TypeString, + Required: true, + }, + "schema_name": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + + // Computed + }, + }, + }, + "instance_level_schema": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "instance_level_schema_names": { + Type: schema.TypeList, + Optional: true, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "db_instance_id": { + Type: schema.TypeString, + Required: true, + }, + "schema_name": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + + // Computed + }, + }, + }, + + // Computed + }, + }, + }, + }, + } +} + +func createIdentityDomainsGroup(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsGroupResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.CreateResource(d, sync) +} + +func readIdentityDomainsGroup(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsGroupResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpointForRead(d, "groups") + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + + return tfresource.ReadResource(sync) +} + +func updateIdentityDomainsGroup(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsGroupResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + + return tfresource.UpdateResource(d, sync) +} + +func deleteIdentityDomainsGroup(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsGroupResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + sync.DisableNotFoundRetries = true + + return tfresource.DeleteResource(d, sync) +} + +type IdentityDomainsGroupResourceCrud struct { + tfresource.BaseCrud + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.Group + DisableNotFoundRetries bool +} + +func (s *IdentityDomainsGroupResourceCrud) ID() string { + return *s.Res.Id +} + +func (s *IdentityDomainsGroupResourceCrud) Create() error { + request := oci_identity_domains.CreateGroupRequest{} + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if displayName, ok := s.D.GetOkExists("display_name"); ok { + tmp := displayName.(string) + request.DisplayName = &tmp + } + + if externalId, ok := s.D.GetOkExists("external_id"); ok { + tmp := externalId.(string) + request.ExternalId = &tmp + } + + if id, ok := s.D.GetOkExists("id"); ok { + tmp := id.(string) + request.Id = &tmp + } + + if members, ok := s.D.GetOkExists("members"); ok { + interfaces := members.([]interface{}) + tmp := make([]oci_identity_domains.GroupMembers, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "members", stateDataIndex) + converted, err := s.mapToGroupMembers(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("members") { + request.Members = tmp + } + } + + if nonUniqueDisplayName, ok := s.D.GetOkExists("non_unique_display_name"); ok { + tmp := nonUniqueDisplayName.(string) + request.NonUniqueDisplayName = &tmp + } + + if ocid, ok := s.D.GetOkExists("ocid"); ok { + tmp := ocid.(string) + request.Ocid = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + if schemas, ok := s.D.GetOkExists("schemas"); ok { + interfaces := schemas.([]interface{}) + tmp := make([]string, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = interfaces[i].(string) + } + } + if len(tmp) != 0 || s.D.HasChange("schemas") { + request.Schemas = tmp + } + } + + if tags, ok := s.D.GetOkExists("tags"); ok { + interfaces := tags.([]interface{}) + tmp := make([]oci_identity_domains.Tags, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "tags", stateDataIndex) + converted, err := s.mapTotags(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("tags") { + request.Tags = tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensionOCITags, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextension_oci_tags"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensionOCITags.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextension_oci_tags", 0) + tmp, err := s.mapToExtensionOCITags(fieldKeyFormat) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasOracleIdcsExtensionOciTags = &tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensiondynamicGroup, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextensiondynamic_group"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensiondynamicGroup.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextensiondynamic_group", 0) + tmp, err := s.mapToExtensionDynamicGroup(fieldKeyFormat) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasOracleIdcsExtensionDynamicGroup = &tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensiongroupGroup, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextensiongroup_group"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensiongroupGroup.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextensiongroup_group", 0) + tmp, err := s.mapToExtensionGroupGroup(fieldKeyFormat) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasOracleIdcsExtensionGroupGroup = &tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensionposixGroup, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextensionposix_group"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensionposixGroup.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextensionposix_group", 0) + tmp, err := s.mapToExtensionPosixGroup(fieldKeyFormat) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasOracleIdcsExtensionPosixGroup = &tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensionrequestableGroup, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextensionrequestable_group"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensionrequestableGroup.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextensionrequestable_group", 0) + tmp, err := s.mapToExtensionRequestableGroup(fieldKeyFormat) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasOracleIdcsExtensionRequestableGroup = &tmp + } + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + response, err := s.Client.CreateGroup(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response.Group + return nil +} + +func (s *IdentityDomainsGroupResourceCrud) Get() error { + request := oci_identity_domains.GetGroupRequest{} + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + tmp := s.D.Id() + request.GroupId = &tmp + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + groupId, err := parseGroupCompositeId(s.D.Id()) + if err == nil { + request.GroupId = &groupId + } else { + log.Printf("[WARN] Get() unable to parse current ID: %s", s.D.Id()) + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + response, err := s.Client.GetGroup(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response.Group + return nil +} + +func (s *IdentityDomainsGroupResourceCrud) Update() error { + request := oci_identity_domains.PutGroupRequest{} + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if displayName, ok := s.D.GetOkExists("display_name"); ok { + tmp := displayName.(string) + request.DisplayName = &tmp + } + + if externalId, ok := s.D.GetOkExists("external_id"); ok { + tmp := externalId.(string) + request.ExternalId = &tmp + } + + tmp := s.D.Id() + request.GroupId = &tmp + + tmp = s.D.Id() + request.Id = &tmp + + if members, ok := s.D.GetOkExists("members"); ok { + interfaces := members.([]interface{}) + tmp := make([]oci_identity_domains.GroupMembers, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "members", stateDataIndex) + converted, err := s.mapToGroupMembers(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("members") { + request.Members = tmp + } + } + + if nonUniqueDisplayName, ok := s.D.GetOkExists("non_unique_display_name"); ok { + tmp := nonUniqueDisplayName.(string) + request.NonUniqueDisplayName = &tmp + } + + if ocid, ok := s.D.GetOkExists("ocid"); ok { + tmp := ocid.(string) + request.Ocid = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + if schemas, ok := s.D.GetOkExists("schemas"); ok { + interfaces := schemas.([]interface{}) + tmp := make([]string, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = interfaces[i].(string) + } + } + if len(tmp) != 0 || s.D.HasChange("schemas") { + request.Schemas = tmp + } + } + + if tags, ok := s.D.GetOkExists("tags"); ok { + interfaces := tags.([]interface{}) + tmp := make([]oci_identity_domains.Tags, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "tags", stateDataIndex) + converted, err := s.mapTotags(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("tags") { + request.Tags = tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensionOCITags, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextension_oci_tags"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensionOCITags.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextension_oci_tags", 0) + tmp, err := s.mapToExtensionOCITags(fieldKeyFormat) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasOracleIdcsExtensionOciTags = &tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensiondynamicGroup, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextensiondynamic_group"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensiondynamicGroup.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextensiondynamic_group", 0) + tmp, err := s.mapToExtensionDynamicGroup(fieldKeyFormat) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasOracleIdcsExtensionDynamicGroup = &tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensiongroupGroup, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextensiongroup_group"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensiongroupGroup.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextensiongroup_group", 0) + tmp, err := s.mapToExtensionGroupGroup(fieldKeyFormat) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasOracleIdcsExtensionGroupGroup = &tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensionposixGroup, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextensionposix_group"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensionposixGroup.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextensionposix_group", 0) + tmp, err := s.mapToExtensionPosixGroup(fieldKeyFormat) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasOracleIdcsExtensionPosixGroup = &tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensionrequestableGroup, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextensionrequestable_group"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensionrequestableGroup.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextensionrequestable_group", 0) + tmp, err := s.mapToExtensionRequestableGroup(fieldKeyFormat) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasOracleIdcsExtensionRequestableGroup = &tmp + } + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + response, err := s.Client.PutGroup(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response.Group + return nil +} + +func (s *IdentityDomainsGroupResourceCrud) Delete() error { + request := oci_identity_domains.DeleteGroupRequest{} + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if forceDelete, ok := s.D.GetOkExists("force_delete"); ok { + tmp := forceDelete.(bool) + request.ForceDelete = &tmp + } + + tmp := s.D.Id() + request.GroupId = &tmp + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + _, err := s.Client.DeleteGroup(context.Background(), request) + return err +} + +func (s *IdentityDomainsGroupResourceCrud) SetData() error { + + groupId, err := parseGroupCompositeId(s.D.Id()) + if err == nil { + s.D.SetId(groupId) + } else { + log.Printf("[WARN] SetData() unable to parse current ID: %s", s.D.Id()) + } + + if s.Res.CompartmentOcid != nil { + s.D.Set("compartment_ocid", *s.Res.CompartmentOcid) + } + + if s.Res.DeleteInProgress != nil { + s.D.Set("delete_in_progress", *s.Res.DeleteInProgress) + } + + if s.Res.DisplayName != nil { + s.D.Set("display_name", *s.Res.DisplayName) + } + + if s.Res.DomainOcid != nil { + s.D.Set("domain_ocid", *s.Res.DomainOcid) + } + + if s.Res.ExternalId != nil { + s.D.Set("external_id", *s.Res.ExternalId) + } + + if s.Res.IdcsCreatedBy != nil { + s.D.Set("idcs_created_by", []interface{}{idcsCreatedByToMap(s.Res.IdcsCreatedBy)}) + } else { + s.D.Set("idcs_created_by", nil) + } + + if s.Res.IdcsLastModifiedBy != nil { + s.D.Set("idcs_last_modified_by", []interface{}{idcsLastModifiedByToMap(s.Res.IdcsLastModifiedBy)}) + } else { + s.D.Set("idcs_last_modified_by", nil) + } + + if s.Res.IdcsLastUpgradedInRelease != nil { + s.D.Set("idcs_last_upgraded_in_release", *s.Res.IdcsLastUpgradedInRelease) + } + + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + + members := []interface{}{} + for _, item := range s.Res.Members { + members = append(members, GroupMembersToMap(item)) + } + s.D.Set("members", members) + + if s.Res.Meta != nil { + s.D.Set("meta", []interface{}{metaToMap(s.Res.Meta)}) + } else { + s.D.Set("meta", nil) + } + + if s.Res.NonUniqueDisplayName != nil { + s.D.Set("non_unique_display_name", *s.Res.NonUniqueDisplayName) + } + + if s.Res.Ocid != nil { + s.D.Set("ocid", *s.Res.Ocid) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + tags := []interface{}{} + for _, item := range s.Res.Tags { + tags = append(tags, tagsToMap(item)) + } + s.D.Set("tags", tags) + + if s.Res.TenancyOcid != nil { + s.D.Set("tenancy_ocid", *s.Res.TenancyOcid) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionOciTags != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextension_oci_tags", []interface{}{ExtensionOCITagsToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionOciTags)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextension_oci_tags", nil) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionDbcsGroup != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensiondbcs_group", []interface{}{ExtensionDbcsGroupToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionDbcsGroup)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensiondbcs_group", nil) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionDynamicGroup != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensiondynamic_group", []interface{}{ExtensionDynamicGroupToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionDynamicGroup)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensiondynamic_group", nil) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionGroupGroup != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensiongroup_group", []interface{}{ExtensionGroupGroupToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionGroupGroup)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensiongroup_group", nil) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionPosixGroup != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionposix_group", []interface{}{ExtensionPosixGroupToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionPosixGroup)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionposix_group", nil) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionRequestableGroup != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionrequestable_group", []interface{}{ExtensionRequestableGroupToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionRequestableGroup)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionrequestable_group", nil) + } + + return nil +} + +//func GetGroupCompositeId(groupId string) string { +// groupId = url.PathEscape(groupId) +// id = url.PathEscape(id) +// idcsEndpoint = url.PathEscape(idcsEndpoint) +// compositeId := "idcsEndpoint/" + idcsEndpoint + "/groups/" + groupId +// return compositeId +//} + +func parseGroupCompositeId(compositeId string) (groupId string, err error) { + parts := strings.Split(compositeId, "/") + match, _ := regexp.MatchString("idcsEndpoint/.*/groups/.*", compositeId) + if !match || len(parts) != 4 { + err = fmt.Errorf("illegal compositeId %s encountered", compositeId) + return + } + //idcsEndpoint, _ = url.PathUnescape(parts[1]) + groupId, _ = url.PathUnescape(parts[3]) + + return +} + +func ExtensionDbcsGroupToMap(obj *oci_identity_domains.ExtensionDbcsGroup) map[string]interface{} { + result := map[string]interface{}{} + + if obj.DomainLevelSchema != nil { + result["domain_level_schema"] = string(*obj.DomainLevelSchema) + } + + domainLevelSchemaNames := []interface{}{} + for _, item := range obj.DomainLevelSchemaNames { + domainLevelSchemaNames = append(domainLevelSchemaNames, GroupExtDomainLevelSchemaNamesToMap(item)) + } + result["domain_level_schema_names"] = domainLevelSchemaNames + + if obj.InstanceLevelSchema != nil { + result["instance_level_schema"] = string(*obj.InstanceLevelSchema) + } + + instanceLevelSchemaNames := []interface{}{} + for _, item := range obj.InstanceLevelSchemaNames { + instanceLevelSchemaNames = append(instanceLevelSchemaNames, GroupExtInstanceLevelSchemaNamesToMap(item)) + } + result["instance_level_schema_names"] = instanceLevelSchemaNames + + return result +} + +func (s *IdentityDomainsGroupResourceCrud) mapToExtensionDynamicGroup(fieldKeyFormat string) (oci_identity_domains.ExtensionDynamicGroup, error) { + result := oci_identity_domains.ExtensionDynamicGroup{} + + if membershipRule, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "membership_rule")); ok { + tmp := membershipRule.(string) + if tmp != "" { + result.MembershipRule = &tmp + } + } + + if membershipType, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "membership_type")); ok { + result.MembershipType = oci_identity_domains.ExtensionDynamicGroupMembershipTypeEnum(membershipType.(string)) + } + + return result, nil +} + +func ExtensionDynamicGroupToMap(obj *oci_identity_domains.ExtensionDynamicGroup) map[string]interface{} { + result := map[string]interface{}{} + + if obj.MembershipRule != nil { + result["membership_rule"] = string(*obj.MembershipRule) + } + + result["membership_type"] = string(obj.MembershipType) + + return result +} + +func (s *IdentityDomainsGroupResourceCrud) mapToExtensionGroupGroup(fieldKeyFormat string) (oci_identity_domains.ExtensionGroupGroup, error) { + result := oci_identity_domains.ExtensionGroupGroup{} + + if appRoles, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "app_roles")); ok { + interfaces := appRoles.([]interface{}) + tmp := make([]oci_identity_domains.GroupExtAppRoles, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormatNextLevel := fmt.Sprintf("%s.%d.%%s", fmt.Sprintf(fieldKeyFormat, "app_roles"), stateDataIndex) + converted, err := s.mapToGroupExtAppRoles(fieldKeyFormatNextLevel) + if err != nil { + return result, err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange(fmt.Sprintf(fieldKeyFormat, "app_roles")) { + result.AppRoles = tmp + } + } + + if creationMechanism, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "creation_mechanism")); ok { + result.CreationMechanism = oci_identity_domains.ExtensionGroupGroupCreationMechanismEnum(creationMechanism.(string)) + } + + if description, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "description")); ok { + tmp := description.(string) + result.Description = &tmp + } + + if grants, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "grants")); ok { + interfaces := grants.([]interface{}) + tmp := make([]oci_identity_domains.GroupExtGrants, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormatNextLevel := fmt.Sprintf("%s.%d.%%s", fmt.Sprintf(fieldKeyFormat, "grants"), stateDataIndex) + converted, err := s.mapToGroupExtGrants(fieldKeyFormatNextLevel) + if err != nil { + return result, err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange(fmt.Sprintf(fieldKeyFormat, "grants")) { + result.Grants = tmp + } + } + + if owners, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "owners")); ok { + interfaces := owners.([]interface{}) + tmp := make([]oci_identity_domains.GroupExtOwners, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormatNextLevel := fmt.Sprintf("%s.%d.%%s", fmt.Sprintf(fieldKeyFormat, "owners"), stateDataIndex) + converted, err := s.mapToGroupExtOwners(fieldKeyFormatNextLevel) + if err != nil { + return result, err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange(fmt.Sprintf(fieldKeyFormat, "owners")) { + result.Owners = tmp + } + } + + if passwordPolicy, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "password_policy")); ok { + if tmpList := passwordPolicy.([]interface{}); len(tmpList) > 0 { + fieldKeyFormatNextLevel := fmt.Sprintf("%s.%d.%%s", fmt.Sprintf(fieldKeyFormat, "password_policy"), 0) + tmp, err := s.mapToGroupExtPasswordPolicy(fieldKeyFormatNextLevel) + if err != nil { + return result, fmt.Errorf("unable to convert password_policy, encountered error: %v", err) + } + result.PasswordPolicy = &tmp + } + } + + if syncedFromApp, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "synced_from_app")); ok { + if tmpList := syncedFromApp.([]interface{}); len(tmpList) > 0 { + fieldKeyFormatNextLevel := fmt.Sprintf("%s.%d.%%s", fmt.Sprintf(fieldKeyFormat, "synced_from_app"), 0) + tmp, err := s.mapToGroupExtSyncedFromApp(fieldKeyFormatNextLevel) + if err != nil { + return result, fmt.Errorf("unable to convert synced_from_app, encountered error: %v", err) + } + result.SyncedFromApp = &tmp + } + } + + return result, nil +} + +func ExtensionGroupGroupToMap(obj *oci_identity_domains.ExtensionGroupGroup) map[string]interface{} { + result := map[string]interface{}{} + + appRoles := []interface{}{} + for _, item := range obj.AppRoles { + appRoles = append(appRoles, GroupExtAppRolesToMap(item)) + } + result["app_roles"] = appRoles + + result["creation_mechanism"] = string(obj.CreationMechanism) + + if obj.Description != nil { + result["description"] = string(*obj.Description) + } + + grants := []interface{}{} + for _, item := range obj.Grants { + grants = append(grants, GroupExtGrantsToMap(item)) + } + result["grants"] = grants + + owners := []interface{}{} + for _, item := range obj.Owners { + owners = append(owners, GroupExtOwnersToMap(item)) + } + result["owners"] = owners + + if obj.PasswordPolicy != nil { + result["password_policy"] = []interface{}{GroupExtPasswordPolicyToMap(obj.PasswordPolicy)} + } + + if obj.SyncedFromApp != nil { + result["synced_from_app"] = []interface{}{GroupExtSyncedFromAppToMap(obj.SyncedFromApp)} + } + + return result +} + +func (s *IdentityDomainsGroupResourceCrud) mapToExtensionOCITags(fieldKeyFormat string) (oci_identity_domains.ExtensionOciTags, error) { + result := oci_identity_domains.ExtensionOciTags{} + + if definedTags, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "defined_tags")); ok { + interfaces := definedTags.([]interface{}) + tmp := make([]oci_identity_domains.DefinedTags, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormatNextLevel := fmt.Sprintf("%s.%d.%%s", fmt.Sprintf(fieldKeyFormat, "defined_tags"), stateDataIndex) + converted, err := s.mapTodefinedTags(fieldKeyFormatNextLevel) + if err != nil { + return result, err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange(fmt.Sprintf(fieldKeyFormat, "defined_tags")) { + result.DefinedTags = tmp + } + } + + if freeformTags, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "freeform_tags")); ok { + interfaces := freeformTags.([]interface{}) + tmp := make([]oci_identity_domains.FreeformTags, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormatNextLevel := fmt.Sprintf("%s.%d.%%s", fmt.Sprintf(fieldKeyFormat, "freeform_tags"), stateDataIndex) + converted, err := s.mapTofreeformTags(fieldKeyFormatNextLevel) + if err != nil { + return result, err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange(fmt.Sprintf(fieldKeyFormat, "freeform_tags")) { + result.FreeformTags = tmp + } + } + + if tagSlug, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "tag_slug")); ok { + result.TagSlug = &tagSlug + } + + return result, nil +} + +func (s *IdentityDomainsGroupResourceCrud) mapToExtensionPosixGroup(fieldKeyFormat string) (oci_identity_domains.ExtensionPosixGroup, error) { + result := oci_identity_domains.ExtensionPosixGroup{} + + if gidNumber, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "gid_number")); ok { + tmp := gidNumber.(int) + result.GidNumber = &tmp + } + + return result, nil +} + +func ExtensionPosixGroupToMap(obj *oci_identity_domains.ExtensionPosixGroup) map[string]interface{} { + result := map[string]interface{}{} + + if obj.GidNumber != nil { + result["gid_number"] = int(*obj.GidNumber) + } + + return result +} + +func (s *IdentityDomainsGroupResourceCrud) mapToExtensionRequestableGroup(fieldKeyFormat string) (oci_identity_domains.ExtensionRequestableGroup, error) { + result := oci_identity_domains.ExtensionRequestableGroup{} + + if requestable, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "requestable")); ok { + tmp := requestable.(bool) + result.Requestable = &tmp + } + + return result, nil +} + +func ExtensionRequestableGroupToMap(obj *oci_identity_domains.ExtensionRequestableGroup) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Requestable != nil { + result["requestable"] = bool(*obj.Requestable) + } + + return result +} + +func GroupToMap(obj oci_identity_domains.Group) map[string]interface{} { + result := map[string]interface{}{} + + if obj.CompartmentOcid != nil { + result["compartment_ocid"] = string(*obj.CompartmentOcid) + } + + if obj.DeleteInProgress != nil { + result["delete_in_progress"] = bool(*obj.DeleteInProgress) + } + + if obj.DisplayName != nil { + result["display_name"] = string(*obj.DisplayName) + } + + if obj.DomainOcid != nil { + result["domain_ocid"] = string(*obj.DomainOcid) + } + + if obj.ExternalId != nil { + result["external_id"] = string(*obj.ExternalId) + } + + if obj.Id != nil { + result["id"] = string(*obj.Id) + } + + if obj.IdcsCreatedBy != nil { + result["idcs_created_by"] = []interface{}{idcsCreatedByToMap(obj.IdcsCreatedBy)} + } + + if obj.IdcsLastModifiedBy != nil { + result["idcs_last_modified_by"] = []interface{}{idcsLastModifiedByToMap(obj.IdcsLastModifiedBy)} + } + + if obj.IdcsLastUpgradedInRelease != nil { + result["idcs_last_upgraded_in_release"] = string(*obj.IdcsLastUpgradedInRelease) + } + + result["idcs_prevented_operations"] = obj.IdcsPreventedOperations + result["idcs_prevented_operations"] = obj.IdcsPreventedOperations + + members := []interface{}{} + for _, item := range obj.Members { + members = append(members, GroupMembersToMap(item)) + } + result["members"] = members + + if obj.Meta != nil { + result["meta"] = []interface{}{metaToMap(obj.Meta)} + } + + if obj.NonUniqueDisplayName != nil { + result["non_unique_display_name"] = string(*obj.NonUniqueDisplayName) + } + + if obj.Ocid != nil { + result["ocid"] = string(*obj.Ocid) + } + + result["schemas"] = obj.Schemas + result["schemas"] = obj.Schemas + + tags := []interface{}{} + for _, item := range obj.Tags { + tags = append(tags, tagsToMap(item)) + } + result["tags"] = tags + + if obj.TenancyOcid != nil { + result["tenancy_ocid"] = string(*obj.TenancyOcid) + } + + if obj.UrnIetfParamsScimSchemasOracleIdcsExtensionOciTags != nil { + result["urnietfparamsscimschemasoracleidcsextension_oci_tags"] = []interface{}{ExtensionOCITagsToMap(obj.UrnIetfParamsScimSchemasOracleIdcsExtensionOciTags)} + } + + if obj.UrnIetfParamsScimSchemasOracleIdcsExtensionDbcsGroup != nil { + result["urnietfparamsscimschemasoracleidcsextensiondbcs_group"] = []interface{}{ExtensionDbcsGroupToMap(obj.UrnIetfParamsScimSchemasOracleIdcsExtensionDbcsGroup)} + } + + if obj.UrnIetfParamsScimSchemasOracleIdcsExtensionDynamicGroup != nil { + result["urnietfparamsscimschemasoracleidcsextensiondynamic_group"] = []interface{}{ExtensionDynamicGroupToMap(obj.UrnIetfParamsScimSchemasOracleIdcsExtensionDynamicGroup)} + } + + if obj.UrnIetfParamsScimSchemasOracleIdcsExtensionGroupGroup != nil { + result["urnietfparamsscimschemasoracleidcsextensiongroup_group"] = []interface{}{ExtensionGroupGroupToMap(obj.UrnIetfParamsScimSchemasOracleIdcsExtensionGroupGroup)} + } + + if obj.UrnIetfParamsScimSchemasOracleIdcsExtensionPosixGroup != nil { + result["urnietfparamsscimschemasoracleidcsextensionposix_group"] = []interface{}{ExtensionPosixGroupToMap(obj.UrnIetfParamsScimSchemasOracleIdcsExtensionPosixGroup)} + } + + if obj.UrnIetfParamsScimSchemasOracleIdcsExtensionRequestableGroup != nil { + result["urnietfparamsscimschemasoracleidcsextensionrequestable_group"] = []interface{}{ExtensionRequestableGroupToMap(obj.UrnIetfParamsScimSchemasOracleIdcsExtensionRequestableGroup)} + } + + return result +} + +func (s *IdentityDomainsGroupResourceCrud) mapToGroupExtAppRoles(fieldKeyFormat string) (oci_identity_domains.GroupExtAppRoles, error) { + result := oci_identity_domains.GroupExtAppRoles{} + + if adminRole, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "admin_role")); ok { + tmp := adminRole.(bool) + result.AdminRole = &tmp + } + + if appId, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "app_id")); ok { + tmp := appId.(string) + result.AppId = &tmp + } + + if appName, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "app_name")); ok { + tmp := appName.(string) + result.AppName = &tmp + } + + if display, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "display")); ok { + tmp := display.(string) + result.Display = &tmp + } + + if legacyGroupName, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "legacy_group_name")); ok { + tmp := legacyGroupName.(string) + result.LegacyGroupName = &tmp + } + + if ref, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ref")); ok { + tmp := ref.(string) + result.Ref = &tmp + } + + if type_, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "type")); ok { + result.Type = oci_identity_domains.GroupExtAppRolesTypeEnum(type_.(string)) + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func GroupExtAppRolesToMap(obj oci_identity_domains.GroupExtAppRoles) map[string]interface{} { + result := map[string]interface{}{} + + if obj.AdminRole != nil { + result["admin_role"] = bool(*obj.AdminRole) + } + + if obj.AppId != nil { + result["app_id"] = string(*obj.AppId) + } + + if obj.AppName != nil { + result["app_name"] = string(*obj.AppName) + } + + if obj.Display != nil { + result["display"] = string(*obj.Display) + } + + if obj.LegacyGroupName != nil { + result["legacy_group_name"] = string(*obj.LegacyGroupName) + } + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + result["type"] = string(obj.Type) + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func (s *IdentityDomainsGroupResourceCrud) mapToGroupExtDomainLevelSchemaNames(fieldKeyFormat string) (oci_identity_domains.GroupExtDomainLevelSchemaNames, error) { + result := oci_identity_domains.GroupExtDomainLevelSchemaNames{} + + if domainName, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "domain_name")); ok { + tmp := domainName.(string) + result.DomainName = &tmp + } + + if schemaName, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "schema_name")); ok { + tmp := schemaName.(string) + result.SchemaName = &tmp + } + + return result, nil +} + +func GroupExtDomainLevelSchemaNamesToMap(obj oci_identity_domains.GroupExtDomainLevelSchemaNames) map[string]interface{} { + result := map[string]interface{}{} + + if obj.DomainName != nil { + result["domain_name"] = string(*obj.DomainName) + } + + if obj.SchemaName != nil { + result["schema_name"] = string(*obj.SchemaName) + } + + return result +} + +func (s *IdentityDomainsGroupResourceCrud) mapToGroupExtGrants(fieldKeyFormat string) (oci_identity_domains.GroupExtGrants, error) { + result := oci_identity_domains.GroupExtGrants{} + + if appId, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "app_id")); ok { + tmp := appId.(string) + result.AppId = &tmp + } + + if grantMechanism, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "grant_mechanism")); ok { + result.GrantMechanism = oci_identity_domains.GroupExtGrantsGrantMechanismEnum(grantMechanism.(string)) + } + + if ref, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ref")); ok { + tmp := ref.(string) + result.Ref = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func GroupExtGrantsToMap(obj oci_identity_domains.GroupExtGrants) map[string]interface{} { + result := map[string]interface{}{} + + if obj.AppId != nil { + result["app_id"] = string(*obj.AppId) + } + + result["grant_mechanism"] = string(obj.GrantMechanism) + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func (s *IdentityDomainsGroupResourceCrud) mapToGroupExtInstanceLevelSchemaNames(fieldKeyFormat string) (oci_identity_domains.GroupExtInstanceLevelSchemaNames, error) { + result := oci_identity_domains.GroupExtInstanceLevelSchemaNames{} + + if dbInstanceId, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "db_instance_id")); ok { + tmp := dbInstanceId.(string) + result.DbInstanceId = &tmp + } + + if schemaName, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "schema_name")); ok { + tmp := schemaName.(string) + result.SchemaName = &tmp + } + + return result, nil +} + +func GroupExtInstanceLevelSchemaNamesToMap(obj oci_identity_domains.GroupExtInstanceLevelSchemaNames) map[string]interface{} { + result := map[string]interface{}{} + + if obj.DbInstanceId != nil { + result["db_instance_id"] = string(*obj.DbInstanceId) + } + + if obj.SchemaName != nil { + result["schema_name"] = string(*obj.SchemaName) + } + + return result +} + +func (s *IdentityDomainsGroupResourceCrud) mapToGroupExtOwners(fieldKeyFormat string) (oci_identity_domains.GroupExtOwners, error) { + result := oci_identity_domains.GroupExtOwners{} + + if display, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "display")); ok { + tmp := display.(string) + result.Display = &tmp + } + + if ref, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ref")); ok { + tmp := ref.(string) + result.Ref = &tmp + } + + if type_, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "type")); ok { + result.Type = oci_identity_domains.GroupExtOwnersTypeEnum(type_.(string)) + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func GroupExtOwnersToMap(obj oci_identity_domains.GroupExtOwners) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Display != nil { + result["display"] = string(*obj.Display) + } + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + result["type"] = string(obj.Type) + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func (s *IdentityDomainsGroupResourceCrud) mapToGroupExtPasswordPolicy(fieldKeyFormat string) (oci_identity_domains.GroupExtPasswordPolicy, error) { + result := oci_identity_domains.GroupExtPasswordPolicy{} + + if name, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "name")); ok { + tmp := name.(string) + result.Name = &tmp + } + + if priority, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "priority")); ok { + tmp := priority.(int) + result.Priority = &tmp + } + + if ref, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ref")); ok { + tmp := ref.(string) + result.Ref = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func GroupExtPasswordPolicyToMap(obj *oci_identity_domains.GroupExtPasswordPolicy) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Name != nil { + result["name"] = string(*obj.Name) + } + + if obj.Priority != nil { + result["priority"] = int(*obj.Priority) + } + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func (s *IdentityDomainsGroupResourceCrud) mapToGroupExtSyncedFromApp(fieldKeyFormat string) (oci_identity_domains.GroupExtSyncedFromApp, error) { + result := oci_identity_domains.GroupExtSyncedFromApp{} + + if display, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "display")); ok { + tmp := display.(string) + result.Display = &tmp + } + + if ref, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ref")); ok { + tmp := ref.(string) + result.Ref = &tmp + } + + if type_, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "type")); ok { + result.Type = oci_identity_domains.GroupExtSyncedFromAppTypeEnum(type_.(string)) + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func GroupExtSyncedFromAppToMap(obj *oci_identity_domains.GroupExtSyncedFromApp) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Display != nil { + result["display"] = string(*obj.Display) + } + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + result["type"] = string(obj.Type) + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func (s *IdentityDomainsGroupResourceCrud) mapToGroupMembers(fieldKeyFormat string) (oci_identity_domains.GroupMembers, error) { + result := oci_identity_domains.GroupMembers{} + + if dateAdded, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "date_added")); ok { + tmp := dateAdded.(string) + result.DateAdded = &tmp + } + + if display, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "display")); ok { + tmp := display.(string) + result.Display = &tmp + } + + if membershipOcid, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "membership_ocid")); ok { + tmp := membershipOcid.(string) + result.MembershipOcid = &tmp + } + + if name, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "name")); ok { + tmp := name.(string) + result.Name = &tmp + } + + if ocid, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ocid")); ok { + tmp := ocid.(string) + result.Ocid = &tmp + } + + if ref, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ref")); ok { + tmp := ref.(string) + result.Ref = &tmp + } + + if type_, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "type")); ok { + result.Type = oci_identity_domains.GroupMembersTypeEnum(type_.(string)) + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func GroupMembersToMap(obj oci_identity_domains.GroupMembers) map[string]interface{} { + result := map[string]interface{}{} + + if obj.DateAdded != nil { + result["date_added"] = string(*obj.DateAdded) + } + + if obj.Display != nil { + result["display"] = string(*obj.Display) + } + + if obj.MembershipOcid != nil { + result["membership_ocid"] = string(*obj.MembershipOcid) + } + + if obj.Name != nil { + result["name"] = string(*obj.Name) + } + + if obj.Ocid != nil { + result["ocid"] = string(*obj.Ocid) + } + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + result["type"] = string(obj.Type) + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func (s *IdentityDomainsGroupResourceCrud) mapTofreeformTags(fieldKeyFormat string) (oci_identity_domains.FreeformTags, error) { + result := oci_identity_domains.FreeformTags{} + + if key, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "key")); ok { + tmp := key.(string) + result.Key = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func (s *IdentityDomainsGroupResourceCrud) mapTodefinedTags(fieldKeyFormat string) (oci_identity_domains.DefinedTags, error) { + result := oci_identity_domains.DefinedTags{} + + if namespace, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "namespace")); ok { + tmp := namespace.(string) + result.Namespace = &tmp + } + + if key, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "key")); ok { + tmp := key.(string) + result.Key = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func (s *IdentityDomainsGroupResourceCrud) mapTotags(fieldKeyFormat string) (oci_identity_domains.Tags, error) { + result := oci_identity_domains.Tags{} + + if key, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "key")); ok { + tmp := key.(string) + result.Key = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} diff --git a/internal/service/identity_domains/identity_domains_groups_data_source.go b/internal/service/identity_domains/identity_domains_groups_data_source.go new file mode 100644 index 00000000000..a799d6adab1 --- /dev/null +++ b/internal/service/identity_domains/identity_domains_groups_data_source.go @@ -0,0 +1,216 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsGroupsDataSource() *schema.Resource { + return &schema.Resource{ + Read: readIdentityDomainsGroups, + Schema: map[string]*schema.Schema{ + "idcs_endpoint": { + Type: schema.TypeString, + Required: true, + }, + "compartment_id": { + Type: schema.TypeString, + Optional: true, + }, + "group_count": { + Type: schema.TypeInt, + Optional: true, + }, + "group_filter": { + Type: schema.TypeString, + Optional: true, + }, + "attribute_sets": { + Type: schema.TypeList, + Optional: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "attributes": { + Type: schema.TypeString, + Optional: true, + }, + "authorization": { + Type: schema.TypeString, + Optional: true, + }, + "resource_type_schema_version": { + Type: schema.TypeString, + Optional: true, + }, + "start_index": { + Type: schema.TypeInt, + Optional: true, + }, + "sort_order": { + Type: schema.TypeString, + Optional: true, + }, + "sort_by": { + Type: schema.TypeString, + Optional: true, + }, + // Computed + "groups": { + Type: schema.TypeList, + Computed: true, + Elem: tfresource.GetDataSourceItemSchema(IdentityDomainsGroupResource()), + }, + "items_per_page": { + Type: schema.TypeInt, + Computed: true, + }, + "schemas": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "total_results": { + Type: schema.TypeInt, + Computed: true, + }, + }, + } +} + +func readIdentityDomainsGroups(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsGroupsDataSourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.ReadResource(sync) +} + +type IdentityDomainsGroupsDataSourceCrud struct { + D *schema.ResourceData + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.ListGroupsResponse +} + +func (s *IdentityDomainsGroupsDataSourceCrud) VoidState() { + s.D.SetId("") +} + +func (s *IdentityDomainsGroupsDataSourceCrud) Get() error { + request := oci_identity_domains.ListGroupsRequest{} + + if groupCount, ok := s.D.GetOkExists("group_count"); ok { + tmp := groupCount.(int) + request.Count = &tmp + } + + if groupFilter, ok := s.D.GetOkExists("group_filter"); ok { + tmp := groupFilter.(string) + request.Filter = &tmp + } + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + if startIndex, ok := s.D.GetOkExists("start_index"); ok { + tmp := startIndex.(int) + request.StartIndex = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "identity_domains") + + response, err := s.Client.ListGroups(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response + // IDCS pagination + startIndex := *response.StartIndex + for startIndex+*response.ItemsPerPage <= *response.TotalResults { + startIndex += *response.ItemsPerPage + request.StartIndex = &startIndex + listResponse, err := s.Client.ListGroups(context.Background(), request) + if err != nil { + return err + } + + s.Res.Resources = append(s.Res.Resources, listResponse.Resources...) + } + + return nil +} + +func (s *IdentityDomainsGroupsDataSourceCrud) SetData() error { + if s.Res == nil { + return nil + } + + s.D.SetId(tfresource.GenerateDataSourceHashID("IdentityDomainsGroupsDataSource-", IdentityDomainsGroupsDataSource(), s.D)) + + resources := []interface{}{} + for _, item := range s.Res.Resources { + resources = append(resources, GroupToMap(item)) + } + s.D.Set("groups", resources) + + if s.Res.ItemsPerPage != nil { + s.D.Set("items_per_page", *s.Res.ItemsPerPage) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + if s.Res.StartIndex != nil { + s.D.Set("start_index", *s.Res.StartIndex) + } + + if s.Res.TotalResults != nil { + s.D.Set("total_results", *s.Res.TotalResults) + } + + return nil +} diff --git a/internal/service/identity_domains/identity_domains_identity_provider_data_source.go b/internal/service/identity_domains/identity_domains_identity_provider_data_source.go new file mode 100644 index 00000000000..ad3d557a729 --- /dev/null +++ b/internal/service/identity_domains/identity_domains_identity_provider_data_source.go @@ -0,0 +1,360 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsIdentityProviderDataSource() *schema.Resource { + fieldMap := make(map[string]*schema.Schema) + fieldMap["attribute_sets"] = &schema.Schema{ + Type: schema.TypeList, + Optional: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + } + fieldMap["attributes"] = &schema.Schema{ + Type: schema.TypeString, + Optional: true, + } + fieldMap["authorization"] = &schema.Schema{ + Type: schema.TypeString, + Optional: true, + } + fieldMap["idcs_endpoint"] = &schema.Schema{ + Type: schema.TypeString, + Required: true, + } + fieldMap["identity_provider_id"] = &schema.Schema{ + Type: schema.TypeString, + Required: true, + } + fieldMap["resource_type_schema_version"] = &schema.Schema{ + Type: schema.TypeString, + Optional: true, + } + return tfresource.GetSingularDataSourceItemSchema(IdentityDomainsIdentityProviderResource(), fieldMap, readSingularIdentityDomainsIdentityProvider) +} + +func readSingularIdentityDomainsIdentityProvider(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsIdentityProviderDataSourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + + return tfresource.ReadResource(sync) +} + +type IdentityDomainsIdentityProviderDataSourceCrud struct { + D *schema.ResourceData + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.GetIdentityProviderResponse +} + +func (s *IdentityDomainsIdentityProviderDataSourceCrud) VoidState() { + s.D.SetId("") +} + +func (s *IdentityDomainsIdentityProviderDataSourceCrud) Get() error { + request := oci_identity_domains.GetIdentityProviderRequest{} + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if identityProviderId, ok := s.D.GetOkExists("identity_provider_id"); ok { + tmp := identityProviderId.(string) + request.IdentityProviderId = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "identity_domains") + + response, err := s.Client.GetIdentityProvider(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response + return nil +} + +func (s *IdentityDomainsIdentityProviderDataSourceCrud) SetData() error { + if s.Res == nil { + return nil + } + + s.D.SetId(*s.Res.Id) + + if s.Res.AssertionAttribute != nil { + s.D.Set("assertion_attribute", *s.Res.AssertionAttribute) + } + + s.D.Set("authn_request_binding", s.Res.AuthnRequestBinding) + + if s.Res.CompartmentOcid != nil { + s.D.Set("compartment_ocid", *s.Res.CompartmentOcid) + } + + if s.Res.CorrelationPolicy != nil { + s.D.Set("correlation_policy", []interface{}{IdentityProviderCorrelationPolicyToMap(s.Res.CorrelationPolicy)}) + } else { + s.D.Set("correlation_policy", nil) + } + + if s.Res.DeleteInProgress != nil { + s.D.Set("delete_in_progress", *s.Res.DeleteInProgress) + } + + if s.Res.Description != nil { + s.D.Set("description", *s.Res.Description) + } + + if s.Res.DomainOcid != nil { + s.D.Set("domain_ocid", *s.Res.DomainOcid) + } + + if s.Res.Enabled != nil { + s.D.Set("enabled", *s.Res.Enabled) + } + + if s.Res.EncryptionCertificate != nil { + s.D.Set("encryption_certificate", *s.Res.EncryptionCertificate) + } + + if s.Res.ExternalId != nil { + s.D.Set("external_id", *s.Res.ExternalId) + } + + if s.Res.IconUrl != nil { + s.D.Set("icon_url", *s.Res.IconUrl) + } + + if s.Res.IdcsCreatedBy != nil { + s.D.Set("idcs_created_by", []interface{}{idcsCreatedByToMap(s.Res.IdcsCreatedBy)}) + } else { + s.D.Set("idcs_created_by", nil) + } + + if s.Res.IdcsLastModifiedBy != nil { + s.D.Set("idcs_last_modified_by", []interface{}{idcsLastModifiedByToMap(s.Res.IdcsLastModifiedBy)}) + } else { + s.D.Set("idcs_last_modified_by", nil) + } + + if s.Res.IdcsLastUpgradedInRelease != nil { + s.D.Set("idcs_last_upgraded_in_release", *s.Res.IdcsLastUpgradedInRelease) + } + + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + + if s.Res.IdpSsoUrl != nil { + s.D.Set("idp_sso_url", *s.Res.IdpSsoUrl) + } + + if s.Res.IncludeSigningCertInSignature != nil { + s.D.Set("include_signing_cert_in_signature", *s.Res.IncludeSigningCertInSignature) + } + + jitUserProvAssignedGroups := []interface{}{} + for _, item := range s.Res.JitUserProvAssignedGroups { + jitUserProvAssignedGroups = append(jitUserProvAssignedGroups, IdentityProviderJitUserProvAssignedGroupsToMap(item)) + } + s.D.Set("jit_user_prov_assigned_groups", jitUserProvAssignedGroups) + + if s.Res.JitUserProvAttributeUpdateEnabled != nil { + s.D.Set("jit_user_prov_attribute_update_enabled", *s.Res.JitUserProvAttributeUpdateEnabled) + } + + if s.Res.JitUserProvAttributes != nil { + s.D.Set("jit_user_prov_attributes", []interface{}{IdentityProviderJitUserProvAttributesToMap(s.Res.JitUserProvAttributes)}) + } else { + s.D.Set("jit_user_prov_attributes", nil) + } + + if s.Res.JitUserProvCreateUserEnabled != nil { + s.D.Set("jit_user_prov_create_user_enabled", *s.Res.JitUserProvCreateUserEnabled) + } + + if s.Res.JitUserProvEnabled != nil { + s.D.Set("jit_user_prov_enabled", *s.Res.JitUserProvEnabled) + } + + if s.Res.JitUserProvGroupAssertionAttributeEnabled != nil { + s.D.Set("jit_user_prov_group_assertion_attribute_enabled", *s.Res.JitUserProvGroupAssertionAttributeEnabled) + } + + s.D.Set("jit_user_prov_group_assignment_method", s.Res.JitUserProvGroupAssignmentMethod) + + s.D.Set("jit_user_prov_group_mapping_mode", s.Res.JitUserProvGroupMappingMode) + + jitUserProvGroupMappings := []interface{}{} + for _, item := range s.Res.JitUserProvGroupMappings { + jitUserProvGroupMappings = append(jitUserProvGroupMappings, IdentityProviderJitUserProvGroupMappingsToMap(item)) + } + s.D.Set("jit_user_prov_group_mappings", jitUserProvGroupMappings) + + if s.Res.JitUserProvGroupSAMLAttributeName != nil { + s.D.Set("jit_user_prov_group_saml_attribute_name", *s.Res.JitUserProvGroupSAMLAttributeName) + } + + if s.Res.JitUserProvGroupStaticListEnabled != nil { + s.D.Set("jit_user_prov_group_static_list_enabled", *s.Res.JitUserProvGroupStaticListEnabled) + } + + if s.Res.JitUserProvIgnoreErrorOnAbsentGroups != nil { + s.D.Set("jit_user_prov_ignore_error_on_absent_groups", *s.Res.JitUserProvIgnoreErrorOnAbsentGroups) + } + + s.D.Set("logout_binding", s.Res.LogoutBinding) + + if s.Res.LogoutEnabled != nil { + s.D.Set("logout_enabled", *s.Res.LogoutEnabled) + } + + if s.Res.LogoutRequestUrl != nil { + s.D.Set("logout_request_url", *s.Res.LogoutRequestUrl) + } + + if s.Res.LogoutResponseUrl != nil { + s.D.Set("logout_response_url", *s.Res.LogoutResponseUrl) + } + + if s.Res.Meta != nil { + s.D.Set("meta", []interface{}{metaToMap(s.Res.Meta)}) + } else { + s.D.Set("meta", nil) + } + + if s.Res.Metadata != nil { + s.D.Set("metadata", *s.Res.Metadata) + } + + if s.Res.NameIdFormat != nil { + s.D.Set("name_id_format", *s.Res.NameIdFormat) + } + + if s.Res.Ocid != nil { + s.D.Set("ocid", *s.Res.Ocid) + } + + if s.Res.PartnerName != nil { + s.D.Set("partner_name", *s.Res.PartnerName) + } + + if s.Res.PartnerProviderId != nil { + s.D.Set("partner_provider_id", *s.Res.PartnerProviderId) + } + + s.D.Set("requested_authentication_context", s.Res.RequestedAuthenticationContext) + s.D.Set("requested_authentication_context", s.Res.RequestedAuthenticationContext) + + if s.Res.RequireForceAuthn != nil { + s.D.Set("require_force_authn", *s.Res.RequireForceAuthn) + } + + if s.Res.RequiresEncryptedAssertion != nil { + s.D.Set("requires_encrypted_assertion", *s.Res.RequiresEncryptedAssertion) + } + + if s.Res.SamlHoKRequired != nil { + s.D.Set("saml_ho_krequired", *s.Res.SamlHoKRequired) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + if s.Res.ServiceInstanceIdentifier != nil { + s.D.Set("service_instance_identifier", *s.Res.ServiceInstanceIdentifier) + } + + if s.Res.ShownOnLoginPage != nil { + s.D.Set("shown_on_login_page", *s.Res.ShownOnLoginPage) + } + + s.D.Set("signature_hash_algorithm", s.Res.SignatureHashAlgorithm) + + if s.Res.SigningCertificate != nil { + s.D.Set("signing_certificate", *s.Res.SigningCertificate) + } + + if s.Res.SuccinctId != nil { + s.D.Set("succinct_id", *s.Res.SuccinctId) + } + + tags := []interface{}{} + for _, item := range s.Res.Tags { + tags = append(tags, tagsToMap(item)) + } + s.D.Set("tags", tags) + + if s.Res.TenancyOcid != nil { + s.D.Set("tenancy_ocid", *s.Res.TenancyOcid) + } + + if s.Res.TenantProviderId != nil { + s.D.Set("tenant_provider_id", *s.Res.TenantProviderId) + } + + s.D.Set("type", s.Res.Type) + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionSocialIdentityProvider != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider", []interface{}{ExtensionSocialIdentityProviderToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionSocialIdentityProvider)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider", nil) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionX509IdentityProvider != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionx509identity_provider", []interface{}{ExtensionX509IdentityProviderToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionX509IdentityProvider)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionx509identity_provider", nil) + } + + s.D.Set("user_mapping_method", s.Res.UserMappingMethod) + + if s.Res.UserMappingStoreAttribute != nil { + s.D.Set("user_mapping_store_attribute", *s.Res.UserMappingStoreAttribute) + } + + return nil +} diff --git a/internal/service/identity_domains/identity_domains_identity_provider_resource.go b/internal/service/identity_domains/identity_domains_identity_provider_resource.go new file mode 100644 index 00000000000..5fa6d646008 --- /dev/null +++ b/internal/service/identity_domains/identity_domains_identity_provider_resource.go @@ -0,0 +1,2578 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + "fmt" + "log" + "net/url" + "regexp" + "strings" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsIdentityProviderResource() *schema.Resource { + return &schema.Resource{ + Importer: &schema.ResourceImporter{ + State: schema.ImportStatePassthrough, + }, + Timeouts: tfresource.DefaultTimeout, + Create: createIdentityDomainsIdentityProvider, + Read: readIdentityDomainsIdentityProvider, + Update: updateIdentityDomainsIdentityProvider, + Delete: deleteIdentityDomainsIdentityProvider, + Schema: map[string]*schema.Schema{ + // Required + "enabled": { + Type: schema.TypeBool, + Required: true, + }, + "idcs_endpoint": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "partner_name": { + Type: schema.TypeString, + Required: true, + }, + "schemas": { + Type: schema.TypeList, + Required: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + + // Optional + "assertion_attribute": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "attribute_sets": { + Type: schema.TypeList, + Optional: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "attributes": { + Type: schema.TypeString, + Optional: true, + }, + "authn_request_binding": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "authorization": { + Type: schema.TypeString, + Optional: true, + }, + "correlation_policy": { + Type: schema.TypeList, + Optional: true, + Computed: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "type": { + Type: schema.TypeString, + Required: true, + }, + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "description": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "encryption_certificate": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "external_id": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "icon_url": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "idp_sso_url": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "include_signing_cert_in_signature": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "jit_user_prov_assigned_groups": { + Type: schema.TypeList, + Optional: true, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + + // Computed + "display": { + Type: schema.TypeString, + Computed: true, + }, + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "jit_user_prov_attribute_update_enabled": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "jit_user_prov_attributes": { + Type: schema.TypeList, + Optional: true, + Computed: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "jit_user_prov_create_user_enabled": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "jit_user_prov_enabled": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "jit_user_prov_group_assertion_attribute_enabled": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "jit_user_prov_group_assignment_method": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "jit_user_prov_group_mapping_mode": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "jit_user_prov_group_mappings": { + Type: schema.TypeList, + Optional: true, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "idp_group": { + Type: schema.TypeString, + Required: true, + }, + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "jit_user_prov_group_saml_attribute_name": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "jit_user_prov_group_static_list_enabled": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "jit_user_prov_ignore_error_on_absent_groups": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "logout_binding": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "logout_enabled": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "logout_request_url": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "logout_response_url": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "metadata": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "name_id_format": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "partner_provider_id": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "requested_authentication_context": { + Type: schema.TypeList, + Optional: true, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "require_force_authn": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "requires_encrypted_assertion": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "resource_type_schema_version": { + Type: schema.TypeString, + Optional: true, + }, + "saml_ho_krequired": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "service_instance_identifier": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "shown_on_login_page": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "signature_hash_algorithm": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "signing_certificate": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "succinct_id": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "tags": { + Type: schema.TypeList, + Optional: true, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "key": { + Type: schema.TypeString, + Required: true, + }, + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + + // Computed + }, + }, + }, + "type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider": { + Type: schema.TypeList, + Optional: true, + Computed: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "account_linking_enabled": { + Type: schema.TypeBool, + Required: true, + }, + "consumer_key": { + Type: schema.TypeString, + Required: true, + }, + "consumer_secret": { + Type: schema.TypeString, + Required: true, + }, + "registration_enabled": { + Type: schema.TypeBool, + Required: true, + }, + "service_provider_name": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + "access_token_url": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "admin_scope": { + Type: schema.TypeList, + Optional: true, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "authz_url": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "client_credential_in_payload": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "clock_skew_in_seconds": { + Type: schema.TypeInt, + Optional: true, + Computed: true, + }, + "discovery_url": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "id_attribute": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "profile_url": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "redirect_url": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "scope": { + Type: schema.TypeList, + Optional: true, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "status": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + }, + }, + }, + "urnietfparamsscimschemasoracleidcsextensionx509identity_provider": { + Type: schema.TypeList, + Optional: true, + Computed: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "cert_match_attribute": { + Type: schema.TypeString, + Required: true, + }, + "signing_certificate_chain": { + Type: schema.TypeList, + Required: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "user_match_attribute": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + "crl_check_on_ocsp_failure_enabled": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "crl_enabled": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "crl_location": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "crl_reload_duration": { + Type: schema.TypeInt, + Optional: true, + Computed: true, + }, + "ocsp_allow_unknown_response_status": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "ocsp_enable_signed_response": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "ocsp_enabled": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "ocsp_responder_url": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "ocsp_revalidate_time": { + Type: schema.TypeInt, + Optional: true, + Computed: true, + }, + "ocsp_server_name": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "ocsp_trust_cert_chain": { + Type: schema.TypeList, + Optional: true, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "other_cert_match_attribute": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + }, + }, + }, + "user_mapping_method": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "user_mapping_store_attribute": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + "compartment_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "delete_in_progress": { + Type: schema.TypeBool, + Computed: true, + }, + "domain_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "id": { + Type: schema.TypeString, + Computed: true, + }, + "idcs_created_by": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "idcs_last_modified_by": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "idcs_last_upgraded_in_release": { + Type: schema.TypeString, + Computed: true, + }, + "idcs_prevented_operations": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "meta": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "created": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "last_modified": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "location": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "resource_type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "version": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + }, + }, + }, + "tenancy_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "tenant_provider_id": { + Type: schema.TypeString, + Computed: true, + }, + }, + } +} + +func createIdentityDomainsIdentityProvider(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsIdentityProviderResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.CreateResource(d, sync) +} + +func readIdentityDomainsIdentityProvider(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsIdentityProviderResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpointForRead(d, "identityProviders") + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.ReadResource(sync) +} + +func updateIdentityDomainsIdentityProvider(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsIdentityProviderResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.UpdateResource(d, sync) +} + +func deleteIdentityDomainsIdentityProvider(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsIdentityProviderResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + sync.DisableNotFoundRetries = true + + return tfresource.DeleteResource(d, sync) +} + +type IdentityDomainsIdentityProviderResourceCrud struct { + tfresource.BaseCrud + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.IdentityProvider + DisableNotFoundRetries bool +} + +func (s *IdentityDomainsIdentityProviderResourceCrud) ID() string { + return *s.Res.Id + //return GetIdentityProviderCompositeId(s.D.Get("id").(string)) +} + +func (s *IdentityDomainsIdentityProviderResourceCrud) Create() error { + request := oci_identity_domains.CreateIdentityProviderRequest{} + + if assertionAttribute, ok := s.D.GetOkExists("assertion_attribute"); ok { + tmp := assertionAttribute.(string) + request.AssertionAttribute = &tmp + } + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authnRequestBinding, ok := s.D.GetOkExists("authn_request_binding"); ok { + request.AuthnRequestBinding = oci_identity_domains.IdentityProviderAuthnRequestBindingEnum(authnRequestBinding.(string)) + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if correlationPolicy, ok := s.D.GetOkExists("correlation_policy"); ok { + if tmpList := correlationPolicy.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "correlation_policy", 0) + tmp, err := s.mapToIdentityProviderCorrelationPolicy(fieldKeyFormat) + if err != nil { + return err + } + request.CorrelationPolicy = &tmp + } + } + + if description, ok := s.D.GetOkExists("description"); ok { + tmp := description.(string) + request.Description = &tmp + } + + if enabled, ok := s.D.GetOkExists("enabled"); ok { + tmp := enabled.(bool) + request.Enabled = &tmp + } + + if encryptionCertificate, ok := s.D.GetOkExists("encryption_certificate"); ok { + tmp := encryptionCertificate.(string) + request.EncryptionCertificate = &tmp + } + + if externalId, ok := s.D.GetOkExists("external_id"); ok { + tmp := externalId.(string) + request.ExternalId = &tmp + } + + if iconUrl, ok := s.D.GetOkExists("icon_url"); ok { + tmp := iconUrl.(string) + request.IconUrl = &tmp + } + + if id, ok := s.D.GetOkExists("id"); ok { + tmp := id.(string) + request.Id = &tmp + } + + if idpSsoUrl, ok := s.D.GetOkExists("idp_sso_url"); ok { + tmp := idpSsoUrl.(string) + request.IdpSsoUrl = &tmp + } + + if includeSigningCertInSignature, ok := s.D.GetOkExists("include_signing_cert_in_signature"); ok { + tmp := includeSigningCertInSignature.(bool) + request.IncludeSigningCertInSignature = &tmp + } + + if jitUserProvAssignedGroups, ok := s.D.GetOkExists("jit_user_prov_assigned_groups"); ok { + interfaces := jitUserProvAssignedGroups.([]interface{}) + tmp := make([]oci_identity_domains.IdentityProviderJitUserProvAssignedGroups, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "jit_user_prov_assigned_groups", stateDataIndex) + converted, err := s.mapToIdentityProviderJitUserProvAssignedGroups(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("jit_user_prov_assigned_groups") { + request.JitUserProvAssignedGroups = tmp + } + } + + if jitUserProvAttributeUpdateEnabled, ok := s.D.GetOkExists("jit_user_prov_attribute_update_enabled"); ok { + tmp := jitUserProvAttributeUpdateEnabled.(bool) + request.JitUserProvAttributeUpdateEnabled = &tmp + } + + if jitUserProvAttributes, ok := s.D.GetOkExists("jit_user_prov_attributes"); ok { + if tmpList := jitUserProvAttributes.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "jit_user_prov_attributes", 0) + tmp, err := s.mapToIdentityProviderJitUserProvAttributes(fieldKeyFormat) + if err != nil { + return err + } + request.JitUserProvAttributes = &tmp + } + } + + if jitUserProvCreateUserEnabled, ok := s.D.GetOkExists("jit_user_prov_create_user_enabled"); ok { + tmp := jitUserProvCreateUserEnabled.(bool) + request.JitUserProvCreateUserEnabled = &tmp + } + + if jitUserProvEnabled, ok := s.D.GetOkExists("jit_user_prov_enabled"); ok { + tmp := jitUserProvEnabled.(bool) + request.JitUserProvEnabled = &tmp + } + + if jitUserProvGroupAssertionAttributeEnabled, ok := s.D.GetOkExists("jit_user_prov_group_assertion_attribute_enabled"); ok { + tmp := jitUserProvGroupAssertionAttributeEnabled.(bool) + request.JitUserProvGroupAssertionAttributeEnabled = &tmp + } + + if jitUserProvGroupAssignmentMethod, ok := s.D.GetOkExists("jit_user_prov_group_assignment_method"); ok { + request.JitUserProvGroupAssignmentMethod = oci_identity_domains.IdentityProviderJitUserProvGroupAssignmentMethodEnum(jitUserProvGroupAssignmentMethod.(string)) + } + + if jitUserProvGroupMappingMode, ok := s.D.GetOkExists("jit_user_prov_group_mapping_mode"); ok { + request.JitUserProvGroupMappingMode = oci_identity_domains.IdentityProviderJitUserProvGroupMappingModeEnum(jitUserProvGroupMappingMode.(string)) + } + + if jitUserProvGroupMappings, ok := s.D.GetOkExists("jit_user_prov_group_mappings"); ok { + interfaces := jitUserProvGroupMappings.([]interface{}) + tmp := make([]oci_identity_domains.IdentityProviderJitUserProvGroupMappings, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "jit_user_prov_group_mappings", stateDataIndex) + converted, err := s.mapToIdentityProviderJitUserProvGroupMappings(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("jit_user_prov_group_mappings") { + request.JitUserProvGroupMappings = tmp + } + } + + if jitUserProvGroupSAMLAttributeName, ok := s.D.GetOkExists("jit_user_prov_group_saml_attribute_name"); ok { + tmp := jitUserProvGroupSAMLAttributeName.(string) + request.JitUserProvGroupSAMLAttributeName = &tmp + } + + if jitUserProvGroupStaticListEnabled, ok := s.D.GetOkExists("jit_user_prov_group_static_list_enabled"); ok { + tmp := jitUserProvGroupStaticListEnabled.(bool) + request.JitUserProvGroupStaticListEnabled = &tmp + } + + if jitUserProvIgnoreErrorOnAbsentGroups, ok := s.D.GetOkExists("jit_user_prov_ignore_error_on_absent_groups"); ok { + tmp := jitUserProvIgnoreErrorOnAbsentGroups.(bool) + request.JitUserProvIgnoreErrorOnAbsentGroups = &tmp + } + + if logoutBinding, ok := s.D.GetOkExists("logout_binding"); ok { + request.LogoutBinding = oci_identity_domains.IdentityProviderLogoutBindingEnum(logoutBinding.(string)) + } + + if logoutEnabled, ok := s.D.GetOkExists("logout_enabled"); ok { + tmp := logoutEnabled.(bool) + request.LogoutEnabled = &tmp + } + + if logoutRequestUrl, ok := s.D.GetOkExists("logout_request_url"); ok { + tmp := logoutRequestUrl.(string) + request.LogoutRequestUrl = &tmp + } + + if logoutResponseUrl, ok := s.D.GetOkExists("logout_response_url"); ok { + tmp := logoutResponseUrl.(string) + request.LogoutResponseUrl = &tmp + } + + if metadata, ok := s.D.GetOkExists("metadata"); ok { + tmp := metadata.(string) + request.Metadata = &tmp + } + + if nameIdFormat, ok := s.D.GetOkExists("name_id_format"); ok { + tmp := nameIdFormat.(string) + request.NameIdFormat = &tmp + } + + if ocid, ok := s.D.GetOkExists("ocid"); ok { + tmp := ocid.(string) + request.Ocid = &tmp + } + + if partnerName, ok := s.D.GetOkExists("partner_name"); ok { + tmp := partnerName.(string) + request.PartnerName = &tmp + } + + if partnerProviderId, ok := s.D.GetOkExists("partner_provider_id"); ok { + tmp := partnerProviderId.(string) + request.PartnerProviderId = &tmp + } + + if requestedAuthenticationContext, ok := s.D.GetOkExists("requested_authentication_context"); ok { + interfaces := requestedAuthenticationContext.([]interface{}) + tmp := make([]string, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = interfaces[i].(string) + } + } + if len(tmp) != 0 || s.D.HasChange("requested_authentication_context") { + request.RequestedAuthenticationContext = tmp + } + } + + if requireForceAuthn, ok := s.D.GetOkExists("require_force_authn"); ok { + tmp := requireForceAuthn.(bool) + request.RequireForceAuthn = &tmp + } + + if requiresEncryptedAssertion, ok := s.D.GetOkExists("requires_encrypted_assertion"); ok { + tmp := requiresEncryptedAssertion.(bool) + request.RequiresEncryptedAssertion = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + if samlHoKRequired, ok := s.D.GetOkExists("saml_ho_krequired"); ok { + tmp := samlHoKRequired.(bool) + request.SamlHoKRequired = &tmp + } + + if schemas, ok := s.D.GetOkExists("schemas"); ok { + interfaces := schemas.([]interface{}) + tmp := make([]string, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = interfaces[i].(string) + } + } + if len(tmp) != 0 || s.D.HasChange("schemas") { + request.Schemas = tmp + } + } + + if serviceInstanceIdentifier, ok := s.D.GetOkExists("service_instance_identifier"); ok { + tmp := serviceInstanceIdentifier.(string) + request.ServiceInstanceIdentifier = &tmp + } + + if shownOnLoginPage, ok := s.D.GetOkExists("shown_on_login_page"); ok { + tmp := shownOnLoginPage.(bool) + request.ShownOnLoginPage = &tmp + } + + if signatureHashAlgorithm, ok := s.D.GetOkExists("signature_hash_algorithm"); ok { + request.SignatureHashAlgorithm = oci_identity_domains.IdentityProviderSignatureHashAlgorithmEnum(signatureHashAlgorithm.(string)) + } + + if signingCertificate, ok := s.D.GetOkExists("signing_certificate"); ok { + tmp := signingCertificate.(string) + request.SigningCertificate = &tmp + } + + if succinctId, ok := s.D.GetOkExists("succinct_id"); ok { + tmp := succinctId.(string) + request.SuccinctId = &tmp + } + + if tags, ok := s.D.GetOkExists("tags"); ok { + interfaces := tags.([]interface{}) + tmp := make([]oci_identity_domains.Tags, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "tags", stateDataIndex) + converted, err := s.mapTotags(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("tags") { + request.Tags = tmp + } + } + + if type_, ok := s.D.GetOkExists("type"); ok { + request.Type = oci_identity_domains.IdentityProviderTypeEnum(type_.(string)) + } + + if urnietfparamsscimschemasoracleidcsextensionsocialIdentityProvider, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensionsocialIdentityProvider.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider", 0) + tmp, err := s.mapToExtensionSocialIdentityProvider(fieldKeyFormat) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasOracleIdcsExtensionSocialIdentityProvider = &tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensionx509IdentityProvider, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextensionx509identity_provider"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensionx509IdentityProvider.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextensionx509identity_provider", 0) + tmp, err := s.mapToExtensionX509IdentityProvider(fieldKeyFormat) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasOracleIdcsExtensionX509IdentityProvider = &tmp + } + } + + if userMappingMethod, ok := s.D.GetOkExists("user_mapping_method"); ok { + request.UserMappingMethod = oci_identity_domains.IdentityProviderUserMappingMethodEnum(userMappingMethod.(string)) + } + + if userMappingStoreAttribute, ok := s.D.GetOkExists("user_mapping_store_attribute"); ok { + tmp := userMappingStoreAttribute.(string) + request.UserMappingStoreAttribute = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + response, err := s.Client.CreateIdentityProvider(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response.IdentityProvider + return nil +} + +func (s *IdentityDomainsIdentityProviderResourceCrud) Get() error { + request := oci_identity_domains.GetIdentityProviderRequest{} + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + tmp := s.D.Id() + request.IdentityProviderId = &tmp + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + identityProviderId, err := parseIdentityProviderCompositeId(s.D.Id()) + if err == nil { + request.IdentityProviderId = &identityProviderId + } else { + log.Printf("[WARN] Get() unable to parse current ID: %s", s.D.Id()) + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + response, err := s.Client.GetIdentityProvider(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response.IdentityProvider + return nil +} + +func (s *IdentityDomainsIdentityProviderResourceCrud) Update() error { + request := oci_identity_domains.PutIdentityProviderRequest{} + + if assertionAttribute, ok := s.D.GetOkExists("assertion_attribute"); ok { + tmp := assertionAttribute.(string) + request.AssertionAttribute = &tmp + } + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authnRequestBinding, ok := s.D.GetOkExists("authn_request_binding"); ok { + request.AuthnRequestBinding = oci_identity_domains.IdentityProviderAuthnRequestBindingEnum(authnRequestBinding.(string)) + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if correlationPolicy, ok := s.D.GetOkExists("correlation_policy"); ok { + if tmpList := correlationPolicy.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "correlation_policy", 0) + tmp, err := s.mapToIdentityProviderCorrelationPolicy(fieldKeyFormat) + if err != nil { + return err + } + request.CorrelationPolicy = &tmp + } + } + + if description, ok := s.D.GetOkExists("description"); ok { + tmp := description.(string) + request.Description = &tmp + } + + if enabled, ok := s.D.GetOkExists("enabled"); ok { + tmp := enabled.(bool) + request.Enabled = &tmp + } + + if encryptionCertificate, ok := s.D.GetOkExists("encryption_certificate"); ok { + tmp := encryptionCertificate.(string) + request.EncryptionCertificate = &tmp + } + + if externalId, ok := s.D.GetOkExists("external_id"); ok { + tmp := externalId.(string) + request.ExternalId = &tmp + } + + if iconUrl, ok := s.D.GetOkExists("icon_url"); ok { + tmp := iconUrl.(string) + request.IconUrl = &tmp + } + + tmp := s.D.Id() + request.Id = &tmp + + tmp = s.D.Id() + request.IdentityProviderId = &tmp + + if idpSsoUrl, ok := s.D.GetOkExists("idp_sso_url"); ok { + tmp := idpSsoUrl.(string) + request.IdpSsoUrl = &tmp + } + + if includeSigningCertInSignature, ok := s.D.GetOkExists("include_signing_cert_in_signature"); ok { + tmp := includeSigningCertInSignature.(bool) + request.IncludeSigningCertInSignature = &tmp + } + + if jitUserProvAssignedGroups, ok := s.D.GetOkExists("jit_user_prov_assigned_groups"); ok { + interfaces := jitUserProvAssignedGroups.([]interface{}) + tmp := make([]oci_identity_domains.IdentityProviderJitUserProvAssignedGroups, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "jit_user_prov_assigned_groups", stateDataIndex) + converted, err := s.mapToIdentityProviderJitUserProvAssignedGroups(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("jit_user_prov_assigned_groups") { + request.JitUserProvAssignedGroups = tmp + } + } + + if jitUserProvAttributeUpdateEnabled, ok := s.D.GetOkExists("jit_user_prov_attribute_update_enabled"); ok { + tmp := jitUserProvAttributeUpdateEnabled.(bool) + request.JitUserProvAttributeUpdateEnabled = &tmp + } + + if jitUserProvAttributes, ok := s.D.GetOkExists("jit_user_prov_attributes"); ok { + if tmpList := jitUserProvAttributes.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "jit_user_prov_attributes", 0) + tmp, err := s.mapToIdentityProviderJitUserProvAttributes(fieldKeyFormat) + if err != nil { + return err + } + request.JitUserProvAttributes = &tmp + } + } + + if jitUserProvCreateUserEnabled, ok := s.D.GetOkExists("jit_user_prov_create_user_enabled"); ok { + tmp := jitUserProvCreateUserEnabled.(bool) + request.JitUserProvCreateUserEnabled = &tmp + } + + if jitUserProvEnabled, ok := s.D.GetOkExists("jit_user_prov_enabled"); ok { + tmp := jitUserProvEnabled.(bool) + request.JitUserProvEnabled = &tmp + } + + if jitUserProvGroupAssertionAttributeEnabled, ok := s.D.GetOkExists("jit_user_prov_group_assertion_attribute_enabled"); ok { + tmp := jitUserProvGroupAssertionAttributeEnabled.(bool) + request.JitUserProvGroupAssertionAttributeEnabled = &tmp + } + + if jitUserProvGroupAssignmentMethod, ok := s.D.GetOkExists("jit_user_prov_group_assignment_method"); ok { + request.JitUserProvGroupAssignmentMethod = oci_identity_domains.IdentityProviderJitUserProvGroupAssignmentMethodEnum(jitUserProvGroupAssignmentMethod.(string)) + } + + if jitUserProvGroupMappingMode, ok := s.D.GetOkExists("jit_user_prov_group_mapping_mode"); ok { + request.JitUserProvGroupMappingMode = oci_identity_domains.IdentityProviderJitUserProvGroupMappingModeEnum(jitUserProvGroupMappingMode.(string)) + } + + if jitUserProvGroupMappings, ok := s.D.GetOkExists("jit_user_prov_group_mappings"); ok { + interfaces := jitUserProvGroupMappings.([]interface{}) + tmp := make([]oci_identity_domains.IdentityProviderJitUserProvGroupMappings, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "jit_user_prov_group_mappings", stateDataIndex) + converted, err := s.mapToIdentityProviderJitUserProvGroupMappings(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("jit_user_prov_group_mappings") { + request.JitUserProvGroupMappings = tmp + } + } + + if jitUserProvGroupSAMLAttributeName, ok := s.D.GetOkExists("jit_user_prov_group_saml_attribute_name"); ok { + tmp := jitUserProvGroupSAMLAttributeName.(string) + request.JitUserProvGroupSAMLAttributeName = &tmp + } + + if jitUserProvGroupStaticListEnabled, ok := s.D.GetOkExists("jit_user_prov_group_static_list_enabled"); ok { + tmp := jitUserProvGroupStaticListEnabled.(bool) + request.JitUserProvGroupStaticListEnabled = &tmp + } + + if jitUserProvIgnoreErrorOnAbsentGroups, ok := s.D.GetOkExists("jit_user_prov_ignore_error_on_absent_groups"); ok { + tmp := jitUserProvIgnoreErrorOnAbsentGroups.(bool) + request.JitUserProvIgnoreErrorOnAbsentGroups = &tmp + } + + if logoutBinding, ok := s.D.GetOkExists("logout_binding"); ok { + request.LogoutBinding = oci_identity_domains.IdentityProviderLogoutBindingEnum(logoutBinding.(string)) + } + + if logoutEnabled, ok := s.D.GetOkExists("logout_enabled"); ok { + tmp := logoutEnabled.(bool) + request.LogoutEnabled = &tmp + } + + if logoutRequestUrl, ok := s.D.GetOkExists("logout_request_url"); ok { + tmp := logoutRequestUrl.(string) + request.LogoutRequestUrl = &tmp + } + + if logoutResponseUrl, ok := s.D.GetOkExists("logout_response_url"); ok { + tmp := logoutResponseUrl.(string) + request.LogoutResponseUrl = &tmp + } + + if metadata, ok := s.D.GetOkExists("metadata"); ok { + tmp := metadata.(string) + request.Metadata = &tmp + } + + if nameIdFormat, ok := s.D.GetOkExists("name_id_format"); ok { + tmp := nameIdFormat.(string) + request.NameIdFormat = &tmp + } + + if ocid, ok := s.D.GetOkExists("ocid"); ok { + tmp := ocid.(string) + request.Ocid = &tmp + } + + if partnerName, ok := s.D.GetOkExists("partner_name"); ok { + tmp := partnerName.(string) + request.PartnerName = &tmp + } + + if partnerProviderId, ok := s.D.GetOkExists("partner_provider_id"); ok { + tmp := partnerProviderId.(string) + request.PartnerProviderId = &tmp + } + + if requestedAuthenticationContext, ok := s.D.GetOkExists("requested_authentication_context"); ok { + interfaces := requestedAuthenticationContext.([]interface{}) + tmp := make([]string, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = interfaces[i].(string) + } + } + if len(tmp) != 0 || s.D.HasChange("requested_authentication_context") { + request.RequestedAuthenticationContext = tmp + } + } + + if requireForceAuthn, ok := s.D.GetOkExists("require_force_authn"); ok { + tmp := requireForceAuthn.(bool) + request.RequireForceAuthn = &tmp + } + + if requiresEncryptedAssertion, ok := s.D.GetOkExists("requires_encrypted_assertion"); ok { + tmp := requiresEncryptedAssertion.(bool) + request.RequiresEncryptedAssertion = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + if samlHoKRequired, ok := s.D.GetOkExists("saml_ho_krequired"); ok { + tmp := samlHoKRequired.(bool) + request.SamlHoKRequired = &tmp + } + + if schemas, ok := s.D.GetOkExists("schemas"); ok { + interfaces := schemas.([]interface{}) + tmp := make([]string, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = interfaces[i].(string) + } + } + if len(tmp) != 0 || s.D.HasChange("schemas") { + request.Schemas = tmp + } + } + + if serviceInstanceIdentifier, ok := s.D.GetOkExists("service_instance_identifier"); ok { + tmp := serviceInstanceIdentifier.(string) + request.ServiceInstanceIdentifier = &tmp + } + + if shownOnLoginPage, ok := s.D.GetOkExists("shown_on_login_page"); ok { + tmp := shownOnLoginPage.(bool) + request.ShownOnLoginPage = &tmp + } + + if signatureHashAlgorithm, ok := s.D.GetOkExists("signature_hash_algorithm"); ok { + request.SignatureHashAlgorithm = oci_identity_domains.IdentityProviderSignatureHashAlgorithmEnum(signatureHashAlgorithm.(string)) + } + + if signingCertificate, ok := s.D.GetOkExists("signing_certificate"); ok { + tmp := signingCertificate.(string) + request.SigningCertificate = &tmp + } + + if succinctId, ok := s.D.GetOkExists("succinct_id"); ok { + tmp := succinctId.(string) + request.SuccinctId = &tmp + } + + if tags, ok := s.D.GetOkExists("tags"); ok { + interfaces := tags.([]interface{}) + tmp := make([]oci_identity_domains.Tags, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "tags", stateDataIndex) + converted, err := s.mapTotags(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("tags") { + request.Tags = tmp + } + } + + if type_, ok := s.D.GetOkExists("type"); ok { + request.Type = oci_identity_domains.IdentityProviderTypeEnum(type_.(string)) + } + + if urnietfparamsscimschemasoracleidcsextensionsocialIdentityProvider, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensionsocialIdentityProvider.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider", 0) + tmp, err := s.mapToExtensionSocialIdentityProvider(fieldKeyFormat) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasOracleIdcsExtensionSocialIdentityProvider = &tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensionx509IdentityProvider, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextensionx509identity_provider"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensionx509IdentityProvider.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextensionx509identity_provider", 0) + tmp, err := s.mapToExtensionX509IdentityProvider(fieldKeyFormat) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasOracleIdcsExtensionX509IdentityProvider = &tmp + } + } + + if userMappingMethod, ok := s.D.GetOkExists("user_mapping_method"); ok { + request.UserMappingMethod = oci_identity_domains.IdentityProviderUserMappingMethodEnum(userMappingMethod.(string)) + } + + if userMappingStoreAttribute, ok := s.D.GetOkExists("user_mapping_store_attribute"); ok { + tmp := userMappingStoreAttribute.(string) + request.UserMappingStoreAttribute = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + response, err := s.Client.PutIdentityProvider(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response.IdentityProvider + return nil +} + +func (s *IdentityDomainsIdentityProviderResourceCrud) Delete() error { + request := oci_identity_domains.DeleteIdentityProviderRequest{} + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if forceDelete, ok := s.D.GetOkExists("force_delete"); ok { + tmp := forceDelete.(bool) + request.ForceDelete = &tmp + } + + tmp := s.D.Id() + request.IdentityProviderId = &tmp + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + _, err := s.Client.DeleteIdentityProvider(context.Background(), request) + return err +} + +func (s *IdentityDomainsIdentityProviderResourceCrud) SetData() error { + + identityProviderId, err := parseIdentityProviderCompositeId(s.D.Id()) + if err == nil { + s.D.SetId(identityProviderId) + } else { + log.Printf("[WARN] SetData() unable to parse current ID: %s", s.D.Id()) + } + + if s.Res.AssertionAttribute != nil { + s.D.Set("assertion_attribute", *s.Res.AssertionAttribute) + } + + s.D.Set("authn_request_binding", s.Res.AuthnRequestBinding) + + if s.Res.CompartmentOcid != nil { + s.D.Set("compartment_ocid", *s.Res.CompartmentOcid) + } + + if s.Res.CorrelationPolicy != nil { + s.D.Set("correlation_policy", []interface{}{IdentityProviderCorrelationPolicyToMap(s.Res.CorrelationPolicy)}) + } else { + s.D.Set("correlation_policy", nil) + } + + if s.Res.DeleteInProgress != nil { + s.D.Set("delete_in_progress", *s.Res.DeleteInProgress) + } + + if s.Res.Description != nil { + s.D.Set("description", *s.Res.Description) + } + + if s.Res.DomainOcid != nil { + s.D.Set("domain_ocid", *s.Res.DomainOcid) + } + + if s.Res.Enabled != nil { + s.D.Set("enabled", *s.Res.Enabled) + } + + if s.Res.EncryptionCertificate != nil { + s.D.Set("encryption_certificate", *s.Res.EncryptionCertificate) + } + + if s.Res.ExternalId != nil { + s.D.Set("external_id", *s.Res.ExternalId) + } + + if s.Res.IconUrl != nil { + s.D.Set("icon_url", *s.Res.IconUrl) + } + + if s.Res.IdcsCreatedBy != nil { + s.D.Set("idcs_created_by", []interface{}{idcsCreatedByToMap(s.Res.IdcsCreatedBy)}) + } else { + s.D.Set("idcs_created_by", nil) + } + + if s.Res.IdcsLastModifiedBy != nil { + s.D.Set("idcs_last_modified_by", []interface{}{idcsLastModifiedByToMap(s.Res.IdcsLastModifiedBy)}) + } else { + s.D.Set("idcs_last_modified_by", nil) + } + + if s.Res.IdcsLastUpgradedInRelease != nil { + s.D.Set("idcs_last_upgraded_in_release", *s.Res.IdcsLastUpgradedInRelease) + } + + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + + if s.Res.IdpSsoUrl != nil { + s.D.Set("idp_sso_url", *s.Res.IdpSsoUrl) + } + + if s.Res.IncludeSigningCertInSignature != nil { + s.D.Set("include_signing_cert_in_signature", *s.Res.IncludeSigningCertInSignature) + } + + jitUserProvAssignedGroups := []interface{}{} + for _, item := range s.Res.JitUserProvAssignedGroups { + jitUserProvAssignedGroups = append(jitUserProvAssignedGroups, IdentityProviderJitUserProvAssignedGroupsToMap(item)) + } + s.D.Set("jit_user_prov_assigned_groups", jitUserProvAssignedGroups) + + if s.Res.JitUserProvAttributeUpdateEnabled != nil { + s.D.Set("jit_user_prov_attribute_update_enabled", *s.Res.JitUserProvAttributeUpdateEnabled) + } + + if s.Res.JitUserProvAttributes != nil { + s.D.Set("jit_user_prov_attributes", []interface{}{IdentityProviderJitUserProvAttributesToMap(s.Res.JitUserProvAttributes)}) + } else { + s.D.Set("jit_user_prov_attributes", nil) + } + + if s.Res.JitUserProvCreateUserEnabled != nil { + s.D.Set("jit_user_prov_create_user_enabled", *s.Res.JitUserProvCreateUserEnabled) + } + + if s.Res.JitUserProvEnabled != nil { + s.D.Set("jit_user_prov_enabled", *s.Res.JitUserProvEnabled) + } + + if s.Res.JitUserProvGroupAssertionAttributeEnabled != nil { + s.D.Set("jit_user_prov_group_assertion_attribute_enabled", *s.Res.JitUserProvGroupAssertionAttributeEnabled) + } + + s.D.Set("jit_user_prov_group_assignment_method", s.Res.JitUserProvGroupAssignmentMethod) + + s.D.Set("jit_user_prov_group_mapping_mode", s.Res.JitUserProvGroupMappingMode) + + jitUserProvGroupMappings := []interface{}{} + for _, item := range s.Res.JitUserProvGroupMappings { + jitUserProvGroupMappings = append(jitUserProvGroupMappings, IdentityProviderJitUserProvGroupMappingsToMap(item)) + } + s.D.Set("jit_user_prov_group_mappings", jitUserProvGroupMappings) + + if s.Res.JitUserProvGroupSAMLAttributeName != nil { + s.D.Set("jit_user_prov_group_saml_attribute_name", *s.Res.JitUserProvGroupSAMLAttributeName) + } + + if s.Res.JitUserProvGroupStaticListEnabled != nil { + s.D.Set("jit_user_prov_group_static_list_enabled", *s.Res.JitUserProvGroupStaticListEnabled) + } + + if s.Res.JitUserProvIgnoreErrorOnAbsentGroups != nil { + s.D.Set("jit_user_prov_ignore_error_on_absent_groups", *s.Res.JitUserProvIgnoreErrorOnAbsentGroups) + } + + s.D.Set("logout_binding", s.Res.LogoutBinding) + + if s.Res.LogoutEnabled != nil { + s.D.Set("logout_enabled", *s.Res.LogoutEnabled) + } + + if s.Res.LogoutRequestUrl != nil { + s.D.Set("logout_request_url", *s.Res.LogoutRequestUrl) + } + + if s.Res.LogoutResponseUrl != nil { + s.D.Set("logout_response_url", *s.Res.LogoutResponseUrl) + } + + if s.Res.Meta != nil { + s.D.Set("meta", []interface{}{metaToMap(s.Res.Meta)}) + } else { + s.D.Set("meta", nil) + } + + if s.Res.Metadata != nil { + s.D.Set("metadata", *s.Res.Metadata) + } + + if s.Res.NameIdFormat != nil { + s.D.Set("name_id_format", *s.Res.NameIdFormat) + } + + if s.Res.Ocid != nil { + s.D.Set("ocid", *s.Res.Ocid) + } + + if s.Res.PartnerName != nil { + s.D.Set("partner_name", *s.Res.PartnerName) + } + + if s.Res.PartnerProviderId != nil { + s.D.Set("partner_provider_id", *s.Res.PartnerProviderId) + } + + s.D.Set("requested_authentication_context", s.Res.RequestedAuthenticationContext) + s.D.Set("requested_authentication_context", s.Res.RequestedAuthenticationContext) + + if s.Res.RequireForceAuthn != nil { + s.D.Set("require_force_authn", *s.Res.RequireForceAuthn) + } + + if s.Res.RequiresEncryptedAssertion != nil { + s.D.Set("requires_encrypted_assertion", *s.Res.RequiresEncryptedAssertion) + } + + if s.Res.SamlHoKRequired != nil { + s.D.Set("saml_ho_krequired", *s.Res.SamlHoKRequired) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + if s.Res.ServiceInstanceIdentifier != nil { + s.D.Set("service_instance_identifier", *s.Res.ServiceInstanceIdentifier) + } + + if s.Res.ShownOnLoginPage != nil { + s.D.Set("shown_on_login_page", *s.Res.ShownOnLoginPage) + } + + s.D.Set("signature_hash_algorithm", s.Res.SignatureHashAlgorithm) + + if s.Res.SigningCertificate != nil { + s.D.Set("signing_certificate", *s.Res.SigningCertificate) + } + + if s.Res.SuccinctId != nil { + s.D.Set("succinct_id", *s.Res.SuccinctId) + } + + tags := []interface{}{} + for _, item := range s.Res.Tags { + tags = append(tags, tagsToMap(item)) + } + s.D.Set("tags", tags) + + if s.Res.TenancyOcid != nil { + s.D.Set("tenancy_ocid", *s.Res.TenancyOcid) + } + + if s.Res.TenantProviderId != nil { + s.D.Set("tenant_provider_id", *s.Res.TenantProviderId) + } + + s.D.Set("type", s.Res.Type) + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionSocialIdentityProvider != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider", []interface{}{ExtensionSocialIdentityProviderToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionSocialIdentityProvider)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider", nil) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionX509IdentityProvider != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionx509identity_provider", []interface{}{ExtensionX509IdentityProviderToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionX509IdentityProvider)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionx509identity_provider", nil) + } + + s.D.Set("user_mapping_method", s.Res.UserMappingMethod) + + if s.Res.UserMappingStoreAttribute != nil { + s.D.Set("user_mapping_store_attribute", *s.Res.UserMappingStoreAttribute) + } + + return nil +} + +//func GetIdentityProviderCompositeId(identityProviderId string) string { +// id = url.PathEscape(id) +// idcsEndpoint = url.PathEscape(idcsEndpoint) +// identityProviderId = url.PathEscape(identityProviderId) +// compositeId := "idcsEndpoint/" + idcsEndpoint + "/identityProviders/" + identityProviderId +// return compositeId +//} + +func parseIdentityProviderCompositeId(compositeId string) (identityProviderId string, err error) { + parts := strings.Split(compositeId, "/") + match, _ := regexp.MatchString("idcsEndpoint/.*/identityProviders/.*", compositeId) + if !match || len(parts) != 4 { + err = fmt.Errorf("illegal compositeId %s encountered", compositeId) + return + } + //idcsEndpoint, _ = url.PathUnescape(parts[1]) + identityProviderId, _ = url.PathUnescape(parts[3]) + + return +} + +func (s *IdentityDomainsIdentityProviderResourceCrud) mapToExtensionSocialIdentityProvider(fieldKeyFormat string) (oci_identity_domains.ExtensionSocialIdentityProvider, error) { + result := oci_identity_domains.ExtensionSocialIdentityProvider{} + + if accessTokenUrl, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "access_token_url")); ok { + tmp := accessTokenUrl.(string) + result.AccessTokenUrl = &tmp + } + + if accountLinkingEnabled, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "account_linking_enabled")); ok { + tmp := accountLinkingEnabled.(bool) + result.AccountLinkingEnabled = &tmp + } + + if adminScope, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "admin_scope")); ok { + interfaces := adminScope.([]interface{}) + tmp := make([]string, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = interfaces[i].(string) + } + } + if len(tmp) != 0 || s.D.HasChange(fmt.Sprintf(fieldKeyFormat, "admin_scope")) { + result.AdminScope = tmp + } + } + + if authzUrl, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "authz_url")); ok { + tmp := authzUrl.(string) + result.AuthzUrl = &tmp + } + + if clientCredentialInPayload, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "client_credential_in_payload")); ok { + tmp := clientCredentialInPayload.(bool) + result.ClientCredentialInPayload = &tmp + } + + if clockSkewInSeconds, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "clock_skew_in_seconds")); ok { + tmp := clockSkewInSeconds.(int) + result.ClockSkewInSeconds = &tmp + } + + if consumerKey, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "consumer_key")); ok { + tmp := consumerKey.(string) + result.ConsumerKey = &tmp + } + + if consumerSecret, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "consumer_secret")); ok { + tmp := consumerSecret.(string) + result.ConsumerSecret = &tmp + } + + if discoveryUrl, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "discovery_url")); ok { + tmp := discoveryUrl.(string) + result.DiscoveryUrl = &tmp + } + + if idAttribute, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "id_attribute")); ok { + tmp := idAttribute.(string) + result.IdAttribute = &tmp + } + + if profileUrl, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "profile_url")); ok { + tmp := profileUrl.(string) + result.ProfileUrl = &tmp + } + + if redirectUrl, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "redirect_url")); ok { + tmp := redirectUrl.(string) + result.RedirectUrl = &tmp + } + + if registrationEnabled, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "registration_enabled")); ok { + tmp := registrationEnabled.(bool) + result.RegistrationEnabled = &tmp + } + + if scope, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "scope")); ok { + interfaces := scope.([]interface{}) + tmp := make([]string, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = interfaces[i].(string) + } + } + if len(tmp) != 0 || s.D.HasChange(fmt.Sprintf(fieldKeyFormat, "scope")) { + result.Scope = tmp + } + } + + if serviceProviderName, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "service_provider_name")); ok { + tmp := serviceProviderName.(string) + result.ServiceProviderName = &tmp + } + + if status, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "status")); ok { + result.Status = oci_identity_domains.ExtensionSocialIdentityProviderStatusEnum(status.(string)) + } + + return result, nil +} + +func ExtensionSocialIdentityProviderToMap(obj *oci_identity_domains.ExtensionSocialIdentityProvider) map[string]interface{} { + result := map[string]interface{}{} + + if obj.AccessTokenUrl != nil { + result["access_token_url"] = string(*obj.AccessTokenUrl) + } + + if obj.AccountLinkingEnabled != nil { + result["account_linking_enabled"] = bool(*obj.AccountLinkingEnabled) + } + + result["admin_scope"] = obj.AdminScope + result["admin_scope"] = obj.AdminScope + + if obj.AuthzUrl != nil { + result["authz_url"] = string(*obj.AuthzUrl) + } + + if obj.ClientCredentialInPayload != nil { + result["client_credential_in_payload"] = bool(*obj.ClientCredentialInPayload) + } + + if obj.ClockSkewInSeconds != nil { + result["clock_skew_in_seconds"] = int(*obj.ClockSkewInSeconds) + } + + if obj.ConsumerKey != nil { + result["consumer_key"] = string(*obj.ConsumerKey) + } + + if obj.ConsumerSecret != nil { + result["consumer_secret"] = string(*obj.ConsumerSecret) + } + + if obj.DiscoveryUrl != nil { + result["discovery_url"] = string(*obj.DiscoveryUrl) + } + + if obj.IdAttribute != nil { + result["id_attribute"] = string(*obj.IdAttribute) + } + + if obj.ProfileUrl != nil { + result["profile_url"] = string(*obj.ProfileUrl) + } + + if obj.RedirectUrl != nil { + result["redirect_url"] = string(*obj.RedirectUrl) + } + + if obj.RegistrationEnabled != nil { + result["registration_enabled"] = bool(*obj.RegistrationEnabled) + } + + result["scope"] = obj.Scope + result["scope"] = obj.Scope + + if obj.ServiceProviderName != nil { + result["service_provider_name"] = string(*obj.ServiceProviderName) + } + + result["status"] = string(obj.Status) + + return result +} + +func (s *IdentityDomainsIdentityProviderResourceCrud) mapToExtensionX509IdentityProvider(fieldKeyFormat string) (oci_identity_domains.ExtensionX509IdentityProvider, error) { + result := oci_identity_domains.ExtensionX509IdentityProvider{} + + if certMatchAttribute, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "cert_match_attribute")); ok { + tmp := certMatchAttribute.(string) + result.CertMatchAttribute = &tmp + } + + if crlCheckOnOCSPFailureEnabled, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "crl_check_on_ocsp_failure_enabled")); ok { + tmp := crlCheckOnOCSPFailureEnabled.(bool) + result.CrlCheckOnOCSPFailureEnabled = &tmp + } + + if crlEnabled, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "crl_enabled")); ok { + tmp := crlEnabled.(bool) + result.CrlEnabled = &tmp + } + + if crlLocation, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "crl_location")); ok { + tmp := crlLocation.(string) + result.CrlLocation = &tmp + } + + if crlReloadDuration, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "crl_reload_duration")); ok { + tmp := crlReloadDuration.(int) + result.CrlReloadDuration = &tmp + } + + if ocspAllowUnknownResponseStatus, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ocsp_allow_unknown_response_status")); ok { + tmp := ocspAllowUnknownResponseStatus.(bool) + result.OcspAllowUnknownResponseStatus = &tmp + } + + if ocspEnableSignedResponse, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ocsp_enable_signed_response")); ok { + tmp := ocspEnableSignedResponse.(bool) + result.OcspEnableSignedResponse = &tmp + } + + if ocspEnabled, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ocsp_enabled")); ok { + tmp := ocspEnabled.(bool) + result.OcspEnabled = &tmp + } + + if ocspResponderURL, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ocsp_responder_url")); ok { + tmp := ocspResponderURL.(string) + result.OcspResponderURL = &tmp + } + + if ocspRevalidateTime, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ocsp_revalidate_time")); ok { + tmp := ocspRevalidateTime.(int) + result.OcspRevalidateTime = &tmp + } + + if ocspServerName, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ocsp_server_name")); ok { + tmp := ocspServerName.(string) + result.OcspServerName = &tmp + } + + if ocspTrustCertChain, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ocsp_trust_cert_chain")); ok { + interfaces := ocspTrustCertChain.([]interface{}) + tmp := make([]string, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = interfaces[i].(string) + } + } + if len(tmp) != 0 || s.D.HasChange(fmt.Sprintf(fieldKeyFormat, "ocsp_trust_cert_chain")) { + result.OcspTrustCertChain = tmp + } + } + + if otherCertMatchAttribute, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "other_cert_match_attribute")); ok { + tmp := otherCertMatchAttribute.(string) + result.OtherCertMatchAttribute = &tmp + } + + if signingCertificateChain, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "signing_certificate_chain")); ok { + interfaces := signingCertificateChain.([]interface{}) + tmp := make([]string, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = interfaces[i].(string) + } + } + if len(tmp) != 0 || s.D.HasChange(fmt.Sprintf(fieldKeyFormat, "signing_certificate_chain")) { + result.SigningCertificateChain = tmp + } + } + + if userMatchAttribute, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "user_match_attribute")); ok { + tmp := userMatchAttribute.(string) + result.UserMatchAttribute = &tmp + } + + return result, nil +} + +func ExtensionX509IdentityProviderToMap(obj *oci_identity_domains.ExtensionX509IdentityProvider) map[string]interface{} { + result := map[string]interface{}{} + + if obj.CertMatchAttribute != nil { + result["cert_match_attribute"] = string(*obj.CertMatchAttribute) + } + + if obj.CrlCheckOnOCSPFailureEnabled != nil { + result["crl_check_on_ocsp_failure_enabled"] = bool(*obj.CrlCheckOnOCSPFailureEnabled) + } + + if obj.CrlEnabled != nil { + result["crl_enabled"] = bool(*obj.CrlEnabled) + } + + if obj.CrlLocation != nil { + result["crl_location"] = string(*obj.CrlLocation) + } + + if obj.CrlReloadDuration != nil { + result["crl_reload_duration"] = int(*obj.CrlReloadDuration) + } + + if obj.OcspAllowUnknownResponseStatus != nil { + result["ocsp_allow_unknown_response_status"] = bool(*obj.OcspAllowUnknownResponseStatus) + } + + if obj.OcspEnableSignedResponse != nil { + result["ocsp_enable_signed_response"] = bool(*obj.OcspEnableSignedResponse) + } + + if obj.OcspEnabled != nil { + result["ocsp_enabled"] = bool(*obj.OcspEnabled) + } + + if obj.OcspResponderURL != nil { + result["ocsp_responder_url"] = string(*obj.OcspResponderURL) + } + + if obj.OcspRevalidateTime != nil { + result["ocsp_revalidate_time"] = int(*obj.OcspRevalidateTime) + } + + if obj.OcspServerName != nil { + result["ocsp_server_name"] = string(*obj.OcspServerName) + } + + result["ocsp_trust_cert_chain"] = obj.OcspTrustCertChain + result["ocsp_trust_cert_chain"] = obj.OcspTrustCertChain + + if obj.OtherCertMatchAttribute != nil { + result["other_cert_match_attribute"] = string(*obj.OtherCertMatchAttribute) + } + + result["signing_certificate_chain"] = obj.SigningCertificateChain + result["signing_certificate_chain"] = obj.SigningCertificateChain + + if obj.UserMatchAttribute != nil { + result["user_match_attribute"] = string(*obj.UserMatchAttribute) + } + + return result +} + +func IdentityProviderToMap(obj oci_identity_domains.IdentityProvider) map[string]interface{} { + result := map[string]interface{}{} + + if obj.AssertionAttribute != nil { + result["assertion_attribute"] = string(*obj.AssertionAttribute) + } + + result["authn_request_binding"] = string(obj.AuthnRequestBinding) + + if obj.CompartmentOcid != nil { + result["compartment_ocid"] = string(*obj.CompartmentOcid) + } + + if obj.CorrelationPolicy != nil { + result["correlation_policy"] = []interface{}{IdentityProviderCorrelationPolicyToMap(obj.CorrelationPolicy)} + } + + if obj.DeleteInProgress != nil { + result["delete_in_progress"] = bool(*obj.DeleteInProgress) + } + + if obj.Description != nil { + result["description"] = string(*obj.Description) + } + + if obj.DomainOcid != nil { + result["domain_ocid"] = string(*obj.DomainOcid) + } + + if obj.Enabled != nil { + result["enabled"] = bool(*obj.Enabled) + } + + if obj.EncryptionCertificate != nil { + result["encryption_certificate"] = string(*obj.EncryptionCertificate) + } + + if obj.ExternalId != nil { + result["external_id"] = string(*obj.ExternalId) + } + + if obj.IconUrl != nil { + result["icon_url"] = string(*obj.IconUrl) + } + + if obj.Id != nil { + result["id"] = string(*obj.Id) + } + + if obj.IdcsCreatedBy != nil { + result["idcs_created_by"] = []interface{}{idcsCreatedByToMap(obj.IdcsCreatedBy)} + } + + if obj.IdcsLastModifiedBy != nil { + result["idcs_last_modified_by"] = []interface{}{idcsLastModifiedByToMap(obj.IdcsLastModifiedBy)} + } + + if obj.IdcsLastUpgradedInRelease != nil { + result["idcs_last_upgraded_in_release"] = string(*obj.IdcsLastUpgradedInRelease) + } + + result["idcs_prevented_operations"] = obj.IdcsPreventedOperations + result["idcs_prevented_operations"] = obj.IdcsPreventedOperations + + if obj.IdpSsoUrl != nil { + result["idp_sso_url"] = string(*obj.IdpSsoUrl) + } + + if obj.IncludeSigningCertInSignature != nil { + result["include_signing_cert_in_signature"] = bool(*obj.IncludeSigningCertInSignature) + } + + jitUserProvAssignedGroups := []interface{}{} + for _, item := range obj.JitUserProvAssignedGroups { + jitUserProvAssignedGroups = append(jitUserProvAssignedGroups, IdentityProviderJitUserProvAssignedGroupsToMap(item)) + } + result["jit_user_prov_assigned_groups"] = jitUserProvAssignedGroups + + if obj.JitUserProvAttributeUpdateEnabled != nil { + result["jit_user_prov_attribute_update_enabled"] = bool(*obj.JitUserProvAttributeUpdateEnabled) + } + + if obj.JitUserProvAttributes != nil { + result["jit_user_prov_attributes"] = []interface{}{IdentityProviderJitUserProvAttributesToMap(obj.JitUserProvAttributes)} + } + + if obj.JitUserProvCreateUserEnabled != nil { + result["jit_user_prov_create_user_enabled"] = bool(*obj.JitUserProvCreateUserEnabled) + } + + if obj.JitUserProvEnabled != nil { + result["jit_user_prov_enabled"] = bool(*obj.JitUserProvEnabled) + } + + if obj.JitUserProvGroupAssertionAttributeEnabled != nil { + result["jit_user_prov_group_assertion_attribute_enabled"] = bool(*obj.JitUserProvGroupAssertionAttributeEnabled) + } + + result["jit_user_prov_group_assignment_method"] = string(obj.JitUserProvGroupAssignmentMethod) + + result["jit_user_prov_group_mapping_mode"] = string(obj.JitUserProvGroupMappingMode) + + jitUserProvGroupMappings := []interface{}{} + for _, item := range obj.JitUserProvGroupMappings { + jitUserProvGroupMappings = append(jitUserProvGroupMappings, IdentityProviderJitUserProvGroupMappingsToMap(item)) + } + result["jit_user_prov_group_mappings"] = jitUserProvGroupMappings + + if obj.JitUserProvGroupSAMLAttributeName != nil { + result["jit_user_prov_group_saml_attribute_name"] = string(*obj.JitUserProvGroupSAMLAttributeName) + } + + if obj.JitUserProvGroupStaticListEnabled != nil { + result["jit_user_prov_group_static_list_enabled"] = bool(*obj.JitUserProvGroupStaticListEnabled) + } + + if obj.JitUserProvIgnoreErrorOnAbsentGroups != nil { + result["jit_user_prov_ignore_error_on_absent_groups"] = bool(*obj.JitUserProvIgnoreErrorOnAbsentGroups) + } + + result["logout_binding"] = string(obj.LogoutBinding) + + if obj.LogoutEnabled != nil { + result["logout_enabled"] = bool(*obj.LogoutEnabled) + } + + if obj.LogoutRequestUrl != nil { + result["logout_request_url"] = string(*obj.LogoutRequestUrl) + } + + if obj.LogoutResponseUrl != nil { + result["logout_response_url"] = string(*obj.LogoutResponseUrl) + } + + if obj.Meta != nil { + result["meta"] = []interface{}{metaToMap(obj.Meta)} + } + + if obj.Metadata != nil { + result["metadata"] = string(*obj.Metadata) + } + + if obj.NameIdFormat != nil { + result["name_id_format"] = string(*obj.NameIdFormat) + } + + if obj.Ocid != nil { + result["ocid"] = string(*obj.Ocid) + } + + if obj.PartnerName != nil { + result["partner_name"] = string(*obj.PartnerName) + } + + if obj.PartnerProviderId != nil { + result["partner_provider_id"] = string(*obj.PartnerProviderId) + } + + result["requested_authentication_context"] = obj.RequestedAuthenticationContext + result["requested_authentication_context"] = obj.RequestedAuthenticationContext + + if obj.RequireForceAuthn != nil { + result["require_force_authn"] = bool(*obj.RequireForceAuthn) + } + + if obj.RequiresEncryptedAssertion != nil { + result["requires_encrypted_assertion"] = bool(*obj.RequiresEncryptedAssertion) + } + + if obj.SamlHoKRequired != nil { + result["saml_ho_krequired"] = bool(*obj.SamlHoKRequired) + } + + result["schemas"] = obj.Schemas + result["schemas"] = obj.Schemas + + if obj.ServiceInstanceIdentifier != nil { + result["service_instance_identifier"] = string(*obj.ServiceInstanceIdentifier) + } + + if obj.ShownOnLoginPage != nil { + result["shown_on_login_page"] = bool(*obj.ShownOnLoginPage) + } + + result["signature_hash_algorithm"] = string(obj.SignatureHashAlgorithm) + + if obj.SigningCertificate != nil { + result["signing_certificate"] = string(*obj.SigningCertificate) + } + + if obj.SuccinctId != nil { + result["succinct_id"] = string(*obj.SuccinctId) + } + + tags := []interface{}{} + for _, item := range obj.Tags { + tags = append(tags, tagsToMap(item)) + } + result["tags"] = tags + + if obj.TenancyOcid != nil { + result["tenancy_ocid"] = string(*obj.TenancyOcid) + } + + if obj.TenantProviderId != nil { + result["tenant_provider_id"] = string(*obj.TenantProviderId) + } + + result["type"] = string(obj.Type) + + if obj.UrnIetfParamsScimSchemasOracleIdcsExtensionSocialIdentityProvider != nil { + result["urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider"] = []interface{}{ExtensionSocialIdentityProviderToMap(obj.UrnIetfParamsScimSchemasOracleIdcsExtensionSocialIdentityProvider)} + } + + if obj.UrnIetfParamsScimSchemasOracleIdcsExtensionX509IdentityProvider != nil { + result["urnietfparamsscimschemasoracleidcsextensionx509identity_provider"] = []interface{}{ExtensionX509IdentityProviderToMap(obj.UrnIetfParamsScimSchemasOracleIdcsExtensionX509IdentityProvider)} + } + + result["user_mapping_method"] = string(obj.UserMappingMethod) + + if obj.UserMappingStoreAttribute != nil { + result["user_mapping_store_attribute"] = string(*obj.UserMappingStoreAttribute) + } + + return result +} + +func (s *IdentityDomainsIdentityProviderResourceCrud) mapToIdentityProviderCorrelationPolicy(fieldKeyFormat string) (oci_identity_domains.IdentityProviderCorrelationPolicy, error) { + result := oci_identity_domains.IdentityProviderCorrelationPolicy{} + + if display, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "display")); ok { + tmp := display.(string) + result.Display = &tmp + } + + if ref, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ref")); ok { + tmp := ref.(string) + result.Ref = &tmp + } + + if type_, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "type")); ok { + result.Type = oci_identity_domains.IdentityProviderCorrelationPolicyTypeEnum(type_.(string)) + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func IdentityProviderCorrelationPolicyToMap(obj *oci_identity_domains.IdentityProviderCorrelationPolicy) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Display != nil { + result["display"] = string(*obj.Display) + } + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + result["type"] = string(obj.Type) + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func (s *IdentityDomainsIdentityProviderResourceCrud) mapToIdentityProviderJitUserProvAssignedGroups(fieldKeyFormat string) (oci_identity_domains.IdentityProviderJitUserProvAssignedGroups, error) { + result := oci_identity_domains.IdentityProviderJitUserProvAssignedGroups{} + + if display, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "display")); ok { + tmp := display.(string) + result.Display = &tmp + } + + if ref, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ref")); ok { + tmp := ref.(string) + result.Ref = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func IdentityProviderJitUserProvAssignedGroupsToMap(obj oci_identity_domains.IdentityProviderJitUserProvAssignedGroups) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Display != nil { + result["display"] = string(*obj.Display) + } + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func (s *IdentityDomainsIdentityProviderResourceCrud) mapToIdentityProviderJitUserProvAttributes(fieldKeyFormat string) (oci_identity_domains.IdentityProviderJitUserProvAttributes, error) { + result := oci_identity_domains.IdentityProviderJitUserProvAttributes{} + + if ref, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ref")); ok { + tmp := ref.(string) + result.Ref = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func IdentityProviderJitUserProvAttributesToMap(obj *oci_identity_domains.IdentityProviderJitUserProvAttributes) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func (s *IdentityDomainsIdentityProviderResourceCrud) mapToIdentityProviderJitUserProvGroupMappings(fieldKeyFormat string) (oci_identity_domains.IdentityProviderJitUserProvGroupMappings, error) { + result := oci_identity_domains.IdentityProviderJitUserProvGroupMappings{} + + if idpGroup, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "idp_group")); ok { + tmp := idpGroup.(string) + result.IdpGroup = &tmp + } + + if ref, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ref")); ok { + tmp := ref.(string) + result.Ref = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func IdentityProviderJitUserProvGroupMappingsToMap(obj oci_identity_domains.IdentityProviderJitUserProvGroupMappings) map[string]interface{} { + result := map[string]interface{}{} + + if obj.IdpGroup != nil { + result["idp_group"] = string(*obj.IdpGroup) + } + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func (s *IdentityDomainsIdentityProviderResourceCrud) mapTotags(fieldKeyFormat string) (oci_identity_domains.Tags, error) { + result := oci_identity_domains.Tags{} + + if key, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "key")); ok { + tmp := key.(string) + result.Key = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} diff --git a/internal/service/identity_domains/identity_domains_identity_providers_data_source.go b/internal/service/identity_domains/identity_domains_identity_providers_data_source.go new file mode 100644 index 00000000000..b0661346d6c --- /dev/null +++ b/internal/service/identity_domains/identity_domains_identity_providers_data_source.go @@ -0,0 +1,226 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsIdentityProvidersDataSource() *schema.Resource { + return &schema.Resource{ + Read: readIdentityDomainsIdentityProviders, + Schema: map[string]*schema.Schema{ + "idcs_endpoint": { + Type: schema.TypeString, + Required: true, + }, + "compartment_id": { + Type: schema.TypeString, + Optional: true, + }, + "identity_provider_count": { + Type: schema.TypeInt, + Optional: true, + }, + "identity_provider_filter": { + Type: schema.TypeString, + Optional: true, + }, + "attribute_sets": { + Type: schema.TypeList, + Optional: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "attributes": { + Type: schema.TypeString, + Optional: true, + }, + "authorization": { + Type: schema.TypeString, + Optional: true, + }, + "resource_type_schema_version": { + Type: schema.TypeString, + Optional: true, + }, + "start_index": { + Type: schema.TypeInt, + Optional: true, + }, + "sort_order": { + Type: schema.TypeString, + Optional: true, + }, + "sort_by": { + Type: schema.TypeString, + Optional: true, + }, + // Computed + "identity_providers": { + Type: schema.TypeList, + Computed: true, + Elem: tfresource.GetDataSourceItemSchema(IdentityDomainsIdentityProviderResource()), + }, + "items_per_page": { + Type: schema.TypeInt, + Computed: true, + }, + "schemas": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "total_results": { + Type: schema.TypeInt, + Computed: true, + }, + }, + } +} + +func readIdentityDomainsIdentityProviders(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsIdentityProvidersDataSourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.ReadResource(sync) +} + +type IdentityDomainsIdentityProvidersDataSourceCrud struct { + D *schema.ResourceData + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.ListIdentityProvidersResponse +} + +func (s *IdentityDomainsIdentityProvidersDataSourceCrud) VoidState() { + s.D.SetId("") +} + +func (s *IdentityDomainsIdentityProvidersDataSourceCrud) Get() error { + request := oci_identity_domains.ListIdentityProvidersRequest{} + + if identityProviderCount, ok := s.D.GetOkExists("identity_provider_count"); ok { + tmp := identityProviderCount.(int) + request.Count = &tmp + } + + if identityProviderFilter, ok := s.D.GetOkExists("identity_provider_filter"); ok { + tmp := identityProviderFilter.(string) + request.Filter = &tmp + } + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + if startIndex, ok := s.D.GetOkExists("start_index"); ok { + tmp := startIndex.(int) + request.StartIndex = &tmp + } + + if sortOrder, ok := s.D.GetOkExists("sort_order"); ok { + tmp := oci_identity_domains.ListIdentityProvidersSortOrderEnum(sortOrder.(string)) + request.SortOrder = tmp + } + + if sortBy, ok := s.D.GetOkExists("sort_by"); ok { + tmp := sortBy.(string) + request.SortBy = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "identity_domains") + + response, err := s.Client.ListIdentityProviders(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response + // IDCS pagination + startIndex := *response.StartIndex + for startIndex+*response.ItemsPerPage <= *response.TotalResults { + startIndex += *response.ItemsPerPage + request.StartIndex = &startIndex + listResponse, err := s.Client.ListIdentityProviders(context.Background(), request) + if err != nil { + return err + } + + s.Res.Resources = append(s.Res.Resources, listResponse.Resources...) + } + + return nil +} + +func (s *IdentityDomainsIdentityProvidersDataSourceCrud) SetData() error { + if s.Res == nil { + return nil + } + + s.D.SetId(tfresource.GenerateDataSourceHashID("IdentityDomainsIdentityProvidersDataSource-", IdentityDomainsIdentityProvidersDataSource(), s.D)) + + resources := []interface{}{} + for _, item := range s.Res.Resources { + resources = append(resources, IdentityProviderToMap(item)) + } + s.D.Set("identity_providers", resources) + + if s.Res.ItemsPerPage != nil { + s.D.Set("items_per_page", *s.Res.ItemsPerPage) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + if s.Res.StartIndex != nil { + s.D.Set("start_index", *s.Res.StartIndex) + } + + if s.Res.TotalResults != nil { + s.D.Set("total_results", *s.Res.TotalResults) + } + + return nil +} diff --git a/internal/service/identity_domains/identity_domains_kmsi_setting_data_source.go b/internal/service/identity_domains/identity_domains_kmsi_setting_data_source.go new file mode 100644 index 00000000000..7735938ba68 --- /dev/null +++ b/internal/service/identity_domains/identity_domains_kmsi_setting_data_source.go @@ -0,0 +1,215 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsKmsiSettingDataSource() *schema.Resource { + fieldMap := make(map[string]*schema.Schema) + fieldMap["attribute_sets"] = &schema.Schema{ + Type: schema.TypeList, + Optional: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + } + fieldMap["attributes"] = &schema.Schema{ + Type: schema.TypeString, + Optional: true, + } + fieldMap["authorization"] = &schema.Schema{ + Type: schema.TypeString, + Optional: true, + } + fieldMap["idcs_endpoint"] = &schema.Schema{ + Type: schema.TypeString, + Required: true, + } + fieldMap["kmsi_setting_id"] = &schema.Schema{ + Type: schema.TypeString, + Required: true, + } + fieldMap["resource_type_schema_version"] = &schema.Schema{ + Type: schema.TypeString, + Optional: true, + } + return tfresource.GetSingularDataSourceItemSchema(IdentityDomainsKmsiSettingResource(), fieldMap, readSingularIdentityDomainsKmsiSetting) +} + +func readSingularIdentityDomainsKmsiSetting(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsKmsiSettingDataSourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + + return tfresource.ReadResource(sync) +} + +type IdentityDomainsKmsiSettingDataSourceCrud struct { + D *schema.ResourceData + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.GetKmsiSettingResponse +} + +func (s *IdentityDomainsKmsiSettingDataSourceCrud) VoidState() { + s.D.SetId("") +} + +func (s *IdentityDomainsKmsiSettingDataSourceCrud) Get() error { + request := oci_identity_domains.GetKmsiSettingRequest{} + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if kmsiSettingId, ok := s.D.GetOkExists("kmsi_setting_id"); ok { + tmp := kmsiSettingId.(string) + request.KmsiSettingId = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "identity_domains") + + response, err := s.Client.GetKmsiSetting(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response + return nil +} + +func (s *IdentityDomainsKmsiSettingDataSourceCrud) SetData() error { + if s.Res == nil { + return nil + } + + s.D.SetId(*s.Res.Id) + + if s.Res.CompartmentOcid != nil { + s.D.Set("compartment_ocid", *s.Res.CompartmentOcid) + } + + if s.Res.DeleteInProgress != nil { + s.D.Set("delete_in_progress", *s.Res.DeleteInProgress) + } + + if s.Res.DomainOcid != nil { + s.D.Set("domain_ocid", *s.Res.DomainOcid) + } + + if s.Res.ExternalId != nil { + s.D.Set("external_id", *s.Res.ExternalId) + } + + if s.Res.IdcsCreatedBy != nil { + s.D.Set("idcs_created_by", []interface{}{idcsCreatedByToMap(s.Res.IdcsCreatedBy)}) + } else { + s.D.Set("idcs_created_by", nil) + } + + if s.Res.IdcsLastModifiedBy != nil { + s.D.Set("idcs_last_modified_by", []interface{}{idcsLastModifiedByToMap(s.Res.IdcsLastModifiedBy)}) + } else { + s.D.Set("idcs_last_modified_by", nil) + } + + if s.Res.IdcsLastUpgradedInRelease != nil { + s.D.Set("idcs_last_upgraded_in_release", *s.Res.IdcsLastUpgradedInRelease) + } + + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + + if s.Res.KmsiFeatureEnabled != nil { + s.D.Set("kmsi_feature_enabled", *s.Res.KmsiFeatureEnabled) + } + + if s.Res.KmsiPromptEnabled != nil { + s.D.Set("kmsi_prompt_enabled", *s.Res.KmsiPromptEnabled) + } + + if s.Res.LastEnabledOn != nil { + s.D.Set("last_enabled_on", *s.Res.LastEnabledOn) + } + + if s.Res.LastUsedValidityInDays != nil { + s.D.Set("last_used_validity_in_days", *s.Res.LastUsedValidityInDays) + } + + if s.Res.MaxAllowedSessions != nil { + s.D.Set("max_allowed_sessions", *s.Res.MaxAllowedSessions) + } + + if s.Res.Meta != nil { + s.D.Set("meta", []interface{}{metaToMap(s.Res.Meta)}) + } else { + s.D.Set("meta", nil) + } + + if s.Res.Ocid != nil { + s.D.Set("ocid", *s.Res.Ocid) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + tags := []interface{}{} + for _, item := range s.Res.Tags { + tags = append(tags, tagsToMap(item)) + } + s.D.Set("tags", tags) + + if s.Res.TenancyOcid != nil { + s.D.Set("tenancy_ocid", *s.Res.TenancyOcid) + } + + if s.Res.TokenValidityInDays != nil { + s.D.Set("token_validity_in_days", *s.Res.TokenValidityInDays) + } + + if s.Res.TouPromptDisabled != nil { + s.D.Set("tou_prompt_disabled", *s.Res.TouPromptDisabled) + } + + return nil +} diff --git a/internal/service/identity_domains/identity_domains_kmsi_setting_resource.go b/internal/service/identity_domains/identity_domains_kmsi_setting_resource.go new file mode 100644 index 00000000000..e6f61318036 --- /dev/null +++ b/internal/service/identity_domains/identity_domains_kmsi_setting_resource.go @@ -0,0 +1,874 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + "fmt" + "log" + "net/url" + "regexp" + "strings" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsKmsiSettingResource() *schema.Resource { + return &schema.Resource{ + Importer: &schema.ResourceImporter{ + State: schema.ImportStatePassthrough, + }, + Timeouts: tfresource.DefaultTimeout, + Create: createIdentityDomainsKmsiSetting, + Read: readIdentityDomainsKmsiSetting, + Update: updateIdentityDomainsKmsiSetting, + Delete: deleteIdentityDomainsKmsiSetting, + Schema: map[string]*schema.Schema{ + // Required + "idcs_endpoint": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "kmsi_setting_id": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "schemas": { + Type: schema.TypeList, + Required: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + + // Optional + "attribute_sets": { + Type: schema.TypeList, + Optional: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "attributes": { + Type: schema.TypeString, + Optional: true, + }, + "authorization": { + Type: schema.TypeString, + Optional: true, + }, + "external_id": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "kmsi_feature_enabled": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "kmsi_prompt_enabled": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "last_enabled_on": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "last_used_validity_in_days": { + Type: schema.TypeInt, + Optional: true, + Computed: true, + }, + "max_allowed_sessions": { + Type: schema.TypeInt, + Optional: true, + Computed: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "resource_type_schema_version": { + Type: schema.TypeString, + Optional: true, + }, + "tags": { + Type: schema.TypeList, + Optional: true, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "key": { + Type: schema.TypeString, + Required: true, + }, + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + + // Computed + }, + }, + }, + "token_validity_in_days": { + Type: schema.TypeInt, + Optional: true, + Computed: true, + }, + "tou_prompt_disabled": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + + // Computed + "compartment_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "delete_in_progress": { + Type: schema.TypeBool, + Computed: true, + }, + "domain_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "id": { + Type: schema.TypeString, + Computed: true, + }, + "idcs_created_by": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "idcs_last_modified_by": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "idcs_last_upgraded_in_release": { + Type: schema.TypeString, + Computed: true, + }, + "idcs_prevented_operations": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "meta": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "created": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "last_modified": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "location": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "resource_type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "version": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + }, + }, + }, + "tenancy_ocid": { + Type: schema.TypeString, + Computed: true, + }, + }, + } +} + +func createIdentityDomainsKmsiSetting(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsKmsiSettingResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.CreateResource(d, sync) +} + +func readIdentityDomainsKmsiSetting(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsKmsiSettingResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpointForRead(d, "kmsiSettings") + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.ReadResource(sync) +} + +func updateIdentityDomainsKmsiSetting(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsKmsiSettingResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.UpdateResource(d, sync) +} + +func deleteIdentityDomainsKmsiSetting(d *schema.ResourceData, m interface{}) error { + return nil +} + +type IdentityDomainsKmsiSettingResourceCrud struct { + tfresource.BaseCrud + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.KmsiSetting + DisableNotFoundRetries bool +} + +func (s *IdentityDomainsKmsiSettingResourceCrud) ID() string { + return *s.Res.Id + //return GetKmsiSettingCompositeId(s.D.Get("id").(string)) +} + +func (s *IdentityDomainsKmsiSettingResourceCrud) Create() error { + request := oci_identity_domains.PutKmsiSettingRequest{} + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if externalId, ok := s.D.GetOkExists("external_id"); ok { + tmp := externalId.(string) + request.ExternalId = &tmp + } + + if id, ok := s.D.GetOkExists("id"); ok { + tmp := id.(string) + request.Id = &tmp + } + + if kmsiFeatureEnabled, ok := s.D.GetOkExists("kmsi_feature_enabled"); ok { + tmp := kmsiFeatureEnabled.(bool) + request.KmsiFeatureEnabled = &tmp + } + + if kmsiPromptEnabled, ok := s.D.GetOkExists("kmsi_prompt_enabled"); ok { + tmp := kmsiPromptEnabled.(bool) + request.KmsiPromptEnabled = &tmp + } + + if kmsiSettingId, ok := s.D.GetOkExists("kmsi_setting_id"); ok { + tmp := kmsiSettingId.(string) + request.KmsiSettingId = &tmp + } + + if lastEnabledOn, ok := s.D.GetOkExists("last_enabled_on"); ok { + tmp := lastEnabledOn.(string) + request.LastEnabledOn = &tmp + } + + if lastUsedValidityInDays, ok := s.D.GetOkExists("last_used_validity_in_days"); ok { + tmp := lastUsedValidityInDays.(int) + request.LastUsedValidityInDays = &tmp + } + + if maxAllowedSessions, ok := s.D.GetOkExists("max_allowed_sessions"); ok { + tmp := maxAllowedSessions.(int) + request.MaxAllowedSessions = &tmp + } + + if ocid, ok := s.D.GetOkExists("ocid"); ok { + tmp := ocid.(string) + request.Ocid = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + if schemas, ok := s.D.GetOkExists("schemas"); ok { + interfaces := schemas.([]interface{}) + tmp := make([]string, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = interfaces[i].(string) + } + } + if len(tmp) != 0 || s.D.HasChange("schemas") { + request.Schemas = tmp + } + } + + if tags, ok := s.D.GetOkExists("tags"); ok { + interfaces := tags.([]interface{}) + tmp := make([]oci_identity_domains.Tags, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "tags", stateDataIndex) + converted, err := s.mapTotags(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("tags") { + request.Tags = tmp + } + } + + if tokenValidityInDays, ok := s.D.GetOkExists("token_validity_in_days"); ok { + tmp := tokenValidityInDays.(int) + request.TokenValidityInDays = &tmp + } + + if touPromptDisabled, ok := s.D.GetOkExists("tou_prompt_disabled"); ok { + tmp := touPromptDisabled.(bool) + request.TouPromptDisabled = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + response, err := s.Client.PutKmsiSetting(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response.KmsiSetting + return nil +} + +func (s *IdentityDomainsKmsiSettingResourceCrud) Get() error { + request := oci_identity_domains.GetKmsiSettingRequest{} + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + tmp := s.D.Id() + request.KmsiSettingId = &tmp + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + kmsiSettingId, err := parseKmsiSettingCompositeId(s.D.Id()) + if err == nil { + request.KmsiSettingId = &kmsiSettingId + } else { + log.Printf("[WARN] Get() unable to parse current ID: %s", s.D.Id()) + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + response, err := s.Client.GetKmsiSetting(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response.KmsiSetting + return nil +} + +func (s *IdentityDomainsKmsiSettingResourceCrud) Update() error { + request := oci_identity_domains.PutKmsiSettingRequest{} + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if externalId, ok := s.D.GetOkExists("external_id"); ok { + tmp := externalId.(string) + request.ExternalId = &tmp + } + + tmp := s.D.Id() + request.Id = &tmp + + if kmsiFeatureEnabled, ok := s.D.GetOkExists("kmsi_feature_enabled"); ok { + tmp := kmsiFeatureEnabled.(bool) + request.KmsiFeatureEnabled = &tmp + } + + if kmsiPromptEnabled, ok := s.D.GetOkExists("kmsi_prompt_enabled"); ok { + tmp := kmsiPromptEnabled.(bool) + request.KmsiPromptEnabled = &tmp + } + + if kmsiSettingId, ok := s.D.GetOkExists("kmsi_setting_id"); ok { + tmp := kmsiSettingId.(string) + request.KmsiSettingId = &tmp + } + + if lastEnabledOn, ok := s.D.GetOkExists("last_enabled_on"); ok { + tmp := lastEnabledOn.(string) + request.LastEnabledOn = &tmp + } + + if lastUsedValidityInDays, ok := s.D.GetOkExists("last_used_validity_in_days"); ok { + tmp := lastUsedValidityInDays.(int) + request.LastUsedValidityInDays = &tmp + } + + if maxAllowedSessions, ok := s.D.GetOkExists("max_allowed_sessions"); ok { + tmp := maxAllowedSessions.(int) + request.MaxAllowedSessions = &tmp + } + + if ocid, ok := s.D.GetOkExists("ocid"); ok { + tmp := ocid.(string) + request.Ocid = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + if schemas, ok := s.D.GetOkExists("schemas"); ok { + interfaces := schemas.([]interface{}) + tmp := make([]string, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = interfaces[i].(string) + } + } + if len(tmp) != 0 || s.D.HasChange("schemas") { + request.Schemas = tmp + } + } + + if tags, ok := s.D.GetOkExists("tags"); ok { + interfaces := tags.([]interface{}) + tmp := make([]oci_identity_domains.Tags, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "tags", stateDataIndex) + converted, err := s.mapTotags(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("tags") { + request.Tags = tmp + } + } + + if tokenValidityInDays, ok := s.D.GetOkExists("token_validity_in_days"); ok { + tmp := tokenValidityInDays.(int) + request.TokenValidityInDays = &tmp + } + + if touPromptDisabled, ok := s.D.GetOkExists("tou_prompt_disabled"); ok { + tmp := touPromptDisabled.(bool) + request.TouPromptDisabled = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + response, err := s.Client.PutKmsiSetting(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response.KmsiSetting + return nil +} + +func (s *IdentityDomainsKmsiSettingResourceCrud) SetData() error { + + kmsiSettingId, err := parseKmsiSettingCompositeId(s.D.Id()) + if err == nil { + s.D.SetId(kmsiSettingId) + } else { + log.Printf("[WARN] SetData() unable to parse current ID: %s", s.D.Id()) + } + + if s.Res.CompartmentOcid != nil { + s.D.Set("compartment_ocid", *s.Res.CompartmentOcid) + } + + if s.Res.DeleteInProgress != nil { + s.D.Set("delete_in_progress", *s.Res.DeleteInProgress) + } + + if s.Res.DomainOcid != nil { + s.D.Set("domain_ocid", *s.Res.DomainOcid) + } + + if s.Res.ExternalId != nil { + s.D.Set("external_id", *s.Res.ExternalId) + } + + if s.Res.IdcsCreatedBy != nil { + s.D.Set("idcs_created_by", []interface{}{idcsCreatedByToMap(s.Res.IdcsCreatedBy)}) + } else { + s.D.Set("idcs_created_by", nil) + } + + if s.Res.IdcsLastModifiedBy != nil { + s.D.Set("idcs_last_modified_by", []interface{}{idcsLastModifiedByToMap(s.Res.IdcsLastModifiedBy)}) + } else { + s.D.Set("idcs_last_modified_by", nil) + } + + if s.Res.IdcsLastUpgradedInRelease != nil { + s.D.Set("idcs_last_upgraded_in_release", *s.Res.IdcsLastUpgradedInRelease) + } + + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + + if s.Res.KmsiFeatureEnabled != nil { + s.D.Set("kmsi_feature_enabled", *s.Res.KmsiFeatureEnabled) + } + + if s.Res.KmsiPromptEnabled != nil { + s.D.Set("kmsi_prompt_enabled", *s.Res.KmsiPromptEnabled) + } + + if s.Res.LastEnabledOn != nil { + s.D.Set("last_enabled_on", *s.Res.LastEnabledOn) + } + + if s.Res.LastUsedValidityInDays != nil { + s.D.Set("last_used_validity_in_days", *s.Res.LastUsedValidityInDays) + } + + if s.Res.MaxAllowedSessions != nil { + s.D.Set("max_allowed_sessions", *s.Res.MaxAllowedSessions) + } + + if s.Res.Meta != nil { + s.D.Set("meta", []interface{}{metaToMap(s.Res.Meta)}) + } else { + s.D.Set("meta", nil) + } + + if s.Res.Ocid != nil { + s.D.Set("ocid", *s.Res.Ocid) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + tags := []interface{}{} + for _, item := range s.Res.Tags { + tags = append(tags, tagsToMap(item)) + } + s.D.Set("tags", tags) + + if s.Res.TenancyOcid != nil { + s.D.Set("tenancy_ocid", *s.Res.TenancyOcid) + } + + if s.Res.TokenValidityInDays != nil { + s.D.Set("token_validity_in_days", *s.Res.TokenValidityInDays) + } + + if s.Res.TouPromptDisabled != nil { + s.D.Set("tou_prompt_disabled", *s.Res.TouPromptDisabled) + } + + return nil +} + +//func GetKmsiSettingCompositeId(kmsiSettingId string) string { +// id = url.PathEscape(id) +// idcsEndpoint = url.PathEscape(idcsEndpoint) +// kmsiSettingId = url.PathEscape(kmsiSettingId) +// compositeId := "idcsEndpoint/" + idcsEndpoint + "/kmsiSettings/" + kmsiSettingId +// return compositeId +//} + +func parseKmsiSettingCompositeId(compositeId string) (kmsiSettingId string, err error) { + parts := strings.Split(compositeId, "/") + match, _ := regexp.MatchString("idcsEndpoint/.*/kmsiSettings/.*", compositeId) + if !match || len(parts) != 4 { + err = fmt.Errorf("illegal compositeId %s encountered", compositeId) + return + } + //idcsEndpoint, _ = url.PathUnescape(parts[1]) + kmsiSettingId, _ = url.PathUnescape(parts[3]) + + return +} + +func KmsiSettingToMap(obj oci_identity_domains.KmsiSetting) map[string]interface{} { + result := map[string]interface{}{} + + if obj.CompartmentOcid != nil { + result["compartment_ocid"] = string(*obj.CompartmentOcid) + } + + if obj.DeleteInProgress != nil { + result["delete_in_progress"] = bool(*obj.DeleteInProgress) + } + + if obj.DomainOcid != nil { + result["domain_ocid"] = string(*obj.DomainOcid) + } + + if obj.ExternalId != nil { + result["external_id"] = string(*obj.ExternalId) + } + + if obj.Id != nil { + result["id"] = string(*obj.Id) + } + + if obj.IdcsCreatedBy != nil { + result["idcs_created_by"] = []interface{}{idcsCreatedByToMap(obj.IdcsCreatedBy)} + } + + if obj.IdcsLastModifiedBy != nil { + result["idcs_last_modified_by"] = []interface{}{idcsLastModifiedByToMap(obj.IdcsLastModifiedBy)} + } + + if obj.IdcsLastUpgradedInRelease != nil { + result["idcs_last_upgraded_in_release"] = string(*obj.IdcsLastUpgradedInRelease) + } + + result["idcs_prevented_operations"] = obj.IdcsPreventedOperations + result["idcs_prevented_operations"] = obj.IdcsPreventedOperations + + if obj.KmsiFeatureEnabled != nil { + result["kmsi_feature_enabled"] = bool(*obj.KmsiFeatureEnabled) + } + + if obj.KmsiPromptEnabled != nil { + result["kmsi_prompt_enabled"] = bool(*obj.KmsiPromptEnabled) + } + + if obj.LastEnabledOn != nil { + result["last_enabled_on"] = string(*obj.LastEnabledOn) + } + + if obj.LastUsedValidityInDays != nil { + result["last_used_validity_in_days"] = int(*obj.LastUsedValidityInDays) + } + + if obj.MaxAllowedSessions != nil { + result["max_allowed_sessions"] = int(*obj.MaxAllowedSessions) + } + + if obj.Meta != nil { + result["meta"] = []interface{}{metaToMap(obj.Meta)} + } + + if obj.Ocid != nil { + result["ocid"] = string(*obj.Ocid) + } + + result["schemas"] = obj.Schemas + result["schemas"] = obj.Schemas + + tags := []interface{}{} + for _, item := range obj.Tags { + tags = append(tags, tagsToMap(item)) + } + result["tags"] = tags + + if obj.TenancyOcid != nil { + result["tenancy_ocid"] = string(*obj.TenancyOcid) + } + + if obj.TokenValidityInDays != nil { + result["token_validity_in_days"] = int(*obj.TokenValidityInDays) + } + + if obj.TouPromptDisabled != nil { + result["tou_prompt_disabled"] = bool(*obj.TouPromptDisabled) + } + + return result +} + +func (s *IdentityDomainsKmsiSettingResourceCrud) mapTotags(fieldKeyFormat string) (oci_identity_domains.Tags, error) { + result := oci_identity_domains.Tags{} + + if key, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "key")); ok { + tmp := key.(string) + result.Key = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} diff --git a/internal/service/identity_domains/identity_domains_kmsi_settings_data_source.go b/internal/service/identity_domains/identity_domains_kmsi_settings_data_source.go new file mode 100644 index 00000000000..5852a0c78a2 --- /dev/null +++ b/internal/service/identity_domains/identity_domains_kmsi_settings_data_source.go @@ -0,0 +1,172 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsKmsiSettingsDataSource() *schema.Resource { + return &schema.Resource{ + Read: readIdentityDomainsKmsiSettings, + Schema: map[string]*schema.Schema{ + "idcs_endpoint": { + Type: schema.TypeString, + Required: true, + }, + "compartment_id": { + Type: schema.TypeString, + Optional: true, + }, + "attribute_sets": { + Type: schema.TypeList, + Optional: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "attributes": { + Type: schema.TypeString, + Optional: true, + }, + "authorization": { + Type: schema.TypeString, + Optional: true, + }, + "resource_type_schema_version": { + Type: schema.TypeString, + Optional: true, + }, + // Computed + "kmsi_settings": { + Type: schema.TypeList, + Computed: true, + Elem: tfresource.GetDataSourceItemSchema(IdentityDomainsKmsiSettingResource()), + }, + "items_per_page": { + Type: schema.TypeInt, + Computed: true, + }, + "schemas": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "start_index": { + Type: schema.TypeInt, + Computed: true, + }, + "total_results": { + Type: schema.TypeInt, + Computed: true, + }, + }, + } +} + +func readIdentityDomainsKmsiSettings(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsKmsiSettingsDataSourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.ReadResource(sync) +} + +type IdentityDomainsKmsiSettingsDataSourceCrud struct { + D *schema.ResourceData + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.ListKmsiSettingsResponse +} + +func (s *IdentityDomainsKmsiSettingsDataSourceCrud) VoidState() { + s.D.SetId("") +} + +func (s *IdentityDomainsKmsiSettingsDataSourceCrud) Get() error { + request := oci_identity_domains.ListKmsiSettingsRequest{} + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "identity_domains") + + response, err := s.Client.ListKmsiSettings(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response + return nil +} + +func (s *IdentityDomainsKmsiSettingsDataSourceCrud) SetData() error { + if s.Res == nil { + return nil + } + + s.D.SetId(tfresource.GenerateDataSourceHashID("IdentityDomainsKmsiSettingsDataSource-", IdentityDomainsKmsiSettingsDataSource(), s.D)) + + resources := []interface{}{} + for _, item := range s.Res.Resources { + resources = append(resources, KmsiSettingToMap(item)) + } + s.D.Set("kmsi_settings", resources) + + if s.Res.ItemsPerPage != nil { + s.D.Set("items_per_page", *s.Res.ItemsPerPage) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + if s.Res.StartIndex != nil { + s.D.Set("start_index", *s.Res.StartIndex) + } + + if s.Res.TotalResults != nil { + s.D.Set("total_results", *s.Res.TotalResults) + } + + return nil +} diff --git a/internal/service/identity_domains/identity_domains_my_api_key_data_source.go b/internal/service/identity_domains/identity_domains_my_api_key_data_source.go new file mode 100644 index 00000000000..b3e927c8292 --- /dev/null +++ b/internal/service/identity_domains/identity_domains_my_api_key_data_source.go @@ -0,0 +1,172 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsMyApiKeyDataSource() *schema.Resource { + fieldMap := make(map[string]*schema.Schema) + fieldMap["authorization"] = &schema.Schema{ + Type: schema.TypeString, + Optional: true, + } + fieldMap["idcs_endpoint"] = &schema.Schema{ + Type: schema.TypeString, + Required: true, + } + fieldMap["my_api_key_id"] = &schema.Schema{ + Type: schema.TypeString, + Required: true, + } + fieldMap["resource_type_schema_version"] = &schema.Schema{ + Type: schema.TypeString, + Optional: true, + } + return tfresource.GetSingularDataSourceItemSchema(IdentityDomainsMyApiKeyResource(), fieldMap, readSingularIdentityDomainsMyApiKey) +} + +func readSingularIdentityDomainsMyApiKey(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsMyApiKeyDataSourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + + return tfresource.ReadResource(sync) +} + +type IdentityDomainsMyApiKeyDataSourceCrud struct { + D *schema.ResourceData + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.GetMyApiKeyResponse +} + +func (s *IdentityDomainsMyApiKeyDataSourceCrud) VoidState() { + s.D.SetId("") +} + +func (s *IdentityDomainsMyApiKeyDataSourceCrud) Get() error { + request := oci_identity_domains.GetMyApiKeyRequest{} + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if myApiKeyId, ok := s.D.GetOkExists("my_api_key_id"); ok { + tmp := myApiKeyId.(string) + request.MyApiKeyId = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "identity_domains") + + response, err := s.Client.GetMyApiKey(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response + return nil +} + +func (s *IdentityDomainsMyApiKeyDataSourceCrud) SetData() error { + if s.Res == nil { + return nil + } + + s.D.SetId(*s.Res.Id) + + if s.Res.CompartmentOcid != nil { + s.D.Set("compartment_ocid", *s.Res.CompartmentOcid) + } + + if s.Res.DeleteInProgress != nil { + s.D.Set("delete_in_progress", *s.Res.DeleteInProgress) + } + + if s.Res.Description != nil { + s.D.Set("description", *s.Res.Description) + } + + if s.Res.DomainOcid != nil { + s.D.Set("domain_ocid", *s.Res.DomainOcid) + } + + if s.Res.Fingerprint != nil { + s.D.Set("fingerprint", *s.Res.Fingerprint) + } + + if s.Res.IdcsCreatedBy != nil { + s.D.Set("idcs_created_by", []interface{}{idcsCreatedByToMap(s.Res.IdcsCreatedBy)}) + } else { + s.D.Set("idcs_created_by", nil) + } + + if s.Res.IdcsLastModifiedBy != nil { + s.D.Set("idcs_last_modified_by", []interface{}{idcsLastModifiedByToMap(s.Res.IdcsLastModifiedBy)}) + } else { + s.D.Set("idcs_last_modified_by", nil) + } + + if s.Res.IdcsLastUpgradedInRelease != nil { + s.D.Set("idcs_last_upgraded_in_release", *s.Res.IdcsLastUpgradedInRelease) + } + + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + + if s.Res.Key != nil { + s.D.Set("key", *s.Res.Key) + } + + if s.Res.Meta != nil { + s.D.Set("meta", []interface{}{metaToMap(s.Res.Meta)}) + } else { + s.D.Set("meta", nil) + } + + if s.Res.Ocid != nil { + s.D.Set("ocid", *s.Res.Ocid) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + tags := []interface{}{} + for _, item := range s.Res.Tags { + tags = append(tags, tagsToMap(item)) + } + s.D.Set("tags", tags) + + if s.Res.TenancyOcid != nil { + s.D.Set("tenancy_ocid", *s.Res.TenancyOcid) + } + + if s.Res.User != nil { + s.D.Set("user", []interface{}{MyApiKeyUserToMap(s.Res.User)}) + } else { + s.D.Set("user", nil) + } + + return nil +} diff --git a/internal/service/identity_domains/identity_domains_my_api_key_resource.go b/internal/service/identity_domains/identity_domains_my_api_key_resource.go new file mode 100644 index 00000000000..d6e1c2130d9 --- /dev/null +++ b/internal/service/identity_domains/identity_domains_my_api_key_resource.go @@ -0,0 +1,760 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + "fmt" + "log" + "net/url" + "regexp" + "strings" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsMyApiKeyResource() *schema.Resource { + return &schema.Resource{ + Importer: &schema.ResourceImporter{ + State: schema.ImportStatePassthrough, + }, + Timeouts: tfresource.DefaultTimeout, + Create: createIdentityDomainsMyApiKey, + Read: readIdentityDomainsMyApiKey, + Delete: deleteIdentityDomainsMyApiKey, + Schema: map[string]*schema.Schema{ + // Required + "idcs_endpoint": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "key": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "schemas": { + Type: schema.TypeList, + Required: true, + ForceNew: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + + // Optional + "authorization": { + Type: schema.TypeString, + Optional: true, + ForceNew: true, + }, + "description": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "resource_type_schema_version": { + Type: schema.TypeString, + Optional: true, + ForceNew: true, + }, + "tags": { + Type: schema.TypeList, + Optional: true, + Computed: true, + ForceNew: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "key": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "value": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + + // Optional + + // Computed + }, + }, + }, + "user": { + Type: schema.TypeList, + Optional: true, + Computed: true, + ForceNew: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "value": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + "display": { + Type: schema.TypeString, + Computed: true, + }, + "name": { + Type: schema.TypeString, + Computed: true, + }, + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + + // Computed + "compartment_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "delete_in_progress": { + Type: schema.TypeBool, + Computed: true, + }, + "domain_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "fingerprint": { + Type: schema.TypeString, + Computed: true, + }, + "id": { + Type: schema.TypeString, + Computed: true, + }, + "idcs_created_by": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "idcs_last_modified_by": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "idcs_last_upgraded_in_release": { + Type: schema.TypeString, + Computed: true, + }, + "idcs_prevented_operations": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "meta": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "created": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "last_modified": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "location": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "resource_type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "version": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + }, + }, + }, + "tenancy_ocid": { + Type: schema.TypeString, + Computed: true, + }, + }, + } +} + +func createIdentityDomainsMyApiKey(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsMyApiKeyResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.CreateResource(d, sync) +} + +func readIdentityDomainsMyApiKey(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsMyApiKeyResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpointForRead(d, "myApiKeys") + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.ReadResource(sync) +} + +func deleteIdentityDomainsMyApiKey(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsMyApiKeyResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + sync.DisableNotFoundRetries = true + + return tfresource.DeleteResource(d, sync) +} + +type IdentityDomainsMyApiKeyResourceCrud struct { + tfresource.BaseCrud + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.MyApiKey + DisableNotFoundRetries bool +} + +func (s *IdentityDomainsMyApiKeyResourceCrud) ID() string { + return *s.Res.Id + //return GetMyApiKeyCompositeId(s.D.Get("id").(string)) +} + +func (s *IdentityDomainsMyApiKeyResourceCrud) Create() error { + request := oci_identity_domains.CreateMyApiKeyRequest{} + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if description, ok := s.D.GetOkExists("description"); ok { + tmp := description.(string) + request.Description = &tmp + } + + if id, ok := s.D.GetOkExists("id"); ok { + tmp := id.(string) + request.Id = &tmp + } + + if key, ok := s.D.GetOkExists("key"); ok { + tmp := key.(string) + request.Key = &tmp + } + + if ocid, ok := s.D.GetOkExists("ocid"); ok { + tmp := ocid.(string) + request.Ocid = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + if schemas, ok := s.D.GetOkExists("schemas"); ok { + interfaces := schemas.([]interface{}) + tmp := make([]string, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = interfaces[i].(string) + } + } + if len(tmp) != 0 || s.D.HasChange("schemas") { + request.Schemas = tmp + } + } + + if tags, ok := s.D.GetOkExists("tags"); ok { + interfaces := tags.([]interface{}) + tmp := make([]oci_identity_domains.Tags, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "tags", stateDataIndex) + converted, err := s.mapTotags(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("tags") { + request.Tags = tmp + } + } + + if user, ok := s.D.GetOkExists("user"); ok { + if tmpList := user.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "user", 0) + tmp, err := s.mapToMyApiKeyUser(fieldKeyFormat) + if err != nil { + return err + } + request.User = &tmp + } + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + response, err := s.Client.CreateMyApiKey(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response.MyApiKey + return nil +} + +func (s *IdentityDomainsMyApiKeyResourceCrud) Get() error { + request := oci_identity_domains.GetMyApiKeyRequest{} + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + tmp := s.D.Id() + request.MyApiKeyId = &tmp + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + myApiKeyId, err := parseMyApiKeyCompositeId(s.D.Id()) + if err == nil { + request.MyApiKeyId = &myApiKeyId + } else { + log.Printf("[WARN] Get() unable to parse current ID: %s", s.D.Id()) + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + response, err := s.Client.GetMyApiKey(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response.MyApiKey + return nil +} + +func (s *IdentityDomainsMyApiKeyResourceCrud) Delete() error { + request := oci_identity_domains.DeleteMyApiKeyRequest{} + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if forceDelete, ok := s.D.GetOkExists("force_delete"); ok { + tmp := forceDelete.(bool) + request.ForceDelete = &tmp + } + + tmp := s.D.Id() + request.MyApiKeyId = &tmp + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + _, err := s.Client.DeleteMyApiKey(context.Background(), request) + return err +} + +func (s *IdentityDomainsMyApiKeyResourceCrud) SetData() error { + + myApiKeyId, err := parseMyApiKeyCompositeId(s.D.Id()) + if err == nil { + s.D.SetId(myApiKeyId) + } else { + log.Printf("[WARN] SetData() unable to parse current ID: %s", s.D.Id()) + } + + if s.Res.CompartmentOcid != nil { + s.D.Set("compartment_ocid", *s.Res.CompartmentOcid) + } + + if s.Res.DeleteInProgress != nil { + s.D.Set("delete_in_progress", *s.Res.DeleteInProgress) + } + + if s.Res.Description != nil { + s.D.Set("description", *s.Res.Description) + } + + if s.Res.DomainOcid != nil { + s.D.Set("domain_ocid", *s.Res.DomainOcid) + } + + if s.Res.Fingerprint != nil { + s.D.Set("fingerprint", *s.Res.Fingerprint) + } + + if s.Res.IdcsCreatedBy != nil { + s.D.Set("idcs_created_by", []interface{}{idcsCreatedByToMap(s.Res.IdcsCreatedBy)}) + } else { + s.D.Set("idcs_created_by", nil) + } + + if s.Res.IdcsLastModifiedBy != nil { + s.D.Set("idcs_last_modified_by", []interface{}{idcsLastModifiedByToMap(s.Res.IdcsLastModifiedBy)}) + } else { + s.D.Set("idcs_last_modified_by", nil) + } + + if s.Res.IdcsLastUpgradedInRelease != nil { + s.D.Set("idcs_last_upgraded_in_release", *s.Res.IdcsLastUpgradedInRelease) + } + + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + + if s.Res.Key != nil { + s.D.Set("key", *s.Res.Key) + } + + if s.Res.Meta != nil { + s.D.Set("meta", []interface{}{metaToMap(s.Res.Meta)}) + } else { + s.D.Set("meta", nil) + } + + if s.Res.Ocid != nil { + s.D.Set("ocid", *s.Res.Ocid) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + tags := []interface{}{} + for _, item := range s.Res.Tags { + tags = append(tags, tagsToMap(item)) + } + s.D.Set("tags", tags) + + if s.Res.TenancyOcid != nil { + s.D.Set("tenancy_ocid", *s.Res.TenancyOcid) + } + + if s.Res.User != nil { + s.D.Set("user", []interface{}{MyApiKeyUserToMap(s.Res.User)}) + } else { + s.D.Set("user", nil) + } + + return nil +} + +//func GetMyApiKeyCompositeId(myApiKeyId string) string { +// id = url.PathEscape(id) +// idcsEndpoint = url.PathEscape(idcsEndpoint) +// myApiKeyId = url.PathEscape(myApiKeyId) +// compositeId := "idcsEndpoint/" + idcsEndpoint + "/myApiKeys/" + myApiKeyId +// return compositeId +//} + +func parseMyApiKeyCompositeId(compositeId string) (myApiKeyId string, err error) { + parts := strings.Split(compositeId, "/") + match, _ := regexp.MatchString("idcsEndpoint/.*/myApiKeys/.*", compositeId) + if !match || len(parts) != 4 { + err = fmt.Errorf("illegal compositeId %s encountered", compositeId) + return + } + //idcsEndpoint, _ = url.PathUnescape(parts[1]) + myApiKeyId, _ = url.PathUnescape(parts[3]) + + return +} + +func MyApiKeyToMap(obj oci_identity_domains.MyApiKey) map[string]interface{} { + result := map[string]interface{}{} + + if obj.CompartmentOcid != nil { + result["compartment_ocid"] = string(*obj.CompartmentOcid) + } + + if obj.DeleteInProgress != nil { + result["delete_in_progress"] = bool(*obj.DeleteInProgress) + } + + if obj.Description != nil { + result["description"] = string(*obj.Description) + } + + if obj.DomainOcid != nil { + result["domain_ocid"] = string(*obj.DomainOcid) + } + + if obj.Fingerprint != nil { + result["fingerprint"] = string(*obj.Fingerprint) + } + + if obj.Id != nil { + result["id"] = string(*obj.Id) + } + + if obj.IdcsCreatedBy != nil { + result["idcs_created_by"] = []interface{}{idcsCreatedByToMap(obj.IdcsCreatedBy)} + } + + if obj.IdcsLastModifiedBy != nil { + result["idcs_last_modified_by"] = []interface{}{idcsLastModifiedByToMap(obj.IdcsLastModifiedBy)} + } + + if obj.IdcsLastUpgradedInRelease != nil { + result["idcs_last_upgraded_in_release"] = string(*obj.IdcsLastUpgradedInRelease) + } + + result["idcs_prevented_operations"] = obj.IdcsPreventedOperations + result["idcs_prevented_operations"] = obj.IdcsPreventedOperations + + if obj.Key != nil { + result["key"] = string(*obj.Key) + } + + if obj.Meta != nil { + result["meta"] = []interface{}{metaToMap(obj.Meta)} + } + + if obj.Ocid != nil { + result["ocid"] = string(*obj.Ocid) + } + + result["schemas"] = obj.Schemas + result["schemas"] = obj.Schemas + + tags := []interface{}{} + for _, item := range obj.Tags { + tags = append(tags, tagsToMap(item)) + } + result["tags"] = tags + + if obj.TenancyOcid != nil { + result["tenancy_ocid"] = string(*obj.TenancyOcid) + } + + if obj.User != nil { + result["user"] = []interface{}{MyApiKeyUserToMap(obj.User)} + } + + return result +} + +func (s *IdentityDomainsMyApiKeyResourceCrud) mapToMyApiKeyUser(fieldKeyFormat string) (oci_identity_domains.MyApiKeyUser, error) { + result := oci_identity_domains.MyApiKeyUser{} + + if display, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "display")); ok { + tmp := display.(string) + result.Display = &tmp + } + + if name, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "name")); ok { + tmp := name.(string) + result.Name = &tmp + } + + if ocid, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ocid")); ok { + tmp := ocid.(string) + result.Ocid = &tmp + } + + if ref, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ref")); ok { + tmp := ref.(string) + result.Ref = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func MyApiKeyUserToMap(obj *oci_identity_domains.MyApiKeyUser) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Display != nil { + result["display"] = string(*obj.Display) + } + + if obj.Name != nil { + result["name"] = string(*obj.Name) + } + + if obj.Ocid != nil { + result["ocid"] = string(*obj.Ocid) + } + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func (s *IdentityDomainsMyApiKeyResourceCrud) mapTotags(fieldKeyFormat string) (oci_identity_domains.Tags, error) { + result := oci_identity_domains.Tags{} + + if key, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "key")); ok { + tmp := key.(string) + result.Key = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} diff --git a/internal/service/identity_domains/identity_domains_my_api_keys_data_source.go b/internal/service/identity_domains/identity_domains_my_api_keys_data_source.go new file mode 100644 index 00000000000..c4fc0a3488d --- /dev/null +++ b/internal/service/identity_domains/identity_domains_my_api_keys_data_source.go @@ -0,0 +1,198 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsMyApiKeysDataSource() *schema.Resource { + return &schema.Resource{ + Read: readIdentityDomainsMyApiKeys, + Schema: map[string]*schema.Schema{ + "idcs_endpoint": { + Type: schema.TypeString, + Required: true, + }, + "compartment_id": { + Type: schema.TypeString, + Optional: true, + }, + "my_api_key_count": { + Type: schema.TypeInt, + Optional: true, + }, + "my_api_key_filter": { + Type: schema.TypeString, + Optional: true, + }, + "authorization": { + Type: schema.TypeString, + Optional: true, + }, + "resource_type_schema_version": { + Type: schema.TypeString, + Optional: true, + }, + "start_index": { + Type: schema.TypeInt, + Optional: true, + }, + "sort_order": { + Type: schema.TypeString, + Optional: true, + }, + "sort_by": { + Type: schema.TypeString, + Optional: true, + }, + // Computed + "my_api_keys": { + Type: schema.TypeList, + Computed: true, + Elem: tfresource.GetDataSourceItemSchema(IdentityDomainsMyApiKeyResource()), + }, + "items_per_page": { + Type: schema.TypeInt, + Computed: true, + }, + "schemas": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "total_results": { + Type: schema.TypeInt, + Computed: true, + }, + }, + } +} + +func readIdentityDomainsMyApiKeys(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsMyApiKeysDataSourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + + return tfresource.ReadResource(sync) +} + +type IdentityDomainsMyApiKeysDataSourceCrud struct { + D *schema.ResourceData + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.ListMyApiKeysResponse +} + +func (s *IdentityDomainsMyApiKeysDataSourceCrud) VoidState() { + s.D.SetId("") +} + +func (s *IdentityDomainsMyApiKeysDataSourceCrud) Get() error { + request := oci_identity_domains.ListMyApiKeysRequest{} + + if myApiKeyCount, ok := s.D.GetOkExists("my_api_key_count"); ok { + tmp := myApiKeyCount.(int) + request.Count = &tmp + } + + if myApiKeyFilter, ok := s.D.GetOkExists("my_api_key_filter"); ok { + tmp := myApiKeyFilter.(string) + request.Filter = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + if startIndex, ok := s.D.GetOkExists("start_index"); ok { + tmp := startIndex.(int) + request.StartIndex = &tmp + } + + if sortOrder, ok := s.D.GetOkExists("sort_order"); ok { + tmp := oci_identity_domains.ListMyApiKeysSortOrderEnum(sortOrder.(string)) + request.SortOrder = tmp + } + + if sortBy, ok := s.D.GetOkExists("sort_by"); ok { + tmp := sortBy.(string) + request.SortBy = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "identity_domains") + + response, err := s.Client.ListMyApiKeys(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response + // IDCS pagination + startIndex := *response.StartIndex + for startIndex+*response.ItemsPerPage <= *response.TotalResults { + startIndex += *response.ItemsPerPage + request.StartIndex = &startIndex + listResponse, err := s.Client.ListMyApiKeys(context.Background(), request) + if err != nil { + return err + } + + s.Res.Resources = append(s.Res.Resources, listResponse.Resources...) + } + + return nil +} + +func (s *IdentityDomainsMyApiKeysDataSourceCrud) SetData() error { + if s.Res == nil { + return nil + } + + s.D.SetId(tfresource.GenerateDataSourceHashID("IdentityDomainsMyApiKeysDataSource-", IdentityDomainsMyApiKeysDataSource(), s.D)) + + resources := []interface{}{} + for _, item := range s.Res.Resources { + resources = append(resources, MyApiKeyToMap(item)) + } + s.D.Set("my_api_keys", resources) + + if s.Res.ItemsPerPage != nil { + s.D.Set("items_per_page", *s.Res.ItemsPerPage) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + if s.Res.StartIndex != nil { + s.D.Set("start_index", *s.Res.StartIndex) + } + + if s.Res.TotalResults != nil { + s.D.Set("total_results", *s.Res.TotalResults) + } + + return nil +} diff --git a/internal/service/identity_domains/identity_domains_my_auth_token_data_source.go b/internal/service/identity_domains/identity_domains_my_auth_token_data_source.go new file mode 100644 index 00000000000..65a5327e36e --- /dev/null +++ b/internal/service/identity_domains/identity_domains_my_auth_token_data_source.go @@ -0,0 +1,170 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsMyAuthTokenDataSource() *schema.Resource { + fieldMap := make(map[string]*schema.Schema) + fieldMap["authorization"] = &schema.Schema{ + Type: schema.TypeString, + Optional: true, + } + fieldMap["idcs_endpoint"] = &schema.Schema{ + Type: schema.TypeString, + Required: true, + } + fieldMap["my_auth_token_id"] = &schema.Schema{ + Type: schema.TypeString, + Required: true, + } + fieldMap["resource_type_schema_version"] = &schema.Schema{ + Type: schema.TypeString, + Optional: true, + } + return tfresource.GetSingularDataSourceItemSchema(IdentityDomainsMyAuthTokenResource(), fieldMap, readSingularIdentityDomainsMyAuthToken) +} + +func readSingularIdentityDomainsMyAuthToken(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsMyAuthTokenDataSourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + + return tfresource.ReadResource(sync) +} + +type IdentityDomainsMyAuthTokenDataSourceCrud struct { + D *schema.ResourceData + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.GetMyAuthTokenResponse +} + +func (s *IdentityDomainsMyAuthTokenDataSourceCrud) VoidState() { + s.D.SetId("") +} + +func (s *IdentityDomainsMyAuthTokenDataSourceCrud) Get() error { + request := oci_identity_domains.GetMyAuthTokenRequest{} + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if myAuthTokenId, ok := s.D.GetOkExists("my_auth_token_id"); ok { + tmp := myAuthTokenId.(string) + request.MyAuthTokenId = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "identity_domains") + + response, err := s.Client.GetMyAuthToken(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response + return nil +} + +func (s *IdentityDomainsMyAuthTokenDataSourceCrud) SetData() error { + if s.Res == nil { + return nil + } + + s.D.SetId(*s.Res.Id) + + if s.Res.CompartmentOcid != nil { + s.D.Set("compartment_ocid", *s.Res.CompartmentOcid) + } + + if s.Res.DeleteInProgress != nil { + s.D.Set("delete_in_progress", *s.Res.DeleteInProgress) + } + + if s.Res.Description != nil { + s.D.Set("description", *s.Res.Description) + } + + if s.Res.DomainOcid != nil { + s.D.Set("domain_ocid", *s.Res.DomainOcid) + } + + if s.Res.ExpiresOn != nil { + s.D.Set("expires_on", *s.Res.ExpiresOn) + } + + if s.Res.IdcsCreatedBy != nil { + s.D.Set("idcs_created_by", []interface{}{idcsCreatedByToMap(s.Res.IdcsCreatedBy)}) + } else { + s.D.Set("idcs_created_by", nil) + } + + if s.Res.IdcsLastModifiedBy != nil { + s.D.Set("idcs_last_modified_by", []interface{}{idcsLastModifiedByToMap(s.Res.IdcsLastModifiedBy)}) + } else { + s.D.Set("idcs_last_modified_by", nil) + } + + if s.Res.IdcsLastUpgradedInRelease != nil { + s.D.Set("idcs_last_upgraded_in_release", *s.Res.IdcsLastUpgradedInRelease) + } + + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + + if s.Res.Meta != nil { + s.D.Set("meta", []interface{}{metaToMap(s.Res.Meta)}) + } else { + s.D.Set("meta", nil) + } + + if s.Res.Ocid != nil { + s.D.Set("ocid", *s.Res.Ocid) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + s.D.Set("status", s.Res.Status) + + tags := []interface{}{} + for _, item := range s.Res.Tags { + tags = append(tags, tagsToMap(item)) + } + s.D.Set("tags", tags) + + if s.Res.TenancyOcid != nil { + s.D.Set("tenancy_ocid", *s.Res.TenancyOcid) + } + + if s.Res.User != nil { + s.D.Set("user", []interface{}{MyAuthTokenUserToMap(s.Res.User)}) + } else { + s.D.Set("user", nil) + } + + return nil +} diff --git a/internal/service/identity_domains/identity_domains_my_auth_token_resource.go b/internal/service/identity_domains/identity_domains_my_auth_token_resource.go new file mode 100644 index 00000000000..f8bd4d00a41 --- /dev/null +++ b/internal/service/identity_domains/identity_domains_my_auth_token_resource.go @@ -0,0 +1,763 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + "fmt" + "log" + "net/url" + "regexp" + "strings" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsMyAuthTokenResource() *schema.Resource { + return &schema.Resource{ + Importer: &schema.ResourceImporter{ + State: schema.ImportStatePassthrough, + }, + Timeouts: tfresource.DefaultTimeout, + Create: createIdentityDomainsMyAuthToken, + Read: readIdentityDomainsMyAuthToken, + Delete: deleteIdentityDomainsMyAuthToken, + Schema: map[string]*schema.Schema{ + // Required + "idcs_endpoint": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "schemas": { + Type: schema.TypeList, + Required: true, + ForceNew: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + + // Optional + "authorization": { + Type: schema.TypeString, + Optional: true, + ForceNew: true, + }, + "description": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "expires_on": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "resource_type_schema_version": { + Type: schema.TypeString, + Optional: true, + ForceNew: true, + }, + "status": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "tags": { + Type: schema.TypeList, + Optional: true, + Computed: true, + ForceNew: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "key": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "value": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + + // Optional + + // Computed + }, + }, + }, + "user": { + Type: schema.TypeList, + Optional: true, + Computed: true, + ForceNew: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "value": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + "display": { + Type: schema.TypeString, + Computed: true, + }, + "name": { + Type: schema.TypeString, + Computed: true, + }, + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + + // Computed + "compartment_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "delete_in_progress": { + Type: schema.TypeBool, + Computed: true, + }, + "domain_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "id": { + Type: schema.TypeString, + Computed: true, + }, + "idcs_created_by": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "idcs_last_modified_by": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "idcs_last_upgraded_in_release": { + Type: schema.TypeString, + Computed: true, + }, + "idcs_prevented_operations": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "meta": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "created": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "last_modified": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "location": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "resource_type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "version": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + }, + }, + }, + "tenancy_ocid": { + Type: schema.TypeString, + Computed: true, + }, + }, + } +} + +func createIdentityDomainsMyAuthToken(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsMyAuthTokenResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.CreateResource(d, sync) +} + +func readIdentityDomainsMyAuthToken(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsMyAuthTokenResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpointForRead(d, "myAuthTokens") + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.ReadResource(sync) +} + +func deleteIdentityDomainsMyAuthToken(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsMyAuthTokenResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + sync.DisableNotFoundRetries = true + + return tfresource.DeleteResource(d, sync) +} + +type IdentityDomainsMyAuthTokenResourceCrud struct { + tfresource.BaseCrud + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.MyAuthToken + DisableNotFoundRetries bool +} + +func (s *IdentityDomainsMyAuthTokenResourceCrud) ID() string { + return *s.Res.Id + //return GetMyAuthTokenCompositeId(s.D.Get("id").(string)) +} + +func (s *IdentityDomainsMyAuthTokenResourceCrud) Create() error { + request := oci_identity_domains.CreateMyAuthTokenRequest{} + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if description, ok := s.D.GetOkExists("description"); ok { + tmp := description.(string) + request.Description = &tmp + } + + if expiresOn, ok := s.D.GetOkExists("expires_on"); ok { + tmp := expiresOn.(string) + request.ExpiresOn = &tmp + } + + if id, ok := s.D.GetOkExists("id"); ok { + tmp := id.(string) + request.Id = &tmp + } + + if ocid, ok := s.D.GetOkExists("ocid"); ok { + tmp := ocid.(string) + request.Ocid = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + if schemas, ok := s.D.GetOkExists("schemas"); ok { + interfaces := schemas.([]interface{}) + tmp := make([]string, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = interfaces[i].(string) + } + } + if len(tmp) != 0 || s.D.HasChange("schemas") { + request.Schemas = tmp + } + } + + if status, ok := s.D.GetOkExists("status"); ok { + request.Status = oci_identity_domains.MyAuthTokenStatusEnum(status.(string)) + } + + if tags, ok := s.D.GetOkExists("tags"); ok { + interfaces := tags.([]interface{}) + tmp := make([]oci_identity_domains.Tags, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "tags", stateDataIndex) + converted, err := s.mapTotags(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("tags") { + request.Tags = tmp + } + } + + if user, ok := s.D.GetOkExists("user"); ok { + if tmpList := user.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "user", 0) + tmp, err := s.mapToMyAuthTokenUser(fieldKeyFormat) + if err != nil { + return err + } + request.User = &tmp + } + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + response, err := s.Client.CreateMyAuthToken(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response.MyAuthToken + return nil +} + +func (s *IdentityDomainsMyAuthTokenResourceCrud) Get() error { + request := oci_identity_domains.GetMyAuthTokenRequest{} + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + tmp := s.D.Id() + request.MyAuthTokenId = &tmp + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + myAuthTokenId, err := parseMyAuthTokenCompositeId(s.D.Id()) + if err == nil { + request.MyAuthTokenId = &myAuthTokenId + } else { + log.Printf("[WARN] Get() unable to parse current ID: %s", s.D.Id()) + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + response, err := s.Client.GetMyAuthToken(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response.MyAuthToken + return nil +} + +func (s *IdentityDomainsMyAuthTokenResourceCrud) Delete() error { + request := oci_identity_domains.DeleteMyAuthTokenRequest{} + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if forceDelete, ok := s.D.GetOkExists("force_delete"); ok { + tmp := forceDelete.(bool) + request.ForceDelete = &tmp + } + + tmp := s.D.Id() + request.MyAuthTokenId = &tmp + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + _, err := s.Client.DeleteMyAuthToken(context.Background(), request) + return err +} + +func (s *IdentityDomainsMyAuthTokenResourceCrud) SetData() error { + + myAuthTokenId, err := parseMyAuthTokenCompositeId(s.D.Id()) + if err == nil { + s.D.SetId(myAuthTokenId) + } else { + log.Printf("[WARN] SetData() unable to parse current ID: %s", s.D.Id()) + } + + if s.Res.CompartmentOcid != nil { + s.D.Set("compartment_ocid", *s.Res.CompartmentOcid) + } + + if s.Res.DeleteInProgress != nil { + s.D.Set("delete_in_progress", *s.Res.DeleteInProgress) + } + + if s.Res.Description != nil { + s.D.Set("description", *s.Res.Description) + } + + if s.Res.DomainOcid != nil { + s.D.Set("domain_ocid", *s.Res.DomainOcid) + } + + if s.Res.ExpiresOn != nil { + s.D.Set("expires_on", *s.Res.ExpiresOn) + } + + if s.Res.IdcsCreatedBy != nil { + s.D.Set("idcs_created_by", []interface{}{idcsCreatedByToMap(s.Res.IdcsCreatedBy)}) + } else { + s.D.Set("idcs_created_by", nil) + } + + if s.Res.IdcsLastModifiedBy != nil { + s.D.Set("idcs_last_modified_by", []interface{}{idcsLastModifiedByToMap(s.Res.IdcsLastModifiedBy)}) + } else { + s.D.Set("idcs_last_modified_by", nil) + } + + if s.Res.IdcsLastUpgradedInRelease != nil { + s.D.Set("idcs_last_upgraded_in_release", *s.Res.IdcsLastUpgradedInRelease) + } + + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + + if s.Res.Meta != nil { + s.D.Set("meta", []interface{}{metaToMap(s.Res.Meta)}) + } else { + s.D.Set("meta", nil) + } + + if s.Res.Ocid != nil { + s.D.Set("ocid", *s.Res.Ocid) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + s.D.Set("status", s.Res.Status) + + tags := []interface{}{} + for _, item := range s.Res.Tags { + tags = append(tags, tagsToMap(item)) + } + s.D.Set("tags", tags) + + if s.Res.TenancyOcid != nil { + s.D.Set("tenancy_ocid", *s.Res.TenancyOcid) + } + + if s.Res.User != nil { + s.D.Set("user", []interface{}{MyAuthTokenUserToMap(s.Res.User)}) + } else { + s.D.Set("user", nil) + } + + return nil +} + +//func GetMyAuthTokenCompositeId(myAuthTokenId string) string { +// id = url.PathEscape(id) +// idcsEndpoint = url.PathEscape(idcsEndpoint) +// myAuthTokenId = url.PathEscape(myAuthTokenId) +// compositeId := "idcsEndpoint/" + idcsEndpoint + "/myAuthTokens/" + myAuthTokenId +// return compositeId +//} + +func parseMyAuthTokenCompositeId(compositeId string) (myAuthTokenId string, err error) { + parts := strings.Split(compositeId, "/") + match, _ := regexp.MatchString("idcsEndpoint/.*/myAuthTokens/.*", compositeId) + if !match || len(parts) != 4 { + err = fmt.Errorf("illegal compositeId %s encountered", compositeId) + return + } + //idcsEndpoint, _ = url.PathUnescape(parts[1]) + myAuthTokenId, _ = url.PathUnescape(parts[3]) + + return +} + +func MyAuthTokenToMap(obj oci_identity_domains.MyAuthToken) map[string]interface{} { + result := map[string]interface{}{} + + if obj.CompartmentOcid != nil { + result["compartment_ocid"] = string(*obj.CompartmentOcid) + } + + if obj.DeleteInProgress != nil { + result["delete_in_progress"] = bool(*obj.DeleteInProgress) + } + + if obj.Description != nil { + result["description"] = string(*obj.Description) + } + + if obj.DomainOcid != nil { + result["domain_ocid"] = string(*obj.DomainOcid) + } + + if obj.ExpiresOn != nil { + result["expires_on"] = string(*obj.ExpiresOn) + } + + if obj.Id != nil { + result["id"] = string(*obj.Id) + } + + if obj.IdcsCreatedBy != nil { + result["idcs_created_by"] = []interface{}{idcsCreatedByToMap(obj.IdcsCreatedBy)} + } + + if obj.IdcsLastModifiedBy != nil { + result["idcs_last_modified_by"] = []interface{}{idcsLastModifiedByToMap(obj.IdcsLastModifiedBy)} + } + + if obj.IdcsLastUpgradedInRelease != nil { + result["idcs_last_upgraded_in_release"] = string(*obj.IdcsLastUpgradedInRelease) + } + + result["idcs_prevented_operations"] = obj.IdcsPreventedOperations + result["idcs_prevented_operations"] = obj.IdcsPreventedOperations + + if obj.Meta != nil { + result["meta"] = []interface{}{metaToMap(obj.Meta)} + } + + if obj.Ocid != nil { + result["ocid"] = string(*obj.Ocid) + } + + result["schemas"] = obj.Schemas + result["schemas"] = obj.Schemas + + result["status"] = string(obj.Status) + + tags := []interface{}{} + for _, item := range obj.Tags { + tags = append(tags, tagsToMap(item)) + } + result["tags"] = tags + + if obj.TenancyOcid != nil { + result["tenancy_ocid"] = string(*obj.TenancyOcid) + } + + if obj.User != nil { + result["user"] = []interface{}{MyAuthTokenUserToMap(obj.User)} + } + + return result +} + +func (s *IdentityDomainsMyAuthTokenResourceCrud) mapToMyAuthTokenUser(fieldKeyFormat string) (oci_identity_domains.MyAuthTokenUser, error) { + result := oci_identity_domains.MyAuthTokenUser{} + + if display, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "display")); ok { + tmp := display.(string) + result.Display = &tmp + } + + if name, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "name")); ok { + tmp := name.(string) + result.Name = &tmp + } + + if ocid, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ocid")); ok { + tmp := ocid.(string) + result.Ocid = &tmp + } + + if ref, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ref")); ok { + tmp := ref.(string) + result.Ref = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func MyAuthTokenUserToMap(obj *oci_identity_domains.MyAuthTokenUser) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Display != nil { + result["display"] = string(*obj.Display) + } + + if obj.Name != nil { + result["name"] = string(*obj.Name) + } + + if obj.Ocid != nil { + result["ocid"] = string(*obj.Ocid) + } + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func (s *IdentityDomainsMyAuthTokenResourceCrud) mapTotags(fieldKeyFormat string) (oci_identity_domains.Tags, error) { + result := oci_identity_domains.Tags{} + + if key, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "key")); ok { + tmp := key.(string) + result.Key = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} diff --git a/internal/service/identity_domains/identity_domains_my_auth_tokens_data_source.go b/internal/service/identity_domains/identity_domains_my_auth_tokens_data_source.go new file mode 100644 index 00000000000..157675dfce2 --- /dev/null +++ b/internal/service/identity_domains/identity_domains_my_auth_tokens_data_source.go @@ -0,0 +1,197 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsMyAuthTokensDataSource() *schema.Resource { + return &schema.Resource{ + Read: readIdentityDomainsMyAuthTokens, + Schema: map[string]*schema.Schema{ + "idcs_endpoint": { + Type: schema.TypeString, + Required: true, + }, + "compartment_id": { + Type: schema.TypeString, + Optional: true, + }, + "my_auth_token_count": { + Type: schema.TypeInt, + Optional: true, + }, + "my_auth_token_filter": { + Type: schema.TypeString, + Optional: true, + }, + "authorization": { + Type: schema.TypeString, + Optional: true, + }, + "resource_type_schema_version": { + Type: schema.TypeString, + Optional: true, + }, + "start_index": { + Type: schema.TypeInt, + Optional: true, + }, + "sort_order": { + Type: schema.TypeString, + Optional: true, + }, + "sort_by": { + Type: schema.TypeString, + Optional: true, + }, + // Computed + "my_auth_tokens": { + Type: schema.TypeList, + Computed: true, + Elem: tfresource.GetDataSourceItemSchema(IdentityDomainsMyAuthTokenResource()), + }, + "items_per_page": { + Type: schema.TypeInt, + Computed: true, + }, + "schemas": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "total_results": { + Type: schema.TypeInt, + Computed: true, + }, + }, + } +} + +func readIdentityDomainsMyAuthTokens(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsMyAuthTokensDataSourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.ReadResource(sync) +} + +type IdentityDomainsMyAuthTokensDataSourceCrud struct { + D *schema.ResourceData + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.ListMyAuthTokensResponse +} + +func (s *IdentityDomainsMyAuthTokensDataSourceCrud) VoidState() { + s.D.SetId("") +} + +func (s *IdentityDomainsMyAuthTokensDataSourceCrud) Get() error { + request := oci_identity_domains.ListMyAuthTokensRequest{} + + if myAuthTokenCount, ok := s.D.GetOkExists("my_auth_token_count"); ok { + tmp := myAuthTokenCount.(int) + request.Count = &tmp + } + + if myAuthTokenFilter, ok := s.D.GetOkExists("my_auth_token_filter"); ok { + tmp := myAuthTokenFilter.(string) + request.Filter = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + if startIndex, ok := s.D.GetOkExists("start_index"); ok { + tmp := startIndex.(int) + request.StartIndex = &tmp + } + + if sortOrder, ok := s.D.GetOkExists("sort_order"); ok { + tmp := oci_identity_domains.ListMyAuthTokensSortOrderEnum(sortOrder.(string)) + request.SortOrder = tmp + } + + if sortBy, ok := s.D.GetOkExists("sort_by"); ok { + tmp := sortBy.(string) + request.SortBy = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "identity_domains") + + response, err := s.Client.ListMyAuthTokens(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response + // IDCS pagination + startIndex := *response.StartIndex + for startIndex+*response.ItemsPerPage <= *response.TotalResults { + startIndex += *response.ItemsPerPage + request.StartIndex = &startIndex + listResponse, err := s.Client.ListMyAuthTokens(context.Background(), request) + if err != nil { + return err + } + + s.Res.Resources = append(s.Res.Resources, listResponse.Resources...) + } + + return nil +} + +func (s *IdentityDomainsMyAuthTokensDataSourceCrud) SetData() error { + if s.Res == nil { + return nil + } + + s.D.SetId(tfresource.GenerateDataSourceHashID("IdentityDomainsMyAuthTokensDataSource-", IdentityDomainsMyAuthTokensDataSource(), s.D)) + + resources := []interface{}{} + for _, item := range s.Res.Resources { + resources = append(resources, MyAuthTokenToMap(item)) + } + s.D.Set("my_auth_tokens", resources) + + if s.Res.ItemsPerPage != nil { + s.D.Set("items_per_page", *s.Res.ItemsPerPage) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + if s.Res.StartIndex != nil { + s.D.Set("start_index", *s.Res.StartIndex) + } + + if s.Res.TotalResults != nil { + s.D.Set("total_results", *s.Res.TotalResults) + } + + return nil +} diff --git a/internal/service/identity_domains/identity_domains_my_customer_secret_key_data_source.go b/internal/service/identity_domains/identity_domains_my_customer_secret_key_data_source.go new file mode 100644 index 00000000000..c85aab43076 --- /dev/null +++ b/internal/service/identity_domains/identity_domains_my_customer_secret_key_data_source.go @@ -0,0 +1,178 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsMyCustomerSecretKeyDataSource() *schema.Resource { + fieldMap := make(map[string]*schema.Schema) + fieldMap["authorization"] = &schema.Schema{ + Type: schema.TypeString, + Optional: true, + } + fieldMap["idcs_endpoint"] = &schema.Schema{ + Type: schema.TypeString, + Required: true, + } + fieldMap["my_customer_secret_key_id"] = &schema.Schema{ + Type: schema.TypeString, + Required: true, + } + fieldMap["resource_type_schema_version"] = &schema.Schema{ + Type: schema.TypeString, + Optional: true, + } + return tfresource.GetSingularDataSourceItemSchema(IdentityDomainsMyCustomerSecretKeyResource(), fieldMap, readSingularIdentityDomainsMyCustomerSecretKey) +} + +func readSingularIdentityDomainsMyCustomerSecretKey(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsMyCustomerSecretKeyDataSourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + + return tfresource.ReadResource(sync) +} + +type IdentityDomainsMyCustomerSecretKeyDataSourceCrud struct { + D *schema.ResourceData + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.GetMyCustomerSecretKeyResponse +} + +func (s *IdentityDomainsMyCustomerSecretKeyDataSourceCrud) VoidState() { + s.D.SetId("") +} + +func (s *IdentityDomainsMyCustomerSecretKeyDataSourceCrud) Get() error { + request := oci_identity_domains.GetMyCustomerSecretKeyRequest{} + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if myCustomerSecretKeyId, ok := s.D.GetOkExists("my_customer_secret_key_id"); ok { + tmp := myCustomerSecretKeyId.(string) + request.MyCustomerSecretKeyId = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "identity_domains") + + response, err := s.Client.GetMyCustomerSecretKey(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response + return nil +} + +func (s *IdentityDomainsMyCustomerSecretKeyDataSourceCrud) SetData() error { + if s.Res == nil { + return nil + } + + s.D.SetId(*s.Res.Id) + + if s.Res.AccessKey != nil { + s.D.Set("access_key", *s.Res.AccessKey) + } + + if s.Res.CompartmentOcid != nil { + s.D.Set("compartment_ocid", *s.Res.CompartmentOcid) + } + + if s.Res.DeleteInProgress != nil { + s.D.Set("delete_in_progress", *s.Res.DeleteInProgress) + } + + if s.Res.Description != nil { + s.D.Set("description", *s.Res.Description) + } + + if s.Res.DisplayName != nil { + s.D.Set("display_name", *s.Res.DisplayName) + } + + if s.Res.DomainOcid != nil { + s.D.Set("domain_ocid", *s.Res.DomainOcid) + } + + if s.Res.ExpiresOn != nil { + s.D.Set("expires_on", *s.Res.ExpiresOn) + } + + if s.Res.IdcsCreatedBy != nil { + s.D.Set("idcs_created_by", []interface{}{idcsCreatedByToMap(s.Res.IdcsCreatedBy)}) + } else { + s.D.Set("idcs_created_by", nil) + } + + if s.Res.IdcsLastModifiedBy != nil { + s.D.Set("idcs_last_modified_by", []interface{}{idcsLastModifiedByToMap(s.Res.IdcsLastModifiedBy)}) + } else { + s.D.Set("idcs_last_modified_by", nil) + } + + if s.Res.IdcsLastUpgradedInRelease != nil { + s.D.Set("idcs_last_upgraded_in_release", *s.Res.IdcsLastUpgradedInRelease) + } + + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + + if s.Res.Meta != nil { + s.D.Set("meta", []interface{}{metaToMap(s.Res.Meta)}) + } else { + s.D.Set("meta", nil) + } + + if s.Res.Ocid != nil { + s.D.Set("ocid", *s.Res.Ocid) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + s.D.Set("status", s.Res.Status) + + tags := []interface{}{} + for _, item := range s.Res.Tags { + tags = append(tags, tagsToMap(item)) + } + s.D.Set("tags", tags) + + if s.Res.TenancyOcid != nil { + s.D.Set("tenancy_ocid", *s.Res.TenancyOcid) + } + + if s.Res.User != nil { + s.D.Set("user", []interface{}{MyCustomerSecretKeyUserToMap(s.Res.User)}) + } else { + s.D.Set("user", nil) + } + + return nil +} diff --git a/internal/service/identity_domains/identity_domains_my_customer_secret_key_resource.go b/internal/service/identity_domains/identity_domains_my_customer_secret_key_resource.go new file mode 100644 index 00000000000..8fab4537ef4 --- /dev/null +++ b/internal/service/identity_domains/identity_domains_my_customer_secret_key_resource.go @@ -0,0 +1,794 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + "fmt" + "log" + "net/url" + "regexp" + "strings" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsMyCustomerSecretKeyResource() *schema.Resource { + return &schema.Resource{ + Importer: &schema.ResourceImporter{ + State: schema.ImportStatePassthrough, + }, + Timeouts: tfresource.DefaultTimeout, + Create: createIdentityDomainsMyCustomerSecretKey, + Read: readIdentityDomainsMyCustomerSecretKey, + Delete: deleteIdentityDomainsMyCustomerSecretKey, + Schema: map[string]*schema.Schema{ + // Required + "idcs_endpoint": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "schemas": { + Type: schema.TypeList, + Required: true, + ForceNew: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + + // Optional + "authorization": { + Type: schema.TypeString, + Optional: true, + ForceNew: true, + }, + "description": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "display_name": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "expires_on": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "resource_type_schema_version": { + Type: schema.TypeString, + Optional: true, + ForceNew: true, + }, + "status": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "tags": { + Type: schema.TypeList, + Optional: true, + Computed: true, + ForceNew: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "key": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "value": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + + // Optional + + // Computed + }, + }, + }, + "user": { + Type: schema.TypeList, + Optional: true, + Computed: true, + ForceNew: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "value": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + "display": { + Type: schema.TypeString, + Computed: true, + }, + "name": { + Type: schema.TypeString, + Computed: true, + }, + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + + // Computed + "access_key": { + Type: schema.TypeString, + Computed: true, + }, + "compartment_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "delete_in_progress": { + Type: schema.TypeBool, + Computed: true, + }, + "domain_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "id": { + Type: schema.TypeString, + Computed: true, + }, + "idcs_created_by": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "idcs_last_modified_by": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "idcs_last_upgraded_in_release": { + Type: schema.TypeString, + Computed: true, + }, + "idcs_prevented_operations": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "meta": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "created": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "last_modified": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "location": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "resource_type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "version": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + }, + }, + }, + "tenancy_ocid": { + Type: schema.TypeString, + Computed: true, + }, + }, + } +} + +func createIdentityDomainsMyCustomerSecretKey(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsMyCustomerSecretKeyResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.CreateResource(d, sync) +} + +func readIdentityDomainsMyCustomerSecretKey(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsMyCustomerSecretKeyResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpointForRead(d, "myCustomerSecretKeys") + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.ReadResource(sync) +} + +func deleteIdentityDomainsMyCustomerSecretKey(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsMyCustomerSecretKeyResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + sync.DisableNotFoundRetries = true + + return tfresource.DeleteResource(d, sync) +} + +type IdentityDomainsMyCustomerSecretKeyResourceCrud struct { + tfresource.BaseCrud + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.MyCustomerSecretKey + DisableNotFoundRetries bool +} + +func (s *IdentityDomainsMyCustomerSecretKeyResourceCrud) ID() string { + return *s.Res.Id + //return GetMyCustomerSecretKeyCompositeId(s.D.Get("id").(string)) +} + +func (s *IdentityDomainsMyCustomerSecretKeyResourceCrud) Create() error { + request := oci_identity_domains.CreateMyCustomerSecretKeyRequest{} + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if description, ok := s.D.GetOkExists("description"); ok { + tmp := description.(string) + request.Description = &tmp + } + + if displayName, ok := s.D.GetOkExists("display_name"); ok { + tmp := displayName.(string) + request.DisplayName = &tmp + } + + if expiresOn, ok := s.D.GetOkExists("expires_on"); ok { + tmp := expiresOn.(string) + request.ExpiresOn = &tmp + } + + if id, ok := s.D.GetOkExists("id"); ok { + tmp := id.(string) + request.Id = &tmp + } + + if ocid, ok := s.D.GetOkExists("ocid"); ok { + tmp := ocid.(string) + request.Ocid = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + if schemas, ok := s.D.GetOkExists("schemas"); ok { + interfaces := schemas.([]interface{}) + tmp := make([]string, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = interfaces[i].(string) + } + } + if len(tmp) != 0 || s.D.HasChange("schemas") { + request.Schemas = tmp + } + } + + if status, ok := s.D.GetOkExists("status"); ok { + request.Status = oci_identity_domains.MyCustomerSecretKeyStatusEnum(status.(string)) + } + + if tags, ok := s.D.GetOkExists("tags"); ok { + interfaces := tags.([]interface{}) + tmp := make([]oci_identity_domains.Tags, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "tags", stateDataIndex) + converted, err := s.mapTotags(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("tags") { + request.Tags = tmp + } + } + + if user, ok := s.D.GetOkExists("user"); ok { + if tmpList := user.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "user", 0) + tmp, err := s.mapToMyCustomerSecretKeyUser(fieldKeyFormat) + if err != nil { + return err + } + request.User = &tmp + } + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + response, err := s.Client.CreateMyCustomerSecretKey(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response.MyCustomerSecretKey + return nil +} + +func (s *IdentityDomainsMyCustomerSecretKeyResourceCrud) Get() error { + request := oci_identity_domains.GetMyCustomerSecretKeyRequest{} + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + tmp := s.D.Id() + request.MyCustomerSecretKeyId = &tmp + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + myCustomerSecretKeyId, err := parseMyCustomerSecretKeyCompositeId(s.D.Id()) + if err == nil { + request.MyCustomerSecretKeyId = &myCustomerSecretKeyId + } else { + log.Printf("[WARN] Get() unable to parse current ID: %s", s.D.Id()) + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + response, err := s.Client.GetMyCustomerSecretKey(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response.MyCustomerSecretKey + return nil +} + +func (s *IdentityDomainsMyCustomerSecretKeyResourceCrud) Delete() error { + request := oci_identity_domains.DeleteMyCustomerSecretKeyRequest{} + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if forceDelete, ok := s.D.GetOkExists("force_delete"); ok { + tmp := forceDelete.(bool) + request.ForceDelete = &tmp + } + + tmp := s.D.Id() + request.MyCustomerSecretKeyId = &tmp + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + _, err := s.Client.DeleteMyCustomerSecretKey(context.Background(), request) + return err +} + +func (s *IdentityDomainsMyCustomerSecretKeyResourceCrud) SetData() error { + + myCustomerSecretKeyId, err := parseMyCustomerSecretKeyCompositeId(s.D.Id()) + if err == nil { + s.D.SetId(myCustomerSecretKeyId) + } else { + log.Printf("[WARN] SetData() unable to parse current ID: %s", s.D.Id()) + } + + if s.Res.AccessKey != nil { + s.D.Set("access_key", *s.Res.AccessKey) + } + + if s.Res.CompartmentOcid != nil { + s.D.Set("compartment_ocid", *s.Res.CompartmentOcid) + } + + if s.Res.DeleteInProgress != nil { + s.D.Set("delete_in_progress", *s.Res.DeleteInProgress) + } + + if s.Res.Description != nil { + s.D.Set("description", *s.Res.Description) + } + + if s.Res.DisplayName != nil { + s.D.Set("display_name", *s.Res.DisplayName) + } + + if s.Res.DomainOcid != nil { + s.D.Set("domain_ocid", *s.Res.DomainOcid) + } + + if s.Res.ExpiresOn != nil { + s.D.Set("expires_on", *s.Res.ExpiresOn) + } + + if s.Res.IdcsCreatedBy != nil { + s.D.Set("idcs_created_by", []interface{}{idcsCreatedByToMap(s.Res.IdcsCreatedBy)}) + } else { + s.D.Set("idcs_created_by", nil) + } + + if s.Res.IdcsLastModifiedBy != nil { + s.D.Set("idcs_last_modified_by", []interface{}{idcsLastModifiedByToMap(s.Res.IdcsLastModifiedBy)}) + } else { + s.D.Set("idcs_last_modified_by", nil) + } + + if s.Res.IdcsLastUpgradedInRelease != nil { + s.D.Set("idcs_last_upgraded_in_release", *s.Res.IdcsLastUpgradedInRelease) + } + + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + + if s.Res.Meta != nil { + s.D.Set("meta", []interface{}{metaToMap(s.Res.Meta)}) + } else { + s.D.Set("meta", nil) + } + + if s.Res.Ocid != nil { + s.D.Set("ocid", *s.Res.Ocid) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + s.D.Set("status", s.Res.Status) + + tags := []interface{}{} + for _, item := range s.Res.Tags { + tags = append(tags, tagsToMap(item)) + } + s.D.Set("tags", tags) + + if s.Res.TenancyOcid != nil { + s.D.Set("tenancy_ocid", *s.Res.TenancyOcid) + } + + if s.Res.User != nil { + s.D.Set("user", []interface{}{MyCustomerSecretKeyUserToMap(s.Res.User)}) + } else { + s.D.Set("user", nil) + } + + return nil +} + +//func GetMyCustomerSecretKeyCompositeId(myCustomerSecretKeyId string) string { +// id = url.PathEscape(id) +// idcsEndpoint = url.PathEscape(idcsEndpoint) +// myCustomerSecretKeyId = url.PathEscape(myCustomerSecretKeyId) +// compositeId := "idcsEndpoint/" + idcsEndpoint + "/myCustomerSecretKeys/" + myCustomerSecretKeyId +// return compositeId +//} + +func parseMyCustomerSecretKeyCompositeId(compositeId string) (myCustomerSecretKeyId string, err error) { + parts := strings.Split(compositeId, "/") + match, _ := regexp.MatchString("idcsEndpoint/.*/myCustomerSecretKeys/.*", compositeId) + if !match || len(parts) != 4 { + err = fmt.Errorf("illegal compositeId %s encountered", compositeId) + return + } + //idcsEndpoint, _ = url.PathUnescape(parts[1]) + myCustomerSecretKeyId, _ = url.PathUnescape(parts[3]) + + return +} + +func MyCustomerSecretKeyToMap(obj oci_identity_domains.MyCustomerSecretKey) map[string]interface{} { + result := map[string]interface{}{} + + if obj.AccessKey != nil { + result["access_key"] = string(*obj.AccessKey) + } + + if obj.CompartmentOcid != nil { + result["compartment_ocid"] = string(*obj.CompartmentOcid) + } + + if obj.DeleteInProgress != nil { + result["delete_in_progress"] = bool(*obj.DeleteInProgress) + } + + if obj.Description != nil { + result["description"] = string(*obj.Description) + } + + if obj.DisplayName != nil { + result["display_name"] = string(*obj.DisplayName) + } + + if obj.DomainOcid != nil { + result["domain_ocid"] = string(*obj.DomainOcid) + } + + if obj.ExpiresOn != nil { + result["expires_on"] = string(*obj.ExpiresOn) + } + + if obj.Id != nil { + result["id"] = string(*obj.Id) + } + + if obj.IdcsCreatedBy != nil { + result["idcs_created_by"] = []interface{}{idcsCreatedByToMap(obj.IdcsCreatedBy)} + } + + if obj.IdcsLastModifiedBy != nil { + result["idcs_last_modified_by"] = []interface{}{idcsLastModifiedByToMap(obj.IdcsLastModifiedBy)} + } + + if obj.IdcsLastUpgradedInRelease != nil { + result["idcs_last_upgraded_in_release"] = string(*obj.IdcsLastUpgradedInRelease) + } + + result["idcs_prevented_operations"] = obj.IdcsPreventedOperations + result["idcs_prevented_operations"] = obj.IdcsPreventedOperations + + if obj.Meta != nil { + result["meta"] = []interface{}{metaToMap(obj.Meta)} + } + + if obj.Ocid != nil { + result["ocid"] = string(*obj.Ocid) + } + + result["schemas"] = obj.Schemas + result["schemas"] = obj.Schemas + + result["status"] = string(obj.Status) + + tags := []interface{}{} + for _, item := range obj.Tags { + tags = append(tags, tagsToMap(item)) + } + result["tags"] = tags + + if obj.TenancyOcid != nil { + result["tenancy_ocid"] = string(*obj.TenancyOcid) + } + + if obj.User != nil { + result["user"] = []interface{}{MyCustomerSecretKeyUserToMap(obj.User)} + } + + return result +} + +func (s *IdentityDomainsMyCustomerSecretKeyResourceCrud) mapToMyCustomerSecretKeyUser(fieldKeyFormat string) (oci_identity_domains.MyCustomerSecretKeyUser, error) { + result := oci_identity_domains.MyCustomerSecretKeyUser{} + + if display, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "display")); ok { + tmp := display.(string) + result.Display = &tmp + } + + if name, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "name")); ok { + tmp := name.(string) + result.Name = &tmp + } + + if ocid, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ocid")); ok { + tmp := ocid.(string) + result.Ocid = &tmp + } + + if ref, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ref")); ok { + tmp := ref.(string) + result.Ref = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func MyCustomerSecretKeyUserToMap(obj *oci_identity_domains.MyCustomerSecretKeyUser) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Display != nil { + result["display"] = string(*obj.Display) + } + + if obj.Name != nil { + result["name"] = string(*obj.Name) + } + + if obj.Ocid != nil { + result["ocid"] = string(*obj.Ocid) + } + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func (s *IdentityDomainsMyCustomerSecretKeyResourceCrud) mapTotags(fieldKeyFormat string) (oci_identity_domains.Tags, error) { + result := oci_identity_domains.Tags{} + + if key, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "key")); ok { + tmp := key.(string) + result.Key = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} diff --git a/internal/service/identity_domains/identity_domains_my_customer_secret_keys_data_source.go b/internal/service/identity_domains/identity_domains_my_customer_secret_keys_data_source.go new file mode 100644 index 00000000000..3c80f3407c6 --- /dev/null +++ b/internal/service/identity_domains/identity_domains_my_customer_secret_keys_data_source.go @@ -0,0 +1,197 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsMyCustomerSecretKeysDataSource() *schema.Resource { + return &schema.Resource{ + Read: readIdentityDomainsMyCustomerSecretKeys, + Schema: map[string]*schema.Schema{ + "idcs_endpoint": { + Type: schema.TypeString, + Required: true, + }, + "compartment_id": { + Type: schema.TypeString, + Optional: true, + }, + "my_customer_secret_key_count": { + Type: schema.TypeInt, + Optional: true, + }, + "my_customer_secret_key_filter": { + Type: schema.TypeString, + Optional: true, + }, + "authorization": { + Type: schema.TypeString, + Optional: true, + }, + "resource_type_schema_version": { + Type: schema.TypeString, + Optional: true, + }, + "start_index": { + Type: schema.TypeInt, + Optional: true, + }, + "sort_order": { + Type: schema.TypeString, + Optional: true, + }, + "sort_by": { + Type: schema.TypeString, + Optional: true, + }, + // Computed + "my_customer_secret_keys": { + Type: schema.TypeList, + Computed: true, + Elem: tfresource.GetDataSourceItemSchema(IdentityDomainsMyCustomerSecretKeyResource()), + }, + "items_per_page": { + Type: schema.TypeInt, + Computed: true, + }, + "schemas": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "total_results": { + Type: schema.TypeInt, + Computed: true, + }, + }, + } +} + +func readIdentityDomainsMyCustomerSecretKeys(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsMyCustomerSecretKeysDataSourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.ReadResource(sync) +} + +type IdentityDomainsMyCustomerSecretKeysDataSourceCrud struct { + D *schema.ResourceData + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.ListMyCustomerSecretKeysResponse +} + +func (s *IdentityDomainsMyCustomerSecretKeysDataSourceCrud) VoidState() { + s.D.SetId("") +} + +func (s *IdentityDomainsMyCustomerSecretKeysDataSourceCrud) Get() error { + request := oci_identity_domains.ListMyCustomerSecretKeysRequest{} + + if myCustomerSecretKeyCount, ok := s.D.GetOkExists("my_customer_secret_key_count"); ok { + tmp := myCustomerSecretKeyCount.(int) + request.Count = &tmp + } + + if myCustomerSecretKeyFilter, ok := s.D.GetOkExists("my_customer_secret_key_filter"); ok { + tmp := myCustomerSecretKeyFilter.(string) + request.Filter = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + if startIndex, ok := s.D.GetOkExists("start_index"); ok { + tmp := startIndex.(int) + request.StartIndex = &tmp + } + + if sortOrder, ok := s.D.GetOkExists("sort_order"); ok { + tmp := oci_identity_domains.ListMyCustomerSecretKeysSortOrderEnum(sortOrder.(string)) + request.SortOrder = tmp + } + + if sortBy, ok := s.D.GetOkExists("sort_by"); ok { + tmp := sortBy.(string) + request.SortBy = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "identity_domains") + + response, err := s.Client.ListMyCustomerSecretKeys(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response + // IDCS pagination + startIndex := *response.StartIndex + for startIndex+*response.ItemsPerPage <= *response.TotalResults { + startIndex += *response.ItemsPerPage + request.StartIndex = &startIndex + listResponse, err := s.Client.ListMyCustomerSecretKeys(context.Background(), request) + if err != nil { + return err + } + + s.Res.Resources = append(s.Res.Resources, listResponse.Resources...) + } + + return nil +} + +func (s *IdentityDomainsMyCustomerSecretKeysDataSourceCrud) SetData() error { + if s.Res == nil { + return nil + } + + s.D.SetId(tfresource.GenerateDataSourceHashID("IdentityDomainsMyCustomerSecretKeysDataSource-", IdentityDomainsMyCustomerSecretKeysDataSource(), s.D)) + + resources := []interface{}{} + for _, item := range s.Res.Resources { + resources = append(resources, MyCustomerSecretKeyToMap(item)) + } + s.D.Set("my_customer_secret_keys", resources) + + if s.Res.ItemsPerPage != nil { + s.D.Set("items_per_page", *s.Res.ItemsPerPage) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + if s.Res.StartIndex != nil { + s.D.Set("start_index", *s.Res.StartIndex) + } + + if s.Res.TotalResults != nil { + s.D.Set("total_results", *s.Res.TotalResults) + } + + return nil +} diff --git a/internal/service/identity_domains/identity_domains_my_device_data_source.go b/internal/service/identity_domains/identity_domains_my_device_data_source.go new file mode 100644 index 00000000000..8ce67df6f59 --- /dev/null +++ b/internal/service/identity_domains/identity_domains_my_device_data_source.go @@ -0,0 +1,687 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsMyDeviceDataSource() *schema.Resource { + return &schema.Resource{ + Read: readSingularIdentityDomainsMyDevice, + Schema: map[string]*schema.Schema{ + "attribute_sets": { + Type: schema.TypeList, + Optional: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "attributes": { + Type: schema.TypeString, + Optional: true, + }, + "authorization": { + Type: schema.TypeString, + Optional: true, + }, + "idcs_endpoint": { + Type: schema.TypeString, + Required: true, + }, + "my_device_id": { + Type: schema.TypeString, + Required: true, + }, + "resource_type_schema_version": { + Type: schema.TypeString, + Optional: true, + }, + // Computed + "additional_attributes": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + + // Computed + "key": { + Type: schema.TypeString, + Computed: true, + }, + "value": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "app_version": { + Type: schema.TypeString, + Computed: true, + }, + "authentication_factors": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + + // Computed + "public_key": { + Type: schema.TypeString, + Computed: true, + }, + "status": { + Type: schema.TypeString, + Computed: true, + }, + "type": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "authentication_method": { + Type: schema.TypeString, + Computed: true, + }, + "base_public_key": { + Type: schema.TypeString, + Computed: true, + }, + "compartment_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "country_code": { + Type: schema.TypeString, + Computed: true, + }, + "delete_in_progress": { + Type: schema.TypeBool, + Computed: true, + }, + "device_type": { + Type: schema.TypeString, + Computed: true, + }, + "device_uuid": { + Type: schema.TypeString, + Computed: true, + }, + "display_name": { + Type: schema.TypeString, + Computed: true, + }, + "domain_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "expires_on": { + Type: schema.TypeInt, + Computed: true, + }, + "external_id": { + Type: schema.TypeString, + Computed: true, + }, + "idcs_created_by": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + + // Computed + "display": { + Type: schema.TypeString, + Computed: true, + }, + "ocid": { + Type: schema.TypeString, + Computed: true, + }, + "ref": { + Type: schema.TypeString, + Computed: true, + }, + "type": { + Type: schema.TypeString, + Computed: true, + }, + "value": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "idcs_last_modified_by": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + + // Computed + "display": { + Type: schema.TypeString, + Computed: true, + }, + "ocid": { + Type: schema.TypeString, + Computed: true, + }, + "ref": { + Type: schema.TypeString, + Computed: true, + }, + "type": { + Type: schema.TypeString, + Computed: true, + }, + "value": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "idcs_last_upgraded_in_release": { + Type: schema.TypeString, + Computed: true, + }, + "idcs_prevented_operations": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "is_acc_rec_enabled": { + Type: schema.TypeBool, + Computed: true, + }, + "is_compliant": { + Type: schema.TypeBool, + Computed: true, + }, + "last_sync_time": { + Type: schema.TypeString, + Computed: true, + }, + "last_validated_time": { + Type: schema.TypeString, + Computed: true, + }, + "meta": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + + // Computed + "created": { + Type: schema.TypeString, + Computed: true, + }, + "last_modified": { + Type: schema.TypeString, + Computed: true, + }, + "location": { + Type: schema.TypeString, + Computed: true, + }, + "resource_type": { + Type: schema.TypeString, + Computed: true, + }, + "version": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "non_compliances": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + + // Computed + "action": { + Type: schema.TypeString, + Computed: true, + }, + "name": { + Type: schema.TypeString, + Computed: true, + }, + "value": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "ocid": { + Type: schema.TypeString, + Computed: true, + }, + "package_id": { + Type: schema.TypeString, + Computed: true, + }, + "phone_number": { + Type: schema.TypeString, + Computed: true, + }, + "platform": { + Type: schema.TypeString, + Computed: true, + }, + "push_notification_target": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + "value": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "reason": { + Type: schema.TypeString, + Computed: true, + }, + "schemas": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "seed": { + Type: schema.TypeString, + Computed: true, + }, + "seed_dek_id": { + Type: schema.TypeString, + Computed: true, + }, + "status": { + Type: schema.TypeString, + Computed: true, + }, + "tags": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + + // Computed + "key": { + Type: schema.TypeString, + Computed: true, + }, + "value": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "tenancy_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "third_party_factor": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + "third_party_factor_type": { + Type: schema.TypeString, + Computed: true, + }, + "third_party_vendor_name": { + Type: schema.TypeString, + Computed: true, + }, + "value": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "user": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + + // Computed + "display": { + Type: schema.TypeString, + Computed: true, + }, + "ocid": { + Type: schema.TypeString, + Computed: true, + }, + "ref": { + Type: schema.TypeString, + Computed: true, + }, + "value": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + }, + } +} + +func readSingularIdentityDomainsMyDevice(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsMyDeviceDataSourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + + return tfresource.ReadResource(sync) +} + +type IdentityDomainsMyDeviceDataSourceCrud struct { + D *schema.ResourceData + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.GetMyDeviceResponse +} + +func (s *IdentityDomainsMyDeviceDataSourceCrud) VoidState() { + s.D.SetId("") +} + +func (s *IdentityDomainsMyDeviceDataSourceCrud) Get() error { + request := oci_identity_domains.GetMyDeviceRequest{} + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if myDeviceId, ok := s.D.GetOkExists("my_device_id"); ok { + tmp := myDeviceId.(string) + request.MyDeviceId = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "identity_domains") + + response, err := s.Client.GetMyDevice(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response + return nil +} + +func (s *IdentityDomainsMyDeviceDataSourceCrud) SetData() error { + if s.Res == nil { + return nil + } + + s.D.SetId(*s.Res.Id) + + additionalAttributes := []interface{}{} + for _, item := range s.Res.AdditionalAttributes { + additionalAttributes = append(additionalAttributes, MyDeviceAdditionalAttributesToMap(item)) + } + s.D.Set("additional_attributes", additionalAttributes) + + if s.Res.AppVersion != nil { + s.D.Set("app_version", *s.Res.AppVersion) + } + + authenticationFactors := []interface{}{} + for _, item := range s.Res.AuthenticationFactors { + authenticationFactors = append(authenticationFactors, MyDeviceAuthenticationFactorsToMap(item)) + } + s.D.Set("authentication_factors", authenticationFactors) + + if s.Res.AuthenticationMethod != nil { + s.D.Set("authentication_method", *s.Res.AuthenticationMethod) + } + + if s.Res.BasePublicKey != nil { + s.D.Set("base_public_key", *s.Res.BasePublicKey) + } + + if s.Res.CompartmentOcid != nil { + s.D.Set("compartment_ocid", *s.Res.CompartmentOcid) + } + + if s.Res.CountryCode != nil { + s.D.Set("country_code", *s.Res.CountryCode) + } + + if s.Res.DeleteInProgress != nil { + s.D.Set("delete_in_progress", *s.Res.DeleteInProgress) + } + + if s.Res.DeviceType != nil { + s.D.Set("device_type", *s.Res.DeviceType) + } + + if s.Res.DeviceUUID != nil { + s.D.Set("device_uuid", *s.Res.DeviceUUID) + } + + if s.Res.DisplayName != nil { + s.D.Set("display_name", *s.Res.DisplayName) + } + + if s.Res.DomainOcid != nil { + s.D.Set("domain_ocid", *s.Res.DomainOcid) + } + + if s.Res.ExpiresOn != nil { + s.D.Set("expires_on", *s.Res.ExpiresOn) + } + + if s.Res.ExternalId != nil { + s.D.Set("external_id", *s.Res.ExternalId) + } + + if s.Res.IdcsCreatedBy != nil { + s.D.Set("idcs_created_by", []interface{}{idcsCreatedByToMap(s.Res.IdcsCreatedBy)}) + } else { + s.D.Set("idcs_created_by", nil) + } + + if s.Res.IdcsLastModifiedBy != nil { + s.D.Set("idcs_last_modified_by", []interface{}{idcsLastModifiedByToMap(s.Res.IdcsLastModifiedBy)}) + } else { + s.D.Set("idcs_last_modified_by", nil) + } + + if s.Res.IdcsLastUpgradedInRelease != nil { + s.D.Set("idcs_last_upgraded_in_release", *s.Res.IdcsLastUpgradedInRelease) + } + + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + + if s.Res.IsAccRecEnabled != nil { + s.D.Set("is_acc_rec_enabled", *s.Res.IsAccRecEnabled) + } + + if s.Res.IsCompliant != nil { + s.D.Set("is_compliant", *s.Res.IsCompliant) + } + + if s.Res.LastSyncTime != nil { + s.D.Set("last_sync_time", *s.Res.LastSyncTime) + } + + if s.Res.LastValidatedTime != nil { + s.D.Set("last_validated_time", *s.Res.LastValidatedTime) + } + + if s.Res.Meta != nil { + s.D.Set("meta", []interface{}{metaToMap(s.Res.Meta)}) + } else { + s.D.Set("meta", nil) + } + + nonCompliances := []interface{}{} + for _, item := range s.Res.NonCompliances { + nonCompliances = append(nonCompliances, MyDeviceNonCompliancesToMap(item)) + } + s.D.Set("non_compliances", nonCompliances) + + if s.Res.Ocid != nil { + s.D.Set("ocid", *s.Res.Ocid) + } + + if s.Res.PackageId != nil { + s.D.Set("package_id", *s.Res.PackageId) + } + + if s.Res.PhoneNumber != nil { + s.D.Set("phone_number", *s.Res.PhoneNumber) + } + + s.D.Set("platform", s.Res.Platform) + + if s.Res.PushNotificationTarget != nil { + s.D.Set("push_notification_target", []interface{}{MyDevicePushNotificationTargetToMap(s.Res.PushNotificationTarget)}) + } else { + s.D.Set("push_notification_target", nil) + } + + if s.Res.Reason != nil { + s.D.Set("reason", *s.Res.Reason) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + if s.Res.Seed != nil { + s.D.Set("seed", *s.Res.Seed) + } + + if s.Res.SeedDekId != nil { + s.D.Set("seed_dek_id", *s.Res.SeedDekId) + } + + s.D.Set("status", s.Res.Status) + + tags := []interface{}{} + for _, item := range s.Res.Tags { + tags = append(tags, tagsToMap(item)) + } + s.D.Set("tags", tags) + + if s.Res.TenancyOcid != nil { + s.D.Set("tenancy_ocid", *s.Res.TenancyOcid) + } + + if s.Res.ThirdPartyFactor != nil { + s.D.Set("third_party_factor", []interface{}{MyDeviceThirdPartyFactorToMap(s.Res.ThirdPartyFactor)}) + } else { + s.D.Set("third_party_factor", nil) + } + + if s.Res.User != nil { + s.D.Set("user", []interface{}{MyDeviceUserToMap(s.Res.User)}) + } else { + s.D.Set("user", nil) + } + + return nil +} diff --git a/internal/service/identity_domains/identity_domains_my_devices_data_source.go b/internal/service/identity_domains/identity_domains_my_devices_data_source.go new file mode 100644 index 00000000000..de849a9251e --- /dev/null +++ b/internal/service/identity_domains/identity_domains_my_devices_data_source.go @@ -0,0 +1,482 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsMyDevicesDataSource() *schema.Resource { + return &schema.Resource{ + Read: readIdentityDomainsMyDevices, + Schema: map[string]*schema.Schema{ + "idcs_endpoint": { + Type: schema.TypeString, + Required: true, + }, + "compartment_id": { + Type: schema.TypeString, + Optional: true, + }, + "my_device_count": { + Type: schema.TypeInt, + Optional: true, + }, + "my_device_filter": { + Type: schema.TypeString, + Optional: true, + }, + "attribute_sets": { + Type: schema.TypeList, + Optional: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "attributes": { + Type: schema.TypeString, + Optional: true, + }, + "authorization": { + Type: schema.TypeString, + Optional: true, + }, + "resource_type_schema_version": { + Type: schema.TypeString, + Optional: true, + }, + "start_index": { + Type: schema.TypeInt, + Optional: true, + }, + "sort_order": { + Type: schema.TypeString, + Optional: true, + }, + "sort_by": { + Type: schema.TypeString, + Optional: true, + }, + // Computed + "my_devices": { + Type: schema.TypeList, + Computed: true, + Elem: tfresource.GetDataSourceItemSchema(IdentityDomainsMyDeviceDataSource()), + }, + "items_per_page": { + Type: schema.TypeInt, + Computed: true, + }, + "schemas": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "total_results": { + Type: schema.TypeInt, + Computed: true, + }, + }, + } +} + +func readIdentityDomainsMyDevices(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsMyDevicesDataSourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.ReadResource(sync) +} + +type IdentityDomainsMyDevicesDataSourceCrud struct { + D *schema.ResourceData + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.ListMyDevicesResponse +} + +func (s *IdentityDomainsMyDevicesDataSourceCrud) VoidState() { + s.D.SetId("") +} + +func (s *IdentityDomainsMyDevicesDataSourceCrud) Get() error { + request := oci_identity_domains.ListMyDevicesRequest{} + + if myDeviceCount, ok := s.D.GetOkExists("my_device_count"); ok { + tmp := myDeviceCount.(int) + request.Count = &tmp + } + + if myDeviceFilter, ok := s.D.GetOkExists("my_device_filter"); ok { + tmp := myDeviceFilter.(string) + request.Filter = &tmp + } + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + if startIndex, ok := s.D.GetOkExists("start_index"); ok { + tmp := startIndex.(int) + request.StartIndex = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "identity_domains") + + response, err := s.Client.ListMyDevices(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response + // IDCS pagination + startIndex := *response.StartIndex + for startIndex+*response.ItemsPerPage <= *response.TotalResults { + startIndex += *response.ItemsPerPage + request.StartIndex = &startIndex + listResponse, err := s.Client.ListMyDevices(context.Background(), request) + if err != nil { + return err + } + + s.Res.Resources = append(s.Res.Resources, listResponse.Resources...) + } + + return nil +} + +func (s *IdentityDomainsMyDevicesDataSourceCrud) SetData() error { + if s.Res == nil { + return nil + } + + s.D.SetId(tfresource.GenerateDataSourceHashID("IdentityDomainsMyDevicesDataSource-", IdentityDomainsMyDevicesDataSource(), s.D)) + + resources := []interface{}{} + for _, item := range s.Res.Resources { + resources = append(resources, MyDeviceToMap(item)) + } + s.D.Set("my_devices", resources) + + if s.Res.ItemsPerPage != nil { + s.D.Set("items_per_page", *s.Res.ItemsPerPage) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + if s.Res.StartIndex != nil { + s.D.Set("start_index", *s.Res.StartIndex) + } + + if s.Res.TotalResults != nil { + s.D.Set("total_results", *s.Res.TotalResults) + } + + return nil +} + +func MyDeviceToMap(obj oci_identity_domains.MyDevice) map[string]interface{} { + result := map[string]interface{}{} + + additionalAttributes := []interface{}{} + for _, item := range obj.AdditionalAttributes { + additionalAttributes = append(additionalAttributes, MyDeviceAdditionalAttributesToMap(item)) + } + result["additional_attributes"] = additionalAttributes + + if obj.AppVersion != nil { + result["app_version"] = string(*obj.AppVersion) + } + + authenticationFactors := []interface{}{} + for _, item := range obj.AuthenticationFactors { + authenticationFactors = append(authenticationFactors, MyDeviceAuthenticationFactorsToMap(item)) + } + result["authentication_factors"] = authenticationFactors + + if obj.AuthenticationMethod != nil { + result["authentication_method"] = string(*obj.AuthenticationMethod) + } + + if obj.BasePublicKey != nil { + result["base_public_key"] = string(*obj.BasePublicKey) + } + + if obj.CompartmentOcid != nil { + result["compartment_ocid"] = string(*obj.CompartmentOcid) + } + + if obj.CountryCode != nil { + result["country_code"] = string(*obj.CountryCode) + } + + if obj.DeleteInProgress != nil { + result["delete_in_progress"] = bool(*obj.DeleteInProgress) + } + + if obj.DeviceType != nil { + result["device_type"] = string(*obj.DeviceType) + } + + if obj.DeviceUUID != nil { + result["device_uuid"] = string(*obj.DeviceUUID) + } + + if obj.DisplayName != nil { + result["display_name"] = string(*obj.DisplayName) + } + + if obj.DomainOcid != nil { + result["domain_ocid"] = string(*obj.DomainOcid) + } + + if obj.ExpiresOn != nil { + result["expires_on"] = int(*obj.ExpiresOn) + } + + if obj.ExternalId != nil { + result["external_id"] = string(*obj.ExternalId) + } + + if obj.Id != nil { + result["id"] = string(*obj.Id) + } + + if obj.IdcsCreatedBy != nil { + result["idcs_created_by"] = []interface{}{idcsCreatedByToMap(obj.IdcsCreatedBy)} + } + + if obj.IdcsLastModifiedBy != nil { + result["idcs_last_modified_by"] = []interface{}{idcsLastModifiedByToMap(obj.IdcsLastModifiedBy)} + } + + if obj.IdcsLastUpgradedInRelease != nil { + result["idcs_last_upgraded_in_release"] = string(*obj.IdcsLastUpgradedInRelease) + } + + result["idcs_prevented_operations"] = obj.IdcsPreventedOperations + result["idcs_prevented_operations"] = obj.IdcsPreventedOperations + + if obj.IsAccRecEnabled != nil { + result["is_acc_rec_enabled"] = bool(*obj.IsAccRecEnabled) + } + + if obj.IsCompliant != nil { + result["is_compliant"] = bool(*obj.IsCompliant) + } + + if obj.LastSyncTime != nil { + result["last_sync_time"] = string(*obj.LastSyncTime) + } + + if obj.LastValidatedTime != nil { + result["last_validated_time"] = string(*obj.LastValidatedTime) + } + + if obj.Meta != nil { + result["meta"] = []interface{}{metaToMap(obj.Meta)} + } + + nonCompliances := []interface{}{} + for _, item := range obj.NonCompliances { + nonCompliances = append(nonCompliances, MyDeviceNonCompliancesToMap(item)) + } + result["non_compliances"] = nonCompliances + + if obj.Ocid != nil { + result["ocid"] = string(*obj.Ocid) + } + + if obj.PackageId != nil { + result["package_id"] = string(*obj.PackageId) + } + + if obj.PhoneNumber != nil { + result["phone_number"] = string(*obj.PhoneNumber) + } + + result["platform"] = string(obj.Platform) + + if obj.PushNotificationTarget != nil { + result["push_notification_target"] = []interface{}{MyDevicePushNotificationTargetToMap(obj.PushNotificationTarget)} + } + + if obj.Reason != nil { + result["reason"] = string(*obj.Reason) + } + + result["schemas"] = obj.Schemas + result["schemas"] = obj.Schemas + + if obj.Seed != nil { + result["seed"] = string(*obj.Seed) + } + + if obj.SeedDekId != nil { + result["seed_dek_id"] = string(*obj.SeedDekId) + } + + result["status"] = string(obj.Status) + + tags := []interface{}{} + for _, item := range obj.Tags { + tags = append(tags, tagsToMap(item)) + } + result["tags"] = tags + + if obj.TenancyOcid != nil { + result["tenancy_ocid"] = string(*obj.TenancyOcid) + } + + if obj.ThirdPartyFactor != nil { + result["third_party_factor"] = []interface{}{MyDeviceThirdPartyFactorToMap(obj.ThirdPartyFactor)} + } + + if obj.User != nil { + result["user"] = []interface{}{MyDeviceUserToMap(obj.User)} + } + + return result +} + +func MyDeviceAdditionalAttributesToMap(obj oci_identity_domains.MyDeviceAdditionalAttributes) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Key != nil { + result["key"] = string(*obj.Key) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func MyDeviceAuthenticationFactorsToMap(obj oci_identity_domains.MyDeviceAuthenticationFactors) map[string]interface{} { + result := map[string]interface{}{} + + if obj.PublicKey != nil { + result["public_key"] = string(*obj.PublicKey) + } + + result["status"] = string(obj.Status) + + result["type"] = string(obj.Type) + + return result +} + +func MyDeviceNonCompliancesToMap(obj oci_identity_domains.MyDeviceNonCompliances) map[string]interface{} { + result := map[string]interface{}{} + + result["action"] = string(obj.Action) + + if obj.Name != nil { + result["name"] = string(*obj.Name) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func MyDevicePushNotificationTargetToMap(obj *oci_identity_domains.MyDevicePushNotificationTarget) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func MyDeviceThirdPartyFactorToMap(obj *oci_identity_domains.MyDeviceThirdPartyFactor) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + if obj.ThirdPartyFactorType != nil { + result["third_party_factor_type"] = string(*obj.ThirdPartyFactorType) + } + + if obj.ThirdPartyVendorName != nil { + result["third_party_vendor_name"] = string(*obj.ThirdPartyVendorName) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func MyDeviceUserToMap(obj *oci_identity_domains.MyDeviceUser) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Display != nil { + result["display"] = string(*obj.Display) + } + + if obj.Ocid != nil { + result["ocid"] = string(*obj.Ocid) + } + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} diff --git a/internal/service/identity_domains/identity_domains_my_groups_data_source.go b/internal/service/identity_domains/identity_domains_my_groups_data_source.go new file mode 100644 index 00000000000..cb8f30dd792 --- /dev/null +++ b/internal/service/identity_domains/identity_domains_my_groups_data_source.go @@ -0,0 +1,772 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsMyGroupsDataSource() *schema.Resource { + return &schema.Resource{ + Read: readIdentityDomainsMyGroups, + Schema: map[string]*schema.Schema{ + "idcs_endpoint": { + Type: schema.TypeString, + Required: true, + }, + "compartment_id": { + Type: schema.TypeString, + Optional: true, + }, + "my_group_count": { + Type: schema.TypeInt, + Optional: true, + }, + "my_group_filter": { + Type: schema.TypeString, + Optional: true, + }, + "attribute_sets": { + Type: schema.TypeList, + Optional: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "attributes": { + Type: schema.TypeString, + Optional: true, + }, + "authorization": { + Type: schema.TypeString, + Optional: true, + }, + "resource_type_schema_version": { + Type: schema.TypeString, + Optional: true, + }, + "start_index": { + Type: schema.TypeInt, + Optional: true, + }, + "sort_order": { + Type: schema.TypeString, + Optional: true, + }, + "sort_by": { + Type: schema.TypeString, + Optional: true, + }, + // Computed + "my_groups": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + + // Computed + "compartment_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "delete_in_progress": { + Type: schema.TypeBool, + Computed: true, + }, + "display_name": { + Type: schema.TypeString, + Computed: true, + }, + "domain_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "external_id": { + Type: schema.TypeString, + Computed: true, + }, + "id": { + Type: schema.TypeString, + Computed: true, + }, + "idcs_created_by": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + + // Computed + "display": { + Type: schema.TypeString, + Computed: true, + }, + "ocid": { + Type: schema.TypeString, + Computed: true, + }, + "ref": { + Type: schema.TypeString, + Computed: true, + }, + "type": { + Type: schema.TypeString, + Computed: true, + }, + "value": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "idcs_last_modified_by": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + + // Computed + "display": { + Type: schema.TypeString, + Computed: true, + }, + "ocid": { + Type: schema.TypeString, + Computed: true, + }, + "ref": { + Type: schema.TypeString, + Computed: true, + }, + "type": { + Type: schema.TypeString, + Computed: true, + }, + "value": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "idcs_last_upgraded_in_release": { + Type: schema.TypeString, + Computed: true, + }, + "idcs_prevented_operations": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "members": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + + // Computed + "date_added": { + Type: schema.TypeString, + Computed: true, + }, + "display": { + Type: schema.TypeString, + Computed: true, + }, + "membership_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "name": { + Type: schema.TypeString, + Computed: true, + }, + "ocid": { + Type: schema.TypeString, + Computed: true, + }, + "ref": { + Type: schema.TypeString, + Computed: true, + }, + "type": { + Type: schema.TypeString, + Computed: true, + }, + "value": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "meta": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + + // Computed + "created": { + Type: schema.TypeString, + Computed: true, + }, + "last_modified": { + Type: schema.TypeString, + Computed: true, + }, + "location": { + Type: schema.TypeString, + Computed: true, + }, + "resource_type": { + Type: schema.TypeString, + Computed: true, + }, + "version": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "non_unique_display_name": { + Type: schema.TypeString, + Computed: true, + }, + "ocid": { + Type: schema.TypeString, + Computed: true, + }, + "schemas": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "tags": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + + // Computed + "key": { + Type: schema.TypeString, + Computed: true, + }, + "value": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "tenancy_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "urnietfparamsscimschemasoracleidcsextensiongroup_group": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + + // Computed + "app_roles": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + + // Computed + "admin_role": { + Type: schema.TypeBool, + Computed: true, + }, + "app_id": { + Type: schema.TypeString, + Computed: true, + }, + "app_name": { + Type: schema.TypeString, + Computed: true, + }, + "display": { + Type: schema.TypeString, + Computed: true, + }, + "legacy_group_name": { + Type: schema.TypeString, + Computed: true, + }, + "ref": { + Type: schema.TypeString, + Computed: true, + }, + "type": { + Type: schema.TypeString, + Computed: true, + }, + "value": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "creation_mechanism": { + Type: schema.TypeString, + Computed: true, + }, + "description": { + Type: schema.TypeString, + Computed: true, + }, + "grants": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + + // Computed + "app_id": { + Type: schema.TypeString, + Computed: true, + }, + "grant_mechanism": { + Type: schema.TypeString, + Computed: true, + }, + "ref": { + Type: schema.TypeString, + Computed: true, + }, + "value": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "owners": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + + // Computed + "display": { + Type: schema.TypeString, + Computed: true, + }, + "ref": { + Type: schema.TypeString, + Computed: true, + }, + "type": { + Type: schema.TypeString, + Computed: true, + }, + "value": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "password_policy": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + + // Computed + "name": { + Type: schema.TypeString, + Computed: true, + }, + "priority": { + Type: schema.TypeInt, + Computed: true, + }, + "ref": { + Type: schema.TypeString, + Computed: true, + }, + "value": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "synced_from_app": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + + // Computed + "display": { + Type: schema.TypeString, + Computed: true, + }, + "ref": { + Type: schema.TypeString, + Computed: true, + }, + "type": { + Type: schema.TypeString, + Computed: true, + }, + "value": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + }, + }, + }, + "urnietfparamsscimschemasoracleidcsextensionposix_group": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + + // Computed + "gid_number": { + Type: schema.TypeInt, + Computed: true, + }, + }, + }, + }, + }, + }, + }, + "items_per_page": { + Type: schema.TypeInt, + Computed: true, + }, + "schemas": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "total_results": { + Type: schema.TypeInt, + Computed: true, + }, + }, + } +} + +func readIdentityDomainsMyGroups(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsMyGroupsDataSourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.ReadResource(sync) +} + +type IdentityDomainsMyGroupsDataSourceCrud struct { + D *schema.ResourceData + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.ListMyGroupsResponse +} + +func (s *IdentityDomainsMyGroupsDataSourceCrud) VoidState() { + s.D.SetId("") +} + +func (s *IdentityDomainsMyGroupsDataSourceCrud) Get() error { + request := oci_identity_domains.ListMyGroupsRequest{} + + if myGroupCount, ok := s.D.GetOkExists("my_group_count"); ok { + tmp := myGroupCount.(int) + request.Count = &tmp + } + + if myGroupFilter, ok := s.D.GetOkExists("my_group_filter"); ok { + tmp := myGroupFilter.(string) + request.Filter = &tmp + } + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + if startIndex, ok := s.D.GetOkExists("start_index"); ok { + tmp := startIndex.(int) + request.StartIndex = &tmp + } + + if sortOrder, ok := s.D.GetOkExists("sort_order"); ok { + tmp := oci_identity_domains.ListMyGroupsSortOrderEnum(sortOrder.(string)) + request.SortOrder = tmp + } + + if sortBy, ok := s.D.GetOkExists("sort_by"); ok { + tmp := sortBy.(string) + request.SortBy = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "identity_domains") + + response, err := s.Client.ListMyGroups(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response + // IDCS pagination + startIndex := *response.StartIndex + for startIndex+*response.ItemsPerPage <= *response.TotalResults { + startIndex += *response.ItemsPerPage + request.StartIndex = &startIndex + listResponse, err := s.Client.ListMyGroups(context.Background(), request) + if err != nil { + return err + } + + s.Res.Resources = append(s.Res.Resources, listResponse.Resources...) + } + + return nil +} + +func (s *IdentityDomainsMyGroupsDataSourceCrud) SetData() error { + if s.Res == nil { + return nil + } + + s.D.SetId(tfresource.GenerateDataSourceHashID("IdentityDomainsMyGroupsDataSource-", IdentityDomainsMyGroupsDataSource(), s.D)) + + resources := []interface{}{} + for _, item := range s.Res.Resources { + resources = append(resources, MyGroupToMap(item)) + } + s.D.Set("my_groups", resources) + + if s.Res.ItemsPerPage != nil { + s.D.Set("items_per_page", *s.Res.ItemsPerPage) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + if s.Res.StartIndex != nil { + s.D.Set("start_index", *s.Res.StartIndex) + } + + if s.Res.TotalResults != nil { + s.D.Set("total_results", *s.Res.TotalResults) + } + + return nil +} + +func MyGroupToMap(obj oci_identity_domains.MyGroup) map[string]interface{} { + result := map[string]interface{}{} + + if obj.CompartmentOcid != nil { + result["compartment_ocid"] = string(*obj.CompartmentOcid) + } + + if obj.DeleteInProgress != nil { + result["delete_in_progress"] = bool(*obj.DeleteInProgress) + } + + if obj.DisplayName != nil { + result["display_name"] = string(*obj.DisplayName) + } + + if obj.DomainOcid != nil { + result["domain_ocid"] = string(*obj.DomainOcid) + } + + if obj.ExternalId != nil { + result["external_id"] = string(*obj.ExternalId) + } + + if obj.Id != nil { + result["id"] = string(*obj.Id) + } + + if obj.IdcsCreatedBy != nil { + result["idcs_created_by"] = []interface{}{idcsCreatedByToMap(obj.IdcsCreatedBy)} + } + + if obj.IdcsLastModifiedBy != nil { + result["idcs_last_modified_by"] = []interface{}{idcsLastModifiedByToMap(obj.IdcsLastModifiedBy)} + } + + if obj.IdcsLastUpgradedInRelease != nil { + result["idcs_last_upgraded_in_release"] = string(*obj.IdcsLastUpgradedInRelease) + } + + result["idcs_prevented_operations"] = obj.IdcsPreventedOperations + result["idcs_prevented_operations"] = obj.IdcsPreventedOperations + + members := []interface{}{} + for _, item := range obj.Members { + members = append(members, MyGroupMembersToMap(item)) + } + result["members"] = members + + if obj.Meta != nil { + result["meta"] = []interface{}{metaToMap(obj.Meta)} + } + + if obj.NonUniqueDisplayName != nil { + result["non_unique_display_name"] = string(*obj.NonUniqueDisplayName) + } + + if obj.Ocid != nil { + result["ocid"] = string(*obj.Ocid) + } + + result["schemas"] = obj.Schemas + result["schemas"] = obj.Schemas + + tags := []interface{}{} + for _, item := range obj.Tags { + tags = append(tags, tagsToMap(item)) + } + result["tags"] = tags + + if obj.TenancyOcid != nil { + result["tenancy_ocid"] = string(*obj.TenancyOcid) + } + + if obj.UrnIetfParamsScimSchemasOracleIdcsExtensionGroupGroup != nil { + result["urnietfparamsscimschemasoracleidcsextensiongroup_group"] = []interface{}{ExtensionGroupGroupToMap(obj.UrnIetfParamsScimSchemasOracleIdcsExtensionGroupGroup)} + } + + if obj.UrnIetfParamsScimSchemasOracleIdcsExtensionPosixGroup != nil { + result["urnietfparamsscimschemasoracleidcsextensionposix_group"] = []interface{}{ExtensionPosixGroupToMap(obj.UrnIetfParamsScimSchemasOracleIdcsExtensionPosixGroup)} + } + + return result +} + +func MyGroupMembersToMap(obj oci_identity_domains.MyGroupMembers) map[string]interface{} { + result := map[string]interface{}{} + + if obj.DateAdded != nil { + result["date_added"] = string(*obj.DateAdded) + } + + if obj.Display != nil { + result["display"] = string(*obj.Display) + } + + if obj.MembershipOcid != nil { + result["membership_ocid"] = string(*obj.MembershipOcid) + } + + if obj.Name != nil { + result["name"] = string(*obj.Name) + } + + if obj.Ocid != nil { + result["ocid"] = string(*obj.Ocid) + } + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + result["type"] = string(obj.Type) + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} diff --git a/internal/service/identity_domains/identity_domains_my_oauth2client_credential_data_source.go b/internal/service/identity_domains/identity_domains_my_oauth2client_credential_data_source.go new file mode 100644 index 00000000000..d44bfe88d97 --- /dev/null +++ b/internal/service/identity_domains/identity_domains_my_oauth2client_credential_data_source.go @@ -0,0 +1,184 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsMyOAuth2ClientCredentialDataSource() *schema.Resource { + fieldMap := make(map[string]*schema.Schema) + fieldMap["authorization"] = &schema.Schema{ + Type: schema.TypeString, + Optional: true, + } + fieldMap["idcs_endpoint"] = &schema.Schema{ + Type: schema.TypeString, + Required: true, + } + fieldMap["my_oauth2client_credential_id"] = &schema.Schema{ + Type: schema.TypeString, + Required: true, + } + fieldMap["resource_type_schema_version"] = &schema.Schema{ + Type: schema.TypeString, + Optional: true, + } + return tfresource.GetSingularDataSourceItemSchema(IdentityDomainsMyOAuth2ClientCredentialResource(), fieldMap, readSingularIdentityDomainsMyOAuth2ClientCredential) +} + +func readSingularIdentityDomainsMyOAuth2ClientCredential(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsMyOAuth2ClientCredentialDataSourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + + return tfresource.ReadResource(sync) +} + +type IdentityDomainsMyOAuth2ClientCredentialDataSourceCrud struct { + D *schema.ResourceData + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.GetMyOAuth2ClientCredentialResponse +} + +func (s *IdentityDomainsMyOAuth2ClientCredentialDataSourceCrud) VoidState() { + s.D.SetId("") +} + +func (s *IdentityDomainsMyOAuth2ClientCredentialDataSourceCrud) Get() error { + request := oci_identity_domains.GetMyOAuth2ClientCredentialRequest{} + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if myOAuth2ClientCredentialId, ok := s.D.GetOkExists("my_oauth2client_credential_id"); ok { + tmp := myOAuth2ClientCredentialId.(string) + request.MyOAuth2ClientCredentialId = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "identity_domains") + + response, err := s.Client.GetMyOAuth2ClientCredential(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response + return nil +} + +func (s *IdentityDomainsMyOAuth2ClientCredentialDataSourceCrud) SetData() error { + if s.Res == nil { + return nil + } + + s.D.SetId(*s.Res.Id) + + if s.Res.CompartmentOcid != nil { + s.D.Set("compartment_ocid", *s.Res.CompartmentOcid) + } + + if s.Res.DeleteInProgress != nil { + s.D.Set("delete_in_progress", *s.Res.DeleteInProgress) + } + + if s.Res.Description != nil { + s.D.Set("description", *s.Res.Description) + } + + if s.Res.DomainOcid != nil { + s.D.Set("domain_ocid", *s.Res.DomainOcid) + } + + if s.Res.ExpiresOn != nil { + s.D.Set("expires_on", *s.Res.ExpiresOn) + } + + if s.Res.IdcsCreatedBy != nil { + s.D.Set("idcs_created_by", []interface{}{idcsCreatedByToMap(s.Res.IdcsCreatedBy)}) + } else { + s.D.Set("idcs_created_by", nil) + } + + if s.Res.IdcsLastModifiedBy != nil { + s.D.Set("idcs_last_modified_by", []interface{}{idcsLastModifiedByToMap(s.Res.IdcsLastModifiedBy)}) + } else { + s.D.Set("idcs_last_modified_by", nil) + } + + if s.Res.IdcsLastUpgradedInRelease != nil { + s.D.Set("idcs_last_upgraded_in_release", *s.Res.IdcsLastUpgradedInRelease) + } + + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + + if s.Res.IsResetSecret != nil { + s.D.Set("is_reset_secret", *s.Res.IsResetSecret) + } + + if s.Res.Meta != nil { + s.D.Set("meta", []interface{}{metaToMap(s.Res.Meta)}) + } else { + s.D.Set("meta", nil) + } + + if s.Res.Name != nil { + s.D.Set("name", *s.Res.Name) + } + + if s.Res.Ocid != nil { + s.D.Set("ocid", *s.Res.Ocid) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + scopes := []interface{}{} + for _, item := range s.Res.Scopes { + scopes = append(scopes, MyOAuth2ClientCredentialScopesToMap(item)) + } + s.D.Set("scopes", scopes) + + s.D.Set("status", s.Res.Status) + + tags := []interface{}{} + for _, item := range s.Res.Tags { + tags = append(tags, tagsToMap(item)) + } + s.D.Set("tags", tags) + + if s.Res.TenancyOcid != nil { + s.D.Set("tenancy_ocid", *s.Res.TenancyOcid) + } + + if s.Res.User != nil { + s.D.Set("user", []interface{}{MyOAuth2ClientCredentialUserToMap(s.Res.User)}) + } else { + s.D.Set("user", nil) + } + + return nil +} diff --git a/internal/service/identity_domains/identity_domains_my_oauth2client_credential_resource.go b/internal/service/identity_domains/identity_domains_my_oauth2client_credential_resource.go new file mode 100644 index 00000000000..e3880659fed --- /dev/null +++ b/internal/service/identity_domains/identity_domains_my_oauth2client_credential_resource.go @@ -0,0 +1,883 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + "fmt" + "log" + "net/url" + "regexp" + "strings" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsMyOAuth2ClientCredentialResource() *schema.Resource { + return &schema.Resource{ + Importer: &schema.ResourceImporter{ + State: schema.ImportStatePassthrough, + }, + Timeouts: tfresource.DefaultTimeout, + Create: createIdentityDomainsMyOAuth2ClientCredential, + Read: readIdentityDomainsMyOAuth2ClientCredential, + Delete: deleteIdentityDomainsMyOAuth2ClientCredential, + Schema: map[string]*schema.Schema{ + // Required + "idcs_endpoint": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "name": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "schemas": { + Type: schema.TypeList, + Required: true, + ForceNew: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "scopes": { + Type: schema.TypeList, + Required: true, + ForceNew: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "audience": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "scope": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + + // Optional + + // Computed + }, + }, + }, + + // Optional + "authorization": { + Type: schema.TypeString, + Optional: true, + ForceNew: true, + }, + "description": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "expires_on": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "is_reset_secret": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + ForceNew: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "resource_type_schema_version": { + Type: schema.TypeString, + Optional: true, + ForceNew: true, + }, + "status": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "tags": { + Type: schema.TypeList, + Optional: true, + Computed: true, + ForceNew: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "key": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "value": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + + // Optional + + // Computed + }, + }, + }, + "user": { + Type: schema.TypeList, + Optional: true, + Computed: true, + ForceNew: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "value": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + "display": { + Type: schema.TypeString, + Computed: true, + }, + "name": { + Type: schema.TypeString, + Computed: true, + }, + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + + // Computed + "compartment_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "delete_in_progress": { + Type: schema.TypeBool, + Computed: true, + }, + "domain_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "id": { + Type: schema.TypeString, + Computed: true, + }, + "idcs_created_by": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "idcs_last_modified_by": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "idcs_last_upgraded_in_release": { + Type: schema.TypeString, + Computed: true, + }, + "idcs_prevented_operations": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "meta": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "created": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "last_modified": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "location": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "resource_type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "version": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + }, + }, + }, + "tenancy_ocid": { + Type: schema.TypeString, + Computed: true, + }, + }, + } +} + +func createIdentityDomainsMyOAuth2ClientCredential(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsMyOAuth2ClientCredentialResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.CreateResource(d, sync) +} + +func readIdentityDomainsMyOAuth2ClientCredential(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsMyOAuth2ClientCredentialResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpointForRead(d, "myOAuth2ClientCredentials") + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.ReadResource(sync) +} + +func deleteIdentityDomainsMyOAuth2ClientCredential(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsMyOAuth2ClientCredentialResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + sync.DisableNotFoundRetries = true + + return tfresource.DeleteResource(d, sync) +} + +type IdentityDomainsMyOAuth2ClientCredentialResourceCrud struct { + tfresource.BaseCrud + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.MyOAuth2ClientCredential + DisableNotFoundRetries bool +} + +func (s *IdentityDomainsMyOAuth2ClientCredentialResourceCrud) ID() string { + return *s.Res.Id + //return GetMyOAuth2ClientCredentialCompositeId(s.D.Get("id").(string)) +} + +func (s *IdentityDomainsMyOAuth2ClientCredentialResourceCrud) Create() error { + request := oci_identity_domains.CreateMyOAuth2ClientCredentialRequest{} + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if description, ok := s.D.GetOkExists("description"); ok { + tmp := description.(string) + request.Description = &tmp + } + + if expiresOn, ok := s.D.GetOkExists("expires_on"); ok { + tmp := expiresOn.(string) + request.ExpiresOn = &tmp + } + + if id, ok := s.D.GetOkExists("id"); ok { + tmp := id.(string) + request.Id = &tmp + } + + if isResetSecret, ok := s.D.GetOkExists("is_reset_secret"); ok { + tmp := isResetSecret.(bool) + request.IsResetSecret = &tmp + } + + if name, ok := s.D.GetOkExists("name"); ok { + tmp := name.(string) + request.Name = &tmp + } + + if ocid, ok := s.D.GetOkExists("ocid"); ok { + tmp := ocid.(string) + request.Ocid = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + if schemas, ok := s.D.GetOkExists("schemas"); ok { + interfaces := schemas.([]interface{}) + tmp := make([]string, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = interfaces[i].(string) + } + } + if len(tmp) != 0 || s.D.HasChange("schemas") { + request.Schemas = tmp + } + } + + if scopes, ok := s.D.GetOkExists("scopes"); ok { + interfaces := scopes.([]interface{}) + tmp := make([]oci_identity_domains.MyOAuth2ClientCredentialScopes, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "scopes", stateDataIndex) + converted, err := s.mapToMyOAuth2ClientCredentialScopes(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("scopes") { + request.Scopes = tmp + } + } + + if status, ok := s.D.GetOkExists("status"); ok { + request.Status = oci_identity_domains.MyOAuth2ClientCredentialStatusEnum(status.(string)) + } + + if tags, ok := s.D.GetOkExists("tags"); ok { + interfaces := tags.([]interface{}) + tmp := make([]oci_identity_domains.Tags, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "tags", stateDataIndex) + converted, err := s.mapTotags(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("tags") { + request.Tags = tmp + } + } + + if user, ok := s.D.GetOkExists("user"); ok { + if tmpList := user.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "user", 0) + tmp, err := s.mapToMyOAuth2ClientCredentialUser(fieldKeyFormat) + if err != nil { + return err + } + request.User = &tmp + } + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + response, err := s.Client.CreateMyOAuth2ClientCredential(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response.MyOAuth2ClientCredential + return nil +} + +func (s *IdentityDomainsMyOAuth2ClientCredentialResourceCrud) Get() error { + request := oci_identity_domains.GetMyOAuth2ClientCredentialRequest{} + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + tmp := s.D.Id() + request.MyOAuth2ClientCredentialId = &tmp + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + myOAuth2ClientCredentialId, err := parseMyOAuth2ClientCredentialCompositeId(s.D.Id()) + if err == nil { + request.MyOAuth2ClientCredentialId = &myOAuth2ClientCredentialId + } else { + log.Printf("[WARN] Get() unable to parse current ID: %s", s.D.Id()) + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + response, err := s.Client.GetMyOAuth2ClientCredential(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response.MyOAuth2ClientCredential + return nil +} + +func (s *IdentityDomainsMyOAuth2ClientCredentialResourceCrud) Delete() error { + request := oci_identity_domains.DeleteMyOAuth2ClientCredentialRequest{} + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if forceDelete, ok := s.D.GetOkExists("force_delete"); ok { + tmp := forceDelete.(bool) + request.ForceDelete = &tmp + } + + tmp := s.D.Id() + request.MyOAuth2ClientCredentialId = &tmp + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + _, err := s.Client.DeleteMyOAuth2ClientCredential(context.Background(), request) + return err +} + +func (s *IdentityDomainsMyOAuth2ClientCredentialResourceCrud) SetData() error { + + myOAuth2ClientCredentialId, err := parseMyOAuth2ClientCredentialCompositeId(s.D.Id()) + if err == nil { + s.D.SetId(myOAuth2ClientCredentialId) + } else { + log.Printf("[WARN] SetData() unable to parse current ID: %s", s.D.Id()) + } + + if s.Res.CompartmentOcid != nil { + s.D.Set("compartment_ocid", *s.Res.CompartmentOcid) + } + + if s.Res.DeleteInProgress != nil { + s.D.Set("delete_in_progress", *s.Res.DeleteInProgress) + } + + if s.Res.Description != nil { + s.D.Set("description", *s.Res.Description) + } + + if s.Res.DomainOcid != nil { + s.D.Set("domain_ocid", *s.Res.DomainOcid) + } + + if s.Res.ExpiresOn != nil { + s.D.Set("expires_on", *s.Res.ExpiresOn) + } + + if s.Res.IdcsCreatedBy != nil { + s.D.Set("idcs_created_by", []interface{}{idcsCreatedByToMap(s.Res.IdcsCreatedBy)}) + } else { + s.D.Set("idcs_created_by", nil) + } + + if s.Res.IdcsLastModifiedBy != nil { + s.D.Set("idcs_last_modified_by", []interface{}{idcsLastModifiedByToMap(s.Res.IdcsLastModifiedBy)}) + } else { + s.D.Set("idcs_last_modified_by", nil) + } + + if s.Res.IdcsLastUpgradedInRelease != nil { + s.D.Set("idcs_last_upgraded_in_release", *s.Res.IdcsLastUpgradedInRelease) + } + + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + + if s.Res.IsResetSecret != nil { + s.D.Set("is_reset_secret", *s.Res.IsResetSecret) + } + + if s.Res.Meta != nil { + s.D.Set("meta", []interface{}{metaToMap(s.Res.Meta)}) + } else { + s.D.Set("meta", nil) + } + + if s.Res.Name != nil { + s.D.Set("name", *s.Res.Name) + } + + if s.Res.Ocid != nil { + s.D.Set("ocid", *s.Res.Ocid) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + scopes := []interface{}{} + for _, item := range s.Res.Scopes { + scopes = append(scopes, MyOAuth2ClientCredentialScopesToMap(item)) + } + s.D.Set("scopes", scopes) + + s.D.Set("status", s.Res.Status) + + tags := []interface{}{} + for _, item := range s.Res.Tags { + tags = append(tags, tagsToMap(item)) + } + s.D.Set("tags", tags) + + if s.Res.TenancyOcid != nil { + s.D.Set("tenancy_ocid", *s.Res.TenancyOcid) + } + + if s.Res.User != nil { + s.D.Set("user", []interface{}{MyOAuth2ClientCredentialUserToMap(s.Res.User)}) + } else { + s.D.Set("user", nil) + } + + return nil +} + +//func GetMyOAuth2ClientCredentialCompositeId(myOAuth2ClientCredentialId string) string { +// id = url.PathEscape(id) +// idcsEndpoint = url.PathEscape(idcsEndpoint) +// myOAuth2ClientCredentialId = url.PathEscape(myOAuth2ClientCredentialId) +// compositeId := "idcsEndpoint/" + idcsEndpoint + "/myOAuth2ClientCredentials/" + myOAuth2ClientCredentialId +// return compositeId +//} + +func parseMyOAuth2ClientCredentialCompositeId(compositeId string) (myOAuth2ClientCredentialId string, err error) { + parts := strings.Split(compositeId, "/") + match, _ := regexp.MatchString("idcsEndpoint/.*/myOAuth2ClientCredentials/.*", compositeId) + if !match || len(parts) != 4 { + err = fmt.Errorf("illegal compositeId %s encountered", compositeId) + return + } + //idcsEndpoint, _ = url.PathUnescape(parts[1]) + myOAuth2ClientCredentialId, _ = url.PathUnescape(parts[3]) + + return +} + +func MyOAuth2ClientCredentialToMap(obj oci_identity_domains.MyOAuth2ClientCredential) map[string]interface{} { + result := map[string]interface{}{} + + if obj.CompartmentOcid != nil { + result["compartment_ocid"] = string(*obj.CompartmentOcid) + } + + if obj.DeleteInProgress != nil { + result["delete_in_progress"] = bool(*obj.DeleteInProgress) + } + + if obj.Description != nil { + result["description"] = string(*obj.Description) + } + + if obj.DomainOcid != nil { + result["domain_ocid"] = string(*obj.DomainOcid) + } + + if obj.ExpiresOn != nil { + result["expires_on"] = string(*obj.ExpiresOn) + } + + if obj.Id != nil { + result["id"] = string(*obj.Id) + } + + if obj.IdcsCreatedBy != nil { + result["idcs_created_by"] = []interface{}{idcsCreatedByToMap(obj.IdcsCreatedBy)} + } + + if obj.IdcsLastModifiedBy != nil { + result["idcs_last_modified_by"] = []interface{}{idcsLastModifiedByToMap(obj.IdcsLastModifiedBy)} + } + + if obj.IdcsLastUpgradedInRelease != nil { + result["idcs_last_upgraded_in_release"] = string(*obj.IdcsLastUpgradedInRelease) + } + + result["idcs_prevented_operations"] = obj.IdcsPreventedOperations + result["idcs_prevented_operations"] = obj.IdcsPreventedOperations + + if obj.IsResetSecret != nil { + result["is_reset_secret"] = bool(*obj.IsResetSecret) + } + + if obj.Meta != nil { + result["meta"] = []interface{}{metaToMap(obj.Meta)} + } + + if obj.Name != nil { + result["name"] = string(*obj.Name) + } + + if obj.Ocid != nil { + result["ocid"] = string(*obj.Ocid) + } + + result["schemas"] = obj.Schemas + result["schemas"] = obj.Schemas + + scopes := []interface{}{} + for _, item := range obj.Scopes { + scopes = append(scopes, MyOAuth2ClientCredentialScopesToMap(item)) + } + result["scopes"] = scopes + + result["status"] = string(obj.Status) + + tags := []interface{}{} + for _, item := range obj.Tags { + tags = append(tags, tagsToMap(item)) + } + result["tags"] = tags + + if obj.TenancyOcid != nil { + result["tenancy_ocid"] = string(*obj.TenancyOcid) + } + + if obj.User != nil { + result["user"] = []interface{}{MyOAuth2ClientCredentialUserToMap(obj.User)} + } + + return result +} + +func (s *IdentityDomainsMyOAuth2ClientCredentialResourceCrud) mapToMyOAuth2ClientCredentialScopes(fieldKeyFormat string) (oci_identity_domains.MyOAuth2ClientCredentialScopes, error) { + result := oci_identity_domains.MyOAuth2ClientCredentialScopes{} + + if audience, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "audience")); ok { + tmp := audience.(string) + result.Audience = &tmp + } + + if scope, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "scope")); ok { + tmp := scope.(string) + result.Scope = &tmp + } + + return result, nil +} + +func MyOAuth2ClientCredentialScopesToMap(obj oci_identity_domains.MyOAuth2ClientCredentialScopes) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Audience != nil { + result["audience"] = string(*obj.Audience) + } + + if obj.Scope != nil { + result["scope"] = string(*obj.Scope) + } + + return result +} + +func (s *IdentityDomainsMyOAuth2ClientCredentialResourceCrud) mapToMyOAuth2ClientCredentialUser(fieldKeyFormat string) (oci_identity_domains.MyOAuth2ClientCredentialUser, error) { + result := oci_identity_domains.MyOAuth2ClientCredentialUser{} + + if display, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "display")); ok { + tmp := display.(string) + result.Display = &tmp + } + + if name, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "name")); ok { + tmp := name.(string) + result.Name = &tmp + } + + if ocid, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ocid")); ok { + tmp := ocid.(string) + result.Ocid = &tmp + } + + if ref, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ref")); ok { + tmp := ref.(string) + result.Ref = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func MyOAuth2ClientCredentialUserToMap(obj *oci_identity_domains.MyOAuth2ClientCredentialUser) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Display != nil { + result["display"] = string(*obj.Display) + } + + if obj.Name != nil { + result["name"] = string(*obj.Name) + } + + if obj.Ocid != nil { + result["ocid"] = string(*obj.Ocid) + } + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func (s *IdentityDomainsMyOAuth2ClientCredentialResourceCrud) mapTotags(fieldKeyFormat string) (oci_identity_domains.Tags, error) { + result := oci_identity_domains.Tags{} + + if key, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "key")); ok { + tmp := key.(string) + result.Key = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} diff --git a/internal/service/identity_domains/identity_domains_my_oauth2client_credentials_data_source.go b/internal/service/identity_domains/identity_domains_my_oauth2client_credentials_data_source.go new file mode 100644 index 00000000000..1e6b73ee4b9 --- /dev/null +++ b/internal/service/identity_domains/identity_domains_my_oauth2client_credentials_data_source.go @@ -0,0 +1,197 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsMyOAuth2ClientCredentialsDataSource() *schema.Resource { + return &schema.Resource{ + Read: readIdentityDomainsMyOAuth2ClientCredentials, + Schema: map[string]*schema.Schema{ + "idcs_endpoint": { + Type: schema.TypeString, + Required: true, + }, + "compartment_id": { + Type: schema.TypeString, + Optional: true, + }, + "my_oauth2client_credential_count": { + Type: schema.TypeInt, + Optional: true, + }, + "my_oauth2client_credential_filter": { + Type: schema.TypeString, + Optional: true, + }, + "authorization": { + Type: schema.TypeString, + Optional: true, + }, + "resource_type_schema_version": { + Type: schema.TypeString, + Optional: true, + }, + "start_index": { + Type: schema.TypeInt, + Optional: true, + }, + "sort_order": { + Type: schema.TypeString, + Optional: true, + }, + "sort_by": { + Type: schema.TypeString, + Optional: true, + }, + // Computed + "my_oauth2client_credentials": { + Type: schema.TypeList, + Computed: true, + Elem: tfresource.GetDataSourceItemSchema(IdentityDomainsMyOAuth2ClientCredentialResource()), + }, + "items_per_page": { + Type: schema.TypeInt, + Computed: true, + }, + "schemas": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "total_results": { + Type: schema.TypeInt, + Computed: true, + }, + }, + } +} + +func readIdentityDomainsMyOAuth2ClientCredentials(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsMyOAuth2ClientCredentialsDataSourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.ReadResource(sync) +} + +type IdentityDomainsMyOAuth2ClientCredentialsDataSourceCrud struct { + D *schema.ResourceData + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.ListMyOAuth2ClientCredentialsResponse +} + +func (s *IdentityDomainsMyOAuth2ClientCredentialsDataSourceCrud) VoidState() { + s.D.SetId("") +} + +func (s *IdentityDomainsMyOAuth2ClientCredentialsDataSourceCrud) Get() error { + request := oci_identity_domains.ListMyOAuth2ClientCredentialsRequest{} + + if myOAuth2ClientCredentialCount, ok := s.D.GetOkExists("my_oauth2client_credential_count"); ok { + tmp := myOAuth2ClientCredentialCount.(int) + request.Count = &tmp + } + + if myOAuth2ClientCredentialFilter, ok := s.D.GetOkExists("my_oauth2client_credential_filter"); ok { + tmp := myOAuth2ClientCredentialFilter.(string) + request.Filter = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + if startIndex, ok := s.D.GetOkExists("start_index"); ok { + tmp := startIndex.(int) + request.StartIndex = &tmp + } + + if sortOrder, ok := s.D.GetOkExists("sort_order"); ok { + tmp := oci_identity_domains.ListMyOAuth2ClientCredentialsSortOrderEnum(sortOrder.(string)) + request.SortOrder = tmp + } + + if sortBy, ok := s.D.GetOkExists("sort_by"); ok { + tmp := sortBy.(string) + request.SortBy = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "identity_domains") + + response, err := s.Client.ListMyOAuth2ClientCredentials(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response + // IDCS pagination + startIndex := *response.StartIndex + for startIndex+*response.ItemsPerPage <= *response.TotalResults { + startIndex += *response.ItemsPerPage + request.StartIndex = &startIndex + listResponse, err := s.Client.ListMyOAuth2ClientCredentials(context.Background(), request) + if err != nil { + return err + } + + s.Res.Resources = append(s.Res.Resources, listResponse.Resources...) + } + + return nil +} + +func (s *IdentityDomainsMyOAuth2ClientCredentialsDataSourceCrud) SetData() error { + if s.Res == nil { + return nil + } + + s.D.SetId(tfresource.GenerateDataSourceHashID("IdentityDomainsMyOAuth2ClientCredentialsDataSource-", IdentityDomainsMyOAuth2ClientCredentialsDataSource(), s.D)) + + resources := []interface{}{} + for _, item := range s.Res.Resources { + resources = append(resources, MyOAuth2ClientCredentialToMap(item)) + } + s.D.Set("my_oauth2client_credentials", resources) + + if s.Res.ItemsPerPage != nil { + s.D.Set("items_per_page", *s.Res.ItemsPerPage) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + if s.Res.StartIndex != nil { + s.D.Set("start_index", *s.Res.StartIndex) + } + + if s.Res.TotalResults != nil { + s.D.Set("total_results", *s.Res.TotalResults) + } + + return nil +} diff --git a/internal/service/identity_domains/identity_domains_my_smtp_credential_data_source.go b/internal/service/identity_domains/identity_domains_my_smtp_credential_data_source.go new file mode 100644 index 00000000000..31e587320a2 --- /dev/null +++ b/internal/service/identity_domains/identity_domains_my_smtp_credential_data_source.go @@ -0,0 +1,174 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsMySmtpCredentialDataSource() *schema.Resource { + fieldMap := make(map[string]*schema.Schema) + fieldMap["authorization"] = &schema.Schema{ + Type: schema.TypeString, + Optional: true, + } + fieldMap["idcs_endpoint"] = &schema.Schema{ + Type: schema.TypeString, + Required: true, + } + fieldMap["my_smtp_credential_id"] = &schema.Schema{ + Type: schema.TypeString, + Required: true, + } + fieldMap["resource_type_schema_version"] = &schema.Schema{ + Type: schema.TypeString, + Optional: true, + } + return tfresource.GetSingularDataSourceItemSchema(IdentityDomainsMySmtpCredentialResource(), fieldMap, readSingularIdentityDomainsMySmtpCredential) +} + +func readSingularIdentityDomainsMySmtpCredential(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsMySmtpCredentialDataSourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + + return tfresource.ReadResource(sync) +} + +type IdentityDomainsMySmtpCredentialDataSourceCrud struct { + D *schema.ResourceData + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.GetMySmtpCredentialResponse +} + +func (s *IdentityDomainsMySmtpCredentialDataSourceCrud) VoidState() { + s.D.SetId("") +} + +func (s *IdentityDomainsMySmtpCredentialDataSourceCrud) Get() error { + request := oci_identity_domains.GetMySmtpCredentialRequest{} + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if mySmtpCredentialId, ok := s.D.GetOkExists("my_smtp_credential_id"); ok { + tmp := mySmtpCredentialId.(string) + request.MySmtpCredentialId = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "identity_domains") + + response, err := s.Client.GetMySmtpCredential(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response + return nil +} + +func (s *IdentityDomainsMySmtpCredentialDataSourceCrud) SetData() error { + if s.Res == nil { + return nil + } + + s.D.SetId(*s.Res.Id) + + if s.Res.CompartmentOcid != nil { + s.D.Set("compartment_ocid", *s.Res.CompartmentOcid) + } + + if s.Res.DeleteInProgress != nil { + s.D.Set("delete_in_progress", *s.Res.DeleteInProgress) + } + + if s.Res.Description != nil { + s.D.Set("description", *s.Res.Description) + } + + if s.Res.DomainOcid != nil { + s.D.Set("domain_ocid", *s.Res.DomainOcid) + } + + if s.Res.ExpiresOn != nil { + s.D.Set("expires_on", *s.Res.ExpiresOn) + } + + if s.Res.IdcsCreatedBy != nil { + s.D.Set("idcs_created_by", []interface{}{idcsCreatedByToMap(s.Res.IdcsCreatedBy)}) + } else { + s.D.Set("idcs_created_by", nil) + } + + if s.Res.IdcsLastModifiedBy != nil { + s.D.Set("idcs_last_modified_by", []interface{}{idcsLastModifiedByToMap(s.Res.IdcsLastModifiedBy)}) + } else { + s.D.Set("idcs_last_modified_by", nil) + } + + if s.Res.IdcsLastUpgradedInRelease != nil { + s.D.Set("idcs_last_upgraded_in_release", *s.Res.IdcsLastUpgradedInRelease) + } + + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + + if s.Res.Meta != nil { + s.D.Set("meta", []interface{}{metaToMap(s.Res.Meta)}) + } else { + s.D.Set("meta", nil) + } + + if s.Res.Ocid != nil { + s.D.Set("ocid", *s.Res.Ocid) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + s.D.Set("status", s.Res.Status) + + tags := []interface{}{} + for _, item := range s.Res.Tags { + tags = append(tags, tagsToMap(item)) + } + s.D.Set("tags", tags) + + if s.Res.TenancyOcid != nil { + s.D.Set("tenancy_ocid", *s.Res.TenancyOcid) + } + + if s.Res.User != nil { + s.D.Set("user", []interface{}{MySmtpCredentialUserToMap(s.Res.User)}) + } else { + s.D.Set("user", nil) + } + + if s.Res.UserName != nil { + s.D.Set("user_name", *s.Res.UserName) + } + + return nil +} diff --git a/internal/service/identity_domains/identity_domains_my_smtp_credential_resource.go b/internal/service/identity_domains/identity_domains_my_smtp_credential_resource.go new file mode 100644 index 00000000000..7c9c83fce5a --- /dev/null +++ b/internal/service/identity_domains/identity_domains_my_smtp_credential_resource.go @@ -0,0 +1,775 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + "fmt" + "log" + "net/url" + "regexp" + "strings" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsMySmtpCredentialResource() *schema.Resource { + return &schema.Resource{ + Importer: &schema.ResourceImporter{ + State: schema.ImportStatePassthrough, + }, + Timeouts: tfresource.DefaultTimeout, + Create: createIdentityDomainsMySmtpCredential, + Read: readIdentityDomainsMySmtpCredential, + Delete: deleteIdentityDomainsMySmtpCredential, + Schema: map[string]*schema.Schema{ + // Required + "idcs_endpoint": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "schemas": { + Type: schema.TypeList, + Required: true, + ForceNew: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + + // Optional + "authorization": { + Type: schema.TypeString, + Optional: true, + ForceNew: true, + }, + "description": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "expires_on": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "resource_type_schema_version": { + Type: schema.TypeString, + Optional: true, + ForceNew: true, + }, + "status": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "tags": { + Type: schema.TypeList, + Optional: true, + Computed: true, + ForceNew: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "key": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "value": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + + // Optional + + // Computed + }, + }, + }, + "user": { + Type: schema.TypeList, + Optional: true, + Computed: true, + ForceNew: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "value": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + "display": { + Type: schema.TypeString, + Computed: true, + }, + "name": { + Type: schema.TypeString, + Computed: true, + }, + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + + // Computed + "compartment_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "delete_in_progress": { + Type: schema.TypeBool, + Computed: true, + }, + "domain_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "id": { + Type: schema.TypeString, + Computed: true, + }, + "idcs_created_by": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "idcs_last_modified_by": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "idcs_last_upgraded_in_release": { + Type: schema.TypeString, + Computed: true, + }, + "idcs_prevented_operations": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "meta": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "created": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "last_modified": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "location": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "resource_type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "version": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + }, + }, + }, + "tenancy_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "user_name": { + Type: schema.TypeString, + Computed: true, + }, + }, + } +} + +func createIdentityDomainsMySmtpCredential(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsMySmtpCredentialResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.CreateResource(d, sync) +} + +func readIdentityDomainsMySmtpCredential(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsMySmtpCredentialResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpointForRead(d, "mySmtpCredentials") + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.ReadResource(sync) +} + +func deleteIdentityDomainsMySmtpCredential(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsMySmtpCredentialResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + sync.DisableNotFoundRetries = true + + return tfresource.DeleteResource(d, sync) +} + +type IdentityDomainsMySmtpCredentialResourceCrud struct { + tfresource.BaseCrud + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.MySmtpCredential + DisableNotFoundRetries bool +} + +func (s *IdentityDomainsMySmtpCredentialResourceCrud) ID() string { + return *s.Res.Id + //return GetMySmtpCredentialCompositeId(s.D.Get("id").(string)) +} + +func (s *IdentityDomainsMySmtpCredentialResourceCrud) Create() error { + request := oci_identity_domains.CreateMySmtpCredentialRequest{} + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if description, ok := s.D.GetOkExists("description"); ok { + tmp := description.(string) + request.Description = &tmp + } + + if expiresOn, ok := s.D.GetOkExists("expires_on"); ok { + tmp := expiresOn.(string) + request.ExpiresOn = &tmp + } + + if id, ok := s.D.GetOkExists("id"); ok { + tmp := id.(string) + request.Id = &tmp + } + + if ocid, ok := s.D.GetOkExists("ocid"); ok { + tmp := ocid.(string) + request.Ocid = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + if schemas, ok := s.D.GetOkExists("schemas"); ok { + interfaces := schemas.([]interface{}) + tmp := make([]string, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = interfaces[i].(string) + } + } + if len(tmp) != 0 || s.D.HasChange("schemas") { + request.Schemas = tmp + } + } + + if status, ok := s.D.GetOkExists("status"); ok { + request.Status = oci_identity_domains.MySmtpCredentialStatusEnum(status.(string)) + } + + if tags, ok := s.D.GetOkExists("tags"); ok { + interfaces := tags.([]interface{}) + tmp := make([]oci_identity_domains.Tags, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "tags", stateDataIndex) + converted, err := s.mapTotags(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("tags") { + request.Tags = tmp + } + } + + if user, ok := s.D.GetOkExists("user"); ok { + if tmpList := user.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "user", 0) + tmp, err := s.mapToMySmtpCredentialUser(fieldKeyFormat) + if err != nil { + return err + } + request.User = &tmp + } + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + response, err := s.Client.CreateMySmtpCredential(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response.MySmtpCredential + return nil +} + +func (s *IdentityDomainsMySmtpCredentialResourceCrud) Get() error { + request := oci_identity_domains.GetMySmtpCredentialRequest{} + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + tmp := s.D.Id() + request.MySmtpCredentialId = &tmp + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + mySmtpCredentialId, err := parseMySmtpCredentialCompositeId(s.D.Id()) + if err == nil { + request.MySmtpCredentialId = &mySmtpCredentialId + } else { + log.Printf("[WARN] Get() unable to parse current ID: %s", s.D.Id()) + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + response, err := s.Client.GetMySmtpCredential(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response.MySmtpCredential + return nil +} + +func (s *IdentityDomainsMySmtpCredentialResourceCrud) Delete() error { + request := oci_identity_domains.DeleteMySmtpCredentialRequest{} + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if forceDelete, ok := s.D.GetOkExists("force_delete"); ok { + tmp := forceDelete.(bool) + request.ForceDelete = &tmp + } + + tmp := s.D.Id() + request.MySmtpCredentialId = &tmp + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + _, err := s.Client.DeleteMySmtpCredential(context.Background(), request) + return err +} + +func (s *IdentityDomainsMySmtpCredentialResourceCrud) SetData() error { + + mySmtpCredentialId, err := parseMySmtpCredentialCompositeId(s.D.Id()) + if err == nil { + s.D.SetId(mySmtpCredentialId) + } else { + log.Printf("[WARN] SetData() unable to parse current ID: %s", s.D.Id()) + } + + if s.Res.CompartmentOcid != nil { + s.D.Set("compartment_ocid", *s.Res.CompartmentOcid) + } + + if s.Res.DeleteInProgress != nil { + s.D.Set("delete_in_progress", *s.Res.DeleteInProgress) + } + + if s.Res.Description != nil { + s.D.Set("description", *s.Res.Description) + } + + if s.Res.DomainOcid != nil { + s.D.Set("domain_ocid", *s.Res.DomainOcid) + } + + if s.Res.ExpiresOn != nil { + s.D.Set("expires_on", *s.Res.ExpiresOn) + } + + if s.Res.IdcsCreatedBy != nil { + s.D.Set("idcs_created_by", []interface{}{idcsCreatedByToMap(s.Res.IdcsCreatedBy)}) + } else { + s.D.Set("idcs_created_by", nil) + } + + if s.Res.IdcsLastModifiedBy != nil { + s.D.Set("idcs_last_modified_by", []interface{}{idcsLastModifiedByToMap(s.Res.IdcsLastModifiedBy)}) + } else { + s.D.Set("idcs_last_modified_by", nil) + } + + if s.Res.IdcsLastUpgradedInRelease != nil { + s.D.Set("idcs_last_upgraded_in_release", *s.Res.IdcsLastUpgradedInRelease) + } + + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + + if s.Res.Meta != nil { + s.D.Set("meta", []interface{}{metaToMap(s.Res.Meta)}) + } else { + s.D.Set("meta", nil) + } + + if s.Res.Ocid != nil { + s.D.Set("ocid", *s.Res.Ocid) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + s.D.Set("status", s.Res.Status) + + tags := []interface{}{} + for _, item := range s.Res.Tags { + tags = append(tags, tagsToMap(item)) + } + s.D.Set("tags", tags) + + if s.Res.TenancyOcid != nil { + s.D.Set("tenancy_ocid", *s.Res.TenancyOcid) + } + + if s.Res.User != nil { + s.D.Set("user", []interface{}{MySmtpCredentialUserToMap(s.Res.User)}) + } else { + s.D.Set("user", nil) + } + + if s.Res.UserName != nil { + s.D.Set("user_name", *s.Res.UserName) + } + + return nil +} + +//func GetMySmtpCredentialCompositeId(mySmtpCredentialId string) string { +// id = url.PathEscape(id) +// idcsEndpoint = url.PathEscape(idcsEndpoint) +// mySmtpCredentialId = url.PathEscape(mySmtpCredentialId) +// compositeId := "idcsEndpoint/" + idcsEndpoint + "/mySmtpCredentials/" + mySmtpCredentialId +// return compositeId +//} + +func parseMySmtpCredentialCompositeId(compositeId string) (mySmtpCredentialId string, err error) { + parts := strings.Split(compositeId, "/") + match, _ := regexp.MatchString("idcsEndpoint/.*/mySmtpCredentials/.*", compositeId) + if !match || len(parts) != 4 { + err = fmt.Errorf("illegal compositeId %s encountered", compositeId) + return + } + //idcsEndpoint, _ = url.PathUnescape(parts[1]) + mySmtpCredentialId, _ = url.PathUnescape(parts[3]) + + return +} + +func MySmtpCredentialToMap(obj oci_identity_domains.MySmtpCredential) map[string]interface{} { + result := map[string]interface{}{} + + if obj.CompartmentOcid != nil { + result["compartment_ocid"] = string(*obj.CompartmentOcid) + } + + if obj.DeleteInProgress != nil { + result["delete_in_progress"] = bool(*obj.DeleteInProgress) + } + + if obj.Description != nil { + result["description"] = string(*obj.Description) + } + + if obj.DomainOcid != nil { + result["domain_ocid"] = string(*obj.DomainOcid) + } + + if obj.ExpiresOn != nil { + result["expires_on"] = string(*obj.ExpiresOn) + } + + if obj.Id != nil { + result["id"] = string(*obj.Id) + } + + if obj.IdcsCreatedBy != nil { + result["idcs_created_by"] = []interface{}{idcsCreatedByToMap(obj.IdcsCreatedBy)} + } + + if obj.IdcsLastModifiedBy != nil { + result["idcs_last_modified_by"] = []interface{}{idcsLastModifiedByToMap(obj.IdcsLastModifiedBy)} + } + + if obj.IdcsLastUpgradedInRelease != nil { + result["idcs_last_upgraded_in_release"] = string(*obj.IdcsLastUpgradedInRelease) + } + + result["idcs_prevented_operations"] = obj.IdcsPreventedOperations + result["idcs_prevented_operations"] = obj.IdcsPreventedOperations + + if obj.Meta != nil { + result["meta"] = []interface{}{metaToMap(obj.Meta)} + } + + if obj.Ocid != nil { + result["ocid"] = string(*obj.Ocid) + } + + result["schemas"] = obj.Schemas + result["schemas"] = obj.Schemas + + result["status"] = string(obj.Status) + + tags := []interface{}{} + for _, item := range obj.Tags { + tags = append(tags, tagsToMap(item)) + } + result["tags"] = tags + + if obj.TenancyOcid != nil { + result["tenancy_ocid"] = string(*obj.TenancyOcid) + } + + if obj.User != nil { + result["user"] = []interface{}{MySmtpCredentialUserToMap(obj.User)} + } + + if obj.UserName != nil { + result["user_name"] = string(*obj.UserName) + } + + return result +} + +func (s *IdentityDomainsMySmtpCredentialResourceCrud) mapToMySmtpCredentialUser(fieldKeyFormat string) (oci_identity_domains.MySmtpCredentialUser, error) { + result := oci_identity_domains.MySmtpCredentialUser{} + + if display, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "display")); ok { + tmp := display.(string) + result.Display = &tmp + } + + if name, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "name")); ok { + tmp := name.(string) + result.Name = &tmp + } + + if ocid, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ocid")); ok { + tmp := ocid.(string) + result.Ocid = &tmp + } + + if ref, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ref")); ok { + tmp := ref.(string) + result.Ref = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func MySmtpCredentialUserToMap(obj *oci_identity_domains.MySmtpCredentialUser) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Display != nil { + result["display"] = string(*obj.Display) + } + + if obj.Name != nil { + result["name"] = string(*obj.Name) + } + + if obj.Ocid != nil { + result["ocid"] = string(*obj.Ocid) + } + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func (s *IdentityDomainsMySmtpCredentialResourceCrud) mapTotags(fieldKeyFormat string) (oci_identity_domains.Tags, error) { + result := oci_identity_domains.Tags{} + + if key, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "key")); ok { + tmp := key.(string) + result.Key = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} diff --git a/internal/service/identity_domains/identity_domains_my_smtp_credentials_data_source.go b/internal/service/identity_domains/identity_domains_my_smtp_credentials_data_source.go new file mode 100644 index 00000000000..66aa4e966a8 --- /dev/null +++ b/internal/service/identity_domains/identity_domains_my_smtp_credentials_data_source.go @@ -0,0 +1,197 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsMySmtpCredentialsDataSource() *schema.Resource { + return &schema.Resource{ + Read: readIdentityDomainsMySmtpCredentials, + Schema: map[string]*schema.Schema{ + "idcs_endpoint": { + Type: schema.TypeString, + Required: true, + }, + "compartment_id": { + Type: schema.TypeString, + Optional: true, + }, + "my_smtp_credential_count": { + Type: schema.TypeInt, + Optional: true, + }, + "my_smtp_credential_filter": { + Type: schema.TypeString, + Optional: true, + }, + "authorization": { + Type: schema.TypeString, + Optional: true, + }, + "resource_type_schema_version": { + Type: schema.TypeString, + Optional: true, + }, + "start_index": { + Type: schema.TypeInt, + Optional: true, + }, + "sort_order": { + Type: schema.TypeString, + Optional: true, + }, + "sort_by": { + Type: schema.TypeString, + Optional: true, + }, + // Computed + "my_smtp_credentials": { + Type: schema.TypeList, + Computed: true, + Elem: tfresource.GetDataSourceItemSchema(IdentityDomainsMySmtpCredentialResource()), + }, + "items_per_page": { + Type: schema.TypeInt, + Computed: true, + }, + "schemas": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "total_results": { + Type: schema.TypeInt, + Computed: true, + }, + }, + } +} + +func readIdentityDomainsMySmtpCredentials(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsMySmtpCredentialsDataSourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.ReadResource(sync) +} + +type IdentityDomainsMySmtpCredentialsDataSourceCrud struct { + D *schema.ResourceData + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.ListMySmtpCredentialsResponse +} + +func (s *IdentityDomainsMySmtpCredentialsDataSourceCrud) VoidState() { + s.D.SetId("") +} + +func (s *IdentityDomainsMySmtpCredentialsDataSourceCrud) Get() error { + request := oci_identity_domains.ListMySmtpCredentialsRequest{} + + if mySmtpCredentialCount, ok := s.D.GetOkExists("my_smtp_credential_count"); ok { + tmp := mySmtpCredentialCount.(int) + request.Count = &tmp + } + + if mySmtpCredentialFilter, ok := s.D.GetOkExists("my_smtp_credential_filter"); ok { + tmp := mySmtpCredentialFilter.(string) + request.Filter = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + if startIndex, ok := s.D.GetOkExists("start_index"); ok { + tmp := startIndex.(int) + request.StartIndex = &tmp + } + + if sortOrder, ok := s.D.GetOkExists("sort_order"); ok { + tmp := oci_identity_domains.ListMySmtpCredentialsSortOrderEnum(sortOrder.(string)) + request.SortOrder = tmp + } + + if sortBy, ok := s.D.GetOkExists("sort_by"); ok { + tmp := sortBy.(string) + request.SortBy = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "identity_domains") + + response, err := s.Client.ListMySmtpCredentials(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response + // IDCS pagination + startIndex := *response.StartIndex + for startIndex+*response.ItemsPerPage <= *response.TotalResults { + startIndex += *response.ItemsPerPage + request.StartIndex = &startIndex + listResponse, err := s.Client.ListMySmtpCredentials(context.Background(), request) + if err != nil { + return err + } + + s.Res.Resources = append(s.Res.Resources, listResponse.Resources...) + } + + return nil +} + +func (s *IdentityDomainsMySmtpCredentialsDataSourceCrud) SetData() error { + if s.Res == nil { + return nil + } + + s.D.SetId(tfresource.GenerateDataSourceHashID("IdentityDomainsMySmtpCredentialsDataSource-", IdentityDomainsMySmtpCredentialsDataSource(), s.D)) + + resources := []interface{}{} + for _, item := range s.Res.Resources { + resources = append(resources, MySmtpCredentialToMap(item)) + } + s.D.Set("my_smtp_credentials", resources) + + if s.Res.ItemsPerPage != nil { + s.D.Set("items_per_page", *s.Res.ItemsPerPage) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + if s.Res.StartIndex != nil { + s.D.Set("start_index", *s.Res.StartIndex) + } + + if s.Res.TotalResults != nil { + s.D.Set("total_results", *s.Res.TotalResults) + } + + return nil +} diff --git a/internal/service/identity_domains/identity_domains_my_support_account_data_source.go b/internal/service/identity_domains/identity_domains_my_support_account_data_source.go new file mode 100644 index 00000000000..6a470bb8c1c --- /dev/null +++ b/internal/service/identity_domains/identity_domains_my_support_account_data_source.go @@ -0,0 +1,170 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsMySupportAccountDataSource() *schema.Resource { + fieldMap := make(map[string]*schema.Schema) + fieldMap["authorization"] = &schema.Schema{ + Type: schema.TypeString, + Optional: true, + } + fieldMap["idcs_endpoint"] = &schema.Schema{ + Type: schema.TypeString, + Required: true, + } + fieldMap["my_support_account_id"] = &schema.Schema{ + Type: schema.TypeString, + Required: true, + } + fieldMap["resource_type_schema_version"] = &schema.Schema{ + Type: schema.TypeString, + Optional: true, + } + return tfresource.GetSingularDataSourceItemSchema(IdentityDomainsMySupportAccountResource(), fieldMap, readSingularIdentityDomainsMySupportAccount) +} + +func readSingularIdentityDomainsMySupportAccount(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsMySupportAccountDataSourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + + return tfresource.ReadResource(sync) +} + +type IdentityDomainsMySupportAccountDataSourceCrud struct { + D *schema.ResourceData + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.GetMySupportAccountResponse +} + +func (s *IdentityDomainsMySupportAccountDataSourceCrud) VoidState() { + s.D.SetId("") +} + +func (s *IdentityDomainsMySupportAccountDataSourceCrud) Get() error { + request := oci_identity_domains.GetMySupportAccountRequest{} + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if mySupportAccountId, ok := s.D.GetOkExists("my_support_account_id"); ok { + tmp := mySupportAccountId.(string) + request.MySupportAccountId = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "identity_domains") + + response, err := s.Client.GetMySupportAccount(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response + return nil +} + +func (s *IdentityDomainsMySupportAccountDataSourceCrud) SetData() error { + if s.Res == nil { + return nil + } + + s.D.SetId(*s.Res.Id) + + s.D.Set("my_support_account_provider", s.Res.Provider) + + if s.Res.CompartmentOcid != nil { + s.D.Set("compartment_ocid", *s.Res.CompartmentOcid) + } + + if s.Res.DeleteInProgress != nil { + s.D.Set("delete_in_progress", *s.Res.DeleteInProgress) + } + + if s.Res.DomainOcid != nil { + s.D.Set("domain_ocid", *s.Res.DomainOcid) + } + + if s.Res.IdcsCreatedBy != nil { + s.D.Set("idcs_created_by", []interface{}{idcsCreatedByToMap(s.Res.IdcsCreatedBy)}) + } else { + s.D.Set("idcs_created_by", nil) + } + + if s.Res.IdcsLastModifiedBy != nil { + s.D.Set("idcs_last_modified_by", []interface{}{idcsLastModifiedByToMap(s.Res.IdcsLastModifiedBy)}) + } else { + s.D.Set("idcs_last_modified_by", nil) + } + + if s.Res.IdcsLastUpgradedInRelease != nil { + s.D.Set("idcs_last_upgraded_in_release", *s.Res.IdcsLastUpgradedInRelease) + } + + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + + if s.Res.Meta != nil { + s.D.Set("meta", []interface{}{metaToMap(s.Res.Meta)}) + } else { + s.D.Set("meta", nil) + } + + if s.Res.Ocid != nil { + s.D.Set("ocid", *s.Res.Ocid) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + tags := []interface{}{} + for _, item := range s.Res.Tags { + tags = append(tags, tagsToMap(item)) + } + s.D.Set("tags", tags) + + if s.Res.TenancyOcid != nil { + s.D.Set("tenancy_ocid", *s.Res.TenancyOcid) + } + + if s.Res.Token != nil { + s.D.Set("token", *s.Res.Token) + } + + if s.Res.User != nil { + s.D.Set("user", []interface{}{MySupportAccountUserToMap(s.Res.User)}) + } else { + s.D.Set("user", nil) + } + + if s.Res.UserId != nil { + s.D.Set("user_id", *s.Res.UserId) + } + + return nil +} diff --git a/internal/service/identity_domains/identity_domains_my_support_account_resource.go b/internal/service/identity_domains/identity_domains_my_support_account_resource.go new file mode 100644 index 00000000000..87297e6f6a4 --- /dev/null +++ b/internal/service/identity_domains/identity_domains_my_support_account_resource.go @@ -0,0 +1,748 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + "fmt" + "log" + "net/url" + "regexp" + "strings" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsMySupportAccountResource() *schema.Resource { + return &schema.Resource{ + Importer: &schema.ResourceImporter{ + State: schema.ImportStatePassthrough, + }, + Timeouts: tfresource.DefaultTimeout, + Create: createIdentityDomainsMySupportAccount, + Read: readIdentityDomainsMySupportAccount, + Delete: deleteIdentityDomainsMySupportAccount, + Schema: map[string]*schema.Schema{ + // Required + "idcs_endpoint": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "schemas": { + Type: schema.TypeList, + Required: true, + ForceNew: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "token": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + + // Optional + "authorization": { + Type: schema.TypeString, + Optional: true, + ForceNew: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "resource_type_schema_version": { + Type: schema.TypeString, + Optional: true, + ForceNew: true, + }, + "tags": { + Type: schema.TypeList, + Optional: true, + Computed: true, + ForceNew: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "key": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "value": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + + // Optional + + // Computed + }, + }, + }, + "user": { + Type: schema.TypeList, + Optional: true, + Computed: true, + ForceNew: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "value": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + "display": { + Type: schema.TypeString, + Computed: true, + }, + "name": { + Type: schema.TypeString, + Computed: true, + }, + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + + // Computed + "my_support_account_provider": { + Type: schema.TypeString, + Computed: true, + }, + "compartment_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "delete_in_progress": { + Type: schema.TypeBool, + Computed: true, + }, + "domain_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "id": { + Type: schema.TypeString, + Computed: true, + }, + "idcs_created_by": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "idcs_last_modified_by": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "idcs_last_upgraded_in_release": { + Type: schema.TypeString, + Computed: true, + }, + "idcs_prevented_operations": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "meta": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "created": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "last_modified": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "location": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "resource_type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "version": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + }, + }, + }, + "tenancy_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "user_id": { + Type: schema.TypeString, + Computed: true, + }, + }, + } +} + +func createIdentityDomainsMySupportAccount(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsMySupportAccountResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.CreateResource(d, sync) +} + +func readIdentityDomainsMySupportAccount(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsMySupportAccountResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpointForRead(d, "mySupportAccounts") + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.ReadResource(sync) +} + +func deleteIdentityDomainsMySupportAccount(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsMySupportAccountResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + sync.DisableNotFoundRetries = true + + return tfresource.DeleteResource(d, sync) +} + +type IdentityDomainsMySupportAccountResourceCrud struct { + tfresource.BaseCrud + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.MySupportAccount + DisableNotFoundRetries bool +} + +func (s *IdentityDomainsMySupportAccountResourceCrud) ID() string { + return *s.Res.Id +} + +func (s *IdentityDomainsMySupportAccountResourceCrud) Create() error { + request := oci_identity_domains.CreateMySupportAccountRequest{} + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if id, ok := s.D.GetOkExists("id"); ok { + tmp := id.(string) + request.Id = &tmp + } + + if ocid, ok := s.D.GetOkExists("ocid"); ok { + tmp := ocid.(string) + request.Ocid = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + if schemas, ok := s.D.GetOkExists("schemas"); ok { + interfaces := schemas.([]interface{}) + tmp := make([]string, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = interfaces[i].(string) + } + } + if len(tmp) != 0 || s.D.HasChange("schemas") { + request.Schemas = tmp + } + } + + if tags, ok := s.D.GetOkExists("tags"); ok { + interfaces := tags.([]interface{}) + tmp := make([]oci_identity_domains.Tags, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "tags", stateDataIndex) + converted, err := s.mapTotags(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("tags") { + request.Tags = tmp + } + } + + if token, ok := s.D.GetOkExists("token"); ok { + tmp := token.(string) + request.Token = &tmp + } + + if user, ok := s.D.GetOkExists("user"); ok { + if tmpList := user.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "user", 0) + tmp, err := s.mapToMySupportAccountUser(fieldKeyFormat) + if err != nil { + return err + } + request.User = &tmp + } + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + response, err := s.Client.CreateMySupportAccount(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response.MySupportAccount + return nil +} + +func (s *IdentityDomainsMySupportAccountResourceCrud) Get() error { + request := oci_identity_domains.GetMySupportAccountRequest{} + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + tmp := s.D.Id() + request.MySupportAccountId = &tmp + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + mySupportAccountId, err := parseMySupportAccountCompositeId(s.D.Id()) + if err == nil { + request.MySupportAccountId = &mySupportAccountId + } else { + log.Printf("[WARN] Get() unable to parse current ID: %s", s.D.Id()) + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + response, err := s.Client.GetMySupportAccount(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response.MySupportAccount + return nil +} + +func (s *IdentityDomainsMySupportAccountResourceCrud) Delete() error { + request := oci_identity_domains.DeleteMySupportAccountRequest{} + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if forceDelete, ok := s.D.GetOkExists("force_delete"); ok { + tmp := forceDelete.(bool) + request.ForceDelete = &tmp + } + + tmp := s.D.Id() + request.MySupportAccountId = &tmp + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + _, err := s.Client.DeleteMySupportAccount(context.Background(), request) + return err +} + +func (s *IdentityDomainsMySupportAccountResourceCrud) SetData() error { + + mySupportAccountId, err := parseMySupportAccountCompositeId(s.D.Id()) + if err == nil { + s.D.SetId(mySupportAccountId) + } else { + log.Printf("[WARN] SetData() unable to parse current ID: %s", s.D.Id()) + } + + s.D.Set("my_support_account_provider", s.Res.Provider) + + if s.Res.CompartmentOcid != nil { + s.D.Set("compartment_ocid", *s.Res.CompartmentOcid) + } + + if s.Res.DeleteInProgress != nil { + s.D.Set("delete_in_progress", *s.Res.DeleteInProgress) + } + + if s.Res.DomainOcid != nil { + s.D.Set("domain_ocid", *s.Res.DomainOcid) + } + + if s.Res.IdcsCreatedBy != nil { + s.D.Set("idcs_created_by", []interface{}{idcsCreatedByToMap(s.Res.IdcsCreatedBy)}) + } else { + s.D.Set("idcs_created_by", nil) + } + + if s.Res.IdcsLastModifiedBy != nil { + s.D.Set("idcs_last_modified_by", []interface{}{idcsLastModifiedByToMap(s.Res.IdcsLastModifiedBy)}) + } else { + s.D.Set("idcs_last_modified_by", nil) + } + + if s.Res.IdcsLastUpgradedInRelease != nil { + s.D.Set("idcs_last_upgraded_in_release", *s.Res.IdcsLastUpgradedInRelease) + } + + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + + if s.Res.Meta != nil { + s.D.Set("meta", []interface{}{metaToMap(s.Res.Meta)}) + } else { + s.D.Set("meta", nil) + } + + if s.Res.Ocid != nil { + s.D.Set("ocid", *s.Res.Ocid) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + tags := []interface{}{} + for _, item := range s.Res.Tags { + tags = append(tags, tagsToMap(item)) + } + s.D.Set("tags", tags) + + if s.Res.TenancyOcid != nil { + s.D.Set("tenancy_ocid", *s.Res.TenancyOcid) + } + + if s.Res.Token != nil { + s.D.Set("token", *s.Res.Token) + } + + if s.Res.User != nil { + s.D.Set("user", []interface{}{MySupportAccountUserToMap(s.Res.User)}) + } else { + s.D.Set("user", nil) + } + + if s.Res.UserId != nil { + s.D.Set("user_id", *s.Res.UserId) + } + + return nil +} + +//func GetMySupportAccountCompositeId(mySupportAccountId string) string { +// id = url.PathEscape(id) +// idcsEndpoint = url.PathEscape(idcsEndpoint) +// mySupportAccountId = url.PathEscape(mySupportAccountId) +// compositeId := "idcsEndpoint/" + idcsEndpoint + "/mySupportAccounts/" + mySupportAccountId +// return compositeId +//} + +func parseMySupportAccountCompositeId(compositeId string) (mySupportAccountId string, err error) { + parts := strings.Split(compositeId, "/") + match, _ := regexp.MatchString("idcsEndpoint/.*/mySupportAccounts/.*", compositeId) + if !match || len(parts) != 4 { + err = fmt.Errorf("illegal compositeId %s encountered", compositeId) + return + } + //idcsEndpoint, _ = url.PathUnescape(parts[1]) + mySupportAccountId, _ = url.PathUnescape(parts[3]) + + return +} + +func MySupportAccountToMap(obj oci_identity_domains.MySupportAccount) map[string]interface{} { + result := map[string]interface{}{} + + result["my_support_account_provider"] = string(obj.Provider) + + if obj.CompartmentOcid != nil { + result["compartment_ocid"] = string(*obj.CompartmentOcid) + } + + if obj.DeleteInProgress != nil { + result["delete_in_progress"] = bool(*obj.DeleteInProgress) + } + + if obj.DomainOcid != nil { + result["domain_ocid"] = string(*obj.DomainOcid) + } + + if obj.Id != nil { + result["id"] = string(*obj.Id) + } + + if obj.IdcsCreatedBy != nil { + result["idcs_created_by"] = []interface{}{idcsCreatedByToMap(obj.IdcsCreatedBy)} + } + + if obj.IdcsLastModifiedBy != nil { + result["idcs_last_modified_by"] = []interface{}{idcsLastModifiedByToMap(obj.IdcsLastModifiedBy)} + } + + if obj.IdcsLastUpgradedInRelease != nil { + result["idcs_last_upgraded_in_release"] = string(*obj.IdcsLastUpgradedInRelease) + } + + result["idcs_prevented_operations"] = obj.IdcsPreventedOperations + result["idcs_prevented_operations"] = obj.IdcsPreventedOperations + + if obj.Meta != nil { + result["meta"] = []interface{}{metaToMap(obj.Meta)} + } + + if obj.Ocid != nil { + result["ocid"] = string(*obj.Ocid) + } + + result["schemas"] = obj.Schemas + result["schemas"] = obj.Schemas + + tags := []interface{}{} + for _, item := range obj.Tags { + tags = append(tags, tagsToMap(item)) + } + result["tags"] = tags + + if obj.TenancyOcid != nil { + result["tenancy_ocid"] = string(*obj.TenancyOcid) + } + + if obj.Token != nil { + result["token"] = string(*obj.Token) + } + + if obj.User != nil { + result["user"] = []interface{}{MySupportAccountUserToMap(obj.User)} + } + + if obj.UserId != nil { + result["user_id"] = string(*obj.UserId) + } + + return result +} + +func (s *IdentityDomainsMySupportAccountResourceCrud) mapToMySupportAccountUser(fieldKeyFormat string) (oci_identity_domains.MySupportAccountUser, error) { + result := oci_identity_domains.MySupportAccountUser{} + + if display, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "display")); ok { + tmp := display.(string) + result.Display = &tmp + } + + if name, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "name")); ok { + tmp := name.(string) + result.Name = &tmp + } + + if ocid, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ocid")); ok { + tmp := ocid.(string) + result.Ocid = &tmp + } + + if ref, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ref")); ok { + tmp := ref.(string) + result.Ref = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func MySupportAccountUserToMap(obj *oci_identity_domains.MySupportAccountUser) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Display != nil { + result["display"] = string(*obj.Display) + } + + if obj.Name != nil { + result["name"] = string(*obj.Name) + } + + if obj.Ocid != nil { + result["ocid"] = string(*obj.Ocid) + } + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func (s *IdentityDomainsMySupportAccountResourceCrud) mapTotags(fieldKeyFormat string) (oci_identity_domains.Tags, error) { + result := oci_identity_domains.Tags{} + + if key, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "key")); ok { + tmp := key.(string) + result.Key = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} diff --git a/internal/service/identity_domains/identity_domains_my_support_accounts_data_source.go b/internal/service/identity_domains/identity_domains_my_support_accounts_data_source.go new file mode 100644 index 00000000000..99cd0f94553 --- /dev/null +++ b/internal/service/identity_domains/identity_domains_my_support_accounts_data_source.go @@ -0,0 +1,197 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsMySupportAccountsDataSource() *schema.Resource { + return &schema.Resource{ + Read: readIdentityDomainsMySupportAccounts, + Schema: map[string]*schema.Schema{ + "idcs_endpoint": { + Type: schema.TypeString, + Required: true, + }, + "compartment_id": { + Type: schema.TypeString, + Optional: true, + }, + "my_support_account_count": { + Type: schema.TypeInt, + Optional: true, + }, + "my_support_account_filter": { + Type: schema.TypeString, + Optional: true, + }, + "authorization": { + Type: schema.TypeString, + Optional: true, + }, + "resource_type_schema_version": { + Type: schema.TypeString, + Optional: true, + }, + "start_index": { + Type: schema.TypeInt, + Optional: true, + }, + "sort_order": { + Type: schema.TypeString, + Optional: true, + }, + "sort_by": { + Type: schema.TypeString, + Optional: true, + }, + // Computed + "my_support_accounts": { + Type: schema.TypeList, + Computed: true, + Elem: tfresource.GetDataSourceItemSchema(IdentityDomainsMySupportAccountResource()), + }, + "items_per_page": { + Type: schema.TypeInt, + Computed: true, + }, + "schemas": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "total_results": { + Type: schema.TypeInt, + Computed: true, + }, + }, + } +} + +func readIdentityDomainsMySupportAccounts(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsMySupportAccountsDataSourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.ReadResource(sync) +} + +type IdentityDomainsMySupportAccountsDataSourceCrud struct { + D *schema.ResourceData + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.ListMySupportAccountsResponse +} + +func (s *IdentityDomainsMySupportAccountsDataSourceCrud) VoidState() { + s.D.SetId("") +} + +func (s *IdentityDomainsMySupportAccountsDataSourceCrud) Get() error { + request := oci_identity_domains.ListMySupportAccountsRequest{} + + if mySupportAccountCount, ok := s.D.GetOkExists("my_support_account_count"); ok { + tmp := mySupportAccountCount.(int) + request.Count = &tmp + } + + if mySupportAccountFilter, ok := s.D.GetOkExists("my_support_account_filter"); ok { + tmp := mySupportAccountFilter.(string) + request.Filter = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + if startIndex, ok := s.D.GetOkExists("start_index"); ok { + tmp := startIndex.(int) + request.StartIndex = &tmp + } + + if sortOrder, ok := s.D.GetOkExists("sort_order"); ok { + tmp := oci_identity_domains.ListMySupportAccountsSortOrderEnum(sortOrder.(string)) + request.SortOrder = tmp + } + + if sortBy, ok := s.D.GetOkExists("sort_by"); ok { + tmp := sortBy.(string) + request.SortBy = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "identity_domains") + + response, err := s.Client.ListMySupportAccounts(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response + // IDCS pagination + startIndex := *response.StartIndex + for startIndex+*response.ItemsPerPage <= *response.TotalResults { + startIndex += *response.ItemsPerPage + request.StartIndex = &startIndex + listResponse, err := s.Client.ListMySupportAccounts(context.Background(), request) + if err != nil { + return err + } + + s.Res.Resources = append(s.Res.Resources, listResponse.Resources...) + } + + return nil +} + +func (s *IdentityDomainsMySupportAccountsDataSourceCrud) SetData() error { + if s.Res == nil { + return nil + } + + s.D.SetId(tfresource.GenerateDataSourceHashID("IdentityDomainsMySupportAccountsDataSource-", IdentityDomainsMySupportAccountsDataSource(), s.D)) + + resources := []interface{}{} + for _, item := range s.Res.Resources { + resources = append(resources, MySupportAccountToMap(item)) + } + s.D.Set("my_support_accounts", resources) + + if s.Res.ItemsPerPage != nil { + s.D.Set("items_per_page", *s.Res.ItemsPerPage) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + if s.Res.StartIndex != nil { + s.D.Set("start_index", *s.Res.StartIndex) + } + + if s.Res.TotalResults != nil { + s.D.Set("total_results", *s.Res.TotalResults) + } + + return nil +} diff --git a/internal/service/identity_domains/identity_domains_my_trusted_user_agent_data_source.go b/internal/service/identity_domains/identity_domains_my_trusted_user_agent_data_source.go new file mode 100644 index 00000000000..6935e84fe4a --- /dev/null +++ b/internal/service/identity_domains/identity_domains_my_trusted_user_agent_data_source.go @@ -0,0 +1,465 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsMyTrustedUserAgentDataSource() *schema.Resource { + return &schema.Resource{ + Read: readSingularIdentityDomainsMyTrustedUserAgent, + Schema: map[string]*schema.Schema{ + "attribute_sets": { + Type: schema.TypeList, + Optional: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "attributes": { + Type: schema.TypeString, + Optional: true, + }, + "authorization": { + Type: schema.TypeString, + Optional: true, + }, + "idcs_endpoint": { + Type: schema.TypeString, + Required: true, + }, + "my_trusted_user_agent_id": { + Type: schema.TypeString, + Required: true, + }, + "resource_type_schema_version": { + Type: schema.TypeString, + Optional: true, + }, + // Computed + "compartment_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "delete_in_progress": { + Type: schema.TypeBool, + Computed: true, + }, + "domain_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "expiry_time": { + Type: schema.TypeString, + Computed: true, + }, + "idcs_created_by": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + + // Computed + "display": { + Type: schema.TypeString, + Computed: true, + }, + "ocid": { + Type: schema.TypeString, + Computed: true, + }, + "ref": { + Type: schema.TypeString, + Computed: true, + }, + "type": { + Type: schema.TypeString, + Computed: true, + }, + "value": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "idcs_last_modified_by": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + + // Computed + "display": { + Type: schema.TypeString, + Computed: true, + }, + "ocid": { + Type: schema.TypeString, + Computed: true, + }, + "ref": { + Type: schema.TypeString, + Computed: true, + }, + "type": { + Type: schema.TypeString, + Computed: true, + }, + "value": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "idcs_last_upgraded_in_release": { + Type: schema.TypeString, + Computed: true, + }, + "idcs_prevented_operations": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "last_used_on": { + Type: schema.TypeString, + Computed: true, + }, + "location": { + Type: schema.TypeString, + Computed: true, + }, + "meta": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + + // Computed + "created": { + Type: schema.TypeString, + Computed: true, + }, + "last_modified": { + Type: schema.TypeString, + Computed: true, + }, + "location": { + Type: schema.TypeString, + Computed: true, + }, + "resource_type": { + Type: schema.TypeString, + Computed: true, + }, + "version": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "name": { + Type: schema.TypeString, + Computed: true, + }, + "ocid": { + Type: schema.TypeString, + Computed: true, + }, + "platform": { + Type: schema.TypeString, + Computed: true, + }, + "schemas": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "tags": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + + // Computed + "key": { + Type: schema.TypeString, + Computed: true, + }, + "value": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "tenancy_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "token_type": { + Type: schema.TypeString, + Computed: true, + }, + "trust_token": { + Type: schema.TypeString, + Computed: true, + }, + "trusted_factors": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + + // Computed + "category": { + Type: schema.TypeString, + Computed: true, + }, + "creation_time": { + Type: schema.TypeString, + Computed: true, + }, + "type": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "user": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + + // Computed + "display": { + Type: schema.TypeString, + Computed: true, + }, + "ocid": { + Type: schema.TypeString, + Computed: true, + }, + "ref": { + Type: schema.TypeString, + Computed: true, + }, + "value": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + }, + } +} + +func readSingularIdentityDomainsMyTrustedUserAgent(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsMyTrustedUserAgentDataSourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + + return tfresource.ReadResource(sync) +} + +type IdentityDomainsMyTrustedUserAgentDataSourceCrud struct { + D *schema.ResourceData + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.GetMyTrustedUserAgentResponse +} + +func (s *IdentityDomainsMyTrustedUserAgentDataSourceCrud) VoidState() { + s.D.SetId("") +} + +func (s *IdentityDomainsMyTrustedUserAgentDataSourceCrud) Get() error { + request := oci_identity_domains.GetMyTrustedUserAgentRequest{} + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if myTrustedUserAgentId, ok := s.D.GetOkExists("my_trusted_user_agent_id"); ok { + tmp := myTrustedUserAgentId.(string) + request.MyTrustedUserAgentId = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "identity_domains") + + response, err := s.Client.GetMyTrustedUserAgent(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response + return nil +} + +func (s *IdentityDomainsMyTrustedUserAgentDataSourceCrud) SetData() error { + if s.Res == nil { + return nil + } + + s.D.SetId(*s.Res.Id) + + if s.Res.CompartmentOcid != nil { + s.D.Set("compartment_ocid", *s.Res.CompartmentOcid) + } + + if s.Res.DeleteInProgress != nil { + s.D.Set("delete_in_progress", *s.Res.DeleteInProgress) + } + + if s.Res.DomainOcid != nil { + s.D.Set("domain_ocid", *s.Res.DomainOcid) + } + + if s.Res.ExpiryTime != nil { + s.D.Set("expiry_time", *s.Res.ExpiryTime) + } + + if s.Res.IdcsCreatedBy != nil { + s.D.Set("idcs_created_by", []interface{}{idcsCreatedByToMap(s.Res.IdcsCreatedBy)}) + } else { + s.D.Set("idcs_created_by", nil) + } + + if s.Res.IdcsLastModifiedBy != nil { + s.D.Set("idcs_last_modified_by", []interface{}{idcsLastModifiedByToMap(s.Res.IdcsLastModifiedBy)}) + } else { + s.D.Set("idcs_last_modified_by", nil) + } + + if s.Res.IdcsLastUpgradedInRelease != nil { + s.D.Set("idcs_last_upgraded_in_release", *s.Res.IdcsLastUpgradedInRelease) + } + + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + + if s.Res.LastUsedOn != nil { + s.D.Set("last_used_on", *s.Res.LastUsedOn) + } + + if s.Res.Location != nil { + s.D.Set("location", *s.Res.Location) + } + + if s.Res.Meta != nil { + s.D.Set("meta", []interface{}{metaToMap(s.Res.Meta)}) + } else { + s.D.Set("meta", nil) + } + + if s.Res.Name != nil { + s.D.Set("name", *s.Res.Name) + } + + if s.Res.Ocid != nil { + s.D.Set("ocid", *s.Res.Ocid) + } + + if s.Res.Platform != nil { + s.D.Set("platform", *s.Res.Platform) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + tags := []interface{}{} + for _, item := range s.Res.Tags { + tags = append(tags, tagsToMap(item)) + } + s.D.Set("tags", tags) + + if s.Res.TenancyOcid != nil { + s.D.Set("tenancy_ocid", *s.Res.TenancyOcid) + } + + s.D.Set("token_type", s.Res.TokenType) + + if s.Res.TrustToken != nil { + s.D.Set("trust_token", *s.Res.TrustToken) + } + + trustedFactors := []interface{}{} + for _, item := range s.Res.TrustedFactors { + trustedFactors = append(trustedFactors, MyTrustedUserAgentTrustedFactorsToMap(item)) + } + s.D.Set("trusted_factors", trustedFactors) + + if s.Res.User != nil { + s.D.Set("user", []interface{}{MyTrustedUserAgentUserToMap(s.Res.User)}) + } else { + s.D.Set("user", nil) + } + + return nil +} diff --git a/internal/service/identity_domains/identity_domains_my_trusted_user_agents_data_source.go b/internal/service/identity_domains/identity_domains_my_trusted_user_agents_data_source.go new file mode 100644 index 00000000000..b9288b87be3 --- /dev/null +++ b/internal/service/identity_domains/identity_domains_my_trusted_user_agents_data_source.go @@ -0,0 +1,358 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsMyTrustedUserAgentsDataSource() *schema.Resource { + return &schema.Resource{ + Read: readIdentityDomainsMyTrustedUserAgents, + Schema: map[string]*schema.Schema{ + "idcs_endpoint": { + Type: schema.TypeString, + Required: true, + }, + "compartment_id": { + Type: schema.TypeString, + Optional: true, + }, + "my_trusted_user_agent_count": { + Type: schema.TypeInt, + Optional: true, + }, + "my_trusted_user_agent_filter": { + Type: schema.TypeString, + Optional: true, + }, + "attribute_sets": { + Type: schema.TypeList, + Optional: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "attributes": { + Type: schema.TypeString, + Optional: true, + }, + "authorization": { + Type: schema.TypeString, + Optional: true, + }, + "resource_type_schema_version": { + Type: schema.TypeString, + Optional: true, + }, + "start_index": { + Type: schema.TypeInt, + Optional: true, + }, + "sort_order": { + Type: schema.TypeString, + Optional: true, + }, + "sort_by": { + Type: schema.TypeString, + Optional: true, + }, + // Computed + "my_trusted_user_agents": { + Type: schema.TypeList, + Computed: true, + Elem: tfresource.GetDataSourceItemSchema(IdentityDomainsMyTrustedUserAgentDataSource()), + }, + "items_per_page": { + Type: schema.TypeInt, + Computed: true, + }, + "schemas": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "total_results": { + Type: schema.TypeInt, + Computed: true, + }, + }, + } +} + +func readIdentityDomainsMyTrustedUserAgents(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsMyTrustedUserAgentsDataSourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.ReadResource(sync) +} + +type IdentityDomainsMyTrustedUserAgentsDataSourceCrud struct { + D *schema.ResourceData + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.ListMyTrustedUserAgentsResponse +} + +func (s *IdentityDomainsMyTrustedUserAgentsDataSourceCrud) VoidState() { + s.D.SetId("") +} + +func (s *IdentityDomainsMyTrustedUserAgentsDataSourceCrud) Get() error { + request := oci_identity_domains.ListMyTrustedUserAgentsRequest{} + + if myTrustedUserAgentCount, ok := s.D.GetOkExists("my_trusted_user_agent_count"); ok { + tmp := myTrustedUserAgentCount.(int) + request.Count = &tmp + } + + if myTrustedUserAgentFilter, ok := s.D.GetOkExists("my_trusted_user_agent_filter"); ok { + tmp := myTrustedUserAgentFilter.(string) + request.Filter = &tmp + } + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + if startIndex, ok := s.D.GetOkExists("start_index"); ok { + tmp := startIndex.(int) + request.StartIndex = &tmp + } + + if sortOrder, ok := s.D.GetOkExists("sort_order"); ok { + tmp := oci_identity_domains.ListMyTrustedUserAgentsSortOrderEnum(sortOrder.(string)) + request.SortOrder = tmp + } + + if sortBy, ok := s.D.GetOkExists("sort_by"); ok { + tmp := sortBy.(string) + request.SortBy = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "identity_domains") + + response, err := s.Client.ListMyTrustedUserAgents(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response + // IDCS pagination + startIndex := *response.StartIndex + for startIndex+*response.ItemsPerPage <= *response.TotalResults { + startIndex += *response.ItemsPerPage + request.StartIndex = &startIndex + listResponse, err := s.Client.ListMyTrustedUserAgents(context.Background(), request) + if err != nil { + return err + } + + s.Res.Resources = append(s.Res.Resources, listResponse.Resources...) + } + + return nil +} + +func (s *IdentityDomainsMyTrustedUserAgentsDataSourceCrud) SetData() error { + if s.Res == nil { + return nil + } + + s.D.SetId(tfresource.GenerateDataSourceHashID("IdentityDomainsMyTrustedUserAgentsDataSource-", IdentityDomainsMyTrustedUserAgentsDataSource(), s.D)) + + resources := []interface{}{} + for _, item := range s.Res.Resources { + resources = append(resources, MyTrustedUserAgentToMap(item)) + } + s.D.Set("my_trusted_user_agents", resources) + + if s.Res.ItemsPerPage != nil { + s.D.Set("items_per_page", *s.Res.ItemsPerPage) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + if s.Res.StartIndex != nil { + s.D.Set("start_index", *s.Res.StartIndex) + } + + if s.Res.TotalResults != nil { + s.D.Set("total_results", *s.Res.TotalResults) + } + + return nil +} + +func MyTrustedUserAgentToMap(obj oci_identity_domains.MyTrustedUserAgent) map[string]interface{} { + result := map[string]interface{}{} + + if obj.CompartmentOcid != nil { + result["compartment_ocid"] = string(*obj.CompartmentOcid) + } + + if obj.DeleteInProgress != nil { + result["delete_in_progress"] = bool(*obj.DeleteInProgress) + } + + if obj.DomainOcid != nil { + result["domain_ocid"] = string(*obj.DomainOcid) + } + + if obj.ExpiryTime != nil { + result["expiry_time"] = string(*obj.ExpiryTime) + } + + if obj.Id != nil { + result["id"] = string(*obj.Id) + } + + if obj.IdcsCreatedBy != nil { + result["idcs_created_by"] = []interface{}{idcsCreatedByToMap(obj.IdcsCreatedBy)} + } + + if obj.IdcsLastModifiedBy != nil { + result["idcs_last_modified_by"] = []interface{}{idcsLastModifiedByToMap(obj.IdcsLastModifiedBy)} + } + + if obj.IdcsLastUpgradedInRelease != nil { + result["idcs_last_upgraded_in_release"] = string(*obj.IdcsLastUpgradedInRelease) + } + + result["idcs_prevented_operations"] = obj.IdcsPreventedOperations + result["idcs_prevented_operations"] = obj.IdcsPreventedOperations + + if obj.LastUsedOn != nil { + result["last_used_on"] = string(*obj.LastUsedOn) + } + + if obj.Location != nil { + result["location"] = string(*obj.Location) + } + + if obj.Meta != nil { + result["meta"] = []interface{}{metaToMap(obj.Meta)} + } + + if obj.Name != nil { + result["name"] = string(*obj.Name) + } + + if obj.Ocid != nil { + result["ocid"] = string(*obj.Ocid) + } + + if obj.Platform != nil { + result["platform"] = string(*obj.Platform) + } + + result["schemas"] = obj.Schemas + result["schemas"] = obj.Schemas + + tags := []interface{}{} + for _, item := range obj.Tags { + tags = append(tags, tagsToMap(item)) + } + result["tags"] = tags + + if obj.TenancyOcid != nil { + result["tenancy_ocid"] = string(*obj.TenancyOcid) + } + + result["token_type"] = string(obj.TokenType) + + if obj.TrustToken != nil { + result["trust_token"] = string(*obj.TrustToken) + } + + trustedFactors := []interface{}{} + for _, item := range obj.TrustedFactors { + trustedFactors = append(trustedFactors, MyTrustedUserAgentTrustedFactorsToMap(item)) + } + result["trusted_factors"] = trustedFactors + + if obj.User != nil { + result["user"] = []interface{}{MyTrustedUserAgentUserToMap(obj.User)} + } + + return result +} + +func MyTrustedUserAgentTrustedFactorsToMap(obj oci_identity_domains.MyTrustedUserAgentTrustedFactors) map[string]interface{} { + result := map[string]interface{}{} + + result["category"] = string(obj.Category) + + if obj.CreationTime != nil { + result["creation_time"] = string(*obj.CreationTime) + } + + if obj.Type != nil { + result["type"] = string(*obj.Type) + } + + return result +} + +func MyTrustedUserAgentUserToMap(obj *oci_identity_domains.MyTrustedUserAgentUser) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Display != nil { + result["display"] = string(*obj.Display) + } + + if obj.Ocid != nil { + result["ocid"] = string(*obj.Ocid) + } + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} diff --git a/internal/service/identity_domains/identity_domains_my_user_db_credential_data_source.go b/internal/service/identity_domains/identity_domains_my_user_db_credential_data_source.go new file mode 100644 index 00000000000..2f932e8506b --- /dev/null +++ b/internal/service/identity_domains/identity_domains_my_user_db_credential_data_source.go @@ -0,0 +1,198 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsMyUserDbCredentialDataSource() *schema.Resource { + fieldMap := make(map[string]*schema.Schema) + fieldMap["authorization"] = &schema.Schema{ + Type: schema.TypeString, + Optional: true, + } + fieldMap["idcs_endpoint"] = &schema.Schema{ + Type: schema.TypeString, + Required: true, + } + fieldMap["my_user_db_credential_id"] = &schema.Schema{ + Type: schema.TypeString, + Required: true, + } + fieldMap["resource_type_schema_version"] = &schema.Schema{ + Type: schema.TypeString, + Optional: true, + } + return tfresource.GetSingularDataSourceItemSchema(IdentityDomainsMyUserDbCredentialResource(), fieldMap, readSingularIdentityDomainsMyUserDbCredential) +} + +func readSingularIdentityDomainsMyUserDbCredential(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsMyUserDbCredentialDataSourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + + return tfresource.ReadResource(sync) +} + +type IdentityDomainsMyUserDbCredentialDataSourceCrud struct { + D *schema.ResourceData + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.GetMyUserDbCredentialResponse +} + +func (s *IdentityDomainsMyUserDbCredentialDataSourceCrud) VoidState() { + s.D.SetId("") +} + +func (s *IdentityDomainsMyUserDbCredentialDataSourceCrud) Get() error { + request := oci_identity_domains.GetMyUserDbCredentialRequest{} + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if myUserDbCredentialId, ok := s.D.GetOkExists("my_user_db_credential_id"); ok { + tmp := myUserDbCredentialId.(string) + request.MyUserDbCredentialId = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "identity_domains") + + response, err := s.Client.GetMyUserDbCredential(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response + return nil +} + +func (s *IdentityDomainsMyUserDbCredentialDataSourceCrud) SetData() error { + if s.Res == nil { + return nil + } + + s.D.SetId(*s.Res.Id) + + if s.Res.CompartmentOcid != nil { + s.D.Set("compartment_ocid", *s.Res.CompartmentOcid) + } + + if s.Res.DbPassword != nil { + s.D.Set("db_password", *s.Res.DbPassword) + } + + if s.Res.DeleteInProgress != nil { + s.D.Set("delete_in_progress", *s.Res.DeleteInProgress) + } + + if s.Res.Description != nil { + s.D.Set("description", *s.Res.Description) + } + + if s.Res.DomainOcid != nil { + s.D.Set("domain_ocid", *s.Res.DomainOcid) + } + + if s.Res.Expired != nil { + s.D.Set("expired", *s.Res.Expired) + } + + if s.Res.ExpiresOn != nil { + s.D.Set("expires_on", *s.Res.ExpiresOn) + } + + if s.Res.IdcsCreatedBy != nil { + s.D.Set("idcs_created_by", []interface{}{idcsCreatedByToMap(s.Res.IdcsCreatedBy)}) + } else { + s.D.Set("idcs_created_by", nil) + } + + if s.Res.IdcsLastModifiedBy != nil { + s.D.Set("idcs_last_modified_by", []interface{}{idcsLastModifiedByToMap(s.Res.IdcsLastModifiedBy)}) + } else { + s.D.Set("idcs_last_modified_by", nil) + } + + if s.Res.IdcsLastUpgradedInRelease != nil { + s.D.Set("idcs_last_upgraded_in_release", *s.Res.IdcsLastUpgradedInRelease) + } + + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + + if s.Res.LastSetDate != nil { + s.D.Set("last_set_date", *s.Res.LastSetDate) + } + + if s.Res.Meta != nil { + s.D.Set("meta", []interface{}{metaToMap(s.Res.Meta)}) + } else { + s.D.Set("meta", nil) + } + + if s.Res.MixedDbPassword != nil { + s.D.Set("mixed_db_password", *s.Res.MixedDbPassword) + } + + if s.Res.MixedSalt != nil { + s.D.Set("mixed_salt", *s.Res.MixedSalt) + } + + if s.Res.Name != nil { + s.D.Set("name", *s.Res.Name) + } + + if s.Res.Ocid != nil { + s.D.Set("ocid", *s.Res.Ocid) + } + + if s.Res.Salt != nil { + s.D.Set("salt", *s.Res.Salt) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + s.D.Set("status", s.Res.Status) + + tags := []interface{}{} + for _, item := range s.Res.Tags { + tags = append(tags, tagsToMap(item)) + } + s.D.Set("tags", tags) + + if s.Res.TenancyOcid != nil { + s.D.Set("tenancy_ocid", *s.Res.TenancyOcid) + } + + if s.Res.User != nil { + s.D.Set("user", []interface{}{MyUserDbCredentialsUserToMap(s.Res.User)}) + } else { + s.D.Set("user", nil) + } + + return nil +} diff --git a/internal/service/identity_domains/identity_domains_my_user_db_credential_resource.go b/internal/service/identity_domains/identity_domains_my_user_db_credential_resource.go new file mode 100644 index 00000000000..24d5a25ab4c --- /dev/null +++ b/internal/service/identity_domains/identity_domains_my_user_db_credential_resource.go @@ -0,0 +1,853 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + "fmt" + "log" + "net/url" + "regexp" + "strings" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsMyUserDbCredentialResource() *schema.Resource { + return &schema.Resource{ + Importer: &schema.ResourceImporter{ + State: schema.ImportStatePassthrough, + }, + Timeouts: tfresource.DefaultTimeout, + Create: createIdentityDomainsMyUserDbCredential, + Read: readIdentityDomainsMyUserDbCredential, + Delete: deleteIdentityDomainsMyUserDbCredential, + Schema: map[string]*schema.Schema{ + // Required + "db_password": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + Sensitive: true, + }, + "idcs_endpoint": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "schemas": { + Type: schema.TypeList, + Required: true, + ForceNew: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + + // Optional + "authorization": { + Type: schema.TypeString, + Optional: true, + ForceNew: true, + }, + "description": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "expires_on": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "resource_type_schema_version": { + Type: schema.TypeString, + Optional: true, + ForceNew: true, + }, + "status": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "tags": { + Type: schema.TypeList, + Optional: true, + Computed: true, + ForceNew: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "key": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "value": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + + // Optional + + // Computed + }, + }, + }, + "user": { + Type: schema.TypeList, + Optional: true, + Computed: true, + ForceNew: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + + // Optional + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + "display": { + Type: schema.TypeString, + Computed: true, + }, + "name": { + Type: schema.TypeString, + Computed: true, + }, + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + + // Computed + "compartment_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "delete_in_progress": { + Type: schema.TypeBool, + Computed: true, + }, + "domain_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "expired": { + Type: schema.TypeBool, + Computed: true, + }, + "id": { + Type: schema.TypeString, + Computed: true, + }, + "idcs_created_by": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "idcs_last_modified_by": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "idcs_last_upgraded_in_release": { + Type: schema.TypeString, + Computed: true, + }, + "idcs_prevented_operations": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "last_set_date": { + Type: schema.TypeString, + Computed: true, + }, + "meta": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "created": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "last_modified": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "location": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "resource_type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "version": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + }, + }, + }, + "mixed_db_password": { + Type: schema.TypeString, + Computed: true, + }, + "mixed_salt": { + Type: schema.TypeString, + Computed: true, + }, + "name": { + Type: schema.TypeString, + Computed: true, + }, + "salt": { + Type: schema.TypeString, + Computed: true, + }, + "tenancy_ocid": { + Type: schema.TypeString, + Computed: true, + }, + }, + } +} + +func createIdentityDomainsMyUserDbCredential(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsMyUserDbCredentialResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.CreateResource(d, sync) +} + +func readIdentityDomainsMyUserDbCredential(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsMyUserDbCredentialResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpointForRead(d, "myUserDbCredentials") + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.ReadResource(sync) +} + +func deleteIdentityDomainsMyUserDbCredential(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsMyUserDbCredentialResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + sync.DisableNotFoundRetries = true + + return tfresource.DeleteResource(d, sync) +} + +type IdentityDomainsMyUserDbCredentialResourceCrud struct { + tfresource.BaseCrud + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.MyUserDbCredential + DisableNotFoundRetries bool +} + +func (s *IdentityDomainsMyUserDbCredentialResourceCrud) ID() string { + return *s.Res.Id + //return GetMyUserDbCredentialCompositeId(s.D.Get("id").(string)) +} + +func (s *IdentityDomainsMyUserDbCredentialResourceCrud) Create() error { + request := oci_identity_domains.CreateMyUserDbCredentialRequest{} + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if dbPassword, ok := s.D.GetOkExists("db_password"); ok { + tmp := dbPassword.(string) + request.DbPassword = &tmp + } + + if description, ok := s.D.GetOkExists("description"); ok { + tmp := description.(string) + request.Description = &tmp + } + + if expiresOn, ok := s.D.GetOkExists("expires_on"); ok { + tmp := expiresOn.(string) + request.ExpiresOn = &tmp + } + + if id, ok := s.D.GetOkExists("id"); ok { + tmp := id.(string) + request.Id = &tmp + } + + if ocid, ok := s.D.GetOkExists("ocid"); ok { + tmp := ocid.(string) + request.Ocid = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + if schemas, ok := s.D.GetOkExists("schemas"); ok { + interfaces := schemas.([]interface{}) + tmp := make([]string, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = interfaces[i].(string) + } + } + if len(tmp) != 0 || s.D.HasChange("schemas") { + request.Schemas = tmp + } + } + + if status, ok := s.D.GetOkExists("status"); ok { + request.Status = oci_identity_domains.MyUserDbCredentialStatusEnum(status.(string)) + } + + if tags, ok := s.D.GetOkExists("tags"); ok { + interfaces := tags.([]interface{}) + tmp := make([]oci_identity_domains.Tags, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "tags", stateDataIndex) + converted, err := s.mapTotags(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("tags") { + request.Tags = tmp + } + } + + if user, ok := s.D.GetOkExists("user"); ok { + if tmpList := user.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "user", 0) + tmp, err := s.mapToMyUserDbCredentialsUser(fieldKeyFormat) + if err != nil { + return err + } + request.User = &tmp + } + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + response, err := s.Client.CreateMyUserDbCredential(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response.MyUserDbCredential + return nil +} + +func (s *IdentityDomainsMyUserDbCredentialResourceCrud) Get() error { + request := oci_identity_domains.GetMyUserDbCredentialRequest{} + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + tmp := s.D.Id() + request.MyUserDbCredentialId = &tmp + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + myUserDbCredentialId, err := parseMyUserDbCredentialCompositeId(s.D.Id()) + if err == nil { + request.MyUserDbCredentialId = &myUserDbCredentialId + } else { + log.Printf("[WARN] Get() unable to parse current ID: %s", s.D.Id()) + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + response, err := s.Client.GetMyUserDbCredential(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response.MyUserDbCredential + return nil +} + +func (s *IdentityDomainsMyUserDbCredentialResourceCrud) Delete() error { + request := oci_identity_domains.DeleteMyUserDbCredentialRequest{} + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if forceDelete, ok := s.D.GetOkExists("force_delete"); ok { + tmp := forceDelete.(bool) + request.ForceDelete = &tmp + } + + tmp := s.D.Id() + request.MyUserDbCredentialId = &tmp + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + _, err := s.Client.DeleteMyUserDbCredential(context.Background(), request) + return err +} + +func (s *IdentityDomainsMyUserDbCredentialResourceCrud) SetData() error { + + myUserDbCredentialId, err := parseMyUserDbCredentialCompositeId(s.D.Id()) + if err == nil { + s.D.SetId(myUserDbCredentialId) + } else { + log.Printf("[WARN] SetData() unable to parse current ID: %s", s.D.Id()) + } + + if s.Res.CompartmentOcid != nil { + s.D.Set("compartment_ocid", *s.Res.CompartmentOcid) + } + + if s.Res.DbPassword != nil { + s.D.Set("db_password", *s.Res.DbPassword) + } + + if s.Res.DeleteInProgress != nil { + s.D.Set("delete_in_progress", *s.Res.DeleteInProgress) + } + + if s.Res.Description != nil { + s.D.Set("description", *s.Res.Description) + } + + if s.Res.DomainOcid != nil { + s.D.Set("domain_ocid", *s.Res.DomainOcid) + } + + if s.Res.Expired != nil { + s.D.Set("expired", *s.Res.Expired) + } + + if s.Res.ExpiresOn != nil { + s.D.Set("expires_on", *s.Res.ExpiresOn) + } + + if s.Res.IdcsCreatedBy != nil { + s.D.Set("idcs_created_by", []interface{}{idcsCreatedByToMap(s.Res.IdcsCreatedBy)}) + } else { + s.D.Set("idcs_created_by", nil) + } + + if s.Res.IdcsLastModifiedBy != nil { + s.D.Set("idcs_last_modified_by", []interface{}{idcsLastModifiedByToMap(s.Res.IdcsLastModifiedBy)}) + } else { + s.D.Set("idcs_last_modified_by", nil) + } + + if s.Res.IdcsLastUpgradedInRelease != nil { + s.D.Set("idcs_last_upgraded_in_release", *s.Res.IdcsLastUpgradedInRelease) + } + + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + + if s.Res.LastSetDate != nil { + s.D.Set("last_set_date", *s.Res.LastSetDate) + } + + if s.Res.Meta != nil { + s.D.Set("meta", []interface{}{metaToMap(s.Res.Meta)}) + } else { + s.D.Set("meta", nil) + } + + if s.Res.MixedDbPassword != nil { + s.D.Set("mixed_db_password", *s.Res.MixedDbPassword) + } + + if s.Res.MixedSalt != nil { + s.D.Set("mixed_salt", *s.Res.MixedSalt) + } + + if s.Res.Name != nil { + s.D.Set("name", *s.Res.Name) + } + + if s.Res.Ocid != nil { + s.D.Set("ocid", *s.Res.Ocid) + } + + if s.Res.Salt != nil { + s.D.Set("salt", *s.Res.Salt) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + s.D.Set("status", s.Res.Status) + + tags := []interface{}{} + for _, item := range s.Res.Tags { + tags = append(tags, tagsToMap(item)) + } + s.D.Set("tags", tags) + + if s.Res.TenancyOcid != nil { + s.D.Set("tenancy_ocid", *s.Res.TenancyOcid) + } + + if s.Res.User != nil { + s.D.Set("user", []interface{}{MyUserDbCredentialsUserToMap(s.Res.User)}) + } else { + s.D.Set("user", nil) + } + + return nil +} + +//func GetMyUserDbCredentialCompositeId(myUserDbCredentialId string) string { +// id = url.PathEscape(id) +// idcsEndpoint = url.PathEscape(idcsEndpoint) +// myUserDbCredentialId = url.PathEscape(myUserDbCredentialId) +// compositeId := "idcsEndpoint/" + idcsEndpoint + "/myUserDbCredentials/" + myUserDbCredentialId +// return compositeId +//} + +func parseMyUserDbCredentialCompositeId(compositeId string) (myUserDbCredentialId string, err error) { + parts := strings.Split(compositeId, "/") + match, _ := regexp.MatchString("idcsEndpoint/.*/myUserDbCredentials/.*", compositeId) + if !match || len(parts) != 4 { + err = fmt.Errorf("illegal compositeId %s encountered", compositeId) + return + } + //idcsEndpoint, _ = url.PathUnescape(parts[1]) + myUserDbCredentialId, _ = url.PathUnescape(parts[3]) + + return +} + +func MyUserDbCredentialToMap(obj oci_identity_domains.MyUserDbCredential) map[string]interface{} { + result := map[string]interface{}{} + + if obj.CompartmentOcid != nil { + result["compartment_ocid"] = string(*obj.CompartmentOcid) + } + + if obj.DbPassword != nil { + result["db_password"] = string(*obj.DbPassword) + } + + if obj.DeleteInProgress != nil { + result["delete_in_progress"] = bool(*obj.DeleteInProgress) + } + + if obj.Description != nil { + result["description"] = string(*obj.Description) + } + + if obj.DomainOcid != nil { + result["domain_ocid"] = string(*obj.DomainOcid) + } + + if obj.Expired != nil { + result["expired"] = bool(*obj.Expired) + } + + if obj.ExpiresOn != nil { + result["expires_on"] = string(*obj.ExpiresOn) + } + + if obj.Id != nil { + result["id"] = string(*obj.Id) + } + + if obj.IdcsCreatedBy != nil { + result["idcs_created_by"] = []interface{}{idcsCreatedByToMap(obj.IdcsCreatedBy)} + } + + if obj.IdcsLastModifiedBy != nil { + result["idcs_last_modified_by"] = []interface{}{idcsLastModifiedByToMap(obj.IdcsLastModifiedBy)} + } + + if obj.IdcsLastUpgradedInRelease != nil { + result["idcs_last_upgraded_in_release"] = string(*obj.IdcsLastUpgradedInRelease) + } + + result["idcs_prevented_operations"] = obj.IdcsPreventedOperations + result["idcs_prevented_operations"] = obj.IdcsPreventedOperations + + if obj.LastSetDate != nil { + result["last_set_date"] = string(*obj.LastSetDate) + } + + if obj.Meta != nil { + result["meta"] = []interface{}{metaToMap(obj.Meta)} + } + + if obj.MixedDbPassword != nil { + result["mixed_db_password"] = string(*obj.MixedDbPassword) + } + + if obj.MixedSalt != nil { + result["mixed_salt"] = string(*obj.MixedSalt) + } + + if obj.Name != nil { + result["name"] = string(*obj.Name) + } + + if obj.Ocid != nil { + result["ocid"] = string(*obj.Ocid) + } + + if obj.Salt != nil { + result["salt"] = string(*obj.Salt) + } + + result["schemas"] = obj.Schemas + result["schemas"] = obj.Schemas + + result["status"] = string(obj.Status) + + tags := []interface{}{} + for _, item := range obj.Tags { + tags = append(tags, tagsToMap(item)) + } + result["tags"] = tags + + if obj.TenancyOcid != nil { + result["tenancy_ocid"] = string(*obj.TenancyOcid) + } + + if obj.User != nil { + result["user"] = []interface{}{MyUserDbCredentialsUserToMap(obj.User)} + } + + return result +} + +func (s *IdentityDomainsMyUserDbCredentialResourceCrud) mapToMyUserDbCredentialsUser(fieldKeyFormat string) (oci_identity_domains.MyUserDbCredentialsUser, error) { + result := oci_identity_domains.MyUserDbCredentialsUser{} + + if display, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "display")); ok { + tmp := display.(string) + result.Display = &tmp + } + + if name, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "name")); ok { + tmp := name.(string) + result.Name = &tmp + } + + if ocid, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ocid")); ok { + tmp := ocid.(string) + result.Ocid = &tmp + } + + if ref, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ref")); ok { + tmp := ref.(string) + result.Ref = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func MyUserDbCredentialsUserToMap(obj *oci_identity_domains.MyUserDbCredentialsUser) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Display != nil { + result["display"] = string(*obj.Display) + } + + if obj.Name != nil { + result["name"] = string(*obj.Name) + } + + if obj.Ocid != nil { + result["ocid"] = string(*obj.Ocid) + } + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func (s *IdentityDomainsMyUserDbCredentialResourceCrud) mapTotags(fieldKeyFormat string) (oci_identity_domains.Tags, error) { + result := oci_identity_domains.Tags{} + + if key, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "key")); ok { + tmp := key.(string) + result.Key = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} diff --git a/internal/service/identity_domains/identity_domains_my_user_db_credentials_data_source.go b/internal/service/identity_domains/identity_domains_my_user_db_credentials_data_source.go new file mode 100644 index 00000000000..e9af3eabce9 --- /dev/null +++ b/internal/service/identity_domains/identity_domains_my_user_db_credentials_data_source.go @@ -0,0 +1,197 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsMyUserDbCredentialsDataSource() *schema.Resource { + return &schema.Resource{ + Read: readIdentityDomainsMyUserDbCredentials, + Schema: map[string]*schema.Schema{ + "idcs_endpoint": { + Type: schema.TypeString, + Required: true, + }, + "compartment_id": { + Type: schema.TypeString, + Optional: true, + }, + "my_user_db_credential_count": { + Type: schema.TypeInt, + Optional: true, + }, + "my_user_db_credential_filter": { + Type: schema.TypeString, + Optional: true, + }, + "authorization": { + Type: schema.TypeString, + Optional: true, + }, + "resource_type_schema_version": { + Type: schema.TypeString, + Optional: true, + }, + "start_index": { + Type: schema.TypeInt, + Optional: true, + }, + "sort_order": { + Type: schema.TypeString, + Optional: true, + }, + "sort_by": { + Type: schema.TypeString, + Optional: true, + }, + // Computed + "my_user_db_credentials": { + Type: schema.TypeList, + Computed: true, + Elem: tfresource.GetDataSourceItemSchema(IdentityDomainsMyUserDbCredentialResource()), + }, + "items_per_page": { + Type: schema.TypeInt, + Computed: true, + }, + "schemas": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "total_results": { + Type: schema.TypeInt, + Computed: true, + }, + }, + } +} + +func readIdentityDomainsMyUserDbCredentials(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsMyUserDbCredentialsDataSourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.ReadResource(sync) +} + +type IdentityDomainsMyUserDbCredentialsDataSourceCrud struct { + D *schema.ResourceData + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.ListMyUserDbCredentialsResponse +} + +func (s *IdentityDomainsMyUserDbCredentialsDataSourceCrud) VoidState() { + s.D.SetId("") +} + +func (s *IdentityDomainsMyUserDbCredentialsDataSourceCrud) Get() error { + request := oci_identity_domains.ListMyUserDbCredentialsRequest{} + + if myUserDbCredentialCount, ok := s.D.GetOkExists("my_user_db_credential_count"); ok { + tmp := myUserDbCredentialCount.(int) + request.Count = &tmp + } + + if myUserDbCredentialFilter, ok := s.D.GetOkExists("my_user_db_credential_filter"); ok { + tmp := myUserDbCredentialFilter.(string) + request.Filter = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + if startIndex, ok := s.D.GetOkExists("start_index"); ok { + tmp := startIndex.(int) + request.StartIndex = &tmp + } + + if sortOrder, ok := s.D.GetOkExists("sort_order"); ok { + tmp := oci_identity_domains.ListMyUserDbCredentialsSortOrderEnum(sortOrder.(string)) + request.SortOrder = tmp + } + + if sortBy, ok := s.D.GetOkExists("sort_by"); ok { + tmp := sortBy.(string) + request.SortBy = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "identity_domains") + + response, err := s.Client.ListMyUserDbCredentials(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response + // IDCS pagination + startIndex := *response.StartIndex + for startIndex+*response.ItemsPerPage <= *response.TotalResults { + startIndex += *response.ItemsPerPage + request.StartIndex = &startIndex + listResponse, err := s.Client.ListMyUserDbCredentials(context.Background(), request) + if err != nil { + return err + } + + s.Res.Resources = append(s.Res.Resources, listResponse.Resources...) + } + + return nil +} + +func (s *IdentityDomainsMyUserDbCredentialsDataSourceCrud) SetData() error { + if s.Res == nil { + return nil + } + + s.D.SetId(tfresource.GenerateDataSourceHashID("IdentityDomainsMyUserDbCredentialsDataSource-", IdentityDomainsMyUserDbCredentialsDataSource(), s.D)) + + resources := []interface{}{} + for _, item := range s.Res.Resources { + resources = append(resources, MyUserDbCredentialToMap(item)) + } + s.D.Set("my_user_db_credentials", resources) + + if s.Res.ItemsPerPage != nil { + s.D.Set("items_per_page", *s.Res.ItemsPerPage) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + if s.Res.StartIndex != nil { + s.D.Set("start_index", *s.Res.StartIndex) + } + + if s.Res.TotalResults != nil { + s.D.Set("total_results", *s.Res.TotalResults) + } + + return nil +} diff --git a/internal/service/identity_domains/identity_domains_oauth2client_credential_data_source.go b/internal/service/identity_domains/identity_domains_oauth2client_credential_data_source.go new file mode 100644 index 00000000000..53b409cae3b --- /dev/null +++ b/internal/service/identity_domains/identity_domains_oauth2client_credential_data_source.go @@ -0,0 +1,219 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsOAuth2ClientCredentialDataSource() *schema.Resource { + fieldMap := make(map[string]*schema.Schema) + fieldMap["attribute_sets"] = &schema.Schema{ + Type: schema.TypeList, + Optional: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + } + fieldMap["attributes"] = &schema.Schema{ + Type: schema.TypeString, + Optional: true, + } + fieldMap["authorization"] = &schema.Schema{ + Type: schema.TypeString, + Optional: true, + } + fieldMap["idcs_endpoint"] = &schema.Schema{ + Type: schema.TypeString, + Required: true, + } + fieldMap["o_auth2client_credential_id"] = &schema.Schema{ + Type: schema.TypeString, + Required: true, + } + fieldMap["resource_type_schema_version"] = &schema.Schema{ + Type: schema.TypeString, + Optional: true, + } + return tfresource.GetSingularDataSourceItemSchema(IdentityDomainsOAuth2ClientCredentialResource(), fieldMap, readSingularIdentityDomainsOAuth2ClientCredential) +} + +func readSingularIdentityDomainsOAuth2ClientCredential(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsOAuth2ClientCredentialDataSourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + + return tfresource.ReadResource(sync) +} + +type IdentityDomainsOAuth2ClientCredentialDataSourceCrud struct { + D *schema.ResourceData + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.GetOAuth2ClientCredentialResponse +} + +func (s *IdentityDomainsOAuth2ClientCredentialDataSourceCrud) VoidState() { + s.D.SetId("") +} + +func (s *IdentityDomainsOAuth2ClientCredentialDataSourceCrud) Get() error { + request := oci_identity_domains.GetOAuth2ClientCredentialRequest{} + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if oAuth2ClientCredentialId, ok := s.D.GetOkExists("o_auth2client_credential_id"); ok { + tmp := oAuth2ClientCredentialId.(string) + request.OAuth2ClientCredentialId = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "identity_domains") + + response, err := s.Client.GetOAuth2ClientCredential(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response + return nil +} + +func (s *IdentityDomainsOAuth2ClientCredentialDataSourceCrud) SetData() error { + if s.Res == nil { + return nil + } + + s.D.SetId(*s.Res.Id) + + if s.Res.CompartmentOcid != nil { + s.D.Set("compartment_ocid", *s.Res.CompartmentOcid) + } + + if s.Res.DeleteInProgress != nil { + s.D.Set("delete_in_progress", *s.Res.DeleteInProgress) + } + + if s.Res.Description != nil { + s.D.Set("description", *s.Res.Description) + } + + if s.Res.DomainOcid != nil { + s.D.Set("domain_ocid", *s.Res.DomainOcid) + } + + if s.Res.ExpiresOn != nil { + s.D.Set("expires_on", *s.Res.ExpiresOn) + } + + if s.Res.IdcsCreatedBy != nil { + s.D.Set("idcs_created_by", []interface{}{idcsCreatedByToMap(s.Res.IdcsCreatedBy)}) + } else { + s.D.Set("idcs_created_by", nil) + } + + if s.Res.IdcsLastModifiedBy != nil { + s.D.Set("idcs_last_modified_by", []interface{}{idcsLastModifiedByToMap(s.Res.IdcsLastModifiedBy)}) + } else { + s.D.Set("idcs_last_modified_by", nil) + } + + if s.Res.IdcsLastUpgradedInRelease != nil { + s.D.Set("idcs_last_upgraded_in_release", *s.Res.IdcsLastUpgradedInRelease) + } + + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + + if s.Res.IsResetSecret != nil { + s.D.Set("is_reset_secret", *s.Res.IsResetSecret) + } + + if s.Res.Meta != nil { + s.D.Set("meta", []interface{}{metaToMap(s.Res.Meta)}) + } else { + s.D.Set("meta", nil) + } + + if s.Res.Name != nil { + s.D.Set("name", *s.Res.Name) + } + + if s.Res.Ocid != nil { + s.D.Set("ocid", *s.Res.Ocid) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + scopes := []interface{}{} + for _, item := range s.Res.Scopes { + scopes = append(scopes, OAuth2ClientCredentialScopesToMap(item)) + } + s.D.Set("scopes", scopes) + + s.D.Set("status", s.Res.Status) + + tags := []interface{}{} + for _, item := range s.Res.Tags { + tags = append(tags, tagsToMap(item)) + } + s.D.Set("tags", tags) + + if s.Res.TenancyOcid != nil { + s.D.Set("tenancy_ocid", *s.Res.TenancyOcid) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionself_change_user", []interface{}{ExtensionSelfChangeUserToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionself_change_user", nil) + } + + if s.Res.User != nil { + s.D.Set("user", []interface{}{OAuth2ClientCredentialUserToMap(s.Res.User)}) + } else { + s.D.Set("user", nil) + } + + return nil +} diff --git a/internal/service/identity_domains/identity_domains_oauth2client_credential_resource.go b/internal/service/identity_domains/identity_domains_oauth2client_credential_resource.go new file mode 100644 index 00000000000..b722365ecb7 --- /dev/null +++ b/internal/service/identity_domains/identity_domains_oauth2client_credential_resource.go @@ -0,0 +1,987 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + "fmt" + "log" + "net/url" + "regexp" + "strings" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsOAuth2ClientCredentialResource() *schema.Resource { + return &schema.Resource{ + Importer: &schema.ResourceImporter{ + State: schema.ImportStatePassthrough, + }, + Timeouts: tfresource.DefaultTimeout, + Create: createIdentityDomainsOAuth2ClientCredential, + Read: readIdentityDomainsOAuth2ClientCredential, + Delete: deleteIdentityDomainsOAuth2ClientCredential, + Schema: map[string]*schema.Schema{ + // Required + "idcs_endpoint": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "name": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "schemas": { + Type: schema.TypeList, + Required: true, + ForceNew: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "scopes": { + Type: schema.TypeList, + Required: true, + ForceNew: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "audience": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "scope": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + + // Optional + + // Computed + }, + }, + }, + + // Optional + "attribute_sets": { + Type: schema.TypeList, + Optional: true, + ForceNew: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "attributes": { + Type: schema.TypeString, + Optional: true, + ForceNew: true, + }, + "authorization": { + Type: schema.TypeString, + Optional: true, + ForceNew: true, + }, + "description": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "expires_on": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "is_reset_secret": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + ForceNew: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "resource_type_schema_version": { + Type: schema.TypeString, + Optional: true, + ForceNew: true, + }, + "status": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "tags": { + Type: schema.TypeList, + Optional: true, + Computed: true, + ForceNew: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "key": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "value": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + + // Optional + + // Computed + }, + }, + }, + "urnietfparamsscimschemasoracleidcsextensionself_change_user": { + Type: schema.TypeList, + Optional: true, + Computed: true, + ForceNew: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "allow_self_change": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + }, + }, + }, + "user": { + Type: schema.TypeList, + Optional: true, + Computed: true, + ForceNew: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "value": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + "display": { + Type: schema.TypeString, + Computed: true, + }, + "name": { + Type: schema.TypeString, + Computed: true, + }, + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + + // Computed + "compartment_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "delete_in_progress": { + Type: schema.TypeBool, + Computed: true, + }, + "domain_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "id": { + Type: schema.TypeString, + Computed: true, + }, + "idcs_created_by": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "idcs_last_modified_by": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "idcs_last_upgraded_in_release": { + Type: schema.TypeString, + Computed: true, + }, + "idcs_prevented_operations": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "meta": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "created": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "last_modified": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "location": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "resource_type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "version": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + }, + }, + }, + "tenancy_ocid": { + Type: schema.TypeString, + Computed: true, + }, + }, + } +} + +func createIdentityDomainsOAuth2ClientCredential(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsOAuth2ClientCredentialResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.CreateResource(d, sync) +} + +func readIdentityDomainsOAuth2ClientCredential(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsOAuth2ClientCredentialResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpointForRead(d, "oAuth2ClientCredentials") + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.ReadResource(sync) +} + +func deleteIdentityDomainsOAuth2ClientCredential(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsOAuth2ClientCredentialResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + sync.DisableNotFoundRetries = true + + return tfresource.DeleteResource(d, sync) +} + +type IdentityDomainsOAuth2ClientCredentialResourceCrud struct { + tfresource.BaseCrud + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.OAuth2ClientCredential + DisableNotFoundRetries bool +} + +func (s *IdentityDomainsOAuth2ClientCredentialResourceCrud) ID() string { + return *s.Res.Id + //return GetOAuth2ClientCredentialCompositeId(s.D.Get("id").(string)) +} + +func (s *IdentityDomainsOAuth2ClientCredentialResourceCrud) Create() error { + request := oci_identity_domains.CreateOAuth2ClientCredentialRequest{} + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if description, ok := s.D.GetOkExists("description"); ok { + tmp := description.(string) + request.Description = &tmp + } + + if expiresOn, ok := s.D.GetOkExists("expires_on"); ok { + tmp := expiresOn.(string) + request.ExpiresOn = &tmp + } + + if id, ok := s.D.GetOkExists("id"); ok { + tmp := id.(string) + request.Id = &tmp + } + + if isResetSecret, ok := s.D.GetOkExists("is_reset_secret"); ok { + tmp := isResetSecret.(bool) + request.IsResetSecret = &tmp + } + + if name, ok := s.D.GetOkExists("name"); ok { + tmp := name.(string) + request.Name = &tmp + } + + if ocid, ok := s.D.GetOkExists("ocid"); ok { + tmp := ocid.(string) + request.Ocid = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + if schemas, ok := s.D.GetOkExists("schemas"); ok { + interfaces := schemas.([]interface{}) + tmp := make([]string, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = interfaces[i].(string) + } + } + if len(tmp) != 0 || s.D.HasChange("schemas") { + request.Schemas = tmp + } + } + + if scopes, ok := s.D.GetOkExists("scopes"); ok { + interfaces := scopes.([]interface{}) + tmp := make([]oci_identity_domains.OAuth2ClientCredentialScopes, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "scopes", stateDataIndex) + converted, err := s.mapToOAuth2ClientCredentialScopes(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("scopes") { + request.Scopes = tmp + } + } + + if status, ok := s.D.GetOkExists("status"); ok { + request.Status = oci_identity_domains.OAuth2ClientCredentialStatusEnum(status.(string)) + } + + if tags, ok := s.D.GetOkExists("tags"); ok { + interfaces := tags.([]interface{}) + tmp := make([]oci_identity_domains.Tags, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "tags", stateDataIndex) + converted, err := s.mapTotags(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("tags") { + request.Tags = tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensionselfChangeUser, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextensionself_change_user"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensionselfChangeUser.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextensionself_change_user", 0) + tmp, err := s.mapToExtensionSelfChangeUser(fieldKeyFormat) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser = &tmp + } + } + + if user, ok := s.D.GetOkExists("user"); ok { + if tmpList := user.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "user", 0) + tmp, err := s.mapToOAuth2ClientCredentialUser(fieldKeyFormat) + if err != nil { + return err + } + request.User = &tmp + } + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + response, err := s.Client.CreateOAuth2ClientCredential(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response.OAuth2ClientCredential + return nil +} + +func (s *IdentityDomainsOAuth2ClientCredentialResourceCrud) Get() error { + request := oci_identity_domains.GetOAuth2ClientCredentialRequest{} + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + tmp := s.D.Id() + request.OAuth2ClientCredentialId = &tmp + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + oAuth2ClientCredentialId, err := parseOAuth2ClientCredentialCompositeId(s.D.Id()) + if err == nil { + request.OAuth2ClientCredentialId = &oAuth2ClientCredentialId + } else { + log.Printf("[WARN] Get() unable to parse current ID: %s", s.D.Id()) + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + response, err := s.Client.GetOAuth2ClientCredential(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response.OAuth2ClientCredential + return nil +} + +func (s *IdentityDomainsOAuth2ClientCredentialResourceCrud) Delete() error { + request := oci_identity_domains.DeleteOAuth2ClientCredentialRequest{} + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if forceDelete, ok := s.D.GetOkExists("force_delete"); ok { + tmp := forceDelete.(bool) + request.ForceDelete = &tmp + } + + tmp := s.D.Id() + request.OAuth2ClientCredentialId = &tmp + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + _, err := s.Client.DeleteOAuth2ClientCredential(context.Background(), request) + return err +} + +func (s *IdentityDomainsOAuth2ClientCredentialResourceCrud) SetData() error { + + oAuth2ClientCredentialId, err := parseOAuth2ClientCredentialCompositeId(s.D.Id()) + if err == nil { + s.D.SetId(oAuth2ClientCredentialId) + } else { + log.Printf("[WARN] SetData() unable to parse current ID: %s", s.D.Id()) + } + + if s.Res.CompartmentOcid != nil { + s.D.Set("compartment_ocid", *s.Res.CompartmentOcid) + } + + if s.Res.DeleteInProgress != nil { + s.D.Set("delete_in_progress", *s.Res.DeleteInProgress) + } + + if s.Res.Description != nil { + s.D.Set("description", *s.Res.Description) + } + + if s.Res.DomainOcid != nil { + s.D.Set("domain_ocid", *s.Res.DomainOcid) + } + + if s.Res.ExpiresOn != nil { + s.D.Set("expires_on", *s.Res.ExpiresOn) + } + + if s.Res.IdcsCreatedBy != nil { + s.D.Set("idcs_created_by", []interface{}{idcsCreatedByToMap(s.Res.IdcsCreatedBy)}) + } else { + s.D.Set("idcs_created_by", nil) + } + + if s.Res.IdcsLastModifiedBy != nil { + s.D.Set("idcs_last_modified_by", []interface{}{idcsLastModifiedByToMap(s.Res.IdcsLastModifiedBy)}) + } else { + s.D.Set("idcs_last_modified_by", nil) + } + + if s.Res.IdcsLastUpgradedInRelease != nil { + s.D.Set("idcs_last_upgraded_in_release", *s.Res.IdcsLastUpgradedInRelease) + } + + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + + if s.Res.IsResetSecret != nil { + s.D.Set("is_reset_secret", *s.Res.IsResetSecret) + } + + if s.Res.Meta != nil { + s.D.Set("meta", []interface{}{metaToMap(s.Res.Meta)}) + } else { + s.D.Set("meta", nil) + } + + if s.Res.Name != nil { + s.D.Set("name", *s.Res.Name) + } + + if s.Res.Ocid != nil { + s.D.Set("ocid", *s.Res.Ocid) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + scopes := []interface{}{} + for _, item := range s.Res.Scopes { + scopes = append(scopes, OAuth2ClientCredentialScopesToMap(item)) + } + s.D.Set("scopes", scopes) + + s.D.Set("status", s.Res.Status) + + tags := []interface{}{} + for _, item := range s.Res.Tags { + tags = append(tags, tagsToMap(item)) + } + s.D.Set("tags", tags) + + if s.Res.TenancyOcid != nil { + s.D.Set("tenancy_ocid", *s.Res.TenancyOcid) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionself_change_user", []interface{}{ExtensionSelfChangeUserToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionself_change_user", nil) + } + + if s.Res.User != nil { + s.D.Set("user", []interface{}{OAuth2ClientCredentialUserToMap(s.Res.User)}) + } else { + s.D.Set("user", nil) + } + + return nil +} + +//func GetOAuth2ClientCredentialCompositeId(oAuth2ClientCredentialId string) string { +// id = url.PathEscape(id) +// idcsEndpoint = url.PathEscape(idcsEndpoint) +// oAuth2ClientCredentialId = url.PathEscape(oAuth2ClientCredentialId) +// compositeId := "idcsEndpoint/" + idcsEndpoint + "/oAuth2ClientCredentials/" + oAuth2ClientCredentialId +// return compositeId +//} + +func parseOAuth2ClientCredentialCompositeId(compositeId string) (oAuth2ClientCredentialId string, err error) { + parts := strings.Split(compositeId, "/") + match, _ := regexp.MatchString("idcsEndpoint/.*/oAuth2ClientCredentials/.*", compositeId) + if !match || len(parts) != 4 { + err = fmt.Errorf("illegal compositeId %s encountered", compositeId) + return + } + //idcsEndpoint, _ = url.PathUnescape(parts[1]) + oAuth2ClientCredentialId, _ = url.PathUnescape(parts[3]) + + return +} + +func (s *IdentityDomainsOAuth2ClientCredentialResourceCrud) mapToExtensionSelfChangeUser(fieldKeyFormat string) (oci_identity_domains.ExtensionSelfChangeUser, error) { + result := oci_identity_domains.ExtensionSelfChangeUser{} + + if allowSelfChange, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "allow_self_change")); ok { + tmp := allowSelfChange.(bool) + result.AllowSelfChange = &tmp + } + + return result, nil +} + +func OAuth2ClientCredentialToMap(obj oci_identity_domains.OAuth2ClientCredential) map[string]interface{} { + result := map[string]interface{}{} + + if obj.CompartmentOcid != nil { + result["compartment_ocid"] = string(*obj.CompartmentOcid) + } + + if obj.DeleteInProgress != nil { + result["delete_in_progress"] = bool(*obj.DeleteInProgress) + } + + if obj.Description != nil { + result["description"] = string(*obj.Description) + } + + if obj.DomainOcid != nil { + result["domain_ocid"] = string(*obj.DomainOcid) + } + + if obj.ExpiresOn != nil { + result["expires_on"] = string(*obj.ExpiresOn) + } + + if obj.Id != nil { + result["id"] = string(*obj.Id) + } + + if obj.IdcsCreatedBy != nil { + result["idcs_created_by"] = []interface{}{idcsCreatedByToMap(obj.IdcsCreatedBy)} + } + + if obj.IdcsLastModifiedBy != nil { + result["idcs_last_modified_by"] = []interface{}{idcsLastModifiedByToMap(obj.IdcsLastModifiedBy)} + } + + if obj.IdcsLastUpgradedInRelease != nil { + result["idcs_last_upgraded_in_release"] = string(*obj.IdcsLastUpgradedInRelease) + } + + result["idcs_prevented_operations"] = obj.IdcsPreventedOperations + result["idcs_prevented_operations"] = obj.IdcsPreventedOperations + + if obj.IsResetSecret != nil { + result["is_reset_secret"] = bool(*obj.IsResetSecret) + } + + if obj.Meta != nil { + result["meta"] = []interface{}{metaToMap(obj.Meta)} + } + + if obj.Name != nil { + result["name"] = string(*obj.Name) + } + + if obj.Ocid != nil { + result["ocid"] = string(*obj.Ocid) + } + + result["schemas"] = obj.Schemas + result["schemas"] = obj.Schemas + + scopes := []interface{}{} + for _, item := range obj.Scopes { + scopes = append(scopes, OAuth2ClientCredentialScopesToMap(item)) + } + result["scopes"] = scopes + + result["status"] = string(obj.Status) + + tags := []interface{}{} + for _, item := range obj.Tags { + tags = append(tags, tagsToMap(item)) + } + result["tags"] = tags + + if obj.TenancyOcid != nil { + result["tenancy_ocid"] = string(*obj.TenancyOcid) + } + + if obj.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser != nil { + result["urnietfparamsscimschemasoracleidcsextensionself_change_user"] = []interface{}{ExtensionSelfChangeUserToMap(obj.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser)} + } + + if obj.User != nil { + result["user"] = []interface{}{OAuth2ClientCredentialUserToMap(obj.User)} + } + + return result +} + +func (s *IdentityDomainsOAuth2ClientCredentialResourceCrud) mapToOAuth2ClientCredentialScopes(fieldKeyFormat string) (oci_identity_domains.OAuth2ClientCredentialScopes, error) { + result := oci_identity_domains.OAuth2ClientCredentialScopes{} + + if audience, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "audience")); ok { + tmp := audience.(string) + result.Audience = &tmp + } + + if scope, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "scope")); ok { + tmp := scope.(string) + result.Scope = &tmp + } + + return result, nil +} + +func OAuth2ClientCredentialScopesToMap(obj oci_identity_domains.OAuth2ClientCredentialScopes) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Audience != nil { + result["audience"] = string(*obj.Audience) + } + + if obj.Scope != nil { + result["scope"] = string(*obj.Scope) + } + + return result +} + +func (s *IdentityDomainsOAuth2ClientCredentialResourceCrud) mapToOAuth2ClientCredentialUser(fieldKeyFormat string) (oci_identity_domains.OAuth2ClientCredentialUser, error) { + result := oci_identity_domains.OAuth2ClientCredentialUser{} + + if display, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "display")); ok { + tmp := display.(string) + result.Display = &tmp + } + + if name, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "name")); ok { + tmp := name.(string) + result.Name = &tmp + } + + if ocid, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ocid")); ok { + tmp := ocid.(string) + result.Ocid = &tmp + } + + if ref, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ref")); ok { + tmp := ref.(string) + result.Ref = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func OAuth2ClientCredentialUserToMap(obj *oci_identity_domains.OAuth2ClientCredentialUser) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Display != nil { + result["display"] = string(*obj.Display) + } + + if obj.Name != nil { + result["name"] = string(*obj.Name) + } + + if obj.Ocid != nil { + result["ocid"] = string(*obj.Ocid) + } + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func (s *IdentityDomainsOAuth2ClientCredentialResourceCrud) mapTotags(fieldKeyFormat string) (oci_identity_domains.Tags, error) { + result := oci_identity_domains.Tags{} + + if key, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "key")); ok { + tmp := key.(string) + result.Key = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} diff --git a/internal/service/identity_domains/identity_domains_oauth2client_credentials_data_source.go b/internal/service/identity_domains/identity_domains_oauth2client_credentials_data_source.go new file mode 100644 index 00000000000..e4f1864b48d --- /dev/null +++ b/internal/service/identity_domains/identity_domains_oauth2client_credentials_data_source.go @@ -0,0 +1,228 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsOAuth2ClientCredentialsDataSource() *schema.Resource { + return &schema.Resource{ + Read: readIdentityDomainsOAuth2ClientCredentials, + Schema: map[string]*schema.Schema{ + "idcs_endpoint": { + Type: schema.TypeString, + Required: true, + }, + "compartment_id": { + Type: schema.TypeString, + Optional: true, + }, + "oauth2client_credential_count": { + Type: schema.TypeInt, + Optional: true, + }, + "oauth2client_credential_filter": { + Type: schema.TypeString, + Optional: true, + }, + "attribute_sets": { + Type: schema.TypeList, + Optional: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "attributes": { + Type: schema.TypeString, + Optional: true, + }, + "authorization": { + Type: schema.TypeString, + Optional: true, + }, + "resource_type_schema_version": { + Type: schema.TypeString, + Optional: true, + }, + "start_index": { + Type: schema.TypeInt, + Optional: true, + }, + "sort_order": { + Type: schema.TypeString, + Optional: true, + }, + "sort_by": { + Type: schema.TypeString, + Optional: true, + }, + // Computed + "oauth2client_credentials": { + Type: schema.TypeList, + Computed: true, + Elem: tfresource.GetDataSourceItemSchema(IdentityDomainsOAuth2ClientCredentialResource()), + }, + "items_per_page": { + Type: schema.TypeInt, + Computed: true, + }, + "schemas": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "total_results": { + Type: schema.TypeInt, + Computed: true, + }, + }, + } +} + +func readIdentityDomainsOAuth2ClientCredentials(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsOAuth2ClientCredentialsDataSourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + + return tfresource.ReadResource(sync) +} + +type IdentityDomainsOAuth2ClientCredentialsDataSourceCrud struct { + D *schema.ResourceData + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.ListOAuth2ClientCredentialsResponse +} + +func (s *IdentityDomainsOAuth2ClientCredentialsDataSourceCrud) VoidState() { + s.D.SetId("") +} + +func (s *IdentityDomainsOAuth2ClientCredentialsDataSourceCrud) Get() error { + request := oci_identity_domains.ListOAuth2ClientCredentialsRequest{} + + if oAuth2ClientCredentialCount, ok := s.D.GetOkExists("oauth2client_credential_count"); ok { + tmp := oAuth2ClientCredentialCount.(int) + request.Count = &tmp + } + + if oAuth2ClientCredentialFilter, ok := s.D.GetOkExists("oauth2client_credential_filter"); ok { + tmp := oAuth2ClientCredentialFilter.(string) + tmp = tryMatchUserSubResFilter(tmp) + request.Filter = &tmp + } + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + if startIndex, ok := s.D.GetOkExists("start_index"); ok { + tmp := startIndex.(int) + request.StartIndex = &tmp + } + + if sortOrder, ok := s.D.GetOkExists("sort_order"); ok { + tmp := oci_identity_domains.ListOAuth2ClientCredentialsSortOrderEnum(sortOrder.(string)) + request.SortOrder = tmp + } + + if sortBy, ok := s.D.GetOkExists("sort_by"); ok { + tmp := sortBy.(string) + request.SortBy = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "identity_domains") + + response, err := s.Client.ListOAuth2ClientCredentials(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response + // IDCS pagination + startIndex := *response.StartIndex + for startIndex+*response.ItemsPerPage <= *response.TotalResults { + startIndex += *response.ItemsPerPage + request.StartIndex = &startIndex + listResponse, err := s.Client.ListOAuth2ClientCredentials(context.Background(), request) + if err != nil { + return err + } + + s.Res.Resources = append(s.Res.Resources, listResponse.Resources...) + } + + return nil +} + +func (s *IdentityDomainsOAuth2ClientCredentialsDataSourceCrud) SetData() error { + if s.Res == nil { + return nil + } + + s.D.SetId(tfresource.GenerateDataSourceHashID("IdentityDomainsOAuth2ClientCredentialsDataSource-", IdentityDomainsOAuth2ClientCredentialsDataSource(), s.D)) + + resources := []interface{}{} + for _, item := range s.Res.Resources { + resources = append(resources, OAuth2ClientCredentialToMap(item)) + } + s.D.Set("oauth2client_credentials", resources) + + if s.Res.ItemsPerPage != nil { + s.D.Set("items_per_page", *s.Res.ItemsPerPage) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + if s.Res.StartIndex != nil { + s.D.Set("start_index", *s.Res.StartIndex) + } + + if s.Res.TotalResults != nil { + s.D.Set("total_results", *s.Res.TotalResults) + } + + return nil +} diff --git a/internal/service/identity_domains/identity_domains_password_policies_data_source.go b/internal/service/identity_domains/identity_domains_password_policies_data_source.go new file mode 100644 index 00000000000..b882ac80f3e --- /dev/null +++ b/internal/service/identity_domains/identity_domains_password_policies_data_source.go @@ -0,0 +1,224 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsPasswordPoliciesDataSource() *schema.Resource { + return &schema.Resource{ + Read: readIdentityDomainsPasswordPolicies, + Schema: map[string]*schema.Schema{ + "idcs_endpoint": { + Type: schema.TypeString, + Required: true, + }, + "compartment_id": { + Type: schema.TypeString, + Optional: true, + }, + "password_policy_count": { + Type: schema.TypeInt, + Optional: true, + }, + "password_policy_filter": { + Type: schema.TypeString, + Optional: true, + }, + "attribute_sets": { + Type: schema.TypeList, + Optional: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "attributes": { + Type: schema.TypeString, + Optional: true, + }, + "authorization": { + Type: schema.TypeString, + Optional: true, + }, + "resource_type_schema_version": { + Type: schema.TypeString, + Optional: true, + }, + "start_index": { + Type: schema.TypeInt, + Optional: true, + }, + "sort_order": { + Type: schema.TypeString, + Optional: true, + }, + "sort_by": { + Type: schema.TypeString, + Optional: true, + }, + // Computed + "password_policies": { + Type: schema.TypeList, + Computed: true, + Elem: tfresource.GetDataSourceItemSchema(IdentityDomainsPasswordPolicyResource()), + }, + "items_per_page": { + Type: schema.TypeInt, + Computed: true, + }, + "schemas": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "total_results": { + Type: schema.TypeInt, + Computed: true, + }, + }, + } +} + +func readIdentityDomainsPasswordPolicies(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsPasswordPoliciesDataSourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.ReadResource(sync) +} + +type IdentityDomainsPasswordPoliciesDataSourceCrud struct { + D *schema.ResourceData + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.ListPasswordPoliciesResponse +} + +func (s *IdentityDomainsPasswordPoliciesDataSourceCrud) VoidState() { + s.D.SetId("") +} + +func (s *IdentityDomainsPasswordPoliciesDataSourceCrud) Get() error { + request := oci_identity_domains.ListPasswordPoliciesRequest{} + + if passwordPolicyCount, ok := s.D.GetOkExists("password_policy_count"); ok { + tmp := passwordPolicyCount.(int) + request.Count = &tmp + } + + if passwordPolicyFilter, ok := s.D.GetOkExists("password_policy_filter"); ok { + tmp := passwordPolicyFilter.(string) + request.Filter = &tmp + } + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + if startIndex, ok := s.D.GetOkExists("start_index"); ok { + tmp := startIndex.(int) + request.StartIndex = &tmp + } + + if sortOrder, ok := s.D.GetOkExists("sort_order"); ok { + tmp := oci_identity_domains.ListPasswordPoliciesSortOrderEnum(sortOrder.(string)) + request.SortOrder = tmp + } + + if sortBy, ok := s.D.GetOkExists("sort_by"); ok { + tmp := sortBy.(string) + request.SortBy = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "identity_domains") + + response, err := s.Client.ListPasswordPolicies(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response + startIndex := *response.StartIndex + for startIndex+*response.ItemsPerPage <= *response.TotalResults { + startIndex += *response.ItemsPerPage + request.StartIndex = &startIndex + listResponse, err := s.Client.ListPasswordPolicies(context.Background(), request) + if err != nil { + return err + } + + s.Res.Resources = append(s.Res.Resources, listResponse.Resources...) + } + return nil +} + +func (s *IdentityDomainsPasswordPoliciesDataSourceCrud) SetData() error { + if s.Res == nil { + return nil + } + + s.D.SetId(tfresource.GenerateDataSourceHashID("IdentityDomainsPasswordPoliciesDataSource-", IdentityDomainsPasswordPoliciesDataSource(), s.D)) + + resources := []interface{}{} + for _, item := range s.Res.Resources { + resources = append(resources, PasswordPolicyToMap(item)) + } + s.D.Set("password_policies", resources) + + if s.Res.ItemsPerPage != nil { + s.D.Set("items_per_page", *s.Res.ItemsPerPage) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + if s.Res.StartIndex != nil { + s.D.Set("start_index", *s.Res.StartIndex) + } + + if s.Res.TotalResults != nil { + s.D.Set("total_results", *s.Res.TotalResults) + } + + return nil +} diff --git a/internal/service/identity_domains/identity_domains_password_policy_data_source.go b/internal/service/identity_domains/identity_domains_password_policy_data_source.go new file mode 100644 index 00000000000..a2293ece833 --- /dev/null +++ b/internal/service/identity_domains/identity_domains_password_policy_data_source.go @@ -0,0 +1,328 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsPasswordPolicyDataSource() *schema.Resource { + fieldMap := make(map[string]*schema.Schema) + fieldMap["attribute_sets"] = &schema.Schema{ + Type: schema.TypeList, + Optional: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + } + fieldMap["attributes"] = &schema.Schema{ + Type: schema.TypeString, + Optional: true, + } + fieldMap["authorization"] = &schema.Schema{ + Type: schema.TypeString, + Optional: true, + } + fieldMap["idcs_endpoint"] = &schema.Schema{ + Type: schema.TypeString, + Required: true, + } + fieldMap["password_policy_id"] = &schema.Schema{ + Type: schema.TypeString, + Required: true, + } + fieldMap["resource_type_schema_version"] = &schema.Schema{ + Type: schema.TypeString, + Optional: true, + } + return tfresource.GetSingularDataSourceItemSchema(IdentityDomainsPasswordPolicyResource(), fieldMap, readSingularIdentityDomainsPasswordPolicy) +} + +func readSingularIdentityDomainsPasswordPolicy(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsPasswordPolicyDataSourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + + return tfresource.ReadResource(sync) +} + +type IdentityDomainsPasswordPolicyDataSourceCrud struct { + D *schema.ResourceData + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.GetPasswordPolicyResponse +} + +func (s *IdentityDomainsPasswordPolicyDataSourceCrud) VoidState() { + s.D.SetId("") +} + +func (s *IdentityDomainsPasswordPolicyDataSourceCrud) Get() error { + request := oci_identity_domains.GetPasswordPolicyRequest{} + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if passwordPolicyId, ok := s.D.GetOkExists("password_policy_id"); ok { + tmp := passwordPolicyId.(string) + request.PasswordPolicyId = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "identity_domains") + + response, err := s.Client.GetPasswordPolicy(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response + return nil +} + +func (s *IdentityDomainsPasswordPolicyDataSourceCrud) SetData() error { + if s.Res == nil { + return nil + } + + s.D.SetId(*s.Res.Id) + + if s.Res.AllowedChars != nil { + s.D.Set("allowed_chars", *s.Res.AllowedChars) + } + + if s.Res.CompartmentOcid != nil { + s.D.Set("compartment_ocid", *s.Res.CompartmentOcid) + } + + configuredPasswordPolicyRules := []interface{}{} + for _, item := range s.Res.ConfiguredPasswordPolicyRules { + configuredPasswordPolicyRules = append(configuredPasswordPolicyRules, PasswordPolicyConfiguredPasswordPolicyRulesToMap(item)) + } + s.D.Set("configured_password_policy_rules", configuredPasswordPolicyRules) + + if s.Res.DeleteInProgress != nil { + s.D.Set("delete_in_progress", *s.Res.DeleteInProgress) + } + + if s.Res.Description != nil { + s.D.Set("description", *s.Res.Description) + } + + if s.Res.DictionaryDelimiter != nil { + s.D.Set("dictionary_delimiter", *s.Res.DictionaryDelimiter) + } + + if s.Res.DictionaryLocation != nil { + s.D.Set("dictionary_location", *s.Res.DictionaryLocation) + } + + if s.Res.DictionaryWordDisallowed != nil { + s.D.Set("dictionary_word_disallowed", *s.Res.DictionaryWordDisallowed) + } + + if s.Res.DisallowedChars != nil { + s.D.Set("disallowed_chars", *s.Res.DisallowedChars) + } + + s.D.Set("disallowed_substrings", s.Res.DisallowedSubstrings) + s.D.Set("disallowed_substrings", s.Res.DisallowedSubstrings) + + if s.Res.DomainOcid != nil { + s.D.Set("domain_ocid", *s.Res.DomainOcid) + } + + if s.Res.ExternalId != nil { + s.D.Set("external_id", *s.Res.ExternalId) + } + + if s.Res.FirstNameDisallowed != nil { + s.D.Set("first_name_disallowed", *s.Res.FirstNameDisallowed) + } + + if s.Res.ForcePasswordReset != nil { + s.D.Set("force_password_reset", *s.Res.ForcePasswordReset) + } + + groups := []interface{}{} + for _, item := range s.Res.Groups { + groups = append(groups, PasswordPolicyGroupsToMap(item)) + } + s.D.Set("groups", groups) + + if s.Res.IdcsCreatedBy != nil { + s.D.Set("idcs_created_by", []interface{}{idcsCreatedByToMap(s.Res.IdcsCreatedBy)}) + } else { + s.D.Set("idcs_created_by", nil) + } + + if s.Res.IdcsLastModifiedBy != nil { + s.D.Set("idcs_last_modified_by", []interface{}{idcsLastModifiedByToMap(s.Res.IdcsLastModifiedBy)}) + } else { + s.D.Set("idcs_last_modified_by", nil) + } + + if s.Res.IdcsLastUpgradedInRelease != nil { + s.D.Set("idcs_last_upgraded_in_release", *s.Res.IdcsLastUpgradedInRelease) + } + + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + + if s.Res.LastNameDisallowed != nil { + s.D.Set("last_name_disallowed", *s.Res.LastNameDisallowed) + } + + if s.Res.LockoutDuration != nil { + s.D.Set("lockout_duration", *s.Res.LockoutDuration) + } + + if s.Res.MaxIncorrectAttempts != nil { + s.D.Set("max_incorrect_attempts", *s.Res.MaxIncorrectAttempts) + } + + if s.Res.MaxLength != nil { + s.D.Set("max_length", *s.Res.MaxLength) + } + + if s.Res.MaxRepeatedChars != nil { + s.D.Set("max_repeated_chars", *s.Res.MaxRepeatedChars) + } + + if s.Res.MaxSpecialChars != nil { + s.D.Set("max_special_chars", *s.Res.MaxSpecialChars) + } + + if s.Res.Meta != nil { + s.D.Set("meta", []interface{}{metaToMap(s.Res.Meta)}) + } else { + s.D.Set("meta", nil) + } + + if s.Res.MinAlphaNumerals != nil { + s.D.Set("min_alpha_numerals", *s.Res.MinAlphaNumerals) + } + + if s.Res.MinAlphas != nil { + s.D.Set("min_alphas", *s.Res.MinAlphas) + } + + if s.Res.MinLength != nil { + s.D.Set("min_length", *s.Res.MinLength) + } + + if s.Res.MinLowerCase != nil { + s.D.Set("min_lower_case", *s.Res.MinLowerCase) + } + + if s.Res.MinNumerals != nil { + s.D.Set("min_numerals", *s.Res.MinNumerals) + } + + if s.Res.MinPasswordAge != nil { + s.D.Set("min_password_age", *s.Res.MinPasswordAge) + } + + if s.Res.MinSpecialChars != nil { + s.D.Set("min_special_chars", *s.Res.MinSpecialChars) + } + + if s.Res.MinUniqueChars != nil { + s.D.Set("min_unique_chars", *s.Res.MinUniqueChars) + } + + if s.Res.MinUpperCase != nil { + s.D.Set("min_upper_case", *s.Res.MinUpperCase) + } + + if s.Res.Name != nil { + s.D.Set("name", *s.Res.Name) + } + + if s.Res.NumPasswordsInHistory != nil { + s.D.Set("num_passwords_in_history", *s.Res.NumPasswordsInHistory) + } + + if s.Res.Ocid != nil { + s.D.Set("ocid", *s.Res.Ocid) + } + + if s.Res.PasswordExpireWarning != nil { + s.D.Set("password_expire_warning", *s.Res.PasswordExpireWarning) + } + + if s.Res.PasswordExpiresAfter != nil { + s.D.Set("password_expires_after", *s.Res.PasswordExpiresAfter) + } + + s.D.Set("password_strength", s.Res.PasswordStrength) + + if s.Res.Priority != nil { + s.D.Set("priority", *s.Res.Priority) + } + + if s.Res.RequiredChars != nil { + s.D.Set("required_chars", *s.Res.RequiredChars) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + if s.Res.StartsWithAlphabet != nil { + s.D.Set("starts_with_alphabet", *s.Res.StartsWithAlphabet) + } + + tags := []interface{}{} + for _, item := range s.Res.Tags { + tags = append(tags, tagsToMap(item)) + } + s.D.Set("tags", tags) + + if s.Res.TenancyOcid != nil { + s.D.Set("tenancy_ocid", *s.Res.TenancyOcid) + } + + if s.Res.UserNameDisallowed != nil { + s.D.Set("user_name_disallowed", *s.Res.UserNameDisallowed) + } + + return nil +} diff --git a/internal/service/identity_domains/identity_domains_password_policy_resource.go b/internal/service/identity_domains/identity_domains_password_policy_resource.go new file mode 100644 index 00000000000..97667319778 --- /dev/null +++ b/internal/service/identity_domains/identity_domains_password_policy_resource.go @@ -0,0 +1,1669 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + "fmt" + "log" + "net/url" + "regexp" + "strings" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsPasswordPolicyResource() *schema.Resource { + return &schema.Resource{ + Importer: &schema.ResourceImporter{ + State: schema.ImportStatePassthrough, + }, + Timeouts: tfresource.DefaultTimeout, + Create: createIdentityDomainsPasswordPolicy, + Read: readIdentityDomainsPasswordPolicy, + Update: updateIdentityDomainsPasswordPolicy, + Delete: deleteIdentityDomainsPasswordPolicy, + Schema: map[string]*schema.Schema{ + // Required + "idcs_endpoint": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "name": { + Type: schema.TypeString, + Required: true, + }, + "schemas": { + Type: schema.TypeList, + Required: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + + // Optional + "allowed_chars": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "attribute_sets": { + Type: schema.TypeList, + Optional: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "attributes": { + Type: schema.TypeString, + Optional: true, + }, + "authorization": { + Type: schema.TypeString, + Optional: true, + }, + "description": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "dictionary_delimiter": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "dictionary_location": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "dictionary_word_disallowed": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "disallowed_chars": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "disallowed_substrings": { + Type: schema.TypeList, + Optional: true, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "external_id": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "first_name_disallowed": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "force_password_reset": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "groups": { + Type: schema.TypeList, + Optional: true, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + + // Computed + "display": { + Type: schema.TypeString, + Computed: true, + }, + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "last_name_disallowed": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "lockout_duration": { + Type: schema.TypeInt, + Optional: true, + Computed: true, + }, + "max_incorrect_attempts": { + Type: schema.TypeInt, + Optional: true, + Computed: true, + }, + "max_length": { + Type: schema.TypeInt, + Optional: true, + Computed: true, + }, + "max_repeated_chars": { + Type: schema.TypeInt, + Optional: true, + Computed: true, + }, + "max_special_chars": { + Type: schema.TypeInt, + Optional: true, + Computed: true, + }, + "min_alpha_numerals": { + Type: schema.TypeInt, + Optional: true, + Computed: true, + }, + "min_alphas": { + Type: schema.TypeInt, + Optional: true, + Computed: true, + }, + "min_length": { + Type: schema.TypeInt, + Optional: true, + Computed: true, + }, + "min_lower_case": { + Type: schema.TypeInt, + Optional: true, + Computed: true, + }, + "min_numerals": { + Type: schema.TypeInt, + Optional: true, + Computed: true, + }, + "min_password_age": { + Type: schema.TypeInt, + Optional: true, + Computed: true, + }, + "min_special_chars": { + Type: schema.TypeInt, + Optional: true, + Computed: true, + }, + "min_unique_chars": { + Type: schema.TypeInt, + Optional: true, + Computed: true, + }, + "min_upper_case": { + Type: schema.TypeInt, + Optional: true, + Computed: true, + }, + "num_passwords_in_history": { + Type: schema.TypeInt, + Optional: true, + Computed: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "password_expire_warning": { + Type: schema.TypeInt, + Optional: true, + Computed: true, + }, + "password_expires_after": { + Type: schema.TypeInt, + Optional: true, + Computed: true, + }, + "password_strength": { + Type: schema.TypeString, + Optional: true, + Computed: true, + Sensitive: true, + }, + "priority": { + Type: schema.TypeInt, + Optional: true, + Computed: true, + }, + "required_chars": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "resource_type_schema_version": { + Type: schema.TypeString, + Optional: true, + }, + "starts_with_alphabet": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "tags": { + Type: schema.TypeList, + Optional: true, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "key": { + Type: schema.TypeString, + Required: true, + }, + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + + // Computed + }, + }, + }, + "user_name_disallowed": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + + // Computed + "compartment_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "configured_password_policy_rules": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "key": { + Type: schema.TypeString, + Required: true, + }, + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + + // Computed + }, + }, + }, + "delete_in_progress": { + Type: schema.TypeBool, + Computed: true, + }, + "domain_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "id": { + Type: schema.TypeString, + Computed: true, + }, + "idcs_created_by": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "idcs_last_modified_by": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "idcs_last_upgraded_in_release": { + Type: schema.TypeString, + Computed: true, + }, + "idcs_prevented_operations": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "meta": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "created": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "last_modified": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "location": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "resource_type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "version": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + }, + }, + }, + "tenancy_ocid": { + Type: schema.TypeString, + Computed: true, + }, + }, + } +} + +func createIdentityDomainsPasswordPolicy(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsPasswordPolicyResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.CreateResource(d, sync) +} + +func readIdentityDomainsPasswordPolicy(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsPasswordPolicyResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpointForRead(d, "passwordPolicies") + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.ReadResource(sync) +} + +func updateIdentityDomainsPasswordPolicy(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsPasswordPolicyResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.UpdateResource(d, sync) +} + +func deleteIdentityDomainsPasswordPolicy(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsPasswordPolicyResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + sync.DisableNotFoundRetries = true + + return tfresource.DeleteResource(d, sync) +} + +type IdentityDomainsPasswordPolicyResourceCrud struct { + tfresource.BaseCrud + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.PasswordPolicy + DisableNotFoundRetries bool +} + +func (s *IdentityDomainsPasswordPolicyResourceCrud) ID() string { + return *s.Res.Id + //return GetPasswordPolicyCompositeId(s.D.Get("id").(string)) +} + +func (s *IdentityDomainsPasswordPolicyResourceCrud) Create() error { + request := oci_identity_domains.CreatePasswordPolicyRequest{} + + if allowedChars, ok := s.D.GetOkExists("allowed_chars"); ok { + tmp := allowedChars.(string) + request.AllowedChars = &tmp + } + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if description, ok := s.D.GetOkExists("description"); ok { + tmp := description.(string) + request.Description = &tmp + } + + if dictionaryDelimiter, ok := s.D.GetOkExists("dictionary_delimiter"); ok { + tmp := dictionaryDelimiter.(string) + request.DictionaryDelimiter = &tmp + } + + if dictionaryLocation, ok := s.D.GetOkExists("dictionary_location"); ok { + tmp := dictionaryLocation.(string) + request.DictionaryLocation = &tmp + } + + if dictionaryWordDisallowed, ok := s.D.GetOkExists("dictionary_word_disallowed"); ok { + tmp := dictionaryWordDisallowed.(bool) + request.DictionaryWordDisallowed = &tmp + } + + if disallowedChars, ok := s.D.GetOkExists("disallowed_chars"); ok { + tmp := disallowedChars.(string) + request.DisallowedChars = &tmp + } + + if disallowedSubstrings, ok := s.D.GetOkExists("disallowed_substrings"); ok { + interfaces := disallowedSubstrings.([]interface{}) + tmp := make([]string, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = interfaces[i].(string) + } + } + if len(tmp) != 0 || s.D.HasChange("disallowed_substrings") { + request.DisallowedSubstrings = tmp + } + } + + if externalId, ok := s.D.GetOkExists("external_id"); ok { + tmp := externalId.(string) + request.ExternalId = &tmp + } + + if firstNameDisallowed, ok := s.D.GetOkExists("first_name_disallowed"); ok { + tmp := firstNameDisallowed.(bool) + request.FirstNameDisallowed = &tmp + } + + if forcePasswordReset, ok := s.D.GetOkExists("force_password_reset"); ok { + tmp := forcePasswordReset.(bool) + request.ForcePasswordReset = &tmp + } + + if groups, ok := s.D.GetOkExists("groups"); ok { + interfaces := groups.([]interface{}) + tmp := make([]oci_identity_domains.PasswordPolicyGroups, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "groups", stateDataIndex) + converted, err := s.mapToPasswordPolicyGroups(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("groups") { + request.Groups = tmp + } + } + + if id, ok := s.D.GetOkExists("id"); ok { + tmp := id.(string) + request.Id = &tmp + } + + if lastNameDisallowed, ok := s.D.GetOkExists("last_name_disallowed"); ok { + tmp := lastNameDisallowed.(bool) + request.LastNameDisallowed = &tmp + } + + if lockoutDuration, ok := s.D.GetOkExists("lockout_duration"); ok { + tmp := lockoutDuration.(int) + request.LockoutDuration = &tmp + } + + if maxIncorrectAttempts, ok := s.D.GetOkExists("max_incorrect_attempts"); ok { + tmp := maxIncorrectAttempts.(int) + request.MaxIncorrectAttempts = &tmp + } + + if maxLength, ok := s.D.GetOkExists("max_length"); ok { + tmp := maxLength.(int) + request.MaxLength = &tmp + } + + if maxRepeatedChars, ok := s.D.GetOkExists("max_repeated_chars"); ok { + tmp := maxRepeatedChars.(int) + request.MaxRepeatedChars = &tmp + } + + if maxSpecialChars, ok := s.D.GetOkExists("max_special_chars"); ok { + tmp := maxSpecialChars.(int) + request.MaxSpecialChars = &tmp + } + + if minAlphaNumerals, ok := s.D.GetOkExists("min_alpha_numerals"); ok { + tmp := minAlphaNumerals.(int) + request.MinAlphaNumerals = &tmp + } + + if minAlphas, ok := s.D.GetOkExists("min_alphas"); ok { + tmp := minAlphas.(int) + request.MinAlphas = &tmp + } + + if minLength, ok := s.D.GetOkExists("min_length"); ok { + tmp := minLength.(int) + request.MinLength = &tmp + } + + if minLowerCase, ok := s.D.GetOkExists("min_lower_case"); ok { + tmp := minLowerCase.(int) + request.MinLowerCase = &tmp + } + + if minNumerals, ok := s.D.GetOkExists("min_numerals"); ok { + tmp := minNumerals.(int) + request.MinNumerals = &tmp + } + + if minPasswordAge, ok := s.D.GetOkExists("min_password_age"); ok { + tmp := minPasswordAge.(int) + request.MinPasswordAge = &tmp + } + + if minSpecialChars, ok := s.D.GetOkExists("min_special_chars"); ok { + tmp := minSpecialChars.(int) + request.MinSpecialChars = &tmp + } + + if minUniqueChars, ok := s.D.GetOkExists("min_unique_chars"); ok { + tmp := minUniqueChars.(int) + request.MinUniqueChars = &tmp + } + + if minUpperCase, ok := s.D.GetOkExists("min_upper_case"); ok { + tmp := minUpperCase.(int) + request.MinUpperCase = &tmp + } + + if name, ok := s.D.GetOkExists("name"); ok { + tmp := name.(string) + request.Name = &tmp + } + + if numPasswordsInHistory, ok := s.D.GetOkExists("num_passwords_in_history"); ok { + tmp := numPasswordsInHistory.(int) + request.NumPasswordsInHistory = &tmp + } + + if ocid, ok := s.D.GetOkExists("ocid"); ok { + tmp := ocid.(string) + request.Ocid = &tmp + } + + if passwordExpireWarning, ok := s.D.GetOkExists("password_expire_warning"); ok { + tmp := passwordExpireWarning.(int) + request.PasswordExpireWarning = &tmp + } + + if passwordExpiresAfter, ok := s.D.GetOkExists("password_expires_after"); ok { + tmp := passwordExpiresAfter.(int) + request.PasswordExpiresAfter = &tmp + } + + if passwordStrength, ok := s.D.GetOkExists("password_strength"); ok { + request.PasswordStrength = oci_identity_domains.PasswordPolicyPasswordStrengthEnum(passwordStrength.(string)) + } + + if priority, ok := s.D.GetOkExists("priority"); ok { + tmp := priority.(int) + request.Priority = &tmp + } + + if requiredChars, ok := s.D.GetOkExists("required_chars"); ok { + tmp := requiredChars.(string) + request.RequiredChars = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + if schemas, ok := s.D.GetOkExists("schemas"); ok { + interfaces := schemas.([]interface{}) + tmp := make([]string, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = interfaces[i].(string) + } + } + if len(tmp) != 0 || s.D.HasChange("schemas") { + request.Schemas = tmp + } + } + + if startsWithAlphabet, ok := s.D.GetOkExists("starts_with_alphabet"); ok { + tmp := startsWithAlphabet.(bool) + request.StartsWithAlphabet = &tmp + } + + if tags, ok := s.D.GetOkExists("tags"); ok { + interfaces := tags.([]interface{}) + tmp := make([]oci_identity_domains.Tags, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "tags", stateDataIndex) + converted, err := s.mapTotags(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("tags") { + request.Tags = tmp + } + } + + if userNameDisallowed, ok := s.D.GetOkExists("user_name_disallowed"); ok { + tmp := userNameDisallowed.(bool) + request.UserNameDisallowed = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + response, err := s.Client.CreatePasswordPolicy(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response.PasswordPolicy + return nil +} + +func (s *IdentityDomainsPasswordPolicyResourceCrud) Get() error { + request := oci_identity_domains.GetPasswordPolicyRequest{} + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + tmp := s.D.Id() + request.PasswordPolicyId = &tmp + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + passwordPolicyId, err := parsePasswordPolicyCompositeId(s.D.Id()) + if err == nil { + request.PasswordPolicyId = &passwordPolicyId + } else { + log.Printf("[WARN] Get() unable to parse current ID: %s", s.D.Id()) + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + response, err := s.Client.GetPasswordPolicy(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response.PasswordPolicy + return nil +} + +func (s *IdentityDomainsPasswordPolicyResourceCrud) Update() error { + request := oci_identity_domains.PutPasswordPolicyRequest{} + + if allowedChars, ok := s.D.GetOkExists("allowed_chars"); ok { + tmp := allowedChars.(string) + request.AllowedChars = &tmp + } + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if description, ok := s.D.GetOkExists("description"); ok { + tmp := description.(string) + request.Description = &tmp + } + + if dictionaryDelimiter, ok := s.D.GetOkExists("dictionary_delimiter"); ok { + tmp := dictionaryDelimiter.(string) + request.DictionaryDelimiter = &tmp + } + + if dictionaryLocation, ok := s.D.GetOkExists("dictionary_location"); ok { + tmp := dictionaryLocation.(string) + request.DictionaryLocation = &tmp + } + + if dictionaryWordDisallowed, ok := s.D.GetOkExists("dictionary_word_disallowed"); ok { + tmp := dictionaryWordDisallowed.(bool) + request.DictionaryWordDisallowed = &tmp + } + + if disallowedChars, ok := s.D.GetOkExists("disallowed_chars"); ok { + tmp := disallowedChars.(string) + request.DisallowedChars = &tmp + } + + if disallowedSubstrings, ok := s.D.GetOkExists("disallowed_substrings"); ok { + interfaces := disallowedSubstrings.([]interface{}) + tmp := make([]string, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = interfaces[i].(string) + } + } + if len(tmp) != 0 || s.D.HasChange("disallowed_substrings") { + request.DisallowedSubstrings = tmp + } + } + + if externalId, ok := s.D.GetOkExists("external_id"); ok { + tmp := externalId.(string) + request.ExternalId = &tmp + } + + if firstNameDisallowed, ok := s.D.GetOkExists("first_name_disallowed"); ok { + tmp := firstNameDisallowed.(bool) + request.FirstNameDisallowed = &tmp + } + + if forcePasswordReset, ok := s.D.GetOkExists("force_password_reset"); ok { + tmp := forcePasswordReset.(bool) + request.ForcePasswordReset = &tmp + } + + if groups, ok := s.D.GetOkExists("groups"); ok { + interfaces := groups.([]interface{}) + tmp := make([]oci_identity_domains.PasswordPolicyGroups, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "groups", stateDataIndex) + converted, err := s.mapToPasswordPolicyGroups(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("groups") { + request.Groups = tmp + } + } + + tmp := s.D.Id() + request.Id = &tmp + + if lastNameDisallowed, ok := s.D.GetOkExists("last_name_disallowed"); ok { + tmp := lastNameDisallowed.(bool) + request.LastNameDisallowed = &tmp + } + + if lockoutDuration, ok := s.D.GetOkExists("lockout_duration"); ok { + tmp := lockoutDuration.(int) + request.LockoutDuration = &tmp + } + + if maxIncorrectAttempts, ok := s.D.GetOkExists("max_incorrect_attempts"); ok { + tmp := maxIncorrectAttempts.(int) + request.MaxIncorrectAttempts = &tmp + } + + if maxLength, ok := s.D.GetOkExists("max_length"); ok { + tmp := maxLength.(int) + request.MaxLength = &tmp + } + + if maxRepeatedChars, ok := s.D.GetOkExists("max_repeated_chars"); ok { + tmp := maxRepeatedChars.(int) + request.MaxRepeatedChars = &tmp + } + + if maxSpecialChars, ok := s.D.GetOkExists("max_special_chars"); ok { + tmp := maxSpecialChars.(int) + request.MaxSpecialChars = &tmp + } + + if minAlphaNumerals, ok := s.D.GetOkExists("min_alpha_numerals"); ok { + tmp := minAlphaNumerals.(int) + request.MinAlphaNumerals = &tmp + } + + if minAlphas, ok := s.D.GetOkExists("min_alphas"); ok { + tmp := minAlphas.(int) + request.MinAlphas = &tmp + } + + if minLength, ok := s.D.GetOkExists("min_length"); ok { + tmp := minLength.(int) + request.MinLength = &tmp + } + + if minLowerCase, ok := s.D.GetOkExists("min_lower_case"); ok { + tmp := minLowerCase.(int) + request.MinLowerCase = &tmp + } + + if minNumerals, ok := s.D.GetOkExists("min_numerals"); ok { + tmp := minNumerals.(int) + request.MinNumerals = &tmp + } + + if minPasswordAge, ok := s.D.GetOkExists("min_password_age"); ok { + tmp := minPasswordAge.(int) + request.MinPasswordAge = &tmp + } + + if minSpecialChars, ok := s.D.GetOkExists("min_special_chars"); ok { + tmp := minSpecialChars.(int) + request.MinSpecialChars = &tmp + } + + if minUniqueChars, ok := s.D.GetOkExists("min_unique_chars"); ok { + tmp := minUniqueChars.(int) + request.MinUniqueChars = &tmp + } + + if minUpperCase, ok := s.D.GetOkExists("min_upper_case"); ok { + tmp := minUpperCase.(int) + request.MinUpperCase = &tmp + } + + if name, ok := s.D.GetOkExists("name"); ok { + tmp := name.(string) + request.Name = &tmp + } + + if numPasswordsInHistory, ok := s.D.GetOkExists("num_passwords_in_history"); ok { + tmp := numPasswordsInHistory.(int) + request.NumPasswordsInHistory = &tmp + } + + if ocid, ok := s.D.GetOkExists("ocid"); ok { + tmp := ocid.(string) + request.Ocid = &tmp + } + + if passwordExpireWarning, ok := s.D.GetOkExists("password_expire_warning"); ok { + tmp := passwordExpireWarning.(int) + request.PasswordExpireWarning = &tmp + } + + if passwordExpiresAfter, ok := s.D.GetOkExists("password_expires_after"); ok { + tmp := passwordExpiresAfter.(int) + request.PasswordExpiresAfter = &tmp + } + + tmp = s.D.Id() + request.PasswordPolicyId = &tmp + + if passwordStrength, ok := s.D.GetOkExists("password_strength"); ok { + request.PasswordStrength = oci_identity_domains.PasswordPolicyPasswordStrengthEnum(passwordStrength.(string)) + } + + if priority, ok := s.D.GetOkExists("priority"); ok { + tmp := priority.(int) + request.Priority = &tmp + } + + if requiredChars, ok := s.D.GetOkExists("required_chars"); ok { + tmp := requiredChars.(string) + request.RequiredChars = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + if schemas, ok := s.D.GetOkExists("schemas"); ok { + interfaces := schemas.([]interface{}) + tmp := make([]string, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = interfaces[i].(string) + } + } + if len(tmp) != 0 || s.D.HasChange("schemas") { + request.Schemas = tmp + } + } + + if startsWithAlphabet, ok := s.D.GetOkExists("starts_with_alphabet"); ok { + tmp := startsWithAlphabet.(bool) + request.StartsWithAlphabet = &tmp + } + + if tags, ok := s.D.GetOkExists("tags"); ok { + interfaces := tags.([]interface{}) + tmp := make([]oci_identity_domains.Tags, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "tags", stateDataIndex) + converted, err := s.mapTotags(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("tags") { + request.Tags = tmp + } + } + + if userNameDisallowed, ok := s.D.GetOkExists("user_name_disallowed"); ok { + tmp := userNameDisallowed.(bool) + request.UserNameDisallowed = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + response, err := s.Client.PutPasswordPolicy(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response.PasswordPolicy + return nil +} + +func (s *IdentityDomainsPasswordPolicyResourceCrud) Delete() error { + request := oci_identity_domains.DeletePasswordPolicyRequest{} + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if forceDelete, ok := s.D.GetOkExists("force_delete"); ok { + tmp := forceDelete.(bool) + request.ForceDelete = &tmp + } + + tmp := s.D.Id() + request.PasswordPolicyId = &tmp + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + _, err := s.Client.DeletePasswordPolicy(context.Background(), request) + return err +} + +func (s *IdentityDomainsPasswordPolicyResourceCrud) SetData() error { + + passwordPolicyId, err := parsePasswordPolicyCompositeId(s.D.Id()) + if err == nil { + s.D.SetId(passwordPolicyId) + } else { + log.Printf("[WARN] SetData() unable to parse current ID: %s", s.D.Id()) + } + + if s.Res.AllowedChars != nil { + s.D.Set("allowed_chars", *s.Res.AllowedChars) + } + + if s.Res.CompartmentOcid != nil { + s.D.Set("compartment_ocid", *s.Res.CompartmentOcid) + } + + configuredPasswordPolicyRules := []interface{}{} + for _, item := range s.Res.ConfiguredPasswordPolicyRules { + configuredPasswordPolicyRules = append(configuredPasswordPolicyRules, PasswordPolicyConfiguredPasswordPolicyRulesToMap(item)) + } + s.D.Set("configured_password_policy_rules", configuredPasswordPolicyRules) + + if s.Res.DeleteInProgress != nil { + s.D.Set("delete_in_progress", *s.Res.DeleteInProgress) + } + + if s.Res.Description != nil { + s.D.Set("description", *s.Res.Description) + } + + if s.Res.DictionaryDelimiter != nil { + s.D.Set("dictionary_delimiter", *s.Res.DictionaryDelimiter) + } + + if s.Res.DictionaryLocation != nil { + s.D.Set("dictionary_location", *s.Res.DictionaryLocation) + } + + if s.Res.DictionaryWordDisallowed != nil { + s.D.Set("dictionary_word_disallowed", *s.Res.DictionaryWordDisallowed) + } + + if s.Res.DisallowedChars != nil { + s.D.Set("disallowed_chars", *s.Res.DisallowedChars) + } + + s.D.Set("disallowed_substrings", s.Res.DisallowedSubstrings) + s.D.Set("disallowed_substrings", s.Res.DisallowedSubstrings) + + if s.Res.DomainOcid != nil { + s.D.Set("domain_ocid", *s.Res.DomainOcid) + } + + if s.Res.ExternalId != nil { + s.D.Set("external_id", *s.Res.ExternalId) + } + + if s.Res.FirstNameDisallowed != nil { + s.D.Set("first_name_disallowed", *s.Res.FirstNameDisallowed) + } + + if s.Res.ForcePasswordReset != nil { + s.D.Set("force_password_reset", *s.Res.ForcePasswordReset) + } + + groups := []interface{}{} + for _, item := range s.Res.Groups { + groups = append(groups, PasswordPolicyGroupsToMap(item)) + } + s.D.Set("groups", groups) + + if s.Res.IdcsCreatedBy != nil { + s.D.Set("idcs_created_by", []interface{}{idcsCreatedByToMap(s.Res.IdcsCreatedBy)}) + } else { + s.D.Set("idcs_created_by", nil) + } + + if s.Res.IdcsLastModifiedBy != nil { + s.D.Set("idcs_last_modified_by", []interface{}{idcsLastModifiedByToMap(s.Res.IdcsLastModifiedBy)}) + } else { + s.D.Set("idcs_last_modified_by", nil) + } + + if s.Res.IdcsLastUpgradedInRelease != nil { + s.D.Set("idcs_last_upgraded_in_release", *s.Res.IdcsLastUpgradedInRelease) + } + + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + + if s.Res.LastNameDisallowed != nil { + s.D.Set("last_name_disallowed", *s.Res.LastNameDisallowed) + } + + if s.Res.LockoutDuration != nil { + s.D.Set("lockout_duration", *s.Res.LockoutDuration) + } + + if s.Res.MaxIncorrectAttempts != nil { + s.D.Set("max_incorrect_attempts", *s.Res.MaxIncorrectAttempts) + } + + if s.Res.MaxLength != nil { + s.D.Set("max_length", *s.Res.MaxLength) + } + + if s.Res.MaxRepeatedChars != nil { + s.D.Set("max_repeated_chars", *s.Res.MaxRepeatedChars) + } + + if s.Res.MaxSpecialChars != nil { + s.D.Set("max_special_chars", *s.Res.MaxSpecialChars) + } + + if s.Res.Meta != nil { + s.D.Set("meta", []interface{}{metaToMap(s.Res.Meta)}) + } else { + s.D.Set("meta", nil) + } + + if s.Res.MinAlphaNumerals != nil { + s.D.Set("min_alpha_numerals", *s.Res.MinAlphaNumerals) + } + + if s.Res.MinAlphas != nil { + s.D.Set("min_alphas", *s.Res.MinAlphas) + } + + if s.Res.MinLength != nil { + s.D.Set("min_length", *s.Res.MinLength) + } + + if s.Res.MinLowerCase != nil { + s.D.Set("min_lower_case", *s.Res.MinLowerCase) + } + + if s.Res.MinNumerals != nil { + s.D.Set("min_numerals", *s.Res.MinNumerals) + } + + if s.Res.MinPasswordAge != nil { + s.D.Set("min_password_age", *s.Res.MinPasswordAge) + } + + if s.Res.MinSpecialChars != nil { + s.D.Set("min_special_chars", *s.Res.MinSpecialChars) + } + + if s.Res.MinUniqueChars != nil { + s.D.Set("min_unique_chars", *s.Res.MinUniqueChars) + } + + if s.Res.MinUpperCase != nil { + s.D.Set("min_upper_case", *s.Res.MinUpperCase) + } + + if s.Res.Name != nil { + s.D.Set("name", *s.Res.Name) + } + + if s.Res.NumPasswordsInHistory != nil { + s.D.Set("num_passwords_in_history", *s.Res.NumPasswordsInHistory) + } + + if s.Res.Ocid != nil { + s.D.Set("ocid", *s.Res.Ocid) + } + + if s.Res.PasswordExpireWarning != nil { + s.D.Set("password_expire_warning", *s.Res.PasswordExpireWarning) + } + + if s.Res.PasswordExpiresAfter != nil { + s.D.Set("password_expires_after", *s.Res.PasswordExpiresAfter) + } + + s.D.Set("password_strength", s.Res.PasswordStrength) + + if s.Res.Priority != nil { + s.D.Set("priority", *s.Res.Priority) + } + + if s.Res.RequiredChars != nil { + s.D.Set("required_chars", *s.Res.RequiredChars) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + if s.Res.StartsWithAlphabet != nil { + s.D.Set("starts_with_alphabet", *s.Res.StartsWithAlphabet) + } + + tags := []interface{}{} + for _, item := range s.Res.Tags { + tags = append(tags, tagsToMap(item)) + } + s.D.Set("tags", tags) + + if s.Res.TenancyOcid != nil { + s.D.Set("tenancy_ocid", *s.Res.TenancyOcid) + } + + if s.Res.UserNameDisallowed != nil { + s.D.Set("user_name_disallowed", *s.Res.UserNameDisallowed) + } + + return nil +} + +//func GetPasswordPolicyCompositeId(passwordPolicyId string) string { +// id = url.PathEscape(id) +// idcsEndpoint = url.PathEscape(idcsEndpoint) +// passwordPolicyId = url.PathEscape(passwordPolicyId) +// compositeId := "idcsEndpoint/" + idcsEndpoint + "/passwordPolicies/" + passwordPolicyId +// return compositeId +//} + +func parsePasswordPolicyCompositeId(compositeId string) (passwordPolicyId string, err error) { + parts := strings.Split(compositeId, "/") + match, _ := regexp.MatchString("idcsEndpoint/.*/passwordPolicies/.*", compositeId) + if !match || len(parts) != 4 { + err = fmt.Errorf("illegal compositeId %s encountered", compositeId) + return + } + //idcsEndpoint, _ = url.PathUnescape(parts[1]) + passwordPolicyId, _ = url.PathUnescape(parts[3]) + + return +} + +func PasswordPolicyToMap(obj oci_identity_domains.PasswordPolicy) map[string]interface{} { + result := map[string]interface{}{} + + if obj.AllowedChars != nil { + result["allowed_chars"] = string(*obj.AllowedChars) + } + + if obj.CompartmentOcid != nil { + result["compartment_ocid"] = string(*obj.CompartmentOcid) + } + + configuredPasswordPolicyRules := []interface{}{} + for _, item := range obj.ConfiguredPasswordPolicyRules { + configuredPasswordPolicyRules = append(configuredPasswordPolicyRules, PasswordPolicyConfiguredPasswordPolicyRulesToMap(item)) + } + result["configured_password_policy_rules"] = configuredPasswordPolicyRules + + if obj.DeleteInProgress != nil { + result["delete_in_progress"] = bool(*obj.DeleteInProgress) + } + + if obj.Description != nil { + result["description"] = string(*obj.Description) + } + + if obj.DictionaryDelimiter != nil { + result["dictionary_delimiter"] = string(*obj.DictionaryDelimiter) + } + + if obj.DictionaryLocation != nil { + result["dictionary_location"] = string(*obj.DictionaryLocation) + } + + if obj.DictionaryWordDisallowed != nil { + result["dictionary_word_disallowed"] = bool(*obj.DictionaryWordDisallowed) + } + + if obj.DisallowedChars != nil { + result["disallowed_chars"] = string(*obj.DisallowedChars) + } + + result["disallowed_substrings"] = obj.DisallowedSubstrings + result["disallowed_substrings"] = obj.DisallowedSubstrings + + if obj.DomainOcid != nil { + result["domain_ocid"] = string(*obj.DomainOcid) + } + + if obj.ExternalId != nil { + result["external_id"] = string(*obj.ExternalId) + } + + if obj.FirstNameDisallowed != nil { + result["first_name_disallowed"] = bool(*obj.FirstNameDisallowed) + } + + if obj.ForcePasswordReset != nil { + result["force_password_reset"] = bool(*obj.ForcePasswordReset) + } + + groups := []interface{}{} + for _, item := range obj.Groups { + groups = append(groups, PasswordPolicyGroupsToMap(item)) + } + result["groups"] = groups + + if obj.Id != nil { + result["id"] = string(*obj.Id) + } + + if obj.IdcsCreatedBy != nil { + result["idcs_created_by"] = []interface{}{idcsCreatedByToMap(obj.IdcsCreatedBy)} + } + + if obj.IdcsLastModifiedBy != nil { + result["idcs_last_modified_by"] = []interface{}{idcsLastModifiedByToMap(obj.IdcsLastModifiedBy)} + } + + if obj.IdcsLastUpgradedInRelease != nil { + result["idcs_last_upgraded_in_release"] = string(*obj.IdcsLastUpgradedInRelease) + } + + result["idcs_prevented_operations"] = obj.IdcsPreventedOperations + result["idcs_prevented_operations"] = obj.IdcsPreventedOperations + + if obj.LastNameDisallowed != nil { + result["last_name_disallowed"] = bool(*obj.LastNameDisallowed) + } + + if obj.LockoutDuration != nil { + result["lockout_duration"] = int(*obj.LockoutDuration) + } + + if obj.MaxIncorrectAttempts != nil { + result["max_incorrect_attempts"] = int(*obj.MaxIncorrectAttempts) + } + + if obj.MaxLength != nil { + result["max_length"] = int(*obj.MaxLength) + } + + if obj.MaxRepeatedChars != nil { + result["max_repeated_chars"] = int(*obj.MaxRepeatedChars) + } + + if obj.MaxSpecialChars != nil { + result["max_special_chars"] = int(*obj.MaxSpecialChars) + } + + if obj.Meta != nil { + result["meta"] = []interface{}{metaToMap(obj.Meta)} + } + + if obj.MinAlphaNumerals != nil { + result["min_alpha_numerals"] = int(*obj.MinAlphaNumerals) + } + + if obj.MinAlphas != nil { + result["min_alphas"] = int(*obj.MinAlphas) + } + + if obj.MinLength != nil { + result["min_length"] = int(*obj.MinLength) + } + + if obj.MinLowerCase != nil { + result["min_lower_case"] = int(*obj.MinLowerCase) + } + + if obj.MinNumerals != nil { + result["min_numerals"] = int(*obj.MinNumerals) + } + + if obj.MinPasswordAge != nil { + result["min_password_age"] = int(*obj.MinPasswordAge) + } + + if obj.MinSpecialChars != nil { + result["min_special_chars"] = int(*obj.MinSpecialChars) + } + + if obj.MinUniqueChars != nil { + result["min_unique_chars"] = int(*obj.MinUniqueChars) + } + + if obj.MinUpperCase != nil { + result["min_upper_case"] = int(*obj.MinUpperCase) + } + + if obj.Name != nil { + result["name"] = string(*obj.Name) + } + + if obj.NumPasswordsInHistory != nil { + result["num_passwords_in_history"] = int(*obj.NumPasswordsInHistory) + } + + if obj.Ocid != nil { + result["ocid"] = string(*obj.Ocid) + } + + if obj.PasswordExpireWarning != nil { + result["password_expire_warning"] = int(*obj.PasswordExpireWarning) + } + + if obj.PasswordExpiresAfter != nil { + result["password_expires_after"] = int(*obj.PasswordExpiresAfter) + } + + result["password_strength"] = string(obj.PasswordStrength) + + if obj.Priority != nil { + result["priority"] = int(*obj.Priority) + } + + if obj.RequiredChars != nil { + result["required_chars"] = string(*obj.RequiredChars) + } + + result["schemas"] = obj.Schemas + result["schemas"] = obj.Schemas + + if obj.StartsWithAlphabet != nil { + result["starts_with_alphabet"] = bool(*obj.StartsWithAlphabet) + } + + tags := []interface{}{} + for _, item := range obj.Tags { + tags = append(tags, tagsToMap(item)) + } + result["tags"] = tags + + if obj.TenancyOcid != nil { + result["tenancy_ocid"] = string(*obj.TenancyOcid) + } + + if obj.UserNameDisallowed != nil { + result["user_name_disallowed"] = bool(*obj.UserNameDisallowed) + } + + return result +} + +func PasswordPolicyConfiguredPasswordPolicyRulesToMap(obj oci_identity_domains.PasswordPolicyConfiguredPasswordPolicyRules) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Key != nil { + result["key"] = string(*obj.Key) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func (s *IdentityDomainsPasswordPolicyResourceCrud) mapToPasswordPolicyGroups(fieldKeyFormat string) (oci_identity_domains.PasswordPolicyGroups, error) { + result := oci_identity_domains.PasswordPolicyGroups{} + + if display, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "display")); ok { + tmp := display.(string) + result.Display = &tmp + } + + if ref, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ref")); ok { + tmp := ref.(string) + result.Ref = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func PasswordPolicyGroupsToMap(obj oci_identity_domains.PasswordPolicyGroups) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Display != nil { + result["display"] = string(*obj.Display) + } + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func (s *IdentityDomainsPasswordPolicyResourceCrud) mapTotags(fieldKeyFormat string) (oci_identity_domains.Tags, error) { + result := oci_identity_domains.Tags{} + + if key, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "key")); ok { + tmp := key.(string) + result.Key = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} diff --git a/internal/service/identity_domains/identity_domains_smtp_credential_data_source.go b/internal/service/identity_domains/identity_domains_smtp_credential_data_source.go new file mode 100644 index 00000000000..c9fbb699187 --- /dev/null +++ b/internal/service/identity_domains/identity_domains_smtp_credential_data_source.go @@ -0,0 +1,209 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsSmtpCredentialDataSource() *schema.Resource { + fieldMap := make(map[string]*schema.Schema) + fieldMap["attribute_sets"] = &schema.Schema{ + Type: schema.TypeList, + Optional: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + } + fieldMap["attributes"] = &schema.Schema{ + Type: schema.TypeString, + Optional: true, + } + fieldMap["authorization"] = &schema.Schema{ + Type: schema.TypeString, + Optional: true, + } + fieldMap["idcs_endpoint"] = &schema.Schema{ + Type: schema.TypeString, + Required: true, + } + fieldMap["resource_type_schema_version"] = &schema.Schema{ + Type: schema.TypeString, + Optional: true, + } + fieldMap["smtp_credential_id"] = &schema.Schema{ + Type: schema.TypeString, + Required: true, + } + return tfresource.GetSingularDataSourceItemSchema(IdentityDomainsSmtpCredentialResource(), fieldMap, readSingularIdentityDomainsSmtpCredential) +} + +func readSingularIdentityDomainsSmtpCredential(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsSmtpCredentialDataSourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + + return tfresource.ReadResource(sync) +} + +type IdentityDomainsSmtpCredentialDataSourceCrud struct { + D *schema.ResourceData + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.GetSmtpCredentialResponse +} + +func (s *IdentityDomainsSmtpCredentialDataSourceCrud) VoidState() { + s.D.SetId("") +} + +func (s *IdentityDomainsSmtpCredentialDataSourceCrud) Get() error { + request := oci_identity_domains.GetSmtpCredentialRequest{} + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + if smtpCredentialId, ok := s.D.GetOkExists("smtp_credential_id"); ok { + tmp := smtpCredentialId.(string) + request.SmtpCredentialId = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "identity_domains") + + response, err := s.Client.GetSmtpCredential(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response + return nil +} + +func (s *IdentityDomainsSmtpCredentialDataSourceCrud) SetData() error { + if s.Res == nil { + return nil + } + + s.D.SetId(*s.Res.Id) + + if s.Res.CompartmentOcid != nil { + s.D.Set("compartment_ocid", *s.Res.CompartmentOcid) + } + + if s.Res.DeleteInProgress != nil { + s.D.Set("delete_in_progress", *s.Res.DeleteInProgress) + } + + if s.Res.Description != nil { + s.D.Set("description", *s.Res.Description) + } + + if s.Res.DomainOcid != nil { + s.D.Set("domain_ocid", *s.Res.DomainOcid) + } + + if s.Res.ExpiresOn != nil { + s.D.Set("expires_on", *s.Res.ExpiresOn) + } + + if s.Res.IdcsCreatedBy != nil { + s.D.Set("idcs_created_by", []interface{}{idcsCreatedByToMap(s.Res.IdcsCreatedBy)}) + } else { + s.D.Set("idcs_created_by", nil) + } + + if s.Res.IdcsLastModifiedBy != nil { + s.D.Set("idcs_last_modified_by", []interface{}{idcsLastModifiedByToMap(s.Res.IdcsLastModifiedBy)}) + } else { + s.D.Set("idcs_last_modified_by", nil) + } + + if s.Res.IdcsLastUpgradedInRelease != nil { + s.D.Set("idcs_last_upgraded_in_release", *s.Res.IdcsLastUpgradedInRelease) + } + + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + + if s.Res.Meta != nil { + s.D.Set("meta", []interface{}{metaToMap(s.Res.Meta)}) + } else { + s.D.Set("meta", nil) + } + + if s.Res.Ocid != nil { + s.D.Set("ocid", *s.Res.Ocid) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + s.D.Set("status", s.Res.Status) + + tags := []interface{}{} + for _, item := range s.Res.Tags { + tags = append(tags, tagsToMap(item)) + } + s.D.Set("tags", tags) + + if s.Res.TenancyOcid != nil { + s.D.Set("tenancy_ocid", *s.Res.TenancyOcid) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionself_change_user", []interface{}{ExtensionSelfChangeUserToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionself_change_user", nil) + } + + if s.Res.User != nil { + s.D.Set("user", []interface{}{SmtpCredentialUserToMap(s.Res.User)}) + } else { + s.D.Set("user", nil) + } + + if s.Res.UserName != nil { + s.D.Set("user_name", *s.Res.UserName) + } + + return nil +} diff --git a/internal/service/identity_domains/identity_domains_smtp_credential_resource.go b/internal/service/identity_domains/identity_domains_smtp_credential_resource.go new file mode 100644 index 00000000000..42cd4dccf29 --- /dev/null +++ b/internal/service/identity_domains/identity_domains_smtp_credential_resource.go @@ -0,0 +1,879 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + "fmt" + "log" + "net/url" + "regexp" + "strings" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsSmtpCredentialResource() *schema.Resource { + return &schema.Resource{ + Importer: &schema.ResourceImporter{ + State: schema.ImportStatePassthrough, + }, + Timeouts: tfresource.DefaultTimeout, + Create: createIdentityDomainsSmtpCredential, + Read: readIdentityDomainsSmtpCredential, + Delete: deleteIdentityDomainsSmtpCredential, + Schema: map[string]*schema.Schema{ + // Required + "idcs_endpoint": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "schemas": { + Type: schema.TypeList, + Required: true, + ForceNew: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + + // Optional + "attribute_sets": { + Type: schema.TypeList, + Optional: true, + ForceNew: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "attributes": { + Type: schema.TypeString, + Optional: true, + ForceNew: true, + }, + "authorization": { + Type: schema.TypeString, + Optional: true, + ForceNew: true, + }, + "description": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "expires_on": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "resource_type_schema_version": { + Type: schema.TypeString, + Optional: true, + ForceNew: true, + }, + "status": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "tags": { + Type: schema.TypeList, + Optional: true, + Computed: true, + ForceNew: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "key": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "value": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + + // Optional + + // Computed + }, + }, + }, + "urnietfparamsscimschemasoracleidcsextensionself_change_user": { + Type: schema.TypeList, + Optional: true, + Computed: true, + ForceNew: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "allow_self_change": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + }, + }, + }, + "user": { + Type: schema.TypeList, + Optional: true, + Computed: true, + ForceNew: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "value": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + "display": { + Type: schema.TypeString, + Computed: true, + }, + "name": { + Type: schema.TypeString, + Computed: true, + }, + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + + // Computed + "compartment_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "delete_in_progress": { + Type: schema.TypeBool, + Computed: true, + }, + "domain_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "id": { + Type: schema.TypeString, + Computed: true, + }, + "idcs_created_by": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "idcs_last_modified_by": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "idcs_last_upgraded_in_release": { + Type: schema.TypeString, + Computed: true, + }, + "idcs_prevented_operations": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "meta": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "created": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "last_modified": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "location": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "resource_type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "version": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + }, + }, + }, + "tenancy_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "user_name": { + Type: schema.TypeString, + Computed: true, + }, + }, + } +} + +func createIdentityDomainsSmtpCredential(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsSmtpCredentialResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.CreateResource(d, sync) +} + +func readIdentityDomainsSmtpCredential(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsSmtpCredentialResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpointForRead(d, "smtpCredentials") + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.ReadResource(sync) +} + +func deleteIdentityDomainsSmtpCredential(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsSmtpCredentialResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + sync.DisableNotFoundRetries = true + + return tfresource.DeleteResource(d, sync) +} + +type IdentityDomainsSmtpCredentialResourceCrud struct { + tfresource.BaseCrud + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.SmtpCredential + DisableNotFoundRetries bool +} + +func (s *IdentityDomainsSmtpCredentialResourceCrud) ID() string { + return *s.Res.Id + //return GetSmtpCredentialCompositeId(s.D.Get("id").(string)) +} + +func (s *IdentityDomainsSmtpCredentialResourceCrud) Create() error { + request := oci_identity_domains.CreateSmtpCredentialRequest{} + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if description, ok := s.D.GetOkExists("description"); ok { + tmp := description.(string) + request.Description = &tmp + } + + if expiresOn, ok := s.D.GetOkExists("expires_on"); ok { + tmp := expiresOn.(string) + request.ExpiresOn = &tmp + } + + if id, ok := s.D.GetOkExists("id"); ok { + tmp := id.(string) + request.Id = &tmp + } + + if ocid, ok := s.D.GetOkExists("ocid"); ok { + tmp := ocid.(string) + request.Ocid = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + if schemas, ok := s.D.GetOkExists("schemas"); ok { + interfaces := schemas.([]interface{}) + tmp := make([]string, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = interfaces[i].(string) + } + } + if len(tmp) != 0 || s.D.HasChange("schemas") { + request.Schemas = tmp + } + } + + if status, ok := s.D.GetOkExists("status"); ok { + request.Status = oci_identity_domains.SmtpCredentialStatusEnum(status.(string)) + } + + if tags, ok := s.D.GetOkExists("tags"); ok { + interfaces := tags.([]interface{}) + tmp := make([]oci_identity_domains.Tags, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "tags", stateDataIndex) + converted, err := s.mapTotags(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("tags") { + request.Tags = tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensionselfChangeUser, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextensionself_change_user"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensionselfChangeUser.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextensionself_change_user", 0) + tmp, err := s.mapToExtensionSelfChangeUser(fieldKeyFormat) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser = &tmp + } + } + + if user, ok := s.D.GetOkExists("user"); ok { + if tmpList := user.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "user", 0) + tmp, err := s.mapToSmtpCredentialUser(fieldKeyFormat) + if err != nil { + return err + } + request.User = &tmp + } + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + response, err := s.Client.CreateSmtpCredential(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response.SmtpCredential + return nil +} + +func (s *IdentityDomainsSmtpCredentialResourceCrud) Get() error { + request := oci_identity_domains.GetSmtpCredentialRequest{} + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + tmp := s.D.Id() + request.SmtpCredentialId = &tmp + + smtpCredentialId, err := parseSmtpCredentialCompositeId(s.D.Id()) + if err == nil { + request.SmtpCredentialId = &smtpCredentialId + } else { + log.Printf("[WARN] Get() unable to parse current ID: %s", s.D.Id()) + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + response, err := s.Client.GetSmtpCredential(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response.SmtpCredential + return nil +} + +func (s *IdentityDomainsSmtpCredentialResourceCrud) Delete() error { + request := oci_identity_domains.DeleteSmtpCredentialRequest{} + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if forceDelete, ok := s.D.GetOkExists("force_delete"); ok { + tmp := forceDelete.(bool) + request.ForceDelete = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + tmp := s.D.Id() + request.SmtpCredentialId = &tmp + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + _, err := s.Client.DeleteSmtpCredential(context.Background(), request) + return err +} + +func (s *IdentityDomainsSmtpCredentialResourceCrud) SetData() error { + + smtpCredentialId, err := parseSmtpCredentialCompositeId(s.D.Id()) + if err == nil { + s.D.SetId(smtpCredentialId) + } else { + log.Printf("[WARN] SetData() unable to parse current ID: %s", s.D.Id()) + } + + if s.Res.CompartmentOcid != nil { + s.D.Set("compartment_ocid", *s.Res.CompartmentOcid) + } + + if s.Res.DeleteInProgress != nil { + s.D.Set("delete_in_progress", *s.Res.DeleteInProgress) + } + + if s.Res.Description != nil { + s.D.Set("description", *s.Res.Description) + } + + if s.Res.DomainOcid != nil { + s.D.Set("domain_ocid", *s.Res.DomainOcid) + } + + if s.Res.ExpiresOn != nil { + s.D.Set("expires_on", *s.Res.ExpiresOn) + } + + if s.Res.IdcsCreatedBy != nil { + s.D.Set("idcs_created_by", []interface{}{idcsCreatedByToMap(s.Res.IdcsCreatedBy)}) + } else { + s.D.Set("idcs_created_by", nil) + } + + if s.Res.IdcsLastModifiedBy != nil { + s.D.Set("idcs_last_modified_by", []interface{}{idcsLastModifiedByToMap(s.Res.IdcsLastModifiedBy)}) + } else { + s.D.Set("idcs_last_modified_by", nil) + } + + if s.Res.IdcsLastUpgradedInRelease != nil { + s.D.Set("idcs_last_upgraded_in_release", *s.Res.IdcsLastUpgradedInRelease) + } + + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + + if s.Res.Meta != nil { + s.D.Set("meta", []interface{}{metaToMap(s.Res.Meta)}) + } else { + s.D.Set("meta", nil) + } + + if s.Res.Ocid != nil { + s.D.Set("ocid", *s.Res.Ocid) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + s.D.Set("status", s.Res.Status) + + tags := []interface{}{} + for _, item := range s.Res.Tags { + tags = append(tags, tagsToMap(item)) + } + s.D.Set("tags", tags) + + if s.Res.TenancyOcid != nil { + s.D.Set("tenancy_ocid", *s.Res.TenancyOcid) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionself_change_user", []interface{}{ExtensionSelfChangeUserToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionself_change_user", nil) + } + + if s.Res.User != nil { + s.D.Set("user", []interface{}{SmtpCredentialUserToMap(s.Res.User)}) + } else { + s.D.Set("user", nil) + } + + if s.Res.UserName != nil { + s.D.Set("user_name", *s.Res.UserName) + } + + return nil +} + +//func GetSmtpCredentialCompositeId(smtpCredentialId string) string { +// id = url.PathEscape(id) +// idcsEndpoint = url.PathEscape(idcsEndpoint) +// smtpCredentialId = url.PathEscape(smtpCredentialId) +// compositeId := "idcsEndpoint/" + idcsEndpoint + "/smtpCredentials/" + smtpCredentialId +// return compositeId +//} + +func parseSmtpCredentialCompositeId(compositeId string) (smtpCredentialId string, err error) { + parts := strings.Split(compositeId, "/") + match, _ := regexp.MatchString("idcsEndpoint/.*/smtpCredentials/.*", compositeId) + if !match || len(parts) != 4 { + err = fmt.Errorf("illegal compositeId %s encountered", compositeId) + return + } + //idcsEndpoint, _ = url.PathUnescape(parts[1]) + smtpCredentialId, _ = url.PathUnescape(parts[3]) + + return +} + +func (s *IdentityDomainsSmtpCredentialResourceCrud) mapToExtensionSelfChangeUser(fieldKeyFormat string) (oci_identity_domains.ExtensionSelfChangeUser, error) { + result := oci_identity_domains.ExtensionSelfChangeUser{} + + if allowSelfChange, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "allow_self_change")); ok { + tmp := allowSelfChange.(bool) + result.AllowSelfChange = &tmp + } + + return result, nil +} + +func SmtpCredentialToMap(obj oci_identity_domains.SmtpCredential) map[string]interface{} { + result := map[string]interface{}{} + + if obj.CompartmentOcid != nil { + result["compartment_ocid"] = string(*obj.CompartmentOcid) + } + + if obj.DeleteInProgress != nil { + result["delete_in_progress"] = bool(*obj.DeleteInProgress) + } + + if obj.Description != nil { + result["description"] = string(*obj.Description) + } + + if obj.DomainOcid != nil { + result["domain_ocid"] = string(*obj.DomainOcid) + } + + if obj.ExpiresOn != nil { + result["expires_on"] = string(*obj.ExpiresOn) + } + + if obj.Id != nil { + result["id"] = string(*obj.Id) + } + + if obj.IdcsCreatedBy != nil { + result["idcs_created_by"] = []interface{}{idcsCreatedByToMap(obj.IdcsCreatedBy)} + } + + if obj.IdcsLastModifiedBy != nil { + result["idcs_last_modified_by"] = []interface{}{idcsLastModifiedByToMap(obj.IdcsLastModifiedBy)} + } + + if obj.IdcsLastUpgradedInRelease != nil { + result["idcs_last_upgraded_in_release"] = string(*obj.IdcsLastUpgradedInRelease) + } + + result["idcs_prevented_operations"] = obj.IdcsPreventedOperations + result["idcs_prevented_operations"] = obj.IdcsPreventedOperations + + if obj.Meta != nil { + result["meta"] = []interface{}{metaToMap(obj.Meta)} + } + + if obj.Ocid != nil { + result["ocid"] = string(*obj.Ocid) + } + + result["schemas"] = obj.Schemas + result["schemas"] = obj.Schemas + + result["status"] = string(obj.Status) + + tags := []interface{}{} + for _, item := range obj.Tags { + tags = append(tags, tagsToMap(item)) + } + result["tags"] = tags + + if obj.TenancyOcid != nil { + result["tenancy_ocid"] = string(*obj.TenancyOcid) + } + + if obj.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser != nil { + result["urnietfparamsscimschemasoracleidcsextensionself_change_user"] = []interface{}{ExtensionSelfChangeUserToMap(obj.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser)} + } + + if obj.User != nil { + result["user"] = []interface{}{SmtpCredentialUserToMap(obj.User)} + } + + if obj.UserName != nil { + result["user_name"] = string(*obj.UserName) + } + + return result +} + +func (s *IdentityDomainsSmtpCredentialResourceCrud) mapToSmtpCredentialUser(fieldKeyFormat string) (oci_identity_domains.SmtpCredentialUser, error) { + result := oci_identity_domains.SmtpCredentialUser{} + + if display, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "display")); ok { + tmp := display.(string) + result.Display = &tmp + } + + if name, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "name")); ok { + tmp := name.(string) + result.Name = &tmp + } + + if ocid, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ocid")); ok { + tmp := ocid.(string) + result.Ocid = &tmp + } + + if ref, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ref")); ok { + tmp := ref.(string) + result.Ref = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func SmtpCredentialUserToMap(obj *oci_identity_domains.SmtpCredentialUser) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Display != nil { + result["display"] = string(*obj.Display) + } + + if obj.Name != nil { + result["name"] = string(*obj.Name) + } + + if obj.Ocid != nil { + result["ocid"] = string(*obj.Ocid) + } + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func (s *IdentityDomainsSmtpCredentialResourceCrud) mapTotags(fieldKeyFormat string) (oci_identity_domains.Tags, error) { + result := oci_identity_domains.Tags{} + + if key, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "key")); ok { + tmp := key.(string) + result.Key = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} diff --git a/internal/service/identity_domains/identity_domains_smtp_credentials_data_source.go b/internal/service/identity_domains/identity_domains_smtp_credentials_data_source.go new file mode 100644 index 00000000000..02d2fcaffc6 --- /dev/null +++ b/internal/service/identity_domains/identity_domains_smtp_credentials_data_source.go @@ -0,0 +1,226 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsSmtpCredentialsDataSource() *schema.Resource { + return &schema.Resource{ + Read: readIdentityDomainsSmtpCredentials, + Schema: map[string]*schema.Schema{ + "idcs_endpoint": { + Type: schema.TypeString, + Required: true, + }, + "compartment_id": { + Type: schema.TypeString, + Optional: true, + }, + "smtp_credential_count": { + Type: schema.TypeInt, + Optional: true, + }, + "smtp_credential_filter": { + Type: schema.TypeString, + Optional: true, + }, + "attribute_sets": { + Type: schema.TypeList, + Optional: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "attributes": { + Type: schema.TypeString, + Optional: true, + }, + "authorization": { + Type: schema.TypeString, + Optional: true, + }, + "resource_type_schema_version": { + Type: schema.TypeString, + Optional: true, + }, + "start_index": { + Type: schema.TypeInt, + Optional: true, + }, + "sort_order": { + Type: schema.TypeString, + Optional: true, + }, + "sort_by": { + Type: schema.TypeString, + Optional: true, + }, + // Computed + "smtp_credentials": { + Type: schema.TypeList, + Computed: true, + Elem: tfresource.GetDataSourceItemSchema(IdentityDomainsSmtpCredentialResource()), + }, + "items_per_page": { + Type: schema.TypeInt, + Computed: true, + }, + "schemas": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "total_results": { + Type: schema.TypeInt, + Computed: true, + }, + }, + } +} + +func readIdentityDomainsSmtpCredentials(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsSmtpCredentialsDataSourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.ReadResource(sync) +} + +type IdentityDomainsSmtpCredentialsDataSourceCrud struct { + D *schema.ResourceData + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.ListSmtpCredentialsResponse +} + +func (s *IdentityDomainsSmtpCredentialsDataSourceCrud) VoidState() { + s.D.SetId("") +} + +func (s *IdentityDomainsSmtpCredentialsDataSourceCrud) Get() error { + request := oci_identity_domains.ListSmtpCredentialsRequest{} + + if smtpCredentialCount, ok := s.D.GetOkExists("smtp_credential_count"); ok { + tmp := smtpCredentialCount.(int) + request.Count = &tmp + } + + if smtpCredentialFilter, ok := s.D.GetOkExists("smtp_credential_filter"); ok { + tmp := smtpCredentialFilter.(string) + tmp = tryMatchUserSubResFilter(tmp) + request.Filter = &tmp + } + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + if startIndex, ok := s.D.GetOkExists("start_index"); ok { + tmp := startIndex.(int) + request.StartIndex = &tmp + } + + if sortOrder, ok := s.D.GetOkExists("sort_order"); ok { + tmp := oci_identity_domains.ListSmtpCredentialsSortOrderEnum(sortOrder.(string)) + request.SortOrder = tmp + } + + if sortBy, ok := s.D.GetOkExists("sort_by"); ok { + tmp := sortBy.(string) + request.SortBy = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "identity_domains") + + response, err := s.Client.ListSmtpCredentials(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response + startIndex := *response.StartIndex + for startIndex+*response.ItemsPerPage <= *response.TotalResults { + startIndex += *response.ItemsPerPage + request.StartIndex = &startIndex + listResponse, err := s.Client.ListSmtpCredentials(context.Background(), request) + if err != nil { + return err + } + + s.Res.Resources = append(s.Res.Resources, listResponse.Resources...) + } + + return nil +} + +func (s *IdentityDomainsSmtpCredentialsDataSourceCrud) SetData() error { + if s.Res == nil { + return nil + } + + s.D.SetId(tfresource.GenerateDataSourceHashID("IdentityDomainsSmtpCredentialsDataSource-", IdentityDomainsSmtpCredentialsDataSource(), s.D)) + + resources := []interface{}{} + for _, item := range s.Res.Resources { + resources = append(resources, SmtpCredentialToMap(item)) + } + s.D.Set("smtp_credentials", resources) + + if s.Res.ItemsPerPage != nil { + s.D.Set("items_per_page", *s.Res.ItemsPerPage) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + if s.Res.StartIndex != nil { + s.D.Set("start_index", *s.Res.StartIndex) + } + + if s.Res.TotalResults != nil { + s.D.Set("total_results", *s.Res.TotalResults) + } + + return nil +} diff --git a/internal/service/identity_domains/identity_domains_user_data_source.go b/internal/service/identity_domains/identity_domains_user_data_source.go new file mode 100644 index 00000000000..b5d2455b3c8 --- /dev/null +++ b/internal/service/identity_domains/identity_domains_user_data_source.go @@ -0,0 +1,413 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsUserDataSource() *schema.Resource { + fieldMap := make(map[string]*schema.Schema) + fieldMap["attribute_sets"] = &schema.Schema{ + Type: schema.TypeList, + Optional: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + } + fieldMap["attributes"] = &schema.Schema{ + Type: schema.TypeString, + Optional: true, + } + fieldMap["authorization"] = &schema.Schema{ + Type: schema.TypeString, + Optional: true, + } + fieldMap["idcs_endpoint"] = &schema.Schema{ + Type: schema.TypeString, + Required: true, + } + fieldMap["resource_type_schema_version"] = &schema.Schema{ + Type: schema.TypeString, + Optional: true, + } + fieldMap["user_id"] = &schema.Schema{ + Type: schema.TypeString, + Required: true, + } + return tfresource.GetSingularDataSourceItemSchema(IdentityDomainsUserResource(), fieldMap, readSingularIdentityDomainsUser) +} + +func readSingularIdentityDomainsUser(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsUserDataSourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + + return tfresource.ReadResource(sync) +} + +type IdentityDomainsUserDataSourceCrud struct { + D *schema.ResourceData + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.GetUserResponse +} + +func (s *IdentityDomainsUserDataSourceCrud) VoidState() { + s.D.SetId("") +} + +func (s *IdentityDomainsUserDataSourceCrud) Get() error { + request := oci_identity_domains.GetUserRequest{} + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + if userId, ok := s.D.GetOkExists("user_id"); ok { + tmp := userId.(string) + request.UserId = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "identity_domains") + + response, err := s.Client.GetUser(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response + return nil +} + +func (s *IdentityDomainsUserDataSourceCrud) SetData() error { + if s.Res == nil { + return nil + } + + s.D.SetId(*s.Res.Id) + + if s.Res.Active != nil { + s.D.Set("active", *s.Res.Active) + } + + addresses := []interface{}{} + for _, item := range s.Res.Addresses { + addresses = append(addresses, addressesToMap(item)) + } + s.D.Set("addresses", addresses) + + if s.Res.CompartmentOcid != nil { + s.D.Set("compartment_ocid", *s.Res.CompartmentOcid) + } + + if s.Res.DeleteInProgress != nil { + s.D.Set("delete_in_progress", *s.Res.DeleteInProgress) + } + + if s.Res.Description != nil { + s.D.Set("description", *s.Res.Description) + } + + if s.Res.DisplayName != nil { + s.D.Set("display_name", *s.Res.DisplayName) + } + + if s.Res.DomainOcid != nil { + s.D.Set("domain_ocid", *s.Res.DomainOcid) + } + + emails := []interface{}{} + for _, item := range s.Res.Emails { + emails = append(emails, UserEmailsToMap(item)) + } + s.D.Set("emails", emails) + + entitlements := []interface{}{} + for _, item := range s.Res.Entitlements { + entitlements = append(entitlements, UserEntitlementsToMap(item)) + } + s.D.Set("entitlements", entitlements) + + if s.Res.ExternalId != nil { + s.D.Set("external_id", *s.Res.ExternalId) + } + + groups := []interface{}{} + for _, item := range s.Res.Groups { + groups = append(groups, UserGroupsToMap(item)) + } + s.D.Set("groups", groups) + + if s.Res.IdcsCreatedBy != nil { + s.D.Set("idcs_created_by", []interface{}{idcsCreatedByToMap(s.Res.IdcsCreatedBy)}) + } else { + s.D.Set("idcs_created_by", nil) + } + + if s.Res.IdcsLastModifiedBy != nil { + s.D.Set("idcs_last_modified_by", []interface{}{idcsLastModifiedByToMap(s.Res.IdcsLastModifiedBy)}) + } else { + s.D.Set("idcs_last_modified_by", nil) + } + + if s.Res.IdcsLastUpgradedInRelease != nil { + s.D.Set("idcs_last_upgraded_in_release", *s.Res.IdcsLastUpgradedInRelease) + } + + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + + ims := []interface{}{} + for _, item := range s.Res.Ims { + ims = append(ims, UserImsToMap(item)) + } + s.D.Set("ims", ims) + + if s.Res.Locale != nil { + s.D.Set("locale", *s.Res.Locale) + } + + if s.Res.Meta != nil { + s.D.Set("meta", []interface{}{metaToMap(s.Res.Meta)}) + } else { + s.D.Set("meta", nil) + } + + if s.Res.Name != nil { + s.D.Set("name", []interface{}{UserNameToMap(s.Res.Name)}) + } else { + s.D.Set("name", nil) + } + + if s.Res.NickName != nil { + s.D.Set("nick_name", *s.Res.NickName) + } + + if s.Res.Ocid != nil { + s.D.Set("ocid", *s.Res.Ocid) + } + + if s.Res.Password != nil { + s.D.Set("password", *s.Res.Password) + } + + phoneNumbers := []interface{}{} + for _, item := range s.Res.PhoneNumbers { + phoneNumbers = append(phoneNumbers, UserPhoneNumbersToMap(item)) + } + s.D.Set("phone_numbers", phoneNumbers) + + photos := []interface{}{} + for _, item := range s.Res.Photos { + photos = append(photos, UserPhotosToMap(item)) + } + s.D.Set("photos", photos) + + if s.Res.PreferredLanguage != nil { + s.D.Set("preferred_language", *s.Res.PreferredLanguage) + } + + if s.Res.ProfileUrl != nil { + s.D.Set("profile_url", *s.Res.ProfileUrl) + } + + roles := []interface{}{} + for _, item := range s.Res.Roles { + roles = append(roles, UserRolesToMap(item)) + } + s.D.Set("roles", roles) + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + tags := []interface{}{} + for _, item := range s.Res.Tags { + tags = append(tags, tagsToMap(item)) + } + s.D.Set("tags", tags) + + if s.Res.TenancyOcid != nil { + s.D.Set("tenancy_ocid", *s.Res.TenancyOcid) + } + + if s.Res.Timezone != nil { + s.D.Set("timezone", *s.Res.Timezone) + } + + if s.Res.Title != nil { + s.D.Set("title", *s.Res.Title) + } + + if s.Res.UrnIetfParamsScimSchemasExtensionEnterprise2_0User != nil { + s.D.Set("urnietfparamsscimschemasextensionenterprise20user", []interface{}{ExtensionEnterprise20UserToMap(s.Res.UrnIetfParamsScimSchemasExtensionEnterprise2_0User)}) + } else { + s.D.Set("urnietfparamsscimschemasextensionenterprise20user", nil) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionOciTags != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextension_oci_tags", []interface{}{ExtensionOCITagsToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionOciTags)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextension_oci_tags", nil) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionAdaptiveUser != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionadaptive_user", []interface{}{ExtensionAdaptiveUserToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionAdaptiveUser)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionadaptive_user", nil) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionCapabilitiesUser != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensioncapabilities_user", []interface{}{ExtensionCapabilitiesUserToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionCapabilitiesUser)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensioncapabilities_user", nil) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionDbCredentialsUser != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensiondb_credentials_user", []interface{}{ExtensionDbCredentialsUserToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionDbCredentialsUser)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensiondb_credentials_user", nil) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionDbUserUser != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensiondb_user_user", []interface{}{ExtensionDbUserUserToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionDbUserUser)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensiondb_user_user", nil) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionKerberosUserUser != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionkerberos_user_user", []interface{}{ExtensionKerberosUserUserToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionKerberosUserUser)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionkerberos_user_user", nil) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionMfaUser != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionmfa_user", []interface{}{ExtensionMfaUserToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionMfaUser)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionmfa_user", nil) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionPasswordStateUser != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionpassword_state_user", []interface{}{ExtensionPasswordStateUserToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionPasswordStateUser)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionpassword_state_user", nil) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionPasswordlessUser != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionpasswordless_user", []interface{}{ExtensionPasswordlessUserToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionPasswordlessUser)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionpasswordless_user", nil) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionPosixUser != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionposix_user", []interface{}{ExtensionPosixUserToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionPosixUser)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionposix_user", nil) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionSecurityQuestionsUser != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionsecurity_questions_user", []interface{}{ExtensionSecurityQuestionsUserToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionSecurityQuestionsUser)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionsecurity_questions_user", nil) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionself_change_user", []interface{}{ExtensionSelfChangeUserToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionself_change_user", nil) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfRegistrationUser != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionself_registration_user", []interface{}{ExtensionSelfRegistrationUserToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfRegistrationUser)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionself_registration_user", nil) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionSffUser != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionsff_user", []interface{}{ExtensionSffUserToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionSffUser)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionsff_user", nil) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionSocialAccountUser != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionsocial_account_user", []interface{}{ExtensionSocialAccountUserToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionSocialAccountUser)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionsocial_account_user", nil) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionTermsOfUseUser != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionterms_of_use_user", []interface{}{ExtensionTermsOfUseUserToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionTermsOfUseUser)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionterms_of_use_user", nil) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionUserCredentialsUser != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionuser_credentials_user", []interface{}{ExtensionUserCredentialsUserToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionUserCredentialsUser)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionuser_credentials_user", nil) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionUserStateUser != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionuser_state_user", []interface{}{ExtensionUserStateUserToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionUserStateUser)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionuser_state_user", nil) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionUserUser != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionuser_user", []interface{}{ExtensionUserUserToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionUserUser)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionuser_user", nil) + } + + if s.Res.UserName != nil { + s.D.Set("user_name", *s.Res.UserName) + } + + s.D.Set("user_type", s.Res.UserType) + + x509Certificates := []interface{}{} + for _, item := range s.Res.X509Certificates { + x509Certificates = append(x509Certificates, UserX509CertificatesToMap(item)) + } + s.D.Set("x509certificates", x509Certificates) + + return nil +} diff --git a/internal/service/identity_domains/identity_domains_user_db_credential_data_source.go b/internal/service/identity_domains/identity_domains_user_db_credential_data_source.go new file mode 100644 index 00000000000..e4bad349a74 --- /dev/null +++ b/internal/service/identity_domains/identity_domains_user_db_credential_data_source.go @@ -0,0 +1,233 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsUserDbCredentialDataSource() *schema.Resource { + fieldMap := make(map[string]*schema.Schema) + fieldMap["attribute_sets"] = &schema.Schema{ + Type: schema.TypeList, + Optional: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + } + fieldMap["attributes"] = &schema.Schema{ + Type: schema.TypeString, + Optional: true, + } + fieldMap["authorization"] = &schema.Schema{ + Type: schema.TypeString, + Optional: true, + } + fieldMap["idcs_endpoint"] = &schema.Schema{ + Type: schema.TypeString, + Required: true, + } + fieldMap["resource_type_schema_version"] = &schema.Schema{ + Type: schema.TypeString, + Optional: true, + } + fieldMap["user_db_credential_id"] = &schema.Schema{ + Type: schema.TypeString, + Required: true, + } + return tfresource.GetSingularDataSourceItemSchema(IdentityDomainsUserDbCredentialResource(), fieldMap, readSingularIdentityDomainsUserDbCredential) +} + +func readSingularIdentityDomainsUserDbCredential(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsUserDbCredentialDataSourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + + return tfresource.ReadResource(sync) +} + +type IdentityDomainsUserDbCredentialDataSourceCrud struct { + D *schema.ResourceData + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.GetUserDbCredentialResponse +} + +func (s *IdentityDomainsUserDbCredentialDataSourceCrud) VoidState() { + s.D.SetId("") +} + +func (s *IdentityDomainsUserDbCredentialDataSourceCrud) Get() error { + request := oci_identity_domains.GetUserDbCredentialRequest{} + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + if userDbCredentialId, ok := s.D.GetOkExists("user_db_credential_id"); ok { + tmp := userDbCredentialId.(string) + request.UserDbCredentialId = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "identity_domains") + + response, err := s.Client.GetUserDbCredential(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response + return nil +} + +func (s *IdentityDomainsUserDbCredentialDataSourceCrud) SetData() error { + if s.Res == nil { + return nil + } + + s.D.SetId(*s.Res.Id) + + if s.Res.CompartmentOcid != nil { + s.D.Set("compartment_ocid", *s.Res.CompartmentOcid) + } + + if s.Res.DbPassword != nil { + s.D.Set("db_password", *s.Res.DbPassword) + } + + if s.Res.DeleteInProgress != nil { + s.D.Set("delete_in_progress", *s.Res.DeleteInProgress) + } + + if s.Res.Description != nil { + s.D.Set("description", *s.Res.Description) + } + + if s.Res.DomainOcid != nil { + s.D.Set("domain_ocid", *s.Res.DomainOcid) + } + + if s.Res.Expired != nil { + s.D.Set("expired", *s.Res.Expired) + } + + if s.Res.ExpiresOn != nil { + s.D.Set("expires_on", *s.Res.ExpiresOn) + } + + if s.Res.IdcsCreatedBy != nil { + s.D.Set("idcs_created_by", []interface{}{idcsCreatedByToMap(s.Res.IdcsCreatedBy)}) + } else { + s.D.Set("idcs_created_by", nil) + } + + if s.Res.IdcsLastModifiedBy != nil { + s.D.Set("idcs_last_modified_by", []interface{}{idcsLastModifiedByToMap(s.Res.IdcsLastModifiedBy)}) + } else { + s.D.Set("idcs_last_modified_by", nil) + } + + if s.Res.IdcsLastUpgradedInRelease != nil { + s.D.Set("idcs_last_upgraded_in_release", *s.Res.IdcsLastUpgradedInRelease) + } + + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + + if s.Res.LastSetDate != nil { + s.D.Set("last_set_date", *s.Res.LastSetDate) + } + + if s.Res.Meta != nil { + s.D.Set("meta", []interface{}{metaToMap(s.Res.Meta)}) + } else { + s.D.Set("meta", nil) + } + + if s.Res.MixedDbPassword != nil { + s.D.Set("mixed_db_password", *s.Res.MixedDbPassword) + } + + if s.Res.MixedSalt != nil { + s.D.Set("mixed_salt", *s.Res.MixedSalt) + } + + if s.Res.Name != nil { + s.D.Set("name", *s.Res.Name) + } + + if s.Res.Ocid != nil { + s.D.Set("ocid", *s.Res.Ocid) + } + + if s.Res.Salt != nil { + s.D.Set("salt", *s.Res.Salt) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + s.D.Set("status", s.Res.Status) + + tags := []interface{}{} + for _, item := range s.Res.Tags { + tags = append(tags, tagsToMap(item)) + } + s.D.Set("tags", tags) + + if s.Res.TenancyOcid != nil { + s.D.Set("tenancy_ocid", *s.Res.TenancyOcid) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionself_change_user", []interface{}{ExtensionSelfChangeUserToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionself_change_user", nil) + } + + if s.Res.User != nil { + s.D.Set("user", []interface{}{UserDbCredentialsUserToMap(s.Res.User)}) + } else { + s.D.Set("user", nil) + } + + return nil +} diff --git a/internal/service/identity_domains/identity_domains_user_db_credential_resource.go b/internal/service/identity_domains/identity_domains_user_db_credential_resource.go new file mode 100644 index 00000000000..ce012129fc5 --- /dev/null +++ b/internal/service/identity_domains/identity_domains_user_db_credential_resource.go @@ -0,0 +1,958 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + "fmt" + "log" + "net/url" + "regexp" + "strings" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsUserDbCredentialResource() *schema.Resource { + return &schema.Resource{ + Importer: &schema.ResourceImporter{ + State: schema.ImportStatePassthrough, + }, + Timeouts: tfresource.DefaultTimeout, + Create: createIdentityDomainsUserDbCredential, + Read: readIdentityDomainsUserDbCredential, + Delete: deleteIdentityDomainsUserDbCredential, + Schema: map[string]*schema.Schema{ + // Required + "db_password": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + Sensitive: true, + }, + "idcs_endpoint": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "schemas": { + Type: schema.TypeList, + Required: true, + ForceNew: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + + // Optional + "attribute_sets": { + Type: schema.TypeList, + Optional: true, + ForceNew: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "attributes": { + Type: schema.TypeString, + Optional: true, + ForceNew: true, + }, + "authorization": { + Type: schema.TypeString, + Optional: true, + ForceNew: true, + }, + "description": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "expires_on": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "resource_type_schema_version": { + Type: schema.TypeString, + Optional: true, + ForceNew: true, + }, + "status": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "tags": { + Type: schema.TypeList, + Optional: true, + Computed: true, + ForceNew: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "key": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "value": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + + // Optional + + // Computed + }, + }, + }, + "urnietfparamsscimschemasoracleidcsextensionself_change_user": { + Type: schema.TypeList, + Optional: true, + Computed: true, + ForceNew: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "allow_self_change": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + }, + }, + }, + "user": { + Type: schema.TypeList, + Optional: true, + Computed: true, + ForceNew: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + + // Optional + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + "display": { + Type: schema.TypeString, + Computed: true, + }, + "name": { + Type: schema.TypeString, + Computed: true, + }, + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + + // Computed + "compartment_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "delete_in_progress": { + Type: schema.TypeBool, + Computed: true, + }, + "domain_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "expired": { + Type: schema.TypeBool, + Computed: true, + }, + "id": { + Type: schema.TypeString, + Computed: true, + }, + "idcs_created_by": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "idcs_last_modified_by": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "idcs_last_upgraded_in_release": { + Type: schema.TypeString, + Computed: true, + }, + "idcs_prevented_operations": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "last_set_date": { + Type: schema.TypeString, + Computed: true, + }, + "meta": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "created": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "last_modified": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "location": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "resource_type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "version": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + + // Computed + }, + }, + }, + "mixed_db_password": { + Type: schema.TypeString, + Computed: true, + }, + "mixed_salt": { + Type: schema.TypeString, + Computed: true, + }, + "name": { + Type: schema.TypeString, + Computed: true, + }, + "salt": { + Type: schema.TypeString, + Computed: true, + }, + "tenancy_ocid": { + Type: schema.TypeString, + Computed: true, + }, + }, + } +} + +func createIdentityDomainsUserDbCredential(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsUserDbCredentialResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.CreateResource(d, sync) +} + +func readIdentityDomainsUserDbCredential(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsUserDbCredentialResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpointForRead(d, "userDbCredentials") + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.ReadResource(sync) +} + +func deleteIdentityDomainsUserDbCredential(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsUserDbCredentialResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + sync.DisableNotFoundRetries = true + + return tfresource.DeleteResource(d, sync) +} + +type IdentityDomainsUserDbCredentialResourceCrud struct { + tfresource.BaseCrud + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.UserDbCredential + DisableNotFoundRetries bool +} + +func (s *IdentityDomainsUserDbCredentialResourceCrud) ID() string { + return *s.Res.Id + //return GetUserDbCredentialCompositeId(s.D.Get("id").(string)) +} + +func (s *IdentityDomainsUserDbCredentialResourceCrud) Create() error { + request := oci_identity_domains.CreateUserDbCredentialRequest{} + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if dbPassword, ok := s.D.GetOkExists("db_password"); ok { + tmp := dbPassword.(string) + request.DbPassword = &tmp + } + + if description, ok := s.D.GetOkExists("description"); ok { + tmp := description.(string) + request.Description = &tmp + } + + if expiresOn, ok := s.D.GetOkExists("expires_on"); ok { + tmp := expiresOn.(string) + request.ExpiresOn = &tmp + } + + if id, ok := s.D.GetOkExists("id"); ok { + tmp := id.(string) + request.Id = &tmp + } + + if ocid, ok := s.D.GetOkExists("ocid"); ok { + tmp := ocid.(string) + request.Ocid = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + if schemas, ok := s.D.GetOkExists("schemas"); ok { + interfaces := schemas.([]interface{}) + tmp := make([]string, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = interfaces[i].(string) + } + } + if len(tmp) != 0 || s.D.HasChange("schemas") { + request.Schemas = tmp + } + } + + if status, ok := s.D.GetOkExists("status"); ok { + request.Status = oci_identity_domains.UserDbCredentialStatusEnum(status.(string)) + } + + if tags, ok := s.D.GetOkExists("tags"); ok { + interfaces := tags.([]interface{}) + tmp := make([]oci_identity_domains.Tags, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "tags", stateDataIndex) + converted, err := s.mapTotags(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("tags") { + request.Tags = tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensionselfChangeUser, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextensionself_change_user"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensionselfChangeUser.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextensionself_change_user", 0) + tmp, err := s.mapToExtensionSelfChangeUser(fieldKeyFormat) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser = &tmp + } + } + + if user, ok := s.D.GetOkExists("user"); ok { + if tmpList := user.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "user", 0) + tmp, err := s.mapToUserDbCredentialsUser(fieldKeyFormat) + if err != nil { + return err + } + request.User = &tmp + } + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + response, err := s.Client.CreateUserDbCredential(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response.UserDbCredential + return nil +} + +func (s *IdentityDomainsUserDbCredentialResourceCrud) Get() error { + request := oci_identity_domains.GetUserDbCredentialRequest{} + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + tmp := s.D.Id() + request.UserDbCredentialId = &tmp + + userDbCredentialId, err := parseUserDbCredentialCompositeId(s.D.Id()) + if err == nil { + request.UserDbCredentialId = &userDbCredentialId + } else { + log.Printf("[WARN] Get() unable to parse current ID: %s", s.D.Id()) + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + response, err := s.Client.GetUserDbCredential(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response.UserDbCredential + return nil +} + +func (s *IdentityDomainsUserDbCredentialResourceCrud) Delete() error { + request := oci_identity_domains.DeleteUserDbCredentialRequest{} + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if forceDelete, ok := s.D.GetOkExists("force_delete"); ok { + tmp := forceDelete.(bool) + request.ForceDelete = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + tmp := s.D.Id() + request.UserDbCredentialId = &tmp + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + _, err := s.Client.DeleteUserDbCredential(context.Background(), request) + return err +} + +func (s *IdentityDomainsUserDbCredentialResourceCrud) SetData() error { + + userDbCredentialId, err := parseUserDbCredentialCompositeId(s.D.Id()) + if err == nil { + s.D.SetId(userDbCredentialId) + } else { + log.Printf("[WARN] SetData() unable to parse current ID: %s", s.D.Id()) + } + + if s.Res.CompartmentOcid != nil { + s.D.Set("compartment_ocid", *s.Res.CompartmentOcid) + } + + if s.Res.DbPassword != nil { + s.D.Set("db_password", *s.Res.DbPassword) + } + + if s.Res.DeleteInProgress != nil { + s.D.Set("delete_in_progress", *s.Res.DeleteInProgress) + } + + if s.Res.Description != nil { + s.D.Set("description", *s.Res.Description) + } + + if s.Res.DomainOcid != nil { + s.D.Set("domain_ocid", *s.Res.DomainOcid) + } + + if s.Res.Expired != nil { + s.D.Set("expired", *s.Res.Expired) + } + + if s.Res.ExpiresOn != nil { + s.D.Set("expires_on", *s.Res.ExpiresOn) + } + + if s.Res.IdcsCreatedBy != nil { + s.D.Set("idcs_created_by", []interface{}{idcsCreatedByToMap(s.Res.IdcsCreatedBy)}) + } else { + s.D.Set("idcs_created_by", nil) + } + + if s.Res.IdcsLastModifiedBy != nil { + s.D.Set("idcs_last_modified_by", []interface{}{idcsLastModifiedByToMap(s.Res.IdcsLastModifiedBy)}) + } else { + s.D.Set("idcs_last_modified_by", nil) + } + + if s.Res.IdcsLastUpgradedInRelease != nil { + s.D.Set("idcs_last_upgraded_in_release", *s.Res.IdcsLastUpgradedInRelease) + } + + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + + if s.Res.LastSetDate != nil { + s.D.Set("last_set_date", *s.Res.LastSetDate) + } + + if s.Res.Meta != nil { + s.D.Set("meta", []interface{}{metaToMap(s.Res.Meta)}) + } else { + s.D.Set("meta", nil) + } + + if s.Res.MixedDbPassword != nil { + s.D.Set("mixed_db_password", *s.Res.MixedDbPassword) + } + + if s.Res.MixedSalt != nil { + s.D.Set("mixed_salt", *s.Res.MixedSalt) + } + + if s.Res.Name != nil { + s.D.Set("name", *s.Res.Name) + } + + if s.Res.Ocid != nil { + s.D.Set("ocid", *s.Res.Ocid) + } + + if s.Res.Salt != nil { + s.D.Set("salt", *s.Res.Salt) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + s.D.Set("status", s.Res.Status) + + tags := []interface{}{} + for _, item := range s.Res.Tags { + tags = append(tags, tagsToMap(item)) + } + s.D.Set("tags", tags) + + if s.Res.TenancyOcid != nil { + s.D.Set("tenancy_ocid", *s.Res.TenancyOcid) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionself_change_user", []interface{}{ExtensionSelfChangeUserToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionself_change_user", nil) + } + + if s.Res.User != nil { + s.D.Set("user", []interface{}{UserDbCredentialsUserToMap(s.Res.User)}) + } else { + s.D.Set("user", nil) + } + + return nil +} + +//func GetUserDbCredentialCompositeId(userDbCredentialId string) string { +// id = url.PathEscape(id) +// idcsEndpoint = url.PathEscape(idcsEndpoint) +// user = url.PathEscape(user) +// userDbCredentialId = url.PathEscape(userDbCredentialId) +// compositeId := "idcsEndpoint/" + idcsEndpoint + "/userDbCredentials/" + userDbCredentialId +// return compositeId +//} + +func parseUserDbCredentialCompositeId(compositeId string) (userDbCredentialId string, err error) { + parts := strings.Split(compositeId, "/") + match, _ := regexp.MatchString("idcsEndpoint/.*/userDbCredentials/.*", compositeId) + if !match || len(parts) != 4 { + err = fmt.Errorf("illegal compositeId %s encountered", compositeId) + return + } + //idcsEndpoint, _ = url.PathUnescape(parts[1]) + userDbCredentialId, _ = url.PathUnescape(parts[3]) + + return +} + +func (s *IdentityDomainsUserDbCredentialResourceCrud) mapToExtensionSelfChangeUser(fieldKeyFormat string) (oci_identity_domains.ExtensionSelfChangeUser, error) { + result := oci_identity_domains.ExtensionSelfChangeUser{} + + if allowSelfChange, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "allow_self_change")); ok { + tmp := allowSelfChange.(bool) + result.AllowSelfChange = &tmp + } + + return result, nil +} + +func UserDbCredentialToMap(obj oci_identity_domains.UserDbCredential) map[string]interface{} { + result := map[string]interface{}{} + + if obj.CompartmentOcid != nil { + result["compartment_ocid"] = string(*obj.CompartmentOcid) + } + + if obj.DbPassword != nil { + result["db_password"] = string(*obj.DbPassword) + } + + if obj.DeleteInProgress != nil { + result["delete_in_progress"] = bool(*obj.DeleteInProgress) + } + + if obj.Description != nil { + result["description"] = string(*obj.Description) + } + + if obj.DomainOcid != nil { + result["domain_ocid"] = string(*obj.DomainOcid) + } + + if obj.Expired != nil { + result["expired"] = bool(*obj.Expired) + } + + if obj.ExpiresOn != nil { + result["expires_on"] = string(*obj.ExpiresOn) + } + + if obj.Id != nil { + result["id"] = string(*obj.Id) + } + + if obj.IdcsCreatedBy != nil { + result["idcs_created_by"] = []interface{}{idcsCreatedByToMap(obj.IdcsCreatedBy)} + } + + if obj.IdcsLastModifiedBy != nil { + result["idcs_last_modified_by"] = []interface{}{idcsLastModifiedByToMap(obj.IdcsLastModifiedBy)} + } + + if obj.IdcsLastUpgradedInRelease != nil { + result["idcs_last_upgraded_in_release"] = string(*obj.IdcsLastUpgradedInRelease) + } + + result["idcs_prevented_operations"] = obj.IdcsPreventedOperations + result["idcs_prevented_operations"] = obj.IdcsPreventedOperations + + if obj.LastSetDate != nil { + result["last_set_date"] = string(*obj.LastSetDate) + } + + if obj.Meta != nil { + result["meta"] = []interface{}{metaToMap(obj.Meta)} + } + + if obj.MixedDbPassword != nil { + result["mixed_db_password"] = string(*obj.MixedDbPassword) + } + + if obj.MixedSalt != nil { + result["mixed_salt"] = string(*obj.MixedSalt) + } + + if obj.Name != nil { + result["name"] = string(*obj.Name) + } + + if obj.Ocid != nil { + result["ocid"] = string(*obj.Ocid) + } + + if obj.Salt != nil { + result["salt"] = string(*obj.Salt) + } + + result["schemas"] = obj.Schemas + result["schemas"] = obj.Schemas + + result["status"] = string(obj.Status) + + tags := []interface{}{} + for _, item := range obj.Tags { + tags = append(tags, tagsToMap(item)) + } + result["tags"] = tags + + if obj.TenancyOcid != nil { + result["tenancy_ocid"] = string(*obj.TenancyOcid) + } + + if obj.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser != nil { + result["urnietfparamsscimschemasoracleidcsextensionself_change_user"] = []interface{}{ExtensionSelfChangeUserToMap(obj.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser)} + } + + if obj.User != nil { + result["user"] = []interface{}{UserDbCredentialsUserToMap(obj.User)} + } + + return result +} + +func (s *IdentityDomainsUserDbCredentialResourceCrud) mapToUserDbCredentialsUser(fieldKeyFormat string) (oci_identity_domains.UserDbCredentialsUser, error) { + result := oci_identity_domains.UserDbCredentialsUser{} + + if display, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "display")); ok { + tmp := display.(string) + result.Display = &tmp + } + + if name, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "name")); ok { + tmp := name.(string) + result.Name = &tmp + } + + if ocid, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ocid")); ok { + tmp := ocid.(string) + result.Ocid = &tmp + } + + if ref, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ref")); ok { + tmp := ref.(string) + result.Ref = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func UserDbCredentialsUserToMap(obj *oci_identity_domains.UserDbCredentialsUser) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Display != nil { + result["display"] = string(*obj.Display) + } + + if obj.Name != nil { + result["name"] = string(*obj.Name) + } + + if obj.Ocid != nil { + result["ocid"] = string(*obj.Ocid) + } + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func (s *IdentityDomainsUserDbCredentialResourceCrud) mapTotags(fieldKeyFormat string) (oci_identity_domains.Tags, error) { + result := oci_identity_domains.Tags{} + + if key, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "key")); ok { + tmp := key.(string) + result.Key = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} diff --git a/internal/service/identity_domains/identity_domains_user_db_credentials_data_source.go b/internal/service/identity_domains/identity_domains_user_db_credentials_data_source.go new file mode 100644 index 00000000000..145e6bba80e --- /dev/null +++ b/internal/service/identity_domains/identity_domains_user_db_credentials_data_source.go @@ -0,0 +1,227 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsUserDbCredentialsDataSource() *schema.Resource { + return &schema.Resource{ + Read: readIdentityDomainsUserDbCredentials, + Schema: map[string]*schema.Schema{ + "idcs_endpoint": { + Type: schema.TypeString, + Required: true, + }, + "compartment_id": { + Type: schema.TypeString, + Optional: true, + }, + "user_db_credential_count": { + Type: schema.TypeInt, + Optional: true, + }, + "user_db_credential_filter": { + Type: schema.TypeString, + Optional: true, + }, + "attribute_sets": { + Type: schema.TypeList, + Optional: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "attributes": { + Type: schema.TypeString, + Optional: true, + }, + "authorization": { + Type: schema.TypeString, + Optional: true, + }, + "resource_type_schema_version": { + Type: schema.TypeString, + Optional: true, + }, + "start_index": { + Type: schema.TypeInt, + Optional: true, + }, + "sort_order": { + Type: schema.TypeString, + Optional: true, + }, + "sort_by": { + Type: schema.TypeString, + Optional: true, + }, + // Computed + "user_db_credentials": { + Type: schema.TypeList, + Computed: true, + Elem: tfresource.GetDataSourceItemSchema(IdentityDomainsUserDbCredentialResource()), + }, + "items_per_page": { + Type: schema.TypeInt, + Computed: true, + }, + "schemas": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "total_results": { + Type: schema.TypeInt, + Computed: true, + }, + }, + } +} + +func readIdentityDomainsUserDbCredentials(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsUserDbCredentialsDataSourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + return tfresource.ReadResource(sync) +} + +type IdentityDomainsUserDbCredentialsDataSourceCrud struct { + D *schema.ResourceData + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.ListUserDbCredentialsResponse +} + +func (s *IdentityDomainsUserDbCredentialsDataSourceCrud) VoidState() { + s.D.SetId("") +} + +func (s *IdentityDomainsUserDbCredentialsDataSourceCrud) Get() error { + request := oci_identity_domains.ListUserDbCredentialsRequest{} + + if userDbCredentialCount, ok := s.D.GetOkExists("user_db_credential_count"); ok { + tmp := userDbCredentialCount.(int) + request.Count = &tmp + } + + if userDbCredentialFilter, ok := s.D.GetOkExists("user_db_credential_filter"); ok { + tmp := userDbCredentialFilter.(string) + tmp = tryMatchUserSubResFilter(tmp) + request.Filter = &tmp + } + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + if startIndex, ok := s.D.GetOkExists("start_index"); ok { + tmp := startIndex.(int) + request.StartIndex = &tmp + } + + if sortOrder, ok := s.D.GetOkExists("sort_order"); ok { + tmp := oci_identity_domains.ListUserDbCredentialsSortOrderEnum(sortOrder.(string)) + request.SortOrder = tmp + } + + if sortBy, ok := s.D.GetOkExists("sort_by"); ok { + tmp := sortBy.(string) + request.SortBy = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "identity_domains") + + response, err := s.Client.ListUserDbCredentials(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response + // IDCS pagination + startIndex := *response.StartIndex + for startIndex+*response.ItemsPerPage <= *response.TotalResults { + startIndex += *response.ItemsPerPage + request.StartIndex = &startIndex + listResponse, err := s.Client.ListUserDbCredentials(context.Background(), request) + if err != nil { + return err + } + + s.Res.Resources = append(s.Res.Resources, listResponse.Resources...) + } + + return nil +} + +func (s *IdentityDomainsUserDbCredentialsDataSourceCrud) SetData() error { + if s.Res == nil { + return nil + } + + s.D.SetId(tfresource.GenerateDataSourceHashID("IdentityDomainsUserDbCredentialsDataSource-", IdentityDomainsUserDbCredentialsDataSource(), s.D)) + + resources := []interface{}{} + for _, item := range s.Res.Resources { + resources = append(resources, UserDbCredentialToMap(item)) + } + s.D.Set("user_db_credentials", resources) + + if s.Res.ItemsPerPage != nil { + s.D.Set("items_per_page", *s.Res.ItemsPerPage) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + if s.Res.StartIndex != nil { + s.D.Set("start_index", *s.Res.StartIndex) + } + + if s.Res.TotalResults != nil { + s.D.Set("total_results", *s.Res.TotalResults) + } + + return nil +} diff --git a/internal/service/identity_domains/identity_domains_user_resource.go b/internal/service/identity_domains/identity_domains_user_resource.go new file mode 100644 index 00000000000..11b6d9b82b0 --- /dev/null +++ b/internal/service/identity_domains/identity_domains_user_resource.go @@ -0,0 +1,7159 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + "fmt" + "log" + "net/url" + "regexp" + "strings" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsUserResource() *schema.Resource { + return &schema.Resource{ + Importer: &schema.ResourceImporter{ + State: schema.ImportStatePassthrough, + }, + Timeouts: tfresource.DefaultTimeout, + Create: createIdentityDomainsUser, + Read: readIdentityDomainsUser, + Update: updateIdentityDomainsUser, + Delete: deleteIdentityDomainsUser, + Schema: map[string]*schema.Schema{ + // Required + "idcs_endpoint": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "name": { + Type: schema.TypeList, + Required: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "family_name": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + "formatted": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "given_name": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "honorific_prefix": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "honorific_suffix": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "middle_name": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + }, + }, + }, + "schemas": { + Type: schema.TypeList, + Required: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "user_name": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + "active": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "addresses": { + Type: schema.TypeList, + Optional: true, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "type": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + "country": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "formatted": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "locality": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "postal_code": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "primary": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "region": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "street_address": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + }, + }, + }, + "attribute_sets": { + Type: schema.TypeList, + Optional: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "attributes": { + Type: schema.TypeString, + Optional: true, + }, + "authorization": { + Type: schema.TypeString, + Optional: true, + }, + "description": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "display_name": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "emails": { + Type: schema.TypeList, + Optional: true, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "type": { + Type: schema.TypeString, + Required: true, + }, + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + "primary": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "secondary": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "verified": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + + // Computed + "pending_verification_data": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "entitlements": { + Type: schema.TypeList, + Optional: true, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "type": { + Type: schema.TypeString, + Required: true, + }, + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "primary": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + + // Computed + }, + }, + }, + "external_id": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "ims": { + Type: schema.TypeList, + Optional: true, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "type": { + Type: schema.TypeString, + Required: true, + }, + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "primary": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + + // Computed + }, + }, + }, + "locale": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "nick_name": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "password": { + Type: schema.TypeString, + Optional: true, + Computed: true, + Sensitive: true, + }, + "phone_numbers": { + Type: schema.TypeList, + Optional: true, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "type": { + Type: schema.TypeString, + Required: true, + }, + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + "primary": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + + // Computed + "display": { + Type: schema.TypeString, + Computed: true, + }, + "verified": { + Type: schema.TypeBool, + Computed: true, + }, + }, + }, + }, + "photos": { + Type: schema.TypeList, + Optional: true, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "type": { + Type: schema.TypeString, + Required: true, + }, + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "primary": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + + // Computed + }, + }, + }, + "preferred_language": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "profile_url": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "resource_type_schema_version": { + Type: schema.TypeString, + Optional: true, + }, + "roles": { + Type: schema.TypeList, + Optional: true, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "type": { + Type: schema.TypeString, + Required: true, + }, + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "primary": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + + // Computed + }, + }, + }, + "tags": { + Type: schema.TypeList, + Optional: true, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "key": { + Type: schema.TypeString, + Required: true, + }, + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + + // Computed + }, + }, + }, + "timezone": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "title": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "urnietfparamsscimschemasextensionenterprise20user": { + Type: schema.TypeList, + Optional: true, + Computed: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "cost_center": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "department": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "division": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "employee_number": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "manager": { + Type: schema.TypeList, + Optional: true, + Computed: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "value": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + "display_name": { + Type: schema.TypeString, + Computed: true, + }, + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "organization": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + }, + }, + }, + "urnietfparamsscimschemasoracleidcsextension_oci_tags": { + Type: schema.TypeList, + Optional: true, + Computed: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "defined_tags": { + Type: schema.TypeList, + Optional: true, + Computed: true, + DiffSuppressFunc: tfresource.DefinedTagsDiffSuppressFunction, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "key": { + Type: schema.TypeString, + Required: true, + }, + "namespace": { + Type: schema.TypeString, + Required: true, + }, + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + + // Computed + }, + }, + }, + "freeform_tags": { + Type: schema.TypeList, + Optional: true, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "key": { + Type: schema.TypeString, + Required: true, + }, + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + + // Computed + }, + }, + }, + + // Computed + "tag_slug": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "urnietfparamsscimschemasoracleidcsextensionadaptive_user": { + Type: schema.TypeList, + Optional: true, + Computed: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "risk_level": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "risk_scores": { + Type: schema.TypeList, + Optional: true, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "last_update_timestamp": { + Type: schema.TypeString, + Required: true, + }, + "risk_level": { + Type: schema.TypeString, + Required: true, + }, + "score": { + Type: schema.TypeInt, + Required: true, + }, + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + "source": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "status": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + + // Computed + }, + }, + }, + "urnietfparamsscimschemasoracleidcsextensioncapabilities_user": { + Type: schema.TypeList, + Optional: true, + Computed: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "can_use_api_keys": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "can_use_auth_tokens": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "can_use_console_password": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "can_use_customer_secret_keys": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "can_use_db_credentials": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "can_use_oauth2client_credentials": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "can_use_smtp_credentials": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + + // Computed + }, + }, + }, + "urnietfparamsscimschemasoracleidcsextensiondb_credentials_user": { + Type: schema.TypeList, + Optional: true, + Computed: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "db_user_name": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + "db_login_attempts": { + Type: schema.TypeInt, + Computed: true, + }, + }, + }, + }, + "urnietfparamsscimschemasoracleidcsextensionkerberos_user_user": { + Type: schema.TypeList, + Optional: true, + Computed: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "realm_users": { + Type: schema.TypeList, + Optional: true, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + "principal_name": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "realm_name": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + + // Computed + }, + }, + }, + "urnietfparamsscimschemasoracleidcsextensionmfa_user": { + Type: schema.TypeList, + Optional: true, + Computed: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "bypass_codes": { + Type: schema.TypeList, + Optional: true, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "devices": { + Type: schema.TypeList, + Optional: true, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + "authentication_method": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "factor_status": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "factor_type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "last_sync_time": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "status": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "third_party_vendor_name": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "login_attempts": { + Type: schema.TypeInt, + Optional: true, + Computed: true, + }, + "mfa_enabled_on": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "mfa_ignored_apps": { + Type: schema.TypeList, + Optional: true, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "mfa_status": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "preferred_authentication_factor": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "preferred_authentication_method": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "preferred_device": { + Type: schema.TypeList, + Optional: true, + Computed: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "preferred_third_party_vendor": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "trusted_user_agents": { + Type: schema.TypeList, + Optional: true, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + + // Computed + }, + }, + }, + "urnietfparamsscimschemasoracleidcsextensionpasswordless_user": { + Type: schema.TypeList, + Optional: true, + Computed: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "factor_identifier": { + Type: schema.TypeList, + Optional: true, + Computed: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "factor_method": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "factor_type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + }, + }, + }, + "urnietfparamsscimschemasoracleidcsextensionposix_user": { + Type: schema.TypeList, + Optional: true, + Computed: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "gecos": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "gid_number": { + Type: schema.TypeInt, + Optional: true, + Computed: true, + }, + "home_directory": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "login_shell": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "uid_number": { + Type: schema.TypeInt, + Optional: true, + Computed: true, + }, + + // Computed + }, + }, + }, + "urnietfparamsscimschemasoracleidcsextensionsecurity_questions_user": { + Type: schema.TypeList, + Optional: true, + Computed: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "sec_questions": { + Type: schema.TypeList, + Optional: true, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "answer": { + Type: schema.TypeString, + Required: true, + }, + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + "hint_text": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + + // Computed + }, + }, + }, + "urnietfparamsscimschemasoracleidcsextensionself_change_user": { + Type: schema.TypeList, + Optional: true, + Computed: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "allow_self_change": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + + // Computed + }, + }, + }, + "urnietfparamsscimschemasoracleidcsextensionself_registration_user": { + Type: schema.TypeList, + Optional: true, + Computed: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "self_registration_profile": { + Type: schema.TypeList, + Required: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + + // Optional + "consent_granted": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "user_token": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + }, + }, + }, + "urnietfparamsscimschemasoracleidcsextensionsff_user": { + Type: schema.TypeList, + Optional: true, + Computed: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "sff_auth_keys": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + }, + }, + }, + "urnietfparamsscimschemasoracleidcsextensionsocial_account_user": { + Type: schema.TypeList, + Optional: true, + Computed: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "social_accounts": { + Type: schema.TypeList, + Optional: true, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + + // Computed + }, + }, + }, + "urnietfparamsscimschemasoracleidcsextensionterms_of_use_user": { + Type: schema.TypeList, + Optional: true, + Computed: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "terms_of_use_consents": { + Type: schema.TypeList, + Optional: true, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + + // Computed + }, + }, + }, + "urnietfparamsscimschemasoracleidcsextensionuser_state_user": { + Type: schema.TypeList, + Optional: true, + Computed: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "locked": { + Type: schema.TypeList, + Optional: true, + Computed: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "expired": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "lock_date": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "on": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "reason": { + Type: schema.TypeInt, + Optional: true, + Computed: true, + }, + + // Computed + }, + }, + }, + "max_concurrent_sessions": { + Type: schema.TypeInt, + Optional: true, + Computed: true, + }, + "recovery_locked": { + Type: schema.TypeList, + Optional: true, + Computed: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "lock_date": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "on": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + + // Computed + }, + }, + }, + + // Computed + "last_failed_login_date": { + Type: schema.TypeString, + Computed: true, + }, + "last_successful_login_date": { + Type: schema.TypeString, + Computed: true, + }, + "login_attempts": { + Type: schema.TypeInt, + Computed: true, + }, + "previous_successful_login_date": { + Type: schema.TypeString, + Computed: true, + }, + "recovery_attempts": { + Type: schema.TypeInt, + Computed: true, + }, + "recovery_enroll_attempts": { + Type: schema.TypeInt, + Computed: true, + }, + }, + }, + }, + "urnietfparamsscimschemasoracleidcsextensionuser_user": { + Type: schema.TypeList, + Optional: true, + Computed: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "user_provider": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "account_recovery_required": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "bypass_notification": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "creation_mechanism": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "delegated_authentication_target_app": { + Type: schema.TypeList, + Optional: true, + Computed: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "type": { + Type: schema.TypeString, + Required: true, + }, + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "do_not_show_getting_started": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "is_authentication_delegated": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "is_federated_user": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "is_group_membership_normalized": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "is_group_membership_synced_to_users_groups": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "notification_email_template_id": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "synced_from_app": { + Type: schema.TypeList, + Optional: true, + Computed: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "type": { + Type: schema.TypeString, + Required: true, + }, + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "user_flow_controlled_by_external_client": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + + // Computed + "accounts": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "active": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "app_id": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "name": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "value": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "app_roles": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + "admin_role": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "app_id": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "app_name": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "legacy_group_name": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "applicable_authentication_target_app": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "type": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "target_request_timeout": { + Type: schema.TypeInt, + Optional: true, + Computed: true, + }, + "value": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "grants": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "app_id": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "grant_mechanism": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "grantor_id": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "value": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "idcs_app_roles_limited_to_groups": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "idcs_app_role_id": { + Type: schema.TypeString, + Required: true, + }, + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "is_account_recovery_enrolled": { + Type: schema.TypeBool, + Computed: true, + }, + "status": { + Type: schema.TypeString, + Computed: true, + }, + "support_accounts": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "user_provider": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "user_id": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "value": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "user_token": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "value": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + }, + }, + }, + "user_type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "x509certificates": { + Type: schema.TypeList, + Optional: true, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "primary": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + }, + }, + }, + + // Computed + "compartment_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "delete_in_progress": { + Type: schema.TypeBool, + Computed: true, + }, + "domain_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "groups": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + "date_added": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "external_id": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "membership_ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "non_unique_display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "id": { + Type: schema.TypeString, + Computed: true, + }, + "idcs_created_by": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "idcs_last_modified_by": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "idcs_last_upgraded_in_release": { + Type: schema.TypeString, + Computed: true, + }, + "idcs_prevented_operations": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "meta": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "created": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "last_modified": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "location": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "resource_type": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "version": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + }, + }, + }, + "tenancy_ocid": { + Type: schema.TypeString, + Computed: true, + }, + "urnietfparamsscimschemasoracleidcsextensiondb_user_user": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "db_global_roles": { + Type: schema.TypeList, + Optional: true, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "domain_level_schema": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "instance_level_schema": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "is_db_user": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "password_verifiers": { + Type: schema.TypeList, + Optional: true, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "type": { + Type: schema.TypeString, + Required: true, + }, + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + + // Computed + }, + }, + }, + + // Computed + }, + }, + }, + "urnietfparamsscimschemasoracleidcsextensionpassword_state_user": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "applicable_password_policy": { + Type: schema.TypeList, + Optional: true, + Computed: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "value": { + Type: schema.TypeString, + Required: true, + }, + + // Optional + "display": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "priority": { + Type: schema.TypeInt, + Optional: true, + Computed: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "cant_change": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "cant_expire": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "expired": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + "last_failed_validation_date": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "last_successful_set_date": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "last_successful_validation_date": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "must_change": { + Type: schema.TypeBool, + Optional: true, + Computed: true, + }, + + // Computed + }, + }, + }, + "urnietfparamsscimschemasoracleidcsextensionuser_credentials_user": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "api_keys": { + Type: schema.TypeList, + Optional: true, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "key": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "value": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "auth_tokens": { + Type: schema.TypeList, + Optional: true, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "value": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "customer_secret_keys": { + Type: schema.TypeList, + Optional: true, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "value": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "db_credentials": { + Type: schema.TypeList, + Optional: true, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "value": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "o_auth2client_credentials": { + Type: schema.TypeList, + Optional: true, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "value": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "smtp_credentials": { + Type: schema.TypeList, + Optional: true, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + "ocid": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "value": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + + // Computed + "ref": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + + // Computed + }, + }, + }, + }, + } +} + +func createIdentityDomainsUser(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsUserResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + + return tfresource.CreateResource(d, sync) +} + +func readIdentityDomainsUser(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsUserResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpointForRead(d, "users") + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + + return tfresource.ReadResource(sync) +} + +func updateIdentityDomainsUser(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsUserResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + + return tfresource.UpdateResource(d, sync) +} + +func deleteIdentityDomainsUser(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsUserResourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + sync.DisableNotFoundRetries = true + + return tfresource.DeleteResource(d, sync) +} + +type IdentityDomainsUserResourceCrud struct { + tfresource.BaseCrud + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.User + DisableNotFoundRetries bool +} + +func (s *IdentityDomainsUserResourceCrud) ID() string { + return *s.Res.Id + //return GetUserCompositeId(s.D.Get("id").(string)) +} + +func (s *IdentityDomainsUserResourceCrud) Create() error { + request := oci_identity_domains.CreateUserRequest{} + + if active, ok := s.D.GetOkExists("active"); ok { + tmp := active.(bool) + request.Active = &tmp + } + + if addresses, ok := s.D.GetOkExists("addresses"); ok { + interfaces := addresses.([]interface{}) + tmp := make([]oci_identity_domains.Addresses, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "addresses", stateDataIndex) + converted, err := s.mapToaddresses(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("addresses") { + request.Addresses = tmp + } + } + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if description, ok := s.D.GetOkExists("description"); ok { + tmp := description.(string) + request.Description = &tmp + } + + if displayName, ok := s.D.GetOkExists("display_name"); ok { + tmp := displayName.(string) + request.DisplayName = &tmp + } + + if emails, ok := s.D.GetOkExists("emails"); ok { + interfaces := emails.([]interface{}) + tmp := make([]oci_identity_domains.UserEmails, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "emails", stateDataIndex) + converted, err := s.mapToUserEmails(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("emails") { + request.Emails = tmp + } + } + + if entitlements, ok := s.D.GetOkExists("entitlements"); ok { + interfaces := entitlements.([]interface{}) + tmp := make([]oci_identity_domains.UserEntitlements, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "entitlements", stateDataIndex) + converted, err := s.mapToUserEntitlements(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("entitlements") { + request.Entitlements = tmp + } + } + + if externalId, ok := s.D.GetOkExists("external_id"); ok { + tmp := externalId.(string) + request.ExternalId = &tmp + } + + if id, ok := s.D.GetOkExists("id"); ok { + tmp := id.(string) + request.Id = &tmp + } + + if ims, ok := s.D.GetOkExists("ims"); ok { + interfaces := ims.([]interface{}) + tmp := make([]oci_identity_domains.UserIms, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "ims", stateDataIndex) + converted, err := s.mapToUserIms(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("ims") { + request.Ims = tmp + } + } + + if locale, ok := s.D.GetOkExists("locale"); ok { + tmp := locale.(string) + request.Locale = &tmp + } + + if name, ok := s.D.GetOkExists("name"); ok { + if tmpList := name.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "name", 0) + tmp, err := s.mapToUserName(fieldKeyFormat) + if err != nil { + return err + } + request.Name = &tmp + } + } + + if nickName, ok := s.D.GetOkExists("nick_name"); ok { + tmp := nickName.(string) + request.NickName = &tmp + } + + if ocid, ok := s.D.GetOkExists("ocid"); ok { + tmp := ocid.(string) + request.Ocid = &tmp + } + + if password, ok := s.D.GetOkExists("password"); ok { + tmp := password.(string) + request.Password = &tmp + } + + if phoneNumbers, ok := s.D.GetOkExists("phone_numbers"); ok { + interfaces := phoneNumbers.([]interface{}) + tmp := make([]oci_identity_domains.UserPhoneNumbers, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "phone_numbers", stateDataIndex) + converted, err := s.mapToUserPhoneNumbers(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("phone_numbers") { + request.PhoneNumbers = tmp + } + } + + if photos, ok := s.D.GetOkExists("photos"); ok { + interfaces := photos.([]interface{}) + tmp := make([]oci_identity_domains.UserPhotos, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "photos", stateDataIndex) + converted, err := s.mapToUserPhotos(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("photos") { + request.Photos = tmp + } + } + + if preferredLanguage, ok := s.D.GetOkExists("preferred_language"); ok { + tmp := preferredLanguage.(string) + request.PreferredLanguage = &tmp + } + + if profileUrl, ok := s.D.GetOkExists("profile_url"); ok { + tmp := profileUrl.(string) + request.ProfileUrl = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + if roles, ok := s.D.GetOkExists("roles"); ok { + interfaces := roles.([]interface{}) + tmp := make([]oci_identity_domains.UserRoles, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "roles", stateDataIndex) + converted, err := s.mapToUserRoles(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("roles") { + request.Roles = tmp + } + } + + if schemas, ok := s.D.GetOkExists("schemas"); ok { + interfaces := schemas.([]interface{}) + tmp := make([]string, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = interfaces[i].(string) + } + } + if len(tmp) != 0 || s.D.HasChange("schemas") { + request.Schemas = tmp + } + } + + if tags, ok := s.D.GetOkExists("tags"); ok { + interfaces := tags.([]interface{}) + tmp := make([]oci_identity_domains.Tags, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "tags", stateDataIndex) + converted, err := s.mapTotags(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("tags") { + request.Tags = tmp + } + } + + if timezone, ok := s.D.GetOkExists("timezone"); ok { + tmp := timezone.(string) + request.Timezone = &tmp + } + + if title, ok := s.D.GetOkExists("title"); ok { + tmp := title.(string) + request.Title = &tmp + } + + if urnietfparamsscimschemasextensionenterprise20User, ok := s.D.GetOkExists("urnietfparamsscimschemasextensionenterprise20user"); ok { + if tmpList := urnietfparamsscimschemasextensionenterprise20User.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasextensionenterprise20user", 0) + tmp, err := s.mapToExtensionEnterprise20User(fieldKeyFormat) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasExtensionEnterprise2_0User = &tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensionOCITags, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextension_oci_tags"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensionOCITags.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextension_oci_tags", 0) + tmp, err := s.mapToExtensionOCITags(fieldKeyFormat) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasOracleIdcsExtensionOciTags = &tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensionadaptiveUser, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextensionadaptive_user"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensionadaptiveUser.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextensionadaptive_user", 0) + tmp, err := s.mapToExtensionAdaptiveUser(fieldKeyFormat) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasOracleIdcsExtensionAdaptiveUser = &tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensioncapabilitiesUser, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextensioncapabilities_user"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensioncapabilitiesUser.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextensioncapabilities_user", 0) + tmp, err := s.mapToExtensionCapabilitiesUser(fieldKeyFormat) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasOracleIdcsExtensionCapabilitiesUser = &tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensiondbCredentialsUser, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextensiondb_credentials_user"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensiondbCredentialsUser.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextensiondb_credentials_user", 0) + tmp, err := s.mapToExtensionDbCredentialsUser(fieldKeyFormat) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasOracleIdcsExtensionDbCredentialsUser = &tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensionkerberosUserUser, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextensionkerberos_user_user"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensionkerberosUserUser.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextensionkerberos_user_user", 0) + tmp, err := s.mapToExtensionKerberosUserUser(fieldKeyFormat) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasOracleIdcsExtensionKerberosUserUser = &tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensionmfaUser, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextensionmfa_user"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensionmfaUser.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextensionmfa_user", 0) + tmp, err := s.mapToExtensionMfaUser(fieldKeyFormat) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasOracleIdcsExtensionMfaUser = &tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensionpasswordlessUser, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextensionpasswordless_user"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensionpasswordlessUser.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextensionpasswordless_user", 0) + tmp, err := s.mapToExtensionPasswordlessUser(fieldKeyFormat) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasOracleIdcsExtensionPasswordlessUser = &tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensionposixUser, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextensionposix_user"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensionposixUser.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextensionposix_user", 0) + tmp, err := s.mapToExtensionPosixUser(fieldKeyFormat) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasOracleIdcsExtensionPosixUser = &tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensionsecurityQuestionsUser, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextensionsecurity_questions_user"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensionsecurityQuestionsUser.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextensionsecurity_questions_user", 0) + tmp, err := s.mapToExtensionSecurityQuestionsUser(fieldKeyFormat) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasOracleIdcsExtensionSecurityQuestionsUser = &tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensionselfChangeUser, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextensionself_change_user"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensionselfChangeUser.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextensionself_change_user", 0) + tmp, err := s.mapToExtensionSelfChangeUser(fieldKeyFormat) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser = &tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensionselfRegistrationUser, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextensionself_registration_user"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensionselfRegistrationUser.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextensionself_registration_user", 0) + tmp, err := s.mapToExtensionSelfRegistrationUser(fieldKeyFormat) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfRegistrationUser = &tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensionsffUser, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextensionsff_user"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensionsffUser.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextensionsff_user", 0) + tmp, err := s.mapToExtensionSffUser(fieldKeyFormat) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasOracleIdcsExtensionSffUser = &tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensionsocialAccountUser, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextensionsocial_account_user"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensionsocialAccountUser.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextensionsocial_account_user", 0) + tmp, err := s.mapToExtensionSocialAccountUser(fieldKeyFormat) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasOracleIdcsExtensionSocialAccountUser = &tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensiontermsOfUseUser, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextensionterms_of_use_user"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensiontermsOfUseUser.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextensionterms_of_use_user", 0) + tmp, err := s.mapToExtensionTermsOfUseUser(fieldKeyFormat) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasOracleIdcsExtensionTermsOfUseUser = &tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensionuserStateUser, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextensionuser_state_user"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensionuserStateUser.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextensionuser_state_user", 0) + tmp, err := s.mapToExtensionUserStateUser(fieldKeyFormat) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasOracleIdcsExtensionUserStateUser = &tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensionuserUser, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextensionuser_user"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensionuserUser.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextensionuser_user", 0) + tmp, err := s.mapToExtensionUserUser(fieldKeyFormat, false) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasOracleIdcsExtensionUserUser = &tmp + } + } + + if userName, ok := s.D.GetOkExists("user_name"); ok { + tmp := userName.(string) + request.UserName = &tmp + } + + if userType, ok := s.D.GetOkExists("user_type"); ok { + request.UserType = oci_identity_domains.UserUserTypeEnum(userType.(string)) + } + + if x509Certificates, ok := s.D.GetOkExists("x509certificates"); ok { + interfaces := x509Certificates.([]interface{}) + tmp := make([]oci_identity_domains.UserX509Certificates, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "x509certificates", stateDataIndex) + converted, err := s.mapToUserX509Certificates(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("x509certificates") { + request.X509Certificates = tmp + } + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + response, err := s.Client.CreateUser(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response.User + return nil +} + +func (s *IdentityDomainsUserResourceCrud) Get() error { + request := oci_identity_domains.GetUserRequest{} + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + tmp := s.D.Id() + request.UserId = &tmp + + userId, err := parseUserCompositeId(s.D.Id()) + if err == nil { + request.UserId = &userId + } else { + log.Printf("[WARN] Get() unable to parse current ID: %s", s.D.Id()) + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + response, err := s.Client.GetUser(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response.User + return nil +} + +func (s *IdentityDomainsUserResourceCrud) Update() error { + request := oci_identity_domains.PutUserRequest{} + + if active, ok := s.D.GetOkExists("active"); ok { + tmp := active.(bool) + request.Active = &tmp + } + + if addresses, ok := s.D.GetOkExists("addresses"); ok { + interfaces := addresses.([]interface{}) + tmp := make([]oci_identity_domains.Addresses, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "addresses", stateDataIndex) + converted, err := s.mapToaddresses(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("addresses") { + request.Addresses = tmp + } + } + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if description, ok := s.D.GetOkExists("description"); ok { + tmp := description.(string) + request.Description = &tmp + } + + if displayName, ok := s.D.GetOkExists("display_name"); ok { + tmp := displayName.(string) + request.DisplayName = &tmp + } + + if emails, ok := s.D.GetOkExists("emails"); ok { + interfaces := emails.([]interface{}) + tmp := make([]oci_identity_domains.UserEmails, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "emails", stateDataIndex) + converted, err := s.mapToUserEmails(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("emails") { + request.Emails = tmp + } + } + + if entitlements, ok := s.D.GetOkExists("entitlements"); ok { + interfaces := entitlements.([]interface{}) + tmp := make([]oci_identity_domains.UserEntitlements, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "entitlements", stateDataIndex) + converted, err := s.mapToUserEntitlements(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("entitlements") { + request.Entitlements = tmp + } + } + + if externalId, ok := s.D.GetOkExists("external_id"); ok { + tmp := externalId.(string) + request.ExternalId = &tmp + } + + tmp := s.D.Id() + request.Id = &tmp + + if ims, ok := s.D.GetOkExists("ims"); ok { + interfaces := ims.([]interface{}) + tmp := make([]oci_identity_domains.UserIms, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "ims", stateDataIndex) + converted, err := s.mapToUserIms(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("ims") { + request.Ims = tmp + } + } + + if locale, ok := s.D.GetOkExists("locale"); ok { + tmp := locale.(string) + request.Locale = &tmp + } + + if name, ok := s.D.GetOkExists("name"); ok { + if tmpList := name.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "name", 0) + tmp, err := s.mapToUserName(fieldKeyFormat) + if err != nil { + return err + } + request.Name = &tmp + } + } + + if nickName, ok := s.D.GetOkExists("nick_name"); ok { + tmp := nickName.(string) + request.NickName = &tmp + } + + if ocid, ok := s.D.GetOkExists("ocid"); ok { + tmp := ocid.(string) + request.Ocid = &tmp + } + + if password, ok := s.D.GetOkExists("password"); ok { + if s.D.HasChange("password") { + tmp := password.(string) + request.Password = &tmp + } + } + + if phoneNumbers, ok := s.D.GetOkExists("phone_numbers"); ok { + interfaces := phoneNumbers.([]interface{}) + tmp := make([]oci_identity_domains.UserPhoneNumbers, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "phone_numbers", stateDataIndex) + converted, err := s.mapToUserPhoneNumbers(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("phone_numbers") { + request.PhoneNumbers = tmp + } + } + + if photos, ok := s.D.GetOkExists("photos"); ok { + interfaces := photos.([]interface{}) + tmp := make([]oci_identity_domains.UserPhotos, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "photos", stateDataIndex) + converted, err := s.mapToUserPhotos(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("photos") { + request.Photos = tmp + } + } + + if preferredLanguage, ok := s.D.GetOkExists("preferred_language"); ok { + tmp := preferredLanguage.(string) + request.PreferredLanguage = &tmp + } + + if profileUrl, ok := s.D.GetOkExists("profile_url"); ok { + tmp := profileUrl.(string) + request.ProfileUrl = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + if roles, ok := s.D.GetOkExists("roles"); ok { + interfaces := roles.([]interface{}) + tmp := make([]oci_identity_domains.UserRoles, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "roles", stateDataIndex) + converted, err := s.mapToUserRoles(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("roles") { + request.Roles = tmp + } + } + + if schemas, ok := s.D.GetOkExists("schemas"); ok { + interfaces := schemas.([]interface{}) + tmp := make([]string, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = interfaces[i].(string) + } + } + if len(tmp) != 0 || s.D.HasChange("schemas") { + request.Schemas = tmp + } + } + + if tags, ok := s.D.GetOkExists("tags"); ok { + interfaces := tags.([]interface{}) + tmp := make([]oci_identity_domains.Tags, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "tags", stateDataIndex) + converted, err := s.mapTotags(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("tags") { + request.Tags = tmp + } + } + + if timezone, ok := s.D.GetOkExists("timezone"); ok { + tmp := timezone.(string) + request.Timezone = &tmp + } + + if title, ok := s.D.GetOkExists("title"); ok { + tmp := title.(string) + request.Title = &tmp + } + + if urnietfparamsscimschemasextensionenterprise20User, ok := s.D.GetOkExists("urnietfparamsscimschemasextensionenterprise20user"); ok { + if tmpList := urnietfparamsscimschemasextensionenterprise20User.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasextensionenterprise20user", 0) + tmp, err := s.mapToExtensionEnterprise20User(fieldKeyFormat) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasExtensionEnterprise2_0User = &tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensionOCITags, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextension_oci_tags"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensionOCITags.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextension_oci_tags", 0) + tmp, err := s.mapToExtensionOCITags(fieldKeyFormat) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasOracleIdcsExtensionOciTags = &tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensionadaptiveUser, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextensionadaptive_user"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensionadaptiveUser.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextensionadaptive_user", 0) + tmp, err := s.mapToExtensionAdaptiveUser(fieldKeyFormat) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasOracleIdcsExtensionAdaptiveUser = &tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensioncapabilitiesUser, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextensioncapabilities_user"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensioncapabilitiesUser.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextensioncapabilities_user", 0) + tmp, err := s.mapToExtensionCapabilitiesUser(fieldKeyFormat) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasOracleIdcsExtensionCapabilitiesUser = &tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensiondbCredentialsUser, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextensiondb_credentials_user"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensiondbCredentialsUser.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextensiondb_credentials_user", 0) + tmp, err := s.mapToExtensionDbCredentialsUser(fieldKeyFormat) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasOracleIdcsExtensionDbCredentialsUser = &tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensionkerberosUserUser, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextensionkerberos_user_user"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensionkerberosUserUser.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextensionkerberos_user_user", 0) + tmp, err := s.mapToExtensionKerberosUserUser(fieldKeyFormat) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasOracleIdcsExtensionKerberosUserUser = &tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensionmfaUser, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextensionmfa_user"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensionmfaUser.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextensionmfa_user", 0) + tmp, err := s.mapToExtensionMfaUser(fieldKeyFormat) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasOracleIdcsExtensionMfaUser = &tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensionpasswordlessUser, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextensionpasswordless_user"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensionpasswordlessUser.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextensionpasswordless_user", 0) + tmp, err := s.mapToExtensionPasswordlessUser(fieldKeyFormat) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasOracleIdcsExtensionPasswordlessUser = &tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensionposixUser, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextensionposix_user"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensionposixUser.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextensionposix_user", 0) + tmp, err := s.mapToExtensionPosixUser(fieldKeyFormat) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasOracleIdcsExtensionPosixUser = &tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensionsecurityQuestionsUser, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextensionsecurity_questions_user"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensionsecurityQuestionsUser.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextensionsecurity_questions_user", 0) + tmp, err := s.mapToExtensionSecurityQuestionsUser(fieldKeyFormat) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasOracleIdcsExtensionSecurityQuestionsUser = &tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensionselfChangeUser, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextensionself_change_user"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensionselfChangeUser.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextensionself_change_user", 0) + tmp, err := s.mapToExtensionSelfChangeUser(fieldKeyFormat) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser = &tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensionselfRegistrationUser, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextensionself_registration_user"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensionselfRegistrationUser.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextensionself_registration_user", 0) + tmp, err := s.mapToExtensionSelfRegistrationUser(fieldKeyFormat) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfRegistrationUser = &tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensionsffUser, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextensionsff_user"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensionsffUser.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextensionsff_user", 0) + tmp, err := s.mapToExtensionSffUser(fieldKeyFormat) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasOracleIdcsExtensionSffUser = &tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensionsocialAccountUser, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextensionsocial_account_user"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensionsocialAccountUser.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextensionsocial_account_user", 0) + tmp, err := s.mapToExtensionSocialAccountUser(fieldKeyFormat) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasOracleIdcsExtensionSocialAccountUser = &tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensiontermsOfUseUser, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextensionterms_of_use_user"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensiontermsOfUseUser.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextensionterms_of_use_user", 0) + tmp, err := s.mapToExtensionTermsOfUseUser(fieldKeyFormat) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasOracleIdcsExtensionTermsOfUseUser = &tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensionuserStateUser, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextensionuser_state_user"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensionuserStateUser.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextensionuser_state_user", 0) + tmp, err := s.mapToExtensionUserStateUser(fieldKeyFormat) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasOracleIdcsExtensionUserStateUser = &tmp + } + } + + if urnietfparamsscimschemasoracleidcsextensionuserUser, ok := s.D.GetOkExists("urnietfparamsscimschemasoracleidcsextensionuser_user"); ok { + if tmpList := urnietfparamsscimschemasoracleidcsextensionuserUser.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "urnietfparamsscimschemasoracleidcsextensionuser_user", 0) + tmp, err := s.mapToExtensionUserUser(fieldKeyFormat, true) + if err != nil { + return err + } + request.UrnIetfParamsScimSchemasOracleIdcsExtensionUserUser = &tmp + } + } + + tmp = s.D.Id() + request.UserId = &tmp + + if userName, ok := s.D.GetOkExists("user_name"); ok { + tmp := userName.(string) + request.UserName = &tmp + } + + if userType, ok := s.D.GetOkExists("user_type"); ok { + request.UserType = oci_identity_domains.UserUserTypeEnum(userType.(string)) + } + + if x509Certificates, ok := s.D.GetOkExists("x509certificates"); ok { + interfaces := x509Certificates.([]interface{}) + tmp := make([]oci_identity_domains.UserX509Certificates, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "x509certificates", stateDataIndex) + converted, err := s.mapToUserX509Certificates(fieldKeyFormat) + if err != nil { + return err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange("x509certificates") { + request.X509Certificates = tmp + } + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + response, err := s.Client.PutUser(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response.User + return nil +} + +func (s *IdentityDomainsUserResourceCrud) Delete() error { + request := oci_identity_domains.DeleteUserRequest{} + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if forceDelete, ok := s.D.GetOkExists("force_delete"); ok { + tmp := forceDelete.(bool) + request.ForceDelete = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + tmp := s.D.Id() + request.UserId = &tmp + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "identity_domains") + + _, err := s.Client.DeleteUser(context.Background(), request) + return err +} + +func (s *IdentityDomainsUserResourceCrud) SetData() error { + + userId, err := parseUserCompositeId(s.D.Id()) + if err == nil { + s.D.SetId(userId) + } else { + log.Printf("[WARN] SetData() unable to parse current ID: %s", s.D.Id()) + } + + if s.Res.Active != nil { + s.D.Set("active", *s.Res.Active) + } + + addresses := []interface{}{} + for _, item := range s.Res.Addresses { + addresses = append(addresses, addressesToMap(item)) + } + s.D.Set("addresses", addresses) + + if s.Res.CompartmentOcid != nil { + s.D.Set("compartment_ocid", *s.Res.CompartmentOcid) + } + + if s.Res.DeleteInProgress != nil { + s.D.Set("delete_in_progress", *s.Res.DeleteInProgress) + } + + if s.Res.Description != nil { + s.D.Set("description", *s.Res.Description) + } + + if s.Res.DisplayName != nil { + s.D.Set("display_name", *s.Res.DisplayName) + } + + if s.Res.DomainOcid != nil { + s.D.Set("domain_ocid", *s.Res.DomainOcid) + } + + emails := []interface{}{} + for _, item := range s.Res.Emails { + emails = append(emails, UserEmailsToMap(item)) + } + s.D.Set("emails", emails) + + entitlements := []interface{}{} + for _, item := range s.Res.Entitlements { + entitlements = append(entitlements, UserEntitlementsToMap(item)) + } + s.D.Set("entitlements", entitlements) + + if s.Res.ExternalId != nil { + s.D.Set("external_id", *s.Res.ExternalId) + } + + groups := []interface{}{} + for _, item := range s.Res.Groups { + groups = append(groups, UserGroupsToMap(item)) + } + s.D.Set("groups", groups) + + if s.Res.IdcsCreatedBy != nil { + s.D.Set("idcs_created_by", []interface{}{idcsCreatedByToMap(s.Res.IdcsCreatedBy)}) + } else { + s.D.Set("idcs_created_by", nil) + } + + if s.Res.IdcsLastModifiedBy != nil { + s.D.Set("idcs_last_modified_by", []interface{}{idcsLastModifiedByToMap(s.Res.IdcsLastModifiedBy)}) + } else { + s.D.Set("idcs_last_modified_by", nil) + } + + if s.Res.IdcsLastUpgradedInRelease != nil { + s.D.Set("idcs_last_upgraded_in_release", *s.Res.IdcsLastUpgradedInRelease) + } + + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + s.D.Set("idcs_prevented_operations", s.Res.IdcsPreventedOperations) + + ims := []interface{}{} + for _, item := range s.Res.Ims { + ims = append(ims, UserImsToMap(item)) + } + s.D.Set("ims", ims) + + if s.Res.Locale != nil { + s.D.Set("locale", *s.Res.Locale) + } + + if s.Res.Meta != nil { + s.D.Set("meta", []interface{}{metaToMap(s.Res.Meta)}) + } else { + s.D.Set("meta", nil) + } + + if s.Res.Name != nil { + s.D.Set("name", []interface{}{UserNameToMap(s.Res.Name)}) + } else { + s.D.Set("name", nil) + } + + if s.Res.NickName != nil { + s.D.Set("nick_name", *s.Res.NickName) + } + + if s.Res.Ocid != nil { + s.D.Set("ocid", *s.Res.Ocid) + } + + if s.Res.Password != nil { + s.D.Set("password", *s.Res.Password) + } + + phoneNumbers := []interface{}{} + for _, item := range s.Res.PhoneNumbers { + phoneNumbers = append(phoneNumbers, UserPhoneNumbersToMap(item)) + } + s.D.Set("phone_numbers", phoneNumbers) + + photos := []interface{}{} + for _, item := range s.Res.Photos { + photos = append(photos, UserPhotosToMap(item)) + } + s.D.Set("photos", photos) + + if s.Res.PreferredLanguage != nil { + s.D.Set("preferred_language", *s.Res.PreferredLanguage) + } + + if s.Res.ProfileUrl != nil { + s.D.Set("profile_url", *s.Res.ProfileUrl) + } + + roles := []interface{}{} + for _, item := range s.Res.Roles { + roles = append(roles, UserRolesToMap(item)) + } + s.D.Set("roles", roles) + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + tags := []interface{}{} + for _, item := range s.Res.Tags { + tags = append(tags, tagsToMap(item)) + } + s.D.Set("tags", tags) + + if s.Res.TenancyOcid != nil { + s.D.Set("tenancy_ocid", *s.Res.TenancyOcid) + } + + if s.Res.Timezone != nil { + s.D.Set("timezone", *s.Res.Timezone) + } + + if s.Res.Title != nil { + s.D.Set("title", *s.Res.Title) + } + + if s.Res.UrnIetfParamsScimSchemasExtensionEnterprise2_0User != nil { + s.D.Set("urnietfparamsscimschemasextensionenterprise20user", []interface{}{ExtensionEnterprise20UserToMap(s.Res.UrnIetfParamsScimSchemasExtensionEnterprise2_0User)}) + } else { + s.D.Set("urnietfparamsscimschemasextensionenterprise20user", nil) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionOciTags != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextension_oci_tags", []interface{}{ExtensionOCITagsToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionOciTags)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextension_oci_tags", nil) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionAdaptiveUser != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionadaptive_user", []interface{}{ExtensionAdaptiveUserToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionAdaptiveUser)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionadaptive_user", nil) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionCapabilitiesUser != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensioncapabilities_user", []interface{}{ExtensionCapabilitiesUserToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionCapabilitiesUser)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensioncapabilities_user", nil) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionDbCredentialsUser != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensiondb_credentials_user", []interface{}{ExtensionDbCredentialsUserToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionDbCredentialsUser)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensiondb_credentials_user", nil) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionDbUserUser != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensiondb_user_user", []interface{}{ExtensionDbUserUserToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionDbUserUser)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensiondb_user_user", nil) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionKerberosUserUser != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionkerberos_user_user", []interface{}{ExtensionKerberosUserUserToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionKerberosUserUser)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionkerberos_user_user", nil) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionMfaUser != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionmfa_user", []interface{}{ExtensionMfaUserToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionMfaUser)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionmfa_user", nil) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionPasswordStateUser != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionpassword_state_user", []interface{}{ExtensionPasswordStateUserToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionPasswordStateUser)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionpassword_state_user", nil) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionPasswordlessUser != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionpasswordless_user", []interface{}{ExtensionPasswordlessUserToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionPasswordlessUser)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionpasswordless_user", nil) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionPosixUser != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionposix_user", []interface{}{ExtensionPosixUserToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionPosixUser)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionposix_user", nil) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionSecurityQuestionsUser != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionsecurity_questions_user", []interface{}{ExtensionSecurityQuestionsUserToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionSecurityQuestionsUser)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionsecurity_questions_user", nil) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionself_change_user", []interface{}{ExtensionSelfChangeUserToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionself_change_user", nil) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfRegistrationUser != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionself_registration_user", []interface{}{ExtensionSelfRegistrationUserToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfRegistrationUser)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionself_registration_user", nil) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionSffUser != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionsff_user", []interface{}{ExtensionSffUserToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionSffUser)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionsff_user", nil) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionSocialAccountUser != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionsocial_account_user", []interface{}{ExtensionSocialAccountUserToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionSocialAccountUser)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionsocial_account_user", nil) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionTermsOfUseUser != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionterms_of_use_user", []interface{}{ExtensionTermsOfUseUserToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionTermsOfUseUser)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionterms_of_use_user", nil) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionUserCredentialsUser != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionuser_credentials_user", []interface{}{ExtensionUserCredentialsUserToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionUserCredentialsUser)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionuser_credentials_user", nil) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionUserStateUser != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionuser_state_user", []interface{}{ExtensionUserStateUserToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionUserStateUser)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionuser_state_user", nil) + } + + if s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionUserUser != nil { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionuser_user", []interface{}{ExtensionUserUserToMap(s.Res.UrnIetfParamsScimSchemasOracleIdcsExtensionUserUser)}) + } else { + s.D.Set("urnietfparamsscimschemasoracleidcsextensionuser_user", nil) + } + + if s.Res.UserName != nil { + s.D.Set("user_name", *s.Res.UserName) + } + + s.D.Set("user_type", s.Res.UserType) + + x509Certificates := []interface{}{} + for _, item := range s.Res.X509Certificates { + x509Certificates = append(x509Certificates, UserX509CertificatesToMap(item)) + } + s.D.Set("x509certificates", x509Certificates) + + return nil +} + +func GetUserCompositeId(idcsEndpoint string, userId string) string { + //id = url.PathEscape(id) + //idcsEndpoint = url.PathEscape(idcsEndpoint) + userId = url.PathEscape(userId) + compositeId := "idcsEndpoint/" + idcsEndpoint + "/users/" + userId + return compositeId +} + +func parseUserCompositeId(compositeId string) (userId string, err error) { + parts := strings.Split(compositeId, "/") + match, _ := regexp.MatchString("idcsEndpoint/.*/users/.*", compositeId) + if !match || len(parts) != 4 { + err = fmt.Errorf("illegal compositeId %s encountered", compositeId) + return + } + //idcsEndpoint, _ = url.PathUnescape(parts[1]) + userId, _ = url.PathUnescape(parts[3]) + + return +} + +func (s *IdentityDomainsUserResourceCrud) mapToExtensionAdaptiveUser(fieldKeyFormat string) (oci_identity_domains.ExtensionAdaptiveUser, error) { + result := oci_identity_domains.ExtensionAdaptiveUser{} + + if riskLevel, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "risk_level")); ok { + result.RiskLevel = oci_identity_domains.ExtensionAdaptiveUserRiskLevelEnum(riskLevel.(string)) + } + + if riskScores, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "risk_scores")); ok { + interfaces := riskScores.([]interface{}) + tmp := make([]oci_identity_domains.UserExtRiskScores, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormatNextLevel := fmt.Sprintf("%s.%d.%%s", fmt.Sprintf(fieldKeyFormat, "risk_scores"), stateDataIndex) + converted, err := s.mapToUserExtRiskScores(fieldKeyFormatNextLevel) + if err != nil { + return result, err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange(fmt.Sprintf(fieldKeyFormat, "risk_scores")) { + result.RiskScores = tmp + } + } + + return result, nil +} + +func ExtensionAdaptiveUserToMap(obj *oci_identity_domains.ExtensionAdaptiveUser) map[string]interface{} { + result := map[string]interface{}{} + + result["risk_level"] = string(obj.RiskLevel) + + riskScores := []interface{}{} + for _, item := range obj.RiskScores { + riskScores = append(riskScores, UserExtRiskScoresToMap(item)) + } + result["risk_scores"] = riskScores + + return result +} + +func (s *IdentityDomainsUserResourceCrud) mapToExtensionCapabilitiesUser(fieldKeyFormat string) (oci_identity_domains.ExtensionCapabilitiesUser, error) { + result := oci_identity_domains.ExtensionCapabilitiesUser{} + + if canUseApiKeys, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "can_use_api_keys")); ok { + tmp := canUseApiKeys.(bool) + result.CanUseApiKeys = &tmp + } + + if canUseAuthTokens, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "can_use_auth_tokens")); ok { + tmp := canUseAuthTokens.(bool) + result.CanUseAuthTokens = &tmp + } + + if canUseConsolePassword, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "can_use_console_password")); ok { + tmp := canUseConsolePassword.(bool) + result.CanUseConsolePassword = &tmp + } + + if canUseCustomerSecretKeys, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "can_use_customer_secret_keys")); ok { + tmp := canUseCustomerSecretKeys.(bool) + result.CanUseCustomerSecretKeys = &tmp + } + + if canUseDbCredentials, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "can_use_db_credentials")); ok { + tmp := canUseDbCredentials.(bool) + result.CanUseDbCredentials = &tmp + } + + if canUseOAuth2ClientCredentials, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "can_use_oauth2client_credentials")); ok { + tmp := canUseOAuth2ClientCredentials.(bool) + result.CanUseOAuth2ClientCredentials = &tmp + } + + if canUseSmtpCredentials, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "can_use_smtp_credentials")); ok { + tmp := canUseSmtpCredentials.(bool) + result.CanUseSmtpCredentials = &tmp + } + + return result, nil +} + +func ExtensionCapabilitiesUserToMap(obj *oci_identity_domains.ExtensionCapabilitiesUser) map[string]interface{} { + result := map[string]interface{}{} + + if obj.CanUseApiKeys != nil { + result["can_use_api_keys"] = bool(*obj.CanUseApiKeys) + } + + if obj.CanUseAuthTokens != nil { + result["can_use_auth_tokens"] = bool(*obj.CanUseAuthTokens) + } + + if obj.CanUseConsolePassword != nil { + result["can_use_console_password"] = bool(*obj.CanUseConsolePassword) + } + + if obj.CanUseCustomerSecretKeys != nil { + result["can_use_customer_secret_keys"] = bool(*obj.CanUseCustomerSecretKeys) + } + + if obj.CanUseDbCredentials != nil { + result["can_use_db_credentials"] = bool(*obj.CanUseDbCredentials) + } + + if obj.CanUseOAuth2ClientCredentials != nil { + result["can_use_oauth2client_credentials"] = bool(*obj.CanUseOAuth2ClientCredentials) + } + + if obj.CanUseSmtpCredentials != nil { + result["can_use_smtp_credentials"] = bool(*obj.CanUseSmtpCredentials) + } + + return result +} + +func (s *IdentityDomainsUserResourceCrud) mapToExtensionDbCredentialsUser(fieldKeyFormat string) (oci_identity_domains.ExtensionDbCredentialsUser, error) { + result := oci_identity_domains.ExtensionDbCredentialsUser{} + + if dbLoginAttempts, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "db_login_attempts")); ok { + tmp := dbLoginAttempts.(int) + result.DbLoginAttempts = &tmp + } + + if dbUserName, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "db_user_name")); ok { + tmp := dbUserName.(string) + result.DbUserName = &tmp + } + + return result, nil +} + +func ExtensionDbCredentialsUserToMap(obj *oci_identity_domains.ExtensionDbCredentialsUser) map[string]interface{} { + result := map[string]interface{}{} + + if obj.DbLoginAttempts != nil { + result["db_login_attempts"] = int(*obj.DbLoginAttempts) + } + + if obj.DbUserName != nil { + result["db_user_name"] = string(*obj.DbUserName) + } + + return result +} + +func ExtensionDbUserUserToMap(obj *oci_identity_domains.ExtensionDbUserUser) map[string]interface{} { + result := map[string]interface{}{} + + result["db_global_roles"] = obj.DbGlobalRoles + result["db_global_roles"] = obj.DbGlobalRoles + + if obj.DomainLevelSchema != nil { + result["domain_level_schema"] = string(*obj.DomainLevelSchema) + } + + if obj.InstanceLevelSchema != nil { + result["instance_level_schema"] = string(*obj.InstanceLevelSchema) + } + + if obj.IsDbUser != nil { + result["is_db_user"] = bool(*obj.IsDbUser) + } + + passwordVerifiers := []interface{}{} + for _, item := range obj.PasswordVerifiers { + passwordVerifiers = append(passwordVerifiers, UserExtPasswordVerifiersToMap(item)) + } + result["password_verifiers"] = passwordVerifiers + + return result +} + +func (s *IdentityDomainsUserResourceCrud) mapToExtensionEnterprise20User(fieldKeyFormat string) (oci_identity_domains.ExtensionEnterprise20User, error) { + result := oci_identity_domains.ExtensionEnterprise20User{} + + if costCenter, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "cost_center")); ok { + tmp := costCenter.(string) + result.CostCenter = &tmp + } + + if department, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "department")); ok { + tmp := department.(string) + result.Department = &tmp + } + + if division, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "division")); ok { + tmp := division.(string) + result.Division = &tmp + } + + if employeeNumber, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "employee_number")); ok { + tmp := employeeNumber.(string) + result.EmployeeNumber = &tmp + } + + if manager, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "manager")); ok { + if tmpList := manager.([]interface{}); len(tmpList) > 0 { + fieldKeyFormatNextLevel := fmt.Sprintf("%s.%d.%%s", fmt.Sprintf(fieldKeyFormat, "manager"), 0) + tmp, err := s.mapToUserExtManager(fieldKeyFormatNextLevel) + if err != nil { + return result, fmt.Errorf("unable to convert manager, encountered error: %v", err) + } + result.Manager = &tmp + } + } + + if organization, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "organization")); ok { + tmp := organization.(string) + result.Organization = &tmp + } + + return result, nil +} + +func ExtensionEnterprise20UserToMap(obj *oci_identity_domains.ExtensionEnterprise20User) map[string]interface{} { + result := map[string]interface{}{} + + if obj.CostCenter != nil { + result["cost_center"] = string(*obj.CostCenter) + } + + if obj.Department != nil { + result["department"] = string(*obj.Department) + } + + if obj.Division != nil { + result["division"] = string(*obj.Division) + } + + if obj.EmployeeNumber != nil { + result["employee_number"] = string(*obj.EmployeeNumber) + } + + if obj.Manager != nil { + result["manager"] = []interface{}{UserExtManagerToMap(obj.Manager)} + } + + if obj.Organization != nil { + result["organization"] = string(*obj.Organization) + } + + return result +} + +func (s *IdentityDomainsUserResourceCrud) mapToExtensionKerberosUserUser(fieldKeyFormat string) (oci_identity_domains.ExtensionKerberosUserUser, error) { + result := oci_identity_domains.ExtensionKerberosUserUser{} + + if realmUsers, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "realm_users")); ok { + interfaces := realmUsers.([]interface{}) + tmp := make([]oci_identity_domains.UserExtRealmUsers, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormatNextLevel := fmt.Sprintf("%s.%d.%%s", fmt.Sprintf(fieldKeyFormat, "realm_users"), stateDataIndex) + converted, err := s.mapToUserExtRealmUsers(fieldKeyFormatNextLevel) + if err != nil { + return result, err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange(fmt.Sprintf(fieldKeyFormat, "realm_users")) { + result.RealmUsers = tmp + } + } + + return result, nil +} + +func ExtensionKerberosUserUserToMap(obj *oci_identity_domains.ExtensionKerberosUserUser) map[string]interface{} { + result := map[string]interface{}{} + + realmUsers := []interface{}{} + for _, item := range obj.RealmUsers { + realmUsers = append(realmUsers, UserExtRealmUsersToMap(item)) + } + result["realm_users"] = realmUsers + + return result +} + +func (s *IdentityDomainsUserResourceCrud) mapToExtensionMfaUser(fieldKeyFormat string) (oci_identity_domains.ExtensionMfaUser, error) { + result := oci_identity_domains.ExtensionMfaUser{} + + if bypassCodes, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "bypass_codes")); ok { + interfaces := bypassCodes.([]interface{}) + tmp := make([]oci_identity_domains.UserExtBypassCodes, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormatNextLevel := fmt.Sprintf("%s.%d.%%s", fmt.Sprintf(fieldKeyFormat, "bypass_codes"), stateDataIndex) + converted, err := s.mapToUserExtBypassCodes(fieldKeyFormatNextLevel) + if err != nil { + return result, err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange(fmt.Sprintf(fieldKeyFormat, "bypass_codes")) { + result.BypassCodes = tmp + } + } + + if devices, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "devices")); ok { + interfaces := devices.([]interface{}) + tmp := make([]oci_identity_domains.UserExtDevices, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormatNextLevel := fmt.Sprintf("%s.%d.%%s", fmt.Sprintf(fieldKeyFormat, "devices"), stateDataIndex) + converted, err := s.mapToUserExtDevices(fieldKeyFormatNextLevel) + if err != nil { + return result, err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange(fmt.Sprintf(fieldKeyFormat, "devices")) { + result.Devices = tmp + } + } + + if loginAttempts, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "login_attempts")); ok { + tmp := loginAttempts.(int) + result.LoginAttempts = &tmp + } + + if mfaEnabledOn, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "mfa_enabled_on")); ok { + tmp := mfaEnabledOn.(string) + result.MfaEnabledOn = &tmp + } + + if mfaIgnoredApps, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "mfa_ignored_apps")); ok { + interfaces := mfaIgnoredApps.([]interface{}) + tmp := make([]string, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = interfaces[i].(string) + } + } + if len(tmp) != 0 || s.D.HasChange(fmt.Sprintf(fieldKeyFormat, "mfa_ignored_apps")) { + result.MfaIgnoredApps = tmp + } + } + + if mfaStatus, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "mfa_status")); ok { + result.MfaStatus = oci_identity_domains.ExtensionMfaUserMfaStatusEnum(mfaStatus.(string)) + } + + if preferredAuthenticationFactor, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "preferred_authentication_factor")); ok { + result.PreferredAuthenticationFactor = oci_identity_domains.ExtensionMfaUserPreferredAuthenticationFactorEnum(preferredAuthenticationFactor.(string)) + } + + if preferredAuthenticationMethod, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "preferred_authentication_method")); ok { + tmp := preferredAuthenticationMethod.(string) + result.PreferredAuthenticationMethod = &tmp + } + + if preferredDevice, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "preferred_device")); ok { + if tmpList := preferredDevice.([]interface{}); len(tmpList) > 0 { + fieldKeyFormatNextLevel := fmt.Sprintf("%s.%d.%%s", fmt.Sprintf(fieldKeyFormat, "preferred_device"), 0) + tmp, err := s.mapToUserExtPreferredDevice(fieldKeyFormatNextLevel) + if err != nil { + return result, fmt.Errorf("unable to convert preferred_device, encountered error: %v", err) + } + result.PreferredDevice = &tmp + } + } + + if preferredThirdPartyVendor, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "preferred_third_party_vendor")); ok { + tmp := preferredThirdPartyVendor.(string) + result.PreferredThirdPartyVendor = &tmp + } + + if trustedUserAgents, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "trusted_user_agents")); ok { + interfaces := trustedUserAgents.([]interface{}) + tmp := make([]oci_identity_domains.UserExtTrustedUserAgents, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormatNextLevel := fmt.Sprintf("%s.%d.%%s", fmt.Sprintf(fieldKeyFormat, "trusted_user_agents"), stateDataIndex) + converted, err := s.mapToUserExtTrustedUserAgents(fieldKeyFormatNextLevel) + if err != nil { + return result, err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange(fmt.Sprintf(fieldKeyFormat, "trusted_user_agents")) { + result.TrustedUserAgents = tmp + } + } + + return result, nil +} + +func ExtensionMfaUserToMap(obj *oci_identity_domains.ExtensionMfaUser) map[string]interface{} { + result := map[string]interface{}{} + + bypassCodes := []interface{}{} + for _, item := range obj.BypassCodes { + bypassCodes = append(bypassCodes, UserExtBypassCodesToMap(item)) + } + result["bypass_codes"] = bypassCodes + + devices := []interface{}{} + for _, item := range obj.Devices { + devices = append(devices, UserExtDevicesToMap(item)) + } + result["devices"] = devices + + if obj.LoginAttempts != nil { + result["login_attempts"] = int(*obj.LoginAttempts) + } + + if obj.MfaEnabledOn != nil { + result["mfa_enabled_on"] = string(*obj.MfaEnabledOn) + } + + result["mfa_ignored_apps"] = obj.MfaIgnoredApps + result["mfa_ignored_apps"] = obj.MfaIgnoredApps + + result["mfa_status"] = string(obj.MfaStatus) + + result["preferred_authentication_factor"] = string(obj.PreferredAuthenticationFactor) + + if obj.PreferredAuthenticationMethod != nil { + result["preferred_authentication_method"] = string(*obj.PreferredAuthenticationMethod) + } + + if obj.PreferredDevice != nil { + result["preferred_device"] = []interface{}{UserExtPreferredDeviceToMap(obj.PreferredDevice)} + } + + if obj.PreferredThirdPartyVendor != nil { + result["preferred_third_party_vendor"] = string(*obj.PreferredThirdPartyVendor) + } + + trustedUserAgents := []interface{}{} + for _, item := range obj.TrustedUserAgents { + trustedUserAgents = append(trustedUserAgents, UserExtTrustedUserAgentsToMap(item)) + } + result["trusted_user_agents"] = trustedUserAgents + + return result +} + +func (s *IdentityDomainsUserResourceCrud) mapToExtensionOCITags(fieldKeyFormat string) (oci_identity_domains.ExtensionOciTags, error) { + result := oci_identity_domains.ExtensionOciTags{} + + if definedTags, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "defined_tags")); ok { + interfaces := definedTags.([]interface{}) + tmp := make([]oci_identity_domains.DefinedTags, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormatNextLevel := fmt.Sprintf("%s.%d.%%s", fmt.Sprintf(fieldKeyFormat, "defined_tags"), stateDataIndex) + converted, err := s.mapTodefinedTags(fieldKeyFormatNextLevel) + if err != nil { + return result, err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange(fmt.Sprintf(fieldKeyFormat, "defined_tags")) { + result.DefinedTags = tmp + } + } + + if freeformTags, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "freeform_tags")); ok { + interfaces := freeformTags.([]interface{}) + tmp := make([]oci_identity_domains.FreeformTags, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormatNextLevel := fmt.Sprintf("%s.%d.%%s", fmt.Sprintf(fieldKeyFormat, "freeform_tags"), stateDataIndex) + converted, err := s.mapTofreeformTags(fieldKeyFormatNextLevel) + if err != nil { + return result, err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange(fmt.Sprintf(fieldKeyFormat, "freeform_tags")) { + result.FreeformTags = tmp + } + } + + if tagSlug, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "tag_slug")); ok { + result.TagSlug = &tagSlug + } + + return result, nil +} + +func ExtensionOCITagsToMap(obj *oci_identity_domains.ExtensionOciTags) map[string]interface{} { + result := map[string]interface{}{} + + definedTags := []interface{}{} + for _, item := range obj.DefinedTags { + definedTags = append(definedTags, definedTagsToMap(item)) + } + result["defined_tags"] = definedTags + + freeformTags := []interface{}{} + for _, item := range obj.FreeformTags { + freeformTags = append(freeformTags, freeformTagsToMap(item)) + } + result["freeform_tags"] = freeformTags + + if obj.TagSlug != nil { + result["tag_slug"] = fmt.Sprintf("%v", *obj.TagSlug) + } + + return result +} + +func (s *IdentityDomainsUserResourceCrud) mapTodefinedTags(fieldKeyFormat string) (oci_identity_domains.DefinedTags, error) { + result := oci_identity_domains.DefinedTags{} + + if namespace, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "namespace")); ok { + tmp := namespace.(string) + result.Namespace = &tmp + } + + if key, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "key")); ok { + tmp := key.(string) + result.Key = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func definedTagsToMap(obj oci_identity_domains.DefinedTags) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Namespace != nil { + result["namespace"] = string(*obj.Namespace) + } + + if obj.Key != nil { + result["key"] = string(*obj.Key) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func ExtensionPasswordStateUserToMap(obj *oci_identity_domains.ExtensionPasswordStateUser) map[string]interface{} { + result := map[string]interface{}{} + + if obj.ApplicablePasswordPolicy != nil { + result["applicable_password_policy"] = []interface{}{UserExtApplicablePasswordPolicyToMap(obj.ApplicablePasswordPolicy)} + } + + if obj.CantChange != nil { + result["cant_change"] = bool(*obj.CantChange) + } + + if obj.CantExpire != nil { + result["cant_expire"] = bool(*obj.CantExpire) + } + + if obj.Expired != nil { + result["expired"] = bool(*obj.Expired) + } + + if obj.LastFailedValidationDate != nil { + result["last_failed_validation_date"] = string(*obj.LastFailedValidationDate) + } + + if obj.LastSuccessfulSetDate != nil { + result["last_successful_set_date"] = string(*obj.LastSuccessfulSetDate) + } + + if obj.LastSuccessfulValidationDate != nil { + result["last_successful_validation_date"] = string(*obj.LastSuccessfulValidationDate) + } + + if obj.MustChange != nil { + result["must_change"] = bool(*obj.MustChange) + } + + return result +} + +func (s *IdentityDomainsUserResourceCrud) mapToExtensionPasswordlessUser(fieldKeyFormat string) (oci_identity_domains.ExtensionPasswordlessUser, error) { + result := oci_identity_domains.ExtensionPasswordlessUser{} + + if factorIdentifier, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "factor_identifier")); ok { + if tmpList := factorIdentifier.([]interface{}); len(tmpList) > 0 { + fieldKeyFormatNextLevel := fmt.Sprintf("%s.%d.%%s", fmt.Sprintf(fieldKeyFormat, "factor_identifier"), 0) + tmp, err := s.mapToUserExtFactorIdentifier(fieldKeyFormatNextLevel) + if err != nil { + return result, fmt.Errorf("unable to convert factor_identifier, encountered error: %v", err) + } + result.FactorIdentifier = &tmp + } + } + + if factorMethod, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "factor_method")); ok { + tmp := factorMethod.(string) + result.FactorMethod = &tmp + } + + if factorType, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "factor_type")); ok { + result.FactorType = oci_identity_domains.ExtensionPasswordlessUserFactorTypeEnum(factorType.(string)) + } + + return result, nil +} + +func ExtensionPasswordlessUserToMap(obj *oci_identity_domains.ExtensionPasswordlessUser) map[string]interface{} { + result := map[string]interface{}{} + + if obj.FactorIdentifier != nil { + result["factor_identifier"] = []interface{}{UserExtFactorIdentifierToMap(obj.FactorIdentifier)} + } + + if obj.FactorMethod != nil { + result["factor_method"] = string(*obj.FactorMethod) + } + + result["factor_type"] = string(obj.FactorType) + + return result +} + +func (s *IdentityDomainsUserResourceCrud) mapToExtensionPosixUser(fieldKeyFormat string) (oci_identity_domains.ExtensionPosixUser, error) { + result := oci_identity_domains.ExtensionPosixUser{} + + if gecos, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "gecos")); ok { + tmp := gecos.(string) + result.Gecos = &tmp + } + + if gidNumber, ok := s.D.GetOk(fmt.Sprintf(fieldKeyFormat, "gid_number")); ok { + tmp := gidNumber.(int) + result.GidNumber = &tmp + } + + if homeDirectory, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "home_directory")); ok { + tmp := homeDirectory.(string) + result.HomeDirectory = &tmp + } + + if loginShell, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "login_shell")); ok { + tmp := loginShell.(string) + result.LoginShell = &tmp + } + + if uidNumber, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "uid_number")); ok { + tmp := uidNumber.(int) + result.UidNumber = &tmp + } + + return result, nil +} + +func ExtensionPosixUserToMap(obj *oci_identity_domains.ExtensionPosixUser) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Gecos != nil { + result["gecos"] = string(*obj.Gecos) + } + + if obj.GidNumber != nil { + result["gid_number"] = int(*obj.GidNumber) + } + + if obj.HomeDirectory != nil { + result["home_directory"] = string(*obj.HomeDirectory) + } + + if obj.LoginShell != nil { + result["login_shell"] = string(*obj.LoginShell) + } + + if obj.UidNumber != nil { + result["uid_number"] = int(*obj.UidNumber) + } + + return result +} + +func (s *IdentityDomainsUserResourceCrud) mapToExtensionSecurityQuestionsUser(fieldKeyFormat string) (oci_identity_domains.ExtensionSecurityQuestionsUser, error) { + result := oci_identity_domains.ExtensionSecurityQuestionsUser{} + + if secQuestions, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "sec_questions")); ok { + interfaces := secQuestions.([]interface{}) + tmp := make([]oci_identity_domains.UserExtSecQuestions, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormatNextLevel := fmt.Sprintf("%s.%d.%%s", fmt.Sprintf(fieldKeyFormat, "sec_questions"), stateDataIndex) + converted, err := s.mapToUserExtSecQuestions(fieldKeyFormatNextLevel) + if err != nil { + return result, err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange(fmt.Sprintf(fieldKeyFormat, "sec_questions")) { + result.SecQuestions = tmp + } + } + + return result, nil +} + +func ExtensionSecurityQuestionsUserToMap(obj *oci_identity_domains.ExtensionSecurityQuestionsUser) map[string]interface{} { + result := map[string]interface{}{} + + secQuestions := []interface{}{} + for _, item := range obj.SecQuestions { + secQuestions = append(secQuestions, UserExtSecQuestionsToMap(item)) + } + result["sec_questions"] = secQuestions + + return result +} + +func (s *IdentityDomainsUserResourceCrud) mapToExtensionSelfChangeUser(fieldKeyFormat string) (oci_identity_domains.ExtensionSelfChangeUser, error) { + result := oci_identity_domains.ExtensionSelfChangeUser{} + + if allowSelfChange, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "allow_self_change")); ok { + tmp := allowSelfChange.(bool) + result.AllowSelfChange = &tmp + } + + return result, nil +} + +func ExtensionSelfChangeUserToMap(obj *oci_identity_domains.ExtensionSelfChangeUser) map[string]interface{} { + result := map[string]interface{}{} + + if obj.AllowSelfChange != nil { + result["allow_self_change"] = bool(*obj.AllowSelfChange) + } + + return result +} + +func (s *IdentityDomainsUserResourceCrud) mapToExtensionSelfRegistrationUser(fieldKeyFormat string) (oci_identity_domains.ExtensionSelfRegistrationUser, error) { + result := oci_identity_domains.ExtensionSelfRegistrationUser{} + + if consentGranted, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "consent_granted")); ok { + tmp := consentGranted.(bool) + result.ConsentGranted = &tmp + } + + if selfRegistrationProfile, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "self_registration_profile")); ok { + if tmpList := selfRegistrationProfile.([]interface{}); len(tmpList) > 0 { + fieldKeyFormatNextLevel := fmt.Sprintf("%s.%d.%%s", fmt.Sprintf(fieldKeyFormat, "self_registration_profile"), 0) + tmp, err := s.mapToUserExtSelfRegistrationProfile(fieldKeyFormatNextLevel) + if err != nil { + return result, fmt.Errorf("unable to convert self_registration_profile, encountered error: %v", err) + } + result.SelfRegistrationProfile = &tmp + } + } + + if userToken, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "user_token")); ok { + tmp := userToken.(string) + result.UserToken = &tmp + } + + return result, nil +} + +func ExtensionSelfRegistrationUserToMap(obj *oci_identity_domains.ExtensionSelfRegistrationUser) map[string]interface{} { + result := map[string]interface{}{} + + if obj.ConsentGranted != nil { + result["consent_granted"] = bool(*obj.ConsentGranted) + } + + if obj.SelfRegistrationProfile != nil { + result["self_registration_profile"] = []interface{}{UserExtSelfRegistrationProfileToMap(obj.SelfRegistrationProfile)} + } + + if obj.UserToken != nil { + result["user_token"] = string(*obj.UserToken) + } + + return result +} + +func (s *IdentityDomainsUserResourceCrud) mapToExtensionSffUser(fieldKeyFormat string) (oci_identity_domains.ExtensionSffUser, error) { + result := oci_identity_domains.ExtensionSffUser{} + + if sffAuthKeys, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "sff_auth_keys")); ok { + tmp := sffAuthKeys.(string) + result.SffAuthKeys = &tmp + } + + return result, nil +} + +func ExtensionSffUserToMap(obj *oci_identity_domains.ExtensionSffUser) map[string]interface{} { + result := map[string]interface{}{} + + if obj.SffAuthKeys != nil { + result["sff_auth_keys"] = string(*obj.SffAuthKeys) + } + + return result +} + +func (s *IdentityDomainsUserResourceCrud) mapToExtensionSocialAccountUser(fieldKeyFormat string) (oci_identity_domains.ExtensionSocialAccountUser, error) { + result := oci_identity_domains.ExtensionSocialAccountUser{} + + if socialAccounts, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "social_accounts")); ok { + interfaces := socialAccounts.([]interface{}) + tmp := make([]oci_identity_domains.UserExtSocialAccounts, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormatNextLevel := fmt.Sprintf("%s.%d.%%s", fmt.Sprintf(fieldKeyFormat, "social_accounts"), stateDataIndex) + converted, err := s.mapToUserExtSocialAccounts(fieldKeyFormatNextLevel) + if err != nil { + return result, err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange(fmt.Sprintf(fieldKeyFormat, "social_accounts")) { + result.SocialAccounts = tmp + } + } + + return result, nil +} + +func ExtensionSocialAccountUserToMap(obj *oci_identity_domains.ExtensionSocialAccountUser) map[string]interface{} { + result := map[string]interface{}{} + + socialAccounts := []interface{}{} + for _, item := range obj.SocialAccounts { + socialAccounts = append(socialAccounts, UserExtSocialAccountsToMap(item)) + } + result["social_accounts"] = socialAccounts + + return result +} + +func (s *IdentityDomainsUserResourceCrud) mapToExtensionTermsOfUseUser(fieldKeyFormat string) (oci_identity_domains.ExtensionTermsOfUseUser, error) { + result := oci_identity_domains.ExtensionTermsOfUseUser{} + + if termsOfUseConsents, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "terms_of_use_consents")); ok { + interfaces := termsOfUseConsents.([]interface{}) + tmp := make([]oci_identity_domains.UserExtTermsOfUseConsents, len(interfaces)) + for i := range interfaces { + stateDataIndex := i + fieldKeyFormatNextLevel := fmt.Sprintf("%s.%d.%%s", fmt.Sprintf(fieldKeyFormat, "terms_of_use_consents"), stateDataIndex) + converted, err := s.mapToUserExtTermsOfUseConsents(fieldKeyFormatNextLevel) + if err != nil { + return result, err + } + tmp[i] = converted + } + if len(tmp) != 0 || s.D.HasChange(fmt.Sprintf(fieldKeyFormat, "terms_of_use_consents")) { + result.TermsOfUseConsents = tmp + } + } + + return result, nil +} + +func ExtensionTermsOfUseUserToMap(obj *oci_identity_domains.ExtensionTermsOfUseUser) map[string]interface{} { + result := map[string]interface{}{} + + termsOfUseConsents := []interface{}{} + for _, item := range obj.TermsOfUseConsents { + termsOfUseConsents = append(termsOfUseConsents, UserExtTermsOfUseConsentsToMap(item)) + } + result["terms_of_use_consents"] = termsOfUseConsents + + return result +} + +func ExtensionUserCredentialsUserToMap(obj *oci_identity_domains.ExtensionUserCredentialsUser) map[string]interface{} { + result := map[string]interface{}{} + + apiKeys := []interface{}{} + for _, item := range obj.ApiKeys { + apiKeys = append(apiKeys, UserExtApiKeysToMap(item)) + } + result["api_keys"] = apiKeys + + authTokens := []interface{}{} + for _, item := range obj.AuthTokens { + authTokens = append(authTokens, UserExtAuthTokensToMap(item)) + } + result["auth_tokens"] = authTokens + + customerSecretKeys := []interface{}{} + for _, item := range obj.CustomerSecretKeys { + customerSecretKeys = append(customerSecretKeys, UserExtCustomerSecretKeysToMap(item)) + } + result["customer_secret_keys"] = customerSecretKeys + + dbCredentials := []interface{}{} + for _, item := range obj.DbCredentials { + dbCredentials = append(dbCredentials, UserExtDbCredentialsToMap(item)) + } + result["db_credentials"] = dbCredentials + + oAuth2ClientCredentials := []interface{}{} + for _, item := range obj.OAuth2ClientCredentials { + oAuth2ClientCredentials = append(oAuth2ClientCredentials, UserExtOAuth2ClientCredentialsToMap(item)) + } + result["o_auth2client_credentials"] = oAuth2ClientCredentials + + smtpCredentials := []interface{}{} + for _, item := range obj.SmtpCredentials { + smtpCredentials = append(smtpCredentials, UserExtSmtpCredentialsToMap(item)) + } + result["smtp_credentials"] = smtpCredentials + + return result +} + +func (s *IdentityDomainsUserResourceCrud) mapToExtensionUserStateUser(fieldKeyFormat string) (oci_identity_domains.ExtensionUserStateUser, error) { + result := oci_identity_domains.ExtensionUserStateUser{} + + if lastFailedLoginDate, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "last_failed_login_date")); ok { + tmp := lastFailedLoginDate.(string) + if tmp != "" { + result.LastFailedLoginDate = &tmp + } + } + + if lastSuccessfulLoginDate, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "last_successful_login_date")); ok { + tmp := lastSuccessfulLoginDate.(string) + if tmp != "" { + result.LastSuccessfulLoginDate = &tmp + } + } + + if locked, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "locked")); ok { + if tmpList := locked.([]interface{}); len(tmpList) > 0 { + fieldKeyFormatNextLevel := fmt.Sprintf("%s.%d.%%s", fmt.Sprintf(fieldKeyFormat, "locked"), 0) + tmp, err := s.mapToUserExtLocked(fieldKeyFormatNextLevel) + if err != nil { + return result, fmt.Errorf("unable to convert locked, encountered error: %v", err) + } + result.Locked = &tmp + } + } + + if loginAttempts, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "login_attempts")); ok { + tmp := loginAttempts.(int) + result.LoginAttempts = &tmp + } + + if maxConcurrentSessions, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "max_concurrent_sessions")); ok { + tmp := maxConcurrentSessions.(int) + result.MaxConcurrentSessions = &tmp + } + + if previousSuccessfulLoginDate, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "previous_successful_login_date")); ok { + tmp := previousSuccessfulLoginDate.(string) + if tmp != "" { + result.PreviousSuccessfulLoginDate = &tmp + } + } + + if recoveryAttempts, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "recovery_attempts")); ok { + tmp := recoveryAttempts.(int) + result.RecoveryAttempts = &tmp + } + + if recoveryEnrollAttempts, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "recovery_enroll_attempts")); ok { + tmp := recoveryEnrollAttempts.(int) + result.RecoveryEnrollAttempts = &tmp + } + + if recoveryLocked, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "recovery_locked")); ok { + if tmpList := recoveryLocked.([]interface{}); len(tmpList) > 0 { + fieldKeyFormatNextLevel := fmt.Sprintf("%s.%d.%%s", fmt.Sprintf(fieldKeyFormat, "recovery_locked"), 0) + tmp, err := s.mapToUserExtRecoveryLocked(fieldKeyFormatNextLevel) + if err != nil { + return result, fmt.Errorf("unable to convert recovery_locked, encountered error: %v", err) + } + result.RecoveryLocked = &tmp + } + } + + return result, nil +} + +func ExtensionUserStateUserToMap(obj *oci_identity_domains.ExtensionUserStateUser) map[string]interface{} { + result := map[string]interface{}{} + + if obj.LastFailedLoginDate != nil { + result["last_failed_login_date"] = string(*obj.LastFailedLoginDate) + } + + if obj.LastSuccessfulLoginDate != nil { + result["last_successful_login_date"] = string(*obj.LastSuccessfulLoginDate) + } + + if obj.Locked != nil { + result["locked"] = []interface{}{UserExtLockedToMap(obj.Locked)} + } + + if obj.LoginAttempts != nil { + result["login_attempts"] = int(*obj.LoginAttempts) + } + + if obj.MaxConcurrentSessions != nil { + result["max_concurrent_sessions"] = int(*obj.MaxConcurrentSessions) + } + + if obj.PreviousSuccessfulLoginDate != nil { + result["previous_successful_login_date"] = string(*obj.PreviousSuccessfulLoginDate) + } + + if obj.RecoveryAttempts != nil { + result["recovery_attempts"] = int(*obj.RecoveryAttempts) + } + + if obj.RecoveryEnrollAttempts != nil { + result["recovery_enroll_attempts"] = int(*obj.RecoveryEnrollAttempts) + } + + if obj.RecoveryLocked != nil { + result["recovery_locked"] = []interface{}{UserExtRecoveryLockedToMap(obj.RecoveryLocked)} + } + + return result +} + +func (s *IdentityDomainsUserResourceCrud) mapToExtensionUserUser(fieldKeyFormat string, forUpdate bool) (oci_identity_domains.ExtensionUserUser, error) { + result := oci_identity_domains.ExtensionUserUser{} + + if userProvider, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "user_provider")); ok { + result.Provider = oci_identity_domains.ExtensionUserUserProviderEnum(userProvider.(string)) + } + + if accountRecoveryRequired, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "account_recovery_required")); ok { + tmp := accountRecoveryRequired.(bool) + result.AccountRecoveryRequired = &tmp + } + + if bypassNotification, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "bypass_notification")); ok { + tmp := bypassNotification.(bool) + result.BypassNotification = &tmp + } + + if creationMechanism, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "creation_mechanism")); ok { + result.CreationMechanism = oci_identity_domains.ExtensionUserUserCreationMechanismEnum(creationMechanism.(string)) + } + + if delegatedAuthenticationTargetApp, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "delegated_authentication_target_app")); ok { + if tmpList := delegatedAuthenticationTargetApp.([]interface{}); len(tmpList) > 0 { + fieldKeyFormatNextLevel := fmt.Sprintf("%s.%d.%%s", fmt.Sprintf(fieldKeyFormat, "delegated_authentication_target_app"), 0) + tmp, err := s.mapToUserExtDelegatedAuthenticationTargetApp(fieldKeyFormatNextLevel) + if err != nil { + return result, fmt.Errorf("unable to convert delegated_authentication_target_app, encountered error: %v", err) + } + result.DelegatedAuthenticationTargetApp = &tmp + } + } + + if doNotShowGettingStarted, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "do_not_show_getting_started")); ok { + tmp := doNotShowGettingStarted.(bool) + result.DoNotShowGettingStarted = &tmp + } + + if isAccountRecoveryEnrolled, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "is_account_recovery_enrolled")); ok { + tmp := isAccountRecoveryEnrolled.(bool) + result.IsAccountRecoveryEnrolled = &tmp + } + + if isAuthenticationDelegated, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "is_authentication_delegated")); ok { + tmp := isAuthenticationDelegated.(bool) + result.IsAuthenticationDelegated = &tmp + } + + if isFederatedUser, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "is_federated_user")); ok { + tmp := isFederatedUser.(bool) + result.IsFederatedUser = &tmp + } + + if isGroupMembershipNormalized, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "is_group_membership_normalized")); ok { + tmp := isGroupMembershipNormalized.(bool) + result.IsGroupMembershipNormalized = &tmp + } + + if isGroupMembershipSyncedToUsersGroups, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "is_group_membership_synced_to_users_groups")); ok && !forUpdate { + tmp := isGroupMembershipSyncedToUsersGroups.(bool) + result.IsGroupMembershipSyncedToUsersGroups = &tmp + } + + if notificationEmailTemplateId, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "notification_email_template_id")); ok { + tmp := notificationEmailTemplateId.(string) + result.NotificationEmailTemplateId = &tmp + } + + if status, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "status")); ok { + result.Status = oci_identity_domains.ExtensionUserUserStatusEnum(status.(string)) + } + + if syncedFromApp, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "synced_from_app")); ok { + if tmpList := syncedFromApp.([]interface{}); len(tmpList) > 0 { + fieldKeyFormatNextLevel := fmt.Sprintf("%s.%d.%%s", fmt.Sprintf(fieldKeyFormat, "synced_from_app"), 0) + tmp, err := s.mapToUserExtSyncedFromApp(fieldKeyFormatNextLevel) + if err != nil { + return result, fmt.Errorf("unable to convert synced_from_app, encountered error: %v", err) + } + result.SyncedFromApp = &tmp + } + } + + if userFlowControlledByExternalClient, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "user_flow_controlled_by_external_client")); ok { + tmp := userFlowControlledByExternalClient.(bool) + result.UserFlowControlledByExternalClient = &tmp + } + + return result, nil +} + +func ExtensionUserUserToMap(obj *oci_identity_domains.ExtensionUserUser) map[string]interface{} { + result := map[string]interface{}{} + + result["user_provider"] = string(obj.Provider) + + if obj.AccountRecoveryRequired != nil { + result["account_recovery_required"] = bool(*obj.AccountRecoveryRequired) + } + + accounts := []interface{}{} + for _, item := range obj.Accounts { + accounts = append(accounts, UserExtAccountsToMap(item)) + } + result["accounts"] = accounts + + appRoles := []interface{}{} + for _, item := range obj.AppRoles { + appRoles = append(appRoles, UserExtAppRolesToMap(item)) + } + result["app_roles"] = appRoles + + if obj.ApplicableAuthenticationTargetApp != nil { + result["applicable_authentication_target_app"] = []interface{}{UserExtApplicableAuthenticationTargetAppToMap(obj.ApplicableAuthenticationTargetApp)} + } + + if obj.BypassNotification != nil { + result["bypass_notification"] = bool(*obj.BypassNotification) + } + + result["creation_mechanism"] = string(obj.CreationMechanism) + + if obj.DelegatedAuthenticationTargetApp != nil { + result["delegated_authentication_target_app"] = []interface{}{UserExtDelegatedAuthenticationTargetAppToMap(obj.DelegatedAuthenticationTargetApp)} + } + + if obj.DoNotShowGettingStarted != nil { + result["do_not_show_getting_started"] = bool(*obj.DoNotShowGettingStarted) + } + + grants := []interface{}{} + for _, item := range obj.Grants { + grants = append(grants, UserExtGrantsToMap(item)) + } + result["grants"] = grants + + idcsAppRolesLimitedToGroups := []interface{}{} + for _, item := range obj.IdcsAppRolesLimitedToGroups { + idcsAppRolesLimitedToGroups = append(idcsAppRolesLimitedToGroups, UserExtIdcsAppRolesLimitedToGroupsToMap(item)) + } + result["idcs_app_roles_limited_to_groups"] = idcsAppRolesLimitedToGroups + + if obj.IsAccountRecoveryEnrolled != nil { + result["is_account_recovery_enrolled"] = bool(*obj.IsAccountRecoveryEnrolled) + } + + if obj.IsAuthenticationDelegated != nil { + result["is_authentication_delegated"] = bool(*obj.IsAuthenticationDelegated) + } + + if obj.IsFederatedUser != nil { + result["is_federated_user"] = bool(*obj.IsFederatedUser) + } + + if obj.IsGroupMembershipNormalized != nil { + result["is_group_membership_normalized"] = bool(*obj.IsGroupMembershipNormalized) + } + + if obj.IsGroupMembershipSyncedToUsersGroups != nil { + result["is_group_membership_synced_to_users_groups"] = bool(*obj.IsGroupMembershipSyncedToUsersGroups) + } + + if obj.NotificationEmailTemplateId != nil { + result["notification_email_template_id"] = string(*obj.NotificationEmailTemplateId) + } + + result["status"] = string(obj.Status) + + supportAccounts := []interface{}{} + for _, item := range obj.SupportAccounts { + supportAccounts = append(supportAccounts, UserExtSupportAccountsToMap(item)) + } + result["support_accounts"] = supportAccounts + + if obj.SyncedFromApp != nil { + result["synced_from_app"] = []interface{}{UserExtSyncedFromAppToMap(obj.SyncedFromApp)} + } + + if obj.UserFlowControlledByExternalClient != nil { + result["user_flow_controlled_by_external_client"] = bool(*obj.UserFlowControlledByExternalClient) + } + + if obj.UserToken != nil { + result["user_token"] = []interface{}{UserExtUserTokenToMap(obj.UserToken)} + } + + return result +} + +func UserToMap(obj oci_identity_domains.User) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Active != nil { + result["active"] = bool(*obj.Active) + } + + addresses := []interface{}{} + for _, item := range obj.Addresses { + addresses = append(addresses, addressesToMap(item)) + } + result["addresses"] = addresses + + if obj.CompartmentOcid != nil { + result["compartment_ocid"] = string(*obj.CompartmentOcid) + } + + if obj.DeleteInProgress != nil { + result["delete_in_progress"] = bool(*obj.DeleteInProgress) + } + + if obj.Description != nil { + result["description"] = string(*obj.Description) + } + + if obj.DisplayName != nil { + result["display_name"] = string(*obj.DisplayName) + } + + if obj.DomainOcid != nil { + result["domain_ocid"] = string(*obj.DomainOcid) + } + + emails := []interface{}{} + for _, item := range obj.Emails { + emails = append(emails, UserEmailsToMap(item)) + } + result["emails"] = emails + + entitlements := []interface{}{} + for _, item := range obj.Entitlements { + entitlements = append(entitlements, UserEntitlementsToMap(item)) + } + result["entitlements"] = entitlements + + if obj.ExternalId != nil { + result["external_id"] = string(*obj.ExternalId) + } + + groups := []interface{}{} + for _, item := range obj.Groups { + groups = append(groups, UserGroupsToMap(item)) + } + result["groups"] = groups + + if obj.Id != nil { + result["id"] = string(*obj.Id) + } + + if obj.IdcsCreatedBy != nil { + result["idcs_created_by"] = []interface{}{idcsCreatedByToMap(obj.IdcsCreatedBy)} + } + + if obj.IdcsLastModifiedBy != nil { + result["idcs_last_modified_by"] = []interface{}{idcsLastModifiedByToMap(obj.IdcsLastModifiedBy)} + } + + if obj.IdcsLastUpgradedInRelease != nil { + result["idcs_last_upgraded_in_release"] = string(*obj.IdcsLastUpgradedInRelease) + } + + result["idcs_prevented_operations"] = obj.IdcsPreventedOperations + result["idcs_prevented_operations"] = obj.IdcsPreventedOperations + + ims := []interface{}{} + for _, item := range obj.Ims { + ims = append(ims, UserImsToMap(item)) + } + result["ims"] = ims + + if obj.Locale != nil { + result["locale"] = string(*obj.Locale) + } + + if obj.Meta != nil { + result["meta"] = []interface{}{metaToMap(obj.Meta)} + } + + if obj.Name != nil { + result["name"] = []interface{}{UserNameToMap(obj.Name)} + } + + if obj.NickName != nil { + result["nick_name"] = string(*obj.NickName) + } + + if obj.Ocid != nil { + result["ocid"] = string(*obj.Ocid) + } + + if obj.Password != nil { + result["password"] = string(*obj.Password) + } + + phoneNumbers := []interface{}{} + for _, item := range obj.PhoneNumbers { + phoneNumbers = append(phoneNumbers, UserPhoneNumbersToMap(item)) + } + result["phone_numbers"] = phoneNumbers + + photos := []interface{}{} + for _, item := range obj.Photos { + photos = append(photos, UserPhotosToMap(item)) + } + result["photos"] = photos + + if obj.PreferredLanguage != nil { + result["preferred_language"] = string(*obj.PreferredLanguage) + } + + if obj.ProfileUrl != nil { + result["profile_url"] = string(*obj.ProfileUrl) + } + + roles := []interface{}{} + for _, item := range obj.Roles { + roles = append(roles, UserRolesToMap(item)) + } + result["roles"] = roles + + result["schemas"] = obj.Schemas + result["schemas"] = obj.Schemas + + tags := []interface{}{} + for _, item := range obj.Tags { + tags = append(tags, tagsToMap(item)) + } + result["tags"] = tags + + if obj.TenancyOcid != nil { + result["tenancy_ocid"] = string(*obj.TenancyOcid) + } + + if obj.Timezone != nil { + result["timezone"] = string(*obj.Timezone) + } + + if obj.Title != nil { + result["title"] = string(*obj.Title) + } + + if obj.UrnIetfParamsScimSchemasExtensionEnterprise2_0User != nil { + result["urnietfparamsscimschemasextensionenterprise20user"] = []interface{}{ExtensionEnterprise20UserToMap(obj.UrnIetfParamsScimSchemasExtensionEnterprise2_0User)} + } + + if obj.UrnIetfParamsScimSchemasOracleIdcsExtensionOciTags != nil { + result["urnietfparamsscimschemasoracleidcsextension_oci_tags"] = []interface{}{ExtensionOCITagsToMap(obj.UrnIetfParamsScimSchemasOracleIdcsExtensionOciTags)} + } + + if obj.UrnIetfParamsScimSchemasOracleIdcsExtensionAdaptiveUser != nil { + result["urnietfparamsscimschemasoracleidcsextensionadaptive_user"] = []interface{}{ExtensionAdaptiveUserToMap(obj.UrnIetfParamsScimSchemasOracleIdcsExtensionAdaptiveUser)} + } + + if obj.UrnIetfParamsScimSchemasOracleIdcsExtensionCapabilitiesUser != nil { + result["urnietfparamsscimschemasoracleidcsextensioncapabilities_user"] = []interface{}{ExtensionCapabilitiesUserToMap(obj.UrnIetfParamsScimSchemasOracleIdcsExtensionCapabilitiesUser)} + } + + if obj.UrnIetfParamsScimSchemasOracleIdcsExtensionDbCredentialsUser != nil { + result["urnietfparamsscimschemasoracleidcsextensiondb_credentials_user"] = []interface{}{ExtensionDbCredentialsUserToMap(obj.UrnIetfParamsScimSchemasOracleIdcsExtensionDbCredentialsUser)} + } + + if obj.UrnIetfParamsScimSchemasOracleIdcsExtensionDbUserUser != nil { + result["urnietfparamsscimschemasoracleidcsextensiondb_user_user"] = []interface{}{ExtensionDbUserUserToMap(obj.UrnIetfParamsScimSchemasOracleIdcsExtensionDbUserUser)} + } + + if obj.UrnIetfParamsScimSchemasOracleIdcsExtensionKerberosUserUser != nil { + result["urnietfparamsscimschemasoracleidcsextensionkerberos_user_user"] = []interface{}{ExtensionKerberosUserUserToMap(obj.UrnIetfParamsScimSchemasOracleIdcsExtensionKerberosUserUser)} + } + + if obj.UrnIetfParamsScimSchemasOracleIdcsExtensionMfaUser != nil { + result["urnietfparamsscimschemasoracleidcsextensionmfa_user"] = []interface{}{ExtensionMfaUserToMap(obj.UrnIetfParamsScimSchemasOracleIdcsExtensionMfaUser)} + } + + if obj.UrnIetfParamsScimSchemasOracleIdcsExtensionPasswordStateUser != nil { + result["urnietfparamsscimschemasoracleidcsextensionpassword_state_user"] = []interface{}{ExtensionPasswordStateUserToMap(obj.UrnIetfParamsScimSchemasOracleIdcsExtensionPasswordStateUser)} + } + + if obj.UrnIetfParamsScimSchemasOracleIdcsExtensionPasswordlessUser != nil { + result["urnietfparamsscimschemasoracleidcsextensionpasswordless_user"] = []interface{}{ExtensionPasswordlessUserToMap(obj.UrnIetfParamsScimSchemasOracleIdcsExtensionPasswordlessUser)} + } + + if obj.UrnIetfParamsScimSchemasOracleIdcsExtensionPosixUser != nil { + result["urnietfparamsscimschemasoracleidcsextensionposix_user"] = []interface{}{ExtensionPosixUserToMap(obj.UrnIetfParamsScimSchemasOracleIdcsExtensionPosixUser)} + } + + if obj.UrnIetfParamsScimSchemasOracleIdcsExtensionSecurityQuestionsUser != nil { + result["urnietfparamsscimschemasoracleidcsextensionsecurity_questions_user"] = []interface{}{ExtensionSecurityQuestionsUserToMap(obj.UrnIetfParamsScimSchemasOracleIdcsExtensionSecurityQuestionsUser)} + } + + if obj.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser != nil { + result["urnietfparamsscimschemasoracleidcsextensionself_change_user"] = []interface{}{ExtensionSelfChangeUserToMap(obj.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser)} + } + + if obj.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfRegistrationUser != nil { + result["urnietfparamsscimschemasoracleidcsextensionself_registration_user"] = []interface{}{ExtensionSelfRegistrationUserToMap(obj.UrnIetfParamsScimSchemasOracleIdcsExtensionSelfRegistrationUser)} + } + + if obj.UrnIetfParamsScimSchemasOracleIdcsExtensionSffUser != nil { + result["urnietfparamsscimschemasoracleidcsextensionsff_user"] = []interface{}{ExtensionSffUserToMap(obj.UrnIetfParamsScimSchemasOracleIdcsExtensionSffUser)} + } + + if obj.UrnIetfParamsScimSchemasOracleIdcsExtensionSocialAccountUser != nil { + result["urnietfparamsscimschemasoracleidcsextensionsocial_account_user"] = []interface{}{ExtensionSocialAccountUserToMap(obj.UrnIetfParamsScimSchemasOracleIdcsExtensionSocialAccountUser)} + } + + if obj.UrnIetfParamsScimSchemasOracleIdcsExtensionTermsOfUseUser != nil { + result["urnietfparamsscimschemasoracleidcsextensionterms_of_use_user"] = []interface{}{ExtensionTermsOfUseUserToMap(obj.UrnIetfParamsScimSchemasOracleIdcsExtensionTermsOfUseUser)} + } + + if obj.UrnIetfParamsScimSchemasOracleIdcsExtensionUserCredentialsUser != nil { + result["urnietfparamsscimschemasoracleidcsextensionuser_credentials_user"] = []interface{}{ExtensionUserCredentialsUserToMap(obj.UrnIetfParamsScimSchemasOracleIdcsExtensionUserCredentialsUser)} + } + + if obj.UrnIetfParamsScimSchemasOracleIdcsExtensionUserStateUser != nil { + result["urnietfparamsscimschemasoracleidcsextensionuser_state_user"] = []interface{}{ExtensionUserStateUserToMap(obj.UrnIetfParamsScimSchemasOracleIdcsExtensionUserStateUser)} + } + + if obj.UrnIetfParamsScimSchemasOracleIdcsExtensionUserUser != nil { + result["urnietfparamsscimschemasoracleidcsextensionuser_user"] = []interface{}{ExtensionUserUserToMap(obj.UrnIetfParamsScimSchemasOracleIdcsExtensionUserUser)} + } + + if obj.UserName != nil { + result["user_name"] = string(*obj.UserName) + } + + result["user_type"] = string(obj.UserType) + + x509Certificates := []interface{}{} + for _, item := range obj.X509Certificates { + x509Certificates = append(x509Certificates, UserX509CertificatesToMap(item)) + } + result["x509certificates"] = x509Certificates + + return result +} + +func (s *IdentityDomainsUserResourceCrud) mapToUserEmails(fieldKeyFormat string) (oci_identity_domains.UserEmails, error) { + result := oci_identity_domains.UserEmails{} + + if pendingVerificationData, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "pending_verification_data")); ok { + tmp := pendingVerificationData.(string) + result.PendingVerificationData = &tmp + } + + if primary, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "primary")); ok { + tmp := primary.(bool) + result.Primary = &tmp + } + + if secondary, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "secondary")); ok { + tmp := secondary.(bool) + result.Secondary = &tmp + } + + if type_, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "type")); ok { + result.Type = oci_identity_domains.UserEmailsTypeEnum(type_.(string)) + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + if verified, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "verified")); ok { + tmp := verified.(bool) + result.Verified = &tmp + } + + return result, nil +} + +func UserEmailsToMap(obj oci_identity_domains.UserEmails) map[string]interface{} { + result := map[string]interface{}{} + + if obj.PendingVerificationData != nil { + result["pending_verification_data"] = string(*obj.PendingVerificationData) + } + + if obj.Primary != nil { + result["primary"] = bool(*obj.Primary) + } + + if obj.Secondary != nil { + result["secondary"] = bool(*obj.Secondary) + } + + result["type"] = string(obj.Type) + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + if obj.Verified != nil { + result["verified"] = bool(*obj.Verified) + } + + return result +} + +func (s *IdentityDomainsUserResourceCrud) mapToUserEntitlements(fieldKeyFormat string) (oci_identity_domains.UserEntitlements, error) { + result := oci_identity_domains.UserEntitlements{} + + if display, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "display")); ok { + tmp := display.(string) + result.Display = &tmp + } + + if primary, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "primary")); ok { + tmp := primary.(bool) + result.Primary = &tmp + } + + if type_, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "type")); ok { + tmp := type_.(string) + result.Type = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func UserEntitlementsToMap(obj oci_identity_domains.UserEntitlements) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Display != nil { + result["display"] = string(*obj.Display) + } + + if obj.Primary != nil { + result["primary"] = bool(*obj.Primary) + } + + if obj.Type != nil { + result["type"] = string(*obj.Type) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func UserExtAccountsToMap(obj oci_identity_domains.UserExtAccounts) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Active != nil { + result["active"] = bool(*obj.Active) + } + + if obj.AppId != nil { + result["app_id"] = string(*obj.AppId) + } + + if obj.Name != nil { + result["name"] = string(*obj.Name) + } + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func (s *IdentityDomainsUserResourceCrud) mapToUserExtApiKeys(fieldKeyFormat string) (oci_identity_domains.UserExtApiKeys, error) { + result := oci_identity_domains.UserExtApiKeys{} + + if key, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "key")); ok { + tmp := key.(string) + result.Key = &tmp + } + + if ocid, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ocid")); ok { + tmp := ocid.(string) + result.Ocid = &tmp + } + + if ref, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ref")); ok { + tmp := ref.(string) + result.Ref = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func UserExtApiKeysToMap(obj oci_identity_domains.UserExtApiKeys) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Key != nil { + result["key"] = string(*obj.Key) + } + + if obj.Ocid != nil { + result["ocid"] = string(*obj.Ocid) + } + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func UserExtAppRolesToMap(obj oci_identity_domains.UserExtAppRoles) map[string]interface{} { + result := map[string]interface{}{} + + if obj.AdminRole != nil { + result["admin_role"] = bool(*obj.AdminRole) + } + + if obj.AppId != nil { + result["app_id"] = string(*obj.AppId) + } + + if obj.AppName != nil { + result["app_name"] = string(*obj.AppName) + } + + if obj.Display != nil { + result["display"] = string(*obj.Display) + } + + if obj.LegacyGroupName != nil { + result["legacy_group_name"] = string(*obj.LegacyGroupName) + } + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + result["type"] = string(obj.Type) + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func UserExtApplicableAuthenticationTargetAppToMap(obj *oci_identity_domains.UserExtApplicableAuthenticationTargetApp) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Display != nil { + result["display"] = string(*obj.Display) + } + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + if obj.TargetRequestTimeout != nil { + result["target_request_timeout"] = int(*obj.TargetRequestTimeout) + } + + if obj.Type != nil { + result["type"] = string(*obj.Type) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func (s *IdentityDomainsUserResourceCrud) mapToUserExtApplicablePasswordPolicy(fieldKeyFormat string) (oci_identity_domains.UserExtApplicablePasswordPolicy, error) { + result := oci_identity_domains.UserExtApplicablePasswordPolicy{} + + if display, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "display")); ok { + tmp := display.(string) + result.Display = &tmp + } + + if priority, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "priority")); ok { + tmp := priority.(int) + result.Priority = &tmp + } + + if ref, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ref")); ok { + tmp := ref.(string) + result.Ref = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func UserExtApplicablePasswordPolicyToMap(obj *oci_identity_domains.UserExtApplicablePasswordPolicy) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Display != nil { + result["display"] = string(*obj.Display) + } + + if obj.Priority != nil { + result["priority"] = int(*obj.Priority) + } + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func (s *IdentityDomainsUserResourceCrud) mapToUserExtAuthTokens(fieldKeyFormat string) (oci_identity_domains.UserExtAuthTokens, error) { + result := oci_identity_domains.UserExtAuthTokens{} + + if ocid, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ocid")); ok { + tmp := ocid.(string) + result.Ocid = &tmp + } + + if ref, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ref")); ok { + tmp := ref.(string) + result.Ref = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func UserExtAuthTokensToMap(obj oci_identity_domains.UserExtAuthTokens) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Ocid != nil { + result["ocid"] = string(*obj.Ocid) + } + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func (s *IdentityDomainsUserResourceCrud) mapToUserExtBypassCodes(fieldKeyFormat string) (oci_identity_domains.UserExtBypassCodes, error) { + result := oci_identity_domains.UserExtBypassCodes{} + + if ref, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ref")); ok { + tmp := ref.(string) + result.Ref = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func UserExtBypassCodesToMap(obj oci_identity_domains.UserExtBypassCodes) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func (s *IdentityDomainsUserResourceCrud) mapToUserExtCustomerSecretKeys(fieldKeyFormat string) (oci_identity_domains.UserExtCustomerSecretKeys, error) { + result := oci_identity_domains.UserExtCustomerSecretKeys{} + + if ocid, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ocid")); ok { + tmp := ocid.(string) + result.Ocid = &tmp + } + + if ref, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ref")); ok { + tmp := ref.(string) + result.Ref = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func UserExtCustomerSecretKeysToMap(obj oci_identity_domains.UserExtCustomerSecretKeys) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Ocid != nil { + result["ocid"] = string(*obj.Ocid) + } + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func (s *IdentityDomainsUserResourceCrud) mapToUserExtDbCredentials(fieldKeyFormat string) (oci_identity_domains.UserExtDbCredentials, error) { + result := oci_identity_domains.UserExtDbCredentials{} + + if ocid, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ocid")); ok { + tmp := ocid.(string) + result.Ocid = &tmp + } + + if ref, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ref")); ok { + tmp := ref.(string) + result.Ref = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func UserExtDbCredentialsToMap(obj oci_identity_domains.UserExtDbCredentials) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Ocid != nil { + result["ocid"] = string(*obj.Ocid) + } + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func (s *IdentityDomainsUserResourceCrud) mapToUserExtDelegatedAuthenticationTargetApp(fieldKeyFormat string) (oci_identity_domains.UserExtDelegatedAuthenticationTargetApp, error) { + result := oci_identity_domains.UserExtDelegatedAuthenticationTargetApp{} + + if display, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "display")); ok { + tmp := display.(string) + result.Display = &tmp + } + + if ref, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ref")); ok { + tmp := ref.(string) + result.Ref = &tmp + } + + if type_, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "type")); ok { + result.Type = oci_identity_domains.UserExtDelegatedAuthenticationTargetAppTypeEnum(type_.(string)) + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func UserExtDelegatedAuthenticationTargetAppToMap(obj *oci_identity_domains.UserExtDelegatedAuthenticationTargetApp) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Display != nil { + result["display"] = string(*obj.Display) + } + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + result["type"] = string(obj.Type) + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func (s *IdentityDomainsUserResourceCrud) mapToUserExtDevices(fieldKeyFormat string) (oci_identity_domains.UserExtDevices, error) { + result := oci_identity_domains.UserExtDevices{} + + if authenticationMethod, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "authentication_method")); ok { + tmp := authenticationMethod.(string) + result.AuthenticationMethod = &tmp + } + + if display, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "display")); ok { + tmp := display.(string) + result.Display = &tmp + } + + if factorStatus, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "factor_status")); ok { + tmp := factorStatus.(string) + result.FactorStatus = &tmp + } + + if factorType, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "factor_type")); ok { + tmp := factorType.(string) + result.FactorType = &tmp + } + + if lastSyncTime, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "last_sync_time")); ok { + tmp := lastSyncTime.(string) + result.LastSyncTime = &tmp + } + + if ref, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ref")); ok { + tmp := ref.(string) + result.Ref = &tmp + } + + if status, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "status")); ok { + tmp := status.(string) + result.Status = &tmp + } + + if thirdPartyVendorName, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "third_party_vendor_name")); ok { + tmp := thirdPartyVendorName.(string) + result.ThirdPartyVendorName = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func UserExtDevicesToMap(obj oci_identity_domains.UserExtDevices) map[string]interface{} { + result := map[string]interface{}{} + + if obj.AuthenticationMethod != nil { + result["authentication_method"] = string(*obj.AuthenticationMethod) + } + + if obj.Display != nil { + result["display"] = string(*obj.Display) + } + + if obj.FactorStatus != nil { + result["factor_status"] = string(*obj.FactorStatus) + } + + if obj.FactorType != nil { + result["factor_type"] = string(*obj.FactorType) + } + + if obj.LastSyncTime != nil { + result["last_sync_time"] = string(*obj.LastSyncTime) + } + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + if obj.Status != nil { + result["status"] = string(*obj.Status) + } + + if obj.ThirdPartyVendorName != nil { + result["third_party_vendor_name"] = string(*obj.ThirdPartyVendorName) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func (s *IdentityDomainsUserResourceCrud) mapToUserExtFactorIdentifier(fieldKeyFormat string) (oci_identity_domains.UserExtFactorIdentifier, error) { + result := oci_identity_domains.UserExtFactorIdentifier{} + + if display, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "display")); ok { + tmp := display.(string) + result.Display = &tmp + } + + if ref, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ref")); ok { + tmp := ref.(string) + result.Ref = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func UserExtFactorIdentifierToMap(obj *oci_identity_domains.UserExtFactorIdentifier) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Display != nil { + result["display"] = string(*obj.Display) + } + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func UserExtGrantsToMap(obj oci_identity_domains.UserExtGrants) map[string]interface{} { + result := map[string]interface{}{} + + if obj.AppId != nil { + result["app_id"] = string(*obj.AppId) + } + + result["grant_mechanism"] = string(obj.GrantMechanism) + + if obj.GrantorId != nil { + result["grantor_id"] = string(*obj.GrantorId) + } + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func UserExtIdcsAppRolesLimitedToGroupsToMap(obj oci_identity_domains.UserExtIdcsAppRolesLimitedToGroups) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Display != nil { + result["display"] = string(*obj.Display) + } + + if obj.IdcsAppRoleId != nil { + result["idcs_app_role_id"] = string(*obj.IdcsAppRoleId) + } + + if obj.Ocid != nil { + result["ocid"] = string(*obj.Ocid) + } + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func (s *IdentityDomainsUserResourceCrud) mapToUserExtLocked(fieldKeyFormat string) (oci_identity_domains.UserExtLocked, error) { + result := oci_identity_domains.UserExtLocked{} + + if expired, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "expired")); ok { + tmp := expired.(bool) + result.Expired = &tmp + } + + if lockDate, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "lock_date")); ok { + tmp := lockDate.(string) + if tmp != "" { + result.LockDate = &tmp + } + } + + if on, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "on")); ok { + tmp := on.(bool) + result.On = &tmp + } + + if reason, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "reason")); ok { + if *result.On == true { + tmp := reason.(int) + result.Reason = &tmp + } + } + + return result, nil +} + +func UserExtLockedToMap(obj *oci_identity_domains.UserExtLocked) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Expired != nil { + result["expired"] = bool(*obj.Expired) + } + + if obj.LockDate != nil { + result["lock_date"] = string(*obj.LockDate) + } + + if obj.On != nil { + result["on"] = bool(*obj.On) + } + + if obj.Reason != nil { + result["reason"] = int(*obj.Reason) + } + return result +} + +func (s *IdentityDomainsUserResourceCrud) mapToUserExtManager(fieldKeyFormat string) (oci_identity_domains.UserExtManager, error) { + result := oci_identity_domains.UserExtManager{} + + if displayName, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "display_name")); ok { + tmp := displayName.(string) + result.DisplayName = &tmp + } + + if ref, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ref")); ok { + tmp := ref.(string) + result.Ref = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func UserExtManagerToMap(obj *oci_identity_domains.UserExtManager) map[string]interface{} { + result := map[string]interface{}{} + + if obj.DisplayName != nil { + result["display_name"] = string(*obj.DisplayName) + } + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func (s *IdentityDomainsUserResourceCrud) mapToUserExtOAuth2ClientCredentials(fieldKeyFormat string) (oci_identity_domains.UserExtOAuth2ClientCredentials, error) { + result := oci_identity_domains.UserExtOAuth2ClientCredentials{} + + if ocid, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ocid")); ok { + tmp := ocid.(string) + result.Ocid = &tmp + } + + if ref, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ref")); ok { + tmp := ref.(string) + result.Ref = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func UserExtOAuth2ClientCredentialsToMap(obj oci_identity_domains.UserExtOAuth2ClientCredentials) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Ocid != nil { + result["ocid"] = string(*obj.Ocid) + } + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func (s *IdentityDomainsUserResourceCrud) mapToUserExtPasswordVerifiers(fieldKeyFormat string) (oci_identity_domains.UserExtPasswordVerifiers, error) { + result := oci_identity_domains.UserExtPasswordVerifiers{} + + if type_, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "type")); ok { + tmp := type_.(string) + result.Type = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func UserExtPasswordVerifiersToMap(obj oci_identity_domains.UserExtPasswordVerifiers) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Type != nil { + result["type"] = string(*obj.Type) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func (s *IdentityDomainsUserResourceCrud) mapToUserExtPreferredDevice(fieldKeyFormat string) (oci_identity_domains.UserExtPreferredDevice, error) { + result := oci_identity_domains.UserExtPreferredDevice{} + + if display, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "display")); ok { + tmp := display.(string) + result.Display = &tmp + } + + if ref, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ref")); ok { + tmp := ref.(string) + result.Ref = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func UserExtPreferredDeviceToMap(obj *oci_identity_domains.UserExtPreferredDevice) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Display != nil { + result["display"] = string(*obj.Display) + } + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func (s *IdentityDomainsUserResourceCrud) mapToUserExtRealmUsers(fieldKeyFormat string) (oci_identity_domains.UserExtRealmUsers, error) { + result := oci_identity_domains.UserExtRealmUsers{} + + if principalName, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "principal_name")); ok { + tmp := principalName.(string) + result.PrincipalName = &tmp + } + + if realmName, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "realm_name")); ok { + tmp := realmName.(string) + result.RealmName = &tmp + } + + if ref, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ref")); ok { + tmp := ref.(string) + result.Ref = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func UserExtRealmUsersToMap(obj oci_identity_domains.UserExtRealmUsers) map[string]interface{} { + result := map[string]interface{}{} + + if obj.PrincipalName != nil { + result["principal_name"] = string(*obj.PrincipalName) + } + + if obj.RealmName != nil { + result["realm_name"] = string(*obj.RealmName) + } + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func (s *IdentityDomainsUserResourceCrud) mapToUserExtRecoveryLocked(fieldKeyFormat string) (oci_identity_domains.UserExtRecoveryLocked, error) { + result := oci_identity_domains.UserExtRecoveryLocked{} + + if lockDate, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "lock_date")); ok { + tmp := lockDate.(string) + if tmp != "" { + result.LockDate = &tmp + } + } + + if on, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "on")); ok { + tmp := on.(bool) + result.On = &tmp + } + + return result, nil +} + +func UserExtRecoveryLockedToMap(obj *oci_identity_domains.UserExtRecoveryLocked) map[string]interface{} { + result := map[string]interface{}{} + + if obj.LockDate != nil { + result["lock_date"] = string(*obj.LockDate) + } + + if obj.On != nil { + result["on"] = bool(*obj.On) + } + + return result +} + +func (s *IdentityDomainsUserResourceCrud) mapToUserExtRiskScores(fieldKeyFormat string) (oci_identity_domains.UserExtRiskScores, error) { + result := oci_identity_domains.UserExtRiskScores{} + + if lastUpdateTimestamp, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "last_update_timestamp")); ok { + tmp := lastUpdateTimestamp.(string) + result.LastUpdateTimestamp = &tmp + } + + if ref, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ref")); ok { + tmp := ref.(string) + result.Ref = &tmp + } + + if riskLevel, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "risk_level")); ok { + result.RiskLevel = oci_identity_domains.UserExtRiskScoresRiskLevelEnum(riskLevel.(string)) + } + + if score, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "score")); ok { + tmp := score.(int) + result.Score = &tmp + } + + if source, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "source")); ok { + tmp := source.(string) + result.Source = &tmp + } + + if status, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "status")); ok { + tmp := status.(string) + result.Status = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func UserExtRiskScoresToMap(obj oci_identity_domains.UserExtRiskScores) map[string]interface{} { + result := map[string]interface{}{} + + if obj.LastUpdateTimestamp != nil { + result["last_update_timestamp"] = string(*obj.LastUpdateTimestamp) + } + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + result["risk_level"] = string(obj.RiskLevel) + + if obj.Score != nil { + result["score"] = int(*obj.Score) + } + + if obj.Source != nil { + result["source"] = string(*obj.Source) + } + + if obj.Status != nil { + result["status"] = string(*obj.Status) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func (s *IdentityDomainsUserResourceCrud) mapToUserExtSecQuestions(fieldKeyFormat string) (oci_identity_domains.UserExtSecQuestions, error) { + result := oci_identity_domains.UserExtSecQuestions{} + + if answer, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "answer")); ok { + tmp := answer.(string) + result.Answer = &tmp + } + + if hintText, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "hint_text")); ok { + tmp := hintText.(string) + result.HintText = &tmp + } + + if ref, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ref")); ok { + tmp := ref.(string) + result.Ref = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func UserExtSecQuestionsToMap(obj oci_identity_domains.UserExtSecQuestions) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Answer != nil { + result["answer"] = string(*obj.Answer) + } + + if obj.HintText != nil { + result["hint_text"] = string(*obj.HintText) + } + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func (s *IdentityDomainsUserResourceCrud) mapToUserExtSelfRegistrationProfile(fieldKeyFormat string) (oci_identity_domains.UserExtSelfRegistrationProfile, error) { + result := oci_identity_domains.UserExtSelfRegistrationProfile{} + + if display, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "display")); ok { + tmp := display.(string) + result.Display = &tmp + } + + if ref, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ref")); ok { + tmp := ref.(string) + result.Ref = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func UserExtSelfRegistrationProfileToMap(obj *oci_identity_domains.UserExtSelfRegistrationProfile) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Display != nil { + result["display"] = string(*obj.Display) + } + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func (s *IdentityDomainsUserResourceCrud) mapToUserExtSmtpCredentials(fieldKeyFormat string) (oci_identity_domains.UserExtSmtpCredentials, error) { + result := oci_identity_domains.UserExtSmtpCredentials{} + + if ocid, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ocid")); ok { + tmp := ocid.(string) + result.Ocid = &tmp + } + + if ref, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ref")); ok { + tmp := ref.(string) + result.Ref = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func UserExtSmtpCredentialsToMap(obj oci_identity_domains.UserExtSmtpCredentials) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Ocid != nil { + result["ocid"] = string(*obj.Ocid) + } + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func (s *IdentityDomainsUserResourceCrud) mapToUserExtSocialAccounts(fieldKeyFormat string) (oci_identity_domains.UserExtSocialAccounts, error) { + result := oci_identity_domains.UserExtSocialAccounts{} + + if display, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "display")); ok { + tmp := display.(string) + result.Display = &tmp + } + + if ref, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ref")); ok { + tmp := ref.(string) + result.Ref = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func UserExtSocialAccountsToMap(obj oci_identity_domains.UserExtSocialAccounts) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Display != nil { + result["display"] = string(*obj.Display) + } + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func UserExtSupportAccountsToMap(obj oci_identity_domains.UserExtSupportAccounts) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Provider != nil { + result["user_provider"] = string(*obj.Provider) + } + + if obj.Ocid != nil { + result["ocid"] = string(*obj.Ocid) + } + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + if obj.UserId != nil { + result["user_id"] = string(*obj.UserId) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func (s *IdentityDomainsUserResourceCrud) mapToUserExtSyncedFromApp(fieldKeyFormat string) (oci_identity_domains.UserExtSyncedFromApp, error) { + result := oci_identity_domains.UserExtSyncedFromApp{} + + if display, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "display")); ok { + tmp := display.(string) + result.Display = &tmp + } + + if ref, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ref")); ok { + tmp := ref.(string) + result.Ref = &tmp + } + + if type_, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "type")); ok { + result.Type = oci_identity_domains.UserExtSyncedFromAppTypeEnum(type_.(string)) + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func UserExtSyncedFromAppToMap(obj *oci_identity_domains.UserExtSyncedFromApp) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Display != nil { + result["display"] = string(*obj.Display) + } + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + result["type"] = string(obj.Type) + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func (s *IdentityDomainsUserResourceCrud) mapToUserExtTermsOfUseConsents(fieldKeyFormat string) (oci_identity_domains.UserExtTermsOfUseConsents, error) { + result := oci_identity_domains.UserExtTermsOfUseConsents{} + + if ref, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ref")); ok { + tmp := ref.(string) + result.Ref = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func UserExtTermsOfUseConsentsToMap(obj oci_identity_domains.UserExtTermsOfUseConsents) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func (s *IdentityDomainsUserResourceCrud) mapToUserExtTrustedUserAgents(fieldKeyFormat string) (oci_identity_domains.UserExtTrustedUserAgents, error) { + result := oci_identity_domains.UserExtTrustedUserAgents{} + + if display, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "display")); ok { + tmp := display.(string) + result.Display = &tmp + } + + if ref, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ref")); ok { + tmp := ref.(string) + result.Ref = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func UserExtTrustedUserAgentsToMap(obj oci_identity_domains.UserExtTrustedUserAgents) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Display != nil { + result["display"] = string(*obj.Display) + } + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func UserExtUserTokenToMap(obj *oci_identity_domains.UserExtUserToken) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func UserGroupsToMap(obj oci_identity_domains.UserGroups) map[string]interface{} { + result := map[string]interface{}{} + + if obj.DateAdded != nil { + result["date_added"] = string(*obj.DateAdded) + } + + if obj.Display != nil { + result["display"] = string(*obj.Display) + } + + if obj.ExternalId != nil { + result["external_id"] = string(*obj.ExternalId) + } + + if obj.MembershipOcid != nil { + result["membership_ocid"] = string(*obj.MembershipOcid) + } + + if obj.NonUniqueDisplay != nil { + result["non_unique_display"] = string(*obj.NonUniqueDisplay) + } + + if obj.Ocid != nil { + result["ocid"] = string(*obj.Ocid) + } + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + result["type"] = string(obj.Type) + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func (s *IdentityDomainsUserResourceCrud) mapToUserIms(fieldKeyFormat string) (oci_identity_domains.UserIms, error) { + result := oci_identity_domains.UserIms{} + + if display, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "display")); ok { + tmp := display.(string) + result.Display = &tmp + } + + if primary, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "primary")); ok { + tmp := primary.(bool) + result.Primary = &tmp + } + + if type_, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "type")); ok { + result.Type = oci_identity_domains.UserImsTypeEnum(type_.(string)) + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func UserImsToMap(obj oci_identity_domains.UserIms) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Display != nil { + result["display"] = string(*obj.Display) + } + + if obj.Primary != nil { + result["primary"] = bool(*obj.Primary) + } + + result["type"] = string(obj.Type) + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func (s *IdentityDomainsUserResourceCrud) mapToUserName(fieldKeyFormat string) (oci_identity_domains.UserName, error) { + result := oci_identity_domains.UserName{} + + if familyName, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "family_name")); ok { + tmp := familyName.(string) + result.FamilyName = &tmp + } + + if formatted, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "formatted")); ok { + tmp := formatted.(string) + result.Formatted = &tmp + } + + if givenName, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "given_name")); ok { + tmp := givenName.(string) + result.GivenName = &tmp + } + + if honorificPrefix, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "honorific_prefix")); ok { + tmp := honorificPrefix.(string) + result.HonorificPrefix = &tmp + } + + if honorificSuffix, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "honorific_suffix")); ok { + tmp := honorificSuffix.(string) + result.HonorificSuffix = &tmp + } + + if middleName, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "middle_name")); ok { + tmp := middleName.(string) + result.MiddleName = &tmp + } + + return result, nil +} + +func UserNameToMap(obj *oci_identity_domains.UserName) map[string]interface{} { + result := map[string]interface{}{} + + if obj.FamilyName != nil { + result["family_name"] = string(*obj.FamilyName) + } + + if obj.Formatted != nil { + result["formatted"] = string(*obj.Formatted) + } + + if obj.GivenName != nil { + result["given_name"] = string(*obj.GivenName) + } + + if obj.HonorificPrefix != nil { + result["honorific_prefix"] = string(*obj.HonorificPrefix) + } + + if obj.HonorificSuffix != nil { + result["honorific_suffix"] = string(*obj.HonorificSuffix) + } + + if obj.MiddleName != nil { + result["middle_name"] = string(*obj.MiddleName) + } + + return result +} + +func (s *IdentityDomainsUserResourceCrud) mapToUserPhoneNumbers(fieldKeyFormat string) (oci_identity_domains.UserPhoneNumbers, error) { + result := oci_identity_domains.UserPhoneNumbers{} + + if display, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "display")); ok { + tmp := display.(string) + result.Display = &tmp + } + + if primary, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "primary")); ok { + tmp := primary.(bool) + result.Primary = &tmp + } + + if type_, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "type")); ok { + result.Type = oci_identity_domains.UserPhoneNumbersTypeEnum(type_.(string)) + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + if verified, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "verified")); ok { + tmp := verified.(bool) + result.Verified = &tmp + } + + return result, nil +} + +func UserPhoneNumbersToMap(obj oci_identity_domains.UserPhoneNumbers) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Display != nil { + result["display"] = string(*obj.Display) + } + + if obj.Primary != nil { + result["primary"] = bool(*obj.Primary) + } + + result["type"] = string(obj.Type) + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + if obj.Verified != nil { + result["verified"] = bool(*obj.Verified) + } + + return result +} + +func (s *IdentityDomainsUserResourceCrud) mapToUserPhotos(fieldKeyFormat string) (oci_identity_domains.UserPhotos, error) { + result := oci_identity_domains.UserPhotos{} + + if display, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "display")); ok { + tmp := display.(string) + result.Display = &tmp + } + + if primary, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "primary")); ok { + tmp := primary.(bool) + result.Primary = &tmp + } + + if type_, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "type")); ok { + result.Type = oci_identity_domains.UserPhotosTypeEnum(type_.(string)) + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func UserPhotosToMap(obj oci_identity_domains.UserPhotos) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Display != nil { + result["display"] = string(*obj.Display) + } + + if obj.Primary != nil { + result["primary"] = bool(*obj.Primary) + } + + result["type"] = string(obj.Type) + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func (s *IdentityDomainsUserResourceCrud) mapToUserRoles(fieldKeyFormat string) (oci_identity_domains.UserRoles, error) { + result := oci_identity_domains.UserRoles{} + + if display, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "display")); ok { + tmp := display.(string) + result.Display = &tmp + } + + if primary, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "primary")); ok { + tmp := primary.(bool) + result.Primary = &tmp + } + + if type_, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "type")); ok { + tmp := type_.(string) + result.Type = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func UserRolesToMap(obj oci_identity_domains.UserRoles) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Display != nil { + result["display"] = string(*obj.Display) + } + + if obj.Primary != nil { + result["primary"] = bool(*obj.Primary) + } + + if obj.Type != nil { + result["type"] = string(*obj.Type) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func (s *IdentityDomainsUserResourceCrud) mapToUserX509Certificates(fieldKeyFormat string) (oci_identity_domains.UserX509Certificates, error) { + result := oci_identity_domains.UserX509Certificates{} + + if display, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "display")); ok { + tmp := display.(string) + result.Display = &tmp + } + + if primary, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "primary")); ok { + tmp := primary.(bool) + result.Primary = &tmp + } + + if type_, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "type")); ok { + tmp := type_.(string) + result.Type = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + result.Value = &value + } + + return result, nil +} + +func UserX509CertificatesToMap(obj oci_identity_domains.UserX509Certificates) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Display != nil { + result["display"] = string(*obj.Display) + } + + if obj.Primary != nil { + result["primary"] = bool(*obj.Primary) + } + + if obj.Type != nil { + result["type"] = string(*obj.Type) + } + + if obj.Value != nil { + result["value"] = fmt.Sprintf("%v", *obj.Value) + } + + return result +} + +func (s *IdentityDomainsUserResourceCrud) mapToaddresses(fieldKeyFormat string) (oci_identity_domains.Addresses, error) { + result := oci_identity_domains.Addresses{} + + if country, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "country")); ok { + tmp := country.(string) + result.Country = &tmp + } + + if formatted, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "formatted")); ok { + tmp := formatted.(string) + result.Formatted = &tmp + } + + if locality, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "locality")); ok { + tmp := locality.(string) + result.Locality = &tmp + } + + if postalCode, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "postal_code")); ok { + tmp := postalCode.(string) + result.PostalCode = &tmp + } + + if primary, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "primary")); ok { + tmp := primary.(bool) + result.Primary = &tmp + } + + if region, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "region")); ok { + tmp := region.(string) + result.Region = &tmp + } + + if streetAddress, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "street_address")); ok { + tmp := streetAddress.(string) + result.StreetAddress = &tmp + } + + if type_, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "type")); ok { + result.Type = oci_identity_domains.AddressesTypeEnum(type_.(string)) + } + + return result, nil +} + +func addressesToMap(obj oci_identity_domains.Addresses) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Country != nil { + result["country"] = string(*obj.Country) + } + + if obj.Formatted != nil { + result["formatted"] = string(*obj.Formatted) + } + + if obj.Locality != nil { + result["locality"] = string(*obj.Locality) + } + + if obj.PostalCode != nil { + result["postal_code"] = string(*obj.PostalCode) + } + + if obj.Primary != nil { + result["primary"] = bool(*obj.Primary) + } + + if obj.Region != nil { + result["region"] = string(*obj.Region) + } + + if obj.StreetAddress != nil { + result["street_address"] = string(*obj.StreetAddress) + } + + result["type"] = string(obj.Type) + + return result +} + +func (s *IdentityDomainsUserResourceCrud) mapTofreeformTags(fieldKeyFormat string) (oci_identity_domains.FreeformTags, error) { + result := oci_identity_domains.FreeformTags{} + + if key, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "key")); ok { + tmp := key.(string) + result.Key = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func freeformTagsToMap(obj oci_identity_domains.FreeformTags) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Key != nil { + result["key"] = string(*obj.Key) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func idcsCreatedByToMap(obj *oci_identity_domains.IdcsCreatedBy) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Display != nil { + result["display"] = string(*obj.Display) + } + + if obj.Ocid != nil { + result["ocid"] = string(*obj.Ocid) + } + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + result["type"] = string(obj.Type) + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func idcsLastModifiedByToMap(obj *oci_identity_domains.IdcsLastModifiedBy) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Display != nil { + result["display"] = string(*obj.Display) + } + + if obj.Ocid != nil { + result["ocid"] = string(*obj.Ocid) + } + + if obj.Ref != nil { + result["ref"] = string(*obj.Ref) + } + + result["type"] = string(obj.Type) + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} + +func metaToMap(obj *oci_identity_domains.Meta) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Created != nil { + result["created"] = string(*obj.Created) + } + + if obj.LastModified != nil { + result["last_modified"] = string(*obj.LastModified) + } + + if obj.Location != nil { + result["location"] = string(*obj.Location) + } + + if obj.ResourceType != nil { + result["resource_type"] = string(*obj.ResourceType) + } + + if obj.Version != nil { + result["version"] = string(*obj.Version) + } + + return result +} + +func (s *IdentityDomainsUserResourceCrud) mapTotags(fieldKeyFormat string) (oci_identity_domains.Tags, error) { + result := oci_identity_domains.Tags{} + + if key, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "key")); ok { + tmp := key.(string) + result.Key = &tmp + } + + if value, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "value")); ok { + tmp := value.(string) + result.Value = &tmp + } + + return result, nil +} + +func tagsToMap(obj oci_identity_domains.Tags) map[string]interface{} { + result := map[string]interface{}{} + + if obj.Key != nil { + result["key"] = string(*obj.Key) + } + + if obj.Value != nil { + result["value"] = string(*obj.Value) + } + + return result +} diff --git a/internal/service/identity_domains/identity_domains_users_data_source.go b/internal/service/identity_domains/identity_domains_users_data_source.go new file mode 100644 index 00000000000..e1938e07c36 --- /dev/null +++ b/internal/service/identity_domains/identity_domains_users_data_source.go @@ -0,0 +1,227 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func IdentityDomainsUsersDataSource() *schema.Resource { + return &schema.Resource{ + Read: readIdentityDomainsUsers, + Schema: map[string]*schema.Schema{ + "idcs_endpoint": { + Type: schema.TypeString, + Required: true, + }, + "compartment_id": { + Type: schema.TypeString, + Optional: true, + }, + "user_count": { + Type: schema.TypeInt, + Optional: true, + }, + "user_filter": { + Type: schema.TypeString, + Optional: true, + }, + "attribute_sets": { + Type: schema.TypeList, + Optional: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "attributes": { + Type: schema.TypeString, + Optional: true, + }, + "authorization": { + Type: schema.TypeString, + Optional: true, + }, + "resource_type_schema_version": { + Type: schema.TypeString, + Optional: true, + }, + "start_index": { + Type: schema.TypeInt, + Optional: true, + }, + "sort_order": { + Type: schema.TypeString, + Optional: true, + }, + "sort_by": { + Type: schema.TypeString, + Optional: true, + }, + // Computed + "users": { + Type: schema.TypeList, + Computed: true, + Elem: tfresource.GetDataSourceItemSchema(IdentityDomainsUserResource()), + }, + "items_per_page": { + Type: schema.TypeInt, + Computed: true, + }, + "schemas": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + }, + }, + "total_results": { + Type: schema.TypeInt, + Computed: true, + }, + }, + } +} + +func readIdentityDomainsUsers(d *schema.ResourceData, m interface{}) error { + sync := &IdentityDomainsUsersDataSourceCrud{} + sync.D = d + idcsEndpoint, err := getIdcsEndpoint(d) + if err != nil { + return err + } + client, err := m.(*client.OracleClients).IdentityDomainsClientWithEndpoint(idcsEndpoint) + if err != nil { + return err + } + sync.Client = client + + return tfresource.ReadResource(sync) +} + +type IdentityDomainsUsersDataSourceCrud struct { + D *schema.ResourceData + Client *oci_identity_domains.IdentityDomainsClient + Res *oci_identity_domains.ListUsersResponse +} + +func (s *IdentityDomainsUsersDataSourceCrud) VoidState() { + s.D.SetId("") +} + +func (s *IdentityDomainsUsersDataSourceCrud) Get() error { + request := oci_identity_domains.ListUsersRequest{} + + if userCount, ok := s.D.GetOkExists("user_count"); ok { + tmp := userCount.(int) + request.Count = &tmp + } + + if userFilter, ok := s.D.GetOkExists("user_filter"); ok { + tmp := userFilter.(string) + request.Filter = &tmp + } + + if attributeSets, ok := s.D.GetOkExists("attribute_sets"); ok { + interfaces := attributeSets.([]interface{}) + tmp := make([]oci_identity_domains.AttributeSetsEnum, len(interfaces)) + for i := range interfaces { + if interfaces[i] != nil { + tmp[i] = oci_identity_domains.AttributeSetsEnum(interfaces[i].(string)) + } + } + if len(tmp) != 0 || s.D.HasChange("attribute_sets") { + request.AttributeSets = tmp + } + } + + if attributes, ok := s.D.GetOkExists("attributes"); ok { + tmp := attributes.(string) + request.Attributes = &tmp + } + + if authorization, ok := s.D.GetOkExists("authorization"); ok { + tmp := authorization.(string) + request.Authorization = &tmp + } + + if resourceTypeSchemaVersion, ok := s.D.GetOkExists("resource_type_schema_version"); ok { + tmp := resourceTypeSchemaVersion.(string) + request.ResourceTypeSchemaVersion = &tmp + } + + if startIndex, ok := s.D.GetOkExists("start_index"); ok { + tmp := startIndex.(int) + request.StartIndex = &tmp + } + + if sortOrder, ok := s.D.GetOkExists("sort_order"); ok { + tmp := oci_identity_domains.ListUsersSortOrderEnum(sortOrder.(string)) + request.SortOrder = tmp + } + + if sortBy, ok := s.D.GetOkExists("sort_by"); ok { + tmp := sortBy.(string) + request.SortBy = &tmp + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "identity_domains") + + response, err := s.Client.ListUsers(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response + // IDCS pagination + startIndex := *response.StartIndex + for startIndex+*response.ItemsPerPage <= *response.TotalResults { + startIndex += *response.ItemsPerPage + request.StartIndex = &startIndex + listResponse, err := s.Client.ListUsers(context.Background(), request) + if err != nil { + return err + } + + s.Res.Resources = append(s.Res.Resources, listResponse.Resources...) + } + + return nil +} + +func (s *IdentityDomainsUsersDataSourceCrud) SetData() error { + if s.Res == nil { + return nil + } + + s.D.SetId(tfresource.GenerateDataSourceHashID("IdentityDomainsUsersDataSource-", IdentityDomainsUsersDataSource(), s.D)) + + resources := []interface{}{} + for _, item := range s.Res.Resources { + resources = append(resources, UserToMap(item)) + } + s.D.Set("users", resources) + + if s.Res.ItemsPerPage != nil { + s.D.Set("items_per_page", *s.Res.ItemsPerPage) + } + + s.D.Set("schemas", s.Res.Schemas) + s.D.Set("schemas", s.Res.Schemas) + + if s.Res.StartIndex != nil { + s.D.Set("start_index", *s.Res.StartIndex) + } + + if s.Res.TotalResults != nil { + s.D.Set("total_results", *s.Res.TotalResults) + } + + return nil +} diff --git a/internal/service/identity_domains/identity_domains_util.go b/internal/service/identity_domains/identity_domains_util.go new file mode 100644 index 00000000000..4ed97f21f65 --- /dev/null +++ b/internal/service/identity_domains/identity_domains_util.go @@ -0,0 +1,65 @@ +package identity_domains + +import ( + "fmt" + "regexp" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" +) + +func GetIdentityDomainsCompositeId(idcsEndpoint string, resourceName string, resId string) string { + // e.g. idcsEndpoint/https://something.com/groups/{groupId} + return fmt.Sprintf("idcsEndpoint/%s/%s/%s", idcsEndpoint, resourceName, resId) +} + +func getIdcsEndpoint(d *schema.ResourceData) (string, error) { + endpoint, ok := d.GetOkExists("idcs_endpoint") + if !ok { + return "", fmt.Errorf("[ERROR] IdcsEndpointHelper: idcs_endpoint missing for resource. OCID:%s ID:%s", d.Get("ocid"), d.Id()) + } + return endpoint.(string), nil +} + +func getIdcsEndpointForRead(d *schema.ResourceData, resourceName string) (string, error) { + if endpoint, err := getIdcsEndpoint(d); err == nil { + return endpoint, nil + } + + // if failed, check if it's Import use case + var err error + var endpoint string + id := d.Id() + // compositeId format: idcsEndpoint/{idcsEndpoint}/{resource}/{groupId} + regex, _ := regexp.Compile("^idcsEndpoint/(.*)/" + resourceName + "/(.*)$") + tokens := regex.FindStringSubmatch(id) + + if len(tokens) == 3 { + endpoint = tokens[1] + // set resource idcs_endpoint and id + d.Set("idcs_endpoint", tokens[1]) + d.SetId(tokens[2]) + err = nil + } else { + err = fmt.Errorf("IdcsEndpointHelperForRead: idcs_endpoint missing. Format of id might be wrong. id: %s", id) + } + + if err != nil { + return "", err + } + + return endpoint, nil +} + +const identityDomainsCompositeIdRegexPattern = "^idcsEndpoint/(.*)/users/(.*)$" + +func tryMatchUserSubResFilter(value string) string { + var userId string + regex, _ := regexp.Compile(identityDomainsCompositeIdRegexPattern) + tokens := regex.FindStringSubmatch(value) + if len(tokens) == 3 { + userId = tokens[2] + return fmt.Sprintf("user.value eq \"%s\"", userId) + } + + return value +} diff --git a/internal/service/identity_domains/register_datasource.go b/internal/service/identity_domains/register_datasource.go new file mode 100644 index 00000000000..b465286d3fa --- /dev/null +++ b/internal/service/identity_domains/register_datasource.go @@ -0,0 +1,54 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import "github.com/oracle/terraform-provider-oci/internal/tfresource" + +func RegisterDatasource() { + tfresource.RegisterDatasource("oci_identity_domains_api_key", IdentityDomainsApiKeyDataSource()) + tfresource.RegisterDatasource("oci_identity_domains_api_keys", IdentityDomainsApiKeysDataSource()) + tfresource.RegisterDatasource("oci_identity_domains_auth_token", IdentityDomainsAuthTokenDataSource()) + tfresource.RegisterDatasource("oci_identity_domains_auth_tokens", IdentityDomainsAuthTokensDataSource()) + tfresource.RegisterDatasource("oci_identity_domains_authentication_factor_setting", IdentityDomainsAuthenticationFactorSettingDataSource()) + tfresource.RegisterDatasource("oci_identity_domains_authentication_factor_settings", IdentityDomainsAuthenticationFactorSettingsDataSource()) + tfresource.RegisterDatasource("oci_identity_domains_customer_secret_key", IdentityDomainsCustomerSecretKeyDataSource()) + tfresource.RegisterDatasource("oci_identity_domains_customer_secret_keys", IdentityDomainsCustomerSecretKeysDataSource()) + tfresource.RegisterDatasource("oci_identity_domains_dynamic_resource_group", IdentityDomainsDynamicResourceGroupDataSource()) + tfresource.RegisterDatasource("oci_identity_domains_dynamic_resource_groups", IdentityDomainsDynamicResourceGroupsDataSource()) + tfresource.RegisterDatasource("oci_identity_domains_group", IdentityDomainsGroupDataSource()) + tfresource.RegisterDatasource("oci_identity_domains_groups", IdentityDomainsGroupsDataSource()) + tfresource.RegisterDatasource("oci_identity_domains_identity_provider", IdentityDomainsIdentityProviderDataSource()) + tfresource.RegisterDatasource("oci_identity_domains_identity_providers", IdentityDomainsIdentityProvidersDataSource()) + tfresource.RegisterDatasource("oci_identity_domains_kmsi_setting", IdentityDomainsKmsiSettingDataSource()) + tfresource.RegisterDatasource("oci_identity_domains_kmsi_settings", IdentityDomainsKmsiSettingsDataSource()) + tfresource.RegisterDatasource("oci_identity_domains_my_api_key", IdentityDomainsMyApiKeyDataSource()) + tfresource.RegisterDatasource("oci_identity_domains_my_api_keys", IdentityDomainsMyApiKeysDataSource()) + tfresource.RegisterDatasource("oci_identity_domains_my_auth_token", IdentityDomainsMyAuthTokenDataSource()) + tfresource.RegisterDatasource("oci_identity_domains_my_auth_tokens", IdentityDomainsMyAuthTokensDataSource()) + tfresource.RegisterDatasource("oci_identity_domains_my_customer_secret_key", IdentityDomainsMyCustomerSecretKeyDataSource()) + tfresource.RegisterDatasource("oci_identity_domains_my_customer_secret_keys", IdentityDomainsMyCustomerSecretKeysDataSource()) + tfresource.RegisterDatasource("oci_identity_domains_my_device", IdentityDomainsMyDeviceDataSource()) + tfresource.RegisterDatasource("oci_identity_domains_my_devices", IdentityDomainsMyDevicesDataSource()) + tfresource.RegisterDatasource("oci_identity_domains_my_groups", IdentityDomainsMyGroupsDataSource()) + tfresource.RegisterDatasource("oci_identity_domains_my_oauth2client_credential", IdentityDomainsMyOAuth2ClientCredentialDataSource()) + tfresource.RegisterDatasource("oci_identity_domains_my_oauth2client_credentials", IdentityDomainsMyOAuth2ClientCredentialsDataSource()) + tfresource.RegisterDatasource("oci_identity_domains_my_smtp_credential", IdentityDomainsMySmtpCredentialDataSource()) + tfresource.RegisterDatasource("oci_identity_domains_my_smtp_credentials", IdentityDomainsMySmtpCredentialsDataSource()) + tfresource.RegisterDatasource("oci_identity_domains_my_support_account", IdentityDomainsMySupportAccountDataSource()) + tfresource.RegisterDatasource("oci_identity_domains_my_support_accounts", IdentityDomainsMySupportAccountsDataSource()) + tfresource.RegisterDatasource("oci_identity_domains_my_trusted_user_agent", IdentityDomainsMyTrustedUserAgentDataSource()) + tfresource.RegisterDatasource("oci_identity_domains_my_trusted_user_agents", IdentityDomainsMyTrustedUserAgentsDataSource()) + tfresource.RegisterDatasource("oci_identity_domains_my_user_db_credential", IdentityDomainsMyUserDbCredentialDataSource()) + tfresource.RegisterDatasource("oci_identity_domains_my_user_db_credentials", IdentityDomainsMyUserDbCredentialsDataSource()) + tfresource.RegisterDatasource("oci_identity_domains_oauth2client_credential", IdentityDomainsOAuth2ClientCredentialDataSource()) + tfresource.RegisterDatasource("oci_identity_domains_oauth2client_credentials", IdentityDomainsOAuth2ClientCredentialsDataSource()) + tfresource.RegisterDatasource("oci_identity_domains_password_policies", IdentityDomainsPasswordPoliciesDataSource()) + tfresource.RegisterDatasource("oci_identity_domains_password_policy", IdentityDomainsPasswordPolicyDataSource()) + tfresource.RegisterDatasource("oci_identity_domains_smtp_credential", IdentityDomainsSmtpCredentialDataSource()) + tfresource.RegisterDatasource("oci_identity_domains_smtp_credentials", IdentityDomainsSmtpCredentialsDataSource()) + tfresource.RegisterDatasource("oci_identity_domains_user", IdentityDomainsUserDataSource()) + tfresource.RegisterDatasource("oci_identity_domains_user_db_credential", IdentityDomainsUserDbCredentialDataSource()) + tfresource.RegisterDatasource("oci_identity_domains_user_db_credentials", IdentityDomainsUserDbCredentialsDataSource()) + tfresource.RegisterDatasource("oci_identity_domains_users", IdentityDomainsUsersDataSource()) +} diff --git a/internal/service/identity_domains/register_resource.go b/internal/service/identity_domains/register_resource.go new file mode 100644 index 00000000000..0224a79ef06 --- /dev/null +++ b/internal/service/identity_domains/register_resource.go @@ -0,0 +1,29 @@ +// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package identity_domains + +import "github.com/oracle/terraform-provider-oci/internal/tfresource" + +func RegisterResource() { + tfresource.RegisterResource("oci_identity_domains_api_key", IdentityDomainsApiKeyResource()) + tfresource.RegisterResource("oci_identity_domains_auth_token", IdentityDomainsAuthTokenResource()) + tfresource.RegisterResource("oci_identity_domains_authentication_factor_setting", IdentityDomainsAuthenticationFactorSettingResource()) + tfresource.RegisterResource("oci_identity_domains_customer_secret_key", IdentityDomainsCustomerSecretKeyResource()) + tfresource.RegisterResource("oci_identity_domains_dynamic_resource_group", IdentityDomainsDynamicResourceGroupResource()) + tfresource.RegisterResource("oci_identity_domains_group", IdentityDomainsGroupResource()) + tfresource.RegisterResource("oci_identity_domains_identity_provider", IdentityDomainsIdentityProviderResource()) + tfresource.RegisterResource("oci_identity_domains_kmsi_setting", IdentityDomainsKmsiSettingResource()) + tfresource.RegisterResource("oci_identity_domains_my_api_key", IdentityDomainsMyApiKeyResource()) + tfresource.RegisterResource("oci_identity_domains_my_auth_token", IdentityDomainsMyAuthTokenResource()) + tfresource.RegisterResource("oci_identity_domains_my_customer_secret_key", IdentityDomainsMyCustomerSecretKeyResource()) + tfresource.RegisterResource("oci_identity_domains_my_oauth2client_credential", IdentityDomainsMyOAuth2ClientCredentialResource()) + tfresource.RegisterResource("oci_identity_domains_my_smtp_credential", IdentityDomainsMySmtpCredentialResource()) + tfresource.RegisterResource("oci_identity_domains_my_support_account", IdentityDomainsMySupportAccountResource()) + tfresource.RegisterResource("oci_identity_domains_my_user_db_credential", IdentityDomainsMyUserDbCredentialResource()) + tfresource.RegisterResource("oci_identity_domains_oauth2client_credential", IdentityDomainsOAuth2ClientCredentialResource()) + tfresource.RegisterResource("oci_identity_domains_password_policy", IdentityDomainsPasswordPolicyResource()) + tfresource.RegisterResource("oci_identity_domains_smtp_credential", IdentityDomainsSmtpCredentialResource()) + tfresource.RegisterResource("oci_identity_domains_user", IdentityDomainsUserResource()) + tfresource.RegisterResource("oci_identity_domains_user_db_credential", IdentityDomainsUserDbCredentialResource()) +} diff --git a/website/docs/d/identity_domains_api_key.html.markdown b/website/docs/d/identity_domains_api_key.html.markdown new file mode 100644 index 00000000000..08357f6407b --- /dev/null +++ b/website/docs/d/identity_domains_api_key.html.markdown @@ -0,0 +1,481 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_api_key" +sidebar_current: "docs-oci-datasource-identity_domains-api_key" +description: |- + Provides details about a specific Api Key in Oracle Cloud Infrastructure Identity Domains service +--- + +# Data Source: oci_identity_domains_api_key +This data source provides details about a specific Api Key resource in Oracle Cloud Infrastructure Identity Domains service. + +Get user's api key + +## Example Usage + +```hcl +data "oci_identity_domains_api_key" "test_api_key" { + #Required + api_key_id = oci_identity_api_key.test_api_key.id + idcs_endpoint = data.oci_identity_domain.test_domain.url + + #Optional + attribute_sets = [] + attributes = "" + authorization = var.api_key_authorization + resource_type_schema_version = var.api_key_resource_type_schema_version +} +``` + +## Argument Reference + +The following arguments are supported: + +* `api_key_id` - (Required) ID of the resource +* `attribute_sets` - (Optional) A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. +* `attributes` - (Optional) A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + + +## Attributes Reference + +The following attributes are exported: + +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - Description + + **Added In:** 2101262133 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `fingerprint` - Fingerprint + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * type: string + * mutability: readOnly + * required: true + * returned: default +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `key` - Key + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: true + * idcsPii: true + * type: string + * mutability: immutable + * required: true + * returned: default +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionself_change_user` - Controls whether a user can update themselves or not via User related APIs + * `allow_self_change` - If true, allows requesting user to update themselves. If false, requesting user can't update themself (default). + + **Added In:** 2205182039 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: writeOnly + * required: false + * returned: never + * type: boolean + * uniqueness: none +* `user` - User linked to api key + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - User display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - User name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - User's ocid + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the user linked to this credential + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - User's id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + diff --git a/website/docs/d/identity_domains_api_keys.html.markdown b/website/docs/d/identity_domains_api_keys.html.markdown new file mode 100644 index 00000000000..5315d043416 --- /dev/null +++ b/website/docs/d/identity_domains_api_keys.html.markdown @@ -0,0 +1,491 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_api_keys" +sidebar_current: "docs-oci-datasource-identity_domains-api_keys" +description: |- + Provides the list of Api Keys in Oracle Cloud Infrastructure Identity Domains service +--- + +# Data Source: oci_identity_domains_api_keys +This data source provides the list of Api Keys in Oracle Cloud Infrastructure Identity Domains service. + +Search Api Key + +## Example Usage + +```hcl +data "oci_identity_domains_api_keys" "test_api_keys" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + + #Optional + api_key_count = var.api_key_api_key_count + api_key_filter = var.api_key_api_key_filter + attribute_sets = [] + attributes = "" + authorization = var.api_key_authorization + resource_type_schema_version = var.api_key_resource_type_schema_version + start_index = var.api_key_start_index +} +``` + +## Argument Reference + +The following arguments are supported: + +* `api_key_count` - (Optional) OPTIONAL. An integer that indicates the desired maximum number of query results per page. 1000 is the largest value that you can use. See the Pagination section of the System for Cross-Domain Identity Management Protocol specification for more information. (Section 3.4.2.4). +* `api_key_filter` - (Optional) OPTIONAL. The filter string that is used to request a subset of resources. The filter string MUST be a valid filter expression. See the Filtering section of the SCIM specification for more information (Section 3.4.2.2). The string should contain at least one condition that each item must match in order to be returned in the search results. Each condition specifies an attribute, an operator, and a value. Conditions within a filter can be connected by logical operators (such as AND and OR). Sets of conditions can be grouped together using parentheses. +* `attribute_sets` - (Optional) A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. +* `attributes` - (Optional) A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. +* `start_index` - (Optional) OPTIONAL. An integer that indicates the 1-based index of the first query result. See the Pagination section of the SCIM specification for more information. (Section 3.4.2.4). The number of results pages to return. The first page is 1. Specify 2 to access the second page of results, and so on. + + +## Attributes Reference + +The following attributes are exported: + +* `api_keys` - The list of api_keys. + +### ApiKey Reference + +The following attributes are exported: + +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - Description + + **Added In:** 2101262133 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `fingerprint` - Fingerprint + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * type: string + * mutability: readOnly + * required: true + * returned: default +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `key` - Key + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: true + * idcsPii: true + * type: string + * mutability: immutable + * required: true + * returned: default +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionself_change_user` - Controls whether a user can update themselves or not via User related APIs + * `allow_self_change` - If true, allows requesting user to update themselves. If false, requesting user can't update themself (default). + + **Added In:** 2205182039 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: writeOnly + * required: false + * returned: never + * type: boolean + * uniqueness: none +* `user` - User linked to api key + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - User display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - User name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - User's ocid + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the user linked to this credential + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - User's id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + diff --git a/website/docs/d/identity_domains_auth_token.html.markdown b/website/docs/d/identity_domains_auth_token.html.markdown new file mode 100644 index 00000000000..2fc26b9709d --- /dev/null +++ b/website/docs/d/identity_domains_auth_token.html.markdown @@ -0,0 +1,485 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_auth_token" +sidebar_current: "docs-oci-datasource-identity_domains-auth_token" +description: |- + Provides details about a specific Auth Token in Oracle Cloud Infrastructure Identity Domains service +--- + +# Data Source: oci_identity_domains_auth_token +This data source provides details about a specific Auth Token resource in Oracle Cloud Infrastructure Identity Domains service. + +Get user's auth token + +## Example Usage + +```hcl +data "oci_identity_domains_auth_token" "test_auth_token" { + #Required + auth_token_id = oci_identity_auth_token.test_auth_token.id + idcs_endpoint = data.oci_identity_domain.test_domain.url + + #Optional + attribute_sets = [] + attributes = "" + authorization = var.auth_token_authorization + resource_type_schema_version = var.auth_token_resource_type_schema_version +} +``` + +## Argument Reference + +The following arguments are supported: + +* `attribute_sets` - (Optional) A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. +* `attributes` - (Optional) A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. +* `auth_token_id` - (Required) ID of the resource +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + + +## Attributes Reference + +The following attributes are exported: + +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - Description + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `expires_on` - User credential expires on + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: dateTime + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `status` - User credential status + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: never + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionself_change_user` - Controls whether a user can update themselves or not via User related APIs + * `allow_self_change` - If true, allows requesting user to update themselves. If false, requesting user can't update themself (default). + + **Added In:** 2205182039 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: writeOnly + * required: false + * returned: never + * type: boolean + * uniqueness: none +* `user` - User linked to auth token + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - User display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - User name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - User's ocid + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the user linked to this credential + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - User's id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + diff --git a/website/docs/d/identity_domains_auth_tokens.html.markdown b/website/docs/d/identity_domains_auth_tokens.html.markdown new file mode 100644 index 00000000000..09bb6b0afc6 --- /dev/null +++ b/website/docs/d/identity_domains_auth_tokens.html.markdown @@ -0,0 +1,495 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_auth_tokens" +sidebar_current: "docs-oci-datasource-identity_domains-auth_tokens" +description: |- + Provides the list of Auth Tokens in Oracle Cloud Infrastructure Identity Domains service +--- + +# Data Source: oci_identity_domains_auth_tokens +This data source provides the list of Auth Tokens in Oracle Cloud Infrastructure Identity Domains service. + +Search AuthTokens + +## Example Usage + +```hcl +data "oci_identity_domains_auth_tokens" "test_auth_tokens" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + + #Optional + auth_token_count = var.auth_token_auth_token_count + auth_token_filter = var.auth_token_auth_token_filter + attribute_sets = [] + attributes = "" + authorization = var.auth_token_authorization + resource_type_schema_version = var.auth_token_resource_type_schema_version + start_index = var.auth_token_start_index +} +``` + +## Argument Reference + +The following arguments are supported: + +* `auth_token_count` - (Optional) OPTIONAL. An integer that indicates the desired maximum number of query results per page. 1000 is the largest value that you can use. See the Pagination section of the System for Cross-Domain Identity Management Protocol specification for more information. (Section 3.4.2.4). +* `auth_token_filter` - (Optional) OPTIONAL. The filter string that is used to request a subset of resources. The filter string MUST be a valid filter expression. See the Filtering section of the SCIM specification for more information (Section 3.4.2.2). The string should contain at least one condition that each item must match in order to be returned in the search results. Each condition specifies an attribute, an operator, and a value. Conditions within a filter can be connected by logical operators (such as AND and OR). Sets of conditions can be grouped together using parentheses. +* `attribute_sets` - (Optional) A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. +* `attributes` - (Optional) A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. +* `start_index` - (Optional) OPTIONAL. An integer that indicates the 1-based index of the first query result. See the Pagination section of the SCIM specification for more information. (Section 3.4.2.4). The number of results pages to return. The first page is 1. Specify 2 to access the second page of results, and so on. + + +## Attributes Reference + +The following attributes are exported: + +* `auth_tokens` - The list of auth_tokens. + +### AuthToken Reference + +The following attributes are exported: + +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - Description + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `expires_on` - User credential expires on + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: dateTime + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `status` - User credential status + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: never + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionself_change_user` - Controls whether a user can update themselves or not via User related APIs + * `allow_self_change` - If true, allows requesting user to update themselves. If false, requesting user can't update themself (default). + + **Added In:** 2205182039 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: writeOnly + * required: false + * returned: never + * type: boolean + * uniqueness: none +* `user` - User linked to auth token + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - User display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - User name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - User's ocid + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the user linked to this credential + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - User's id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + diff --git a/website/docs/d/identity_domains_authentication_factor_setting.html.markdown b/website/docs/d/identity_domains_authentication_factor_setting.html.markdown new file mode 100644 index 00000000000..18f838d3aac --- /dev/null +++ b/website/docs/d/identity_domains_authentication_factor_setting.html.markdown @@ -0,0 +1,1329 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_authentication_factor_setting" +sidebar_current: "docs-oci-datasource-identity_domains-authentication_factor_setting" +description: |- + Provides details about a specific Authentication Factor Setting in Oracle Cloud Infrastructure Identity Domains service +--- + +# Data Source: oci_identity_domains_authentication_factor_setting +This data source provides details about a specific Authentication Factor Setting resource in Oracle Cloud Infrastructure Identity Domains service. + +Get Authentication Factor Settings + +## Example Usage + +```hcl +data "oci_identity_domains_authentication_factor_setting" "test_authentication_factor_setting" { + #Required + authentication_factor_setting_id = oci_identity_domains_authentication_factor_setting.test_authentication_factor_setting.id + idcs_endpoint = data.oci_identity_domain.test_domain.url + + #Optional + attribute_sets = [] + attributes = "" + authorization = var.authentication_factor_setting_authorization + resource_type_schema_version = var.authentication_factor_setting_resource_type_schema_version +} +``` + +## Argument Reference + +The following arguments are supported: + +* `attribute_sets` - (Optional) A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. +* `attributes` - (Optional) A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. +* `authentication_factor_setting_id` - (Required) ID of the resource +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + + +## Attributes Reference + +The following attributes are exported: + +* `auto_enroll_email_factor_disabled` - If true, indicates that email will not be enrolled as a MFA factor automatically if it a account recovery factor + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `bypass_code_enabled` - If true, indicates that Bypass Code is enabled for authentication + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none +* `bypass_code_settings` - Settings related to the bypass code, such as bypass code length, bypass code expiry, max active bypass codes, and so on + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: complex + * uniqueness: none + * `help_desk_code_expiry_in_mins` - Expiry (in minutes) of any bypass code that is generated by the help desk + + **SCIM++ Properties:** + * idcsMaxValue: 9999999 + * idcsMinValue: 1 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `help_desk_generation_enabled` - If true, indicates that help desk bypass code generation is enabled + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none + * `help_desk_max_usage` - The maximum number of times that any bypass code that is generated by the help desk can be used + + **SCIM++ Properties:** + * idcsMaxValue: 999 + * idcsMinValue: 1 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `length` - Exact length of the bypass code to be generated + + **SCIM++ Properties:** + * idcsMaxValue: 20 + * idcsMinValue: 8 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `max_active` - The maximum number of bypass codes that can be issued to any user + + **SCIM++ Properties:** + * idcsMaxValue: 6 + * idcsMinValue: 1 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `self_service_generation_enabled` - If true, indicates that self-service bypass code generation is enabled + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none +* `client_app_settings` - Settings related to compliance, Personal Identification Number (PIN) policy, and so on + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: complex + * uniqueness: none + * `device_protection_policy` - Indicates what protection policy that the system applies on a device. By default, the value is NONE, which indicates that the system applies no protection policy. A value of APP_PIN indicates that the system requires a Personal Identification Number (PIN). A value of DEVICE_BIOMETRIC_OR_APP_PIN indicates that either a PIN or a biometric authentication factor is required. + + **SCIM++ Properties:** + * idcsCanonicalValueSourceFilter: attrName eq "deviceProtectionPolicy" and attrValues.value eq "$(deviceProtectionPolicy)" + * idcsCanonicalValueSourceResourceType: AllowedValue + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `initial_lockout_period_in_secs` - The period of time in seconds that the system will lock a user out of the service after that user exceeds the maximum number of login failures + + **SCIM++ Properties:** + * idcsMaxValue: 86400 + * idcsMinValue: 30 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `key_pair_length` - The size of the key that the system uses to generate the public-private key pair + + **SCIM++ Properties:** + * idcsMaxValue: 4000 + * idcsMinValue: 32 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `lockout_escalation_pattern` - The pattern of escalation that the system follows, in locking a particular user out of the service. + + **SCIM++ Properties:** + * idcsCanonicalValueSourceFilter: attrName eq "lockoutEscalationPattern" and attrValues.value eq "$(lockoutEscalationPattern)" + * idcsCanonicalValueSourceResourceType: AllowedValue + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `max_failures_before_lockout` - The maximum number of times that a particular user can fail to login before the system locks that user out of the service + + **SCIM++ Properties:** + * idcsMaxValue: 10 + * idcsMinValue: 5 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `max_failures_before_warning` - The maximum number of login failures that the system will allow before raising a warning and sending an alert via email + + **SCIM++ Properties:** + * idcsMaxValue: 10 + * idcsMinValue: 0 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `max_lockout_interval_in_secs` - The maximum period of time that the system will lock a particular user out of the service regardless of what the configured pattern of escalation would otherwise dictate + + **SCIM++ Properties:** + * idcsMaxValue: 86400 + * idcsMinValue: 30 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `min_pin_length` - Minimum length of the Personal Identification Number (PIN) + + **SCIM++ Properties:** + * idcsMaxValue: 10 + * idcsMinValue: 6 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `policy_update_freq_in_days` - The period of time in days after which a client should refresh its policy by re-reading that policy from the server + + **SCIM++ Properties:** + * idcsMaxValue: 999 + * idcsMinValue: 1 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `request_signing_algo` - Indicates which algorithm the system will use to sign requests + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `shared_secret_encoding` - Indicates the type of encoding that the system should use to generate a shared secret + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `unlock_app_for_each_request_enabled` - If true, indicates that the system should require the user to unlock the client app for each request. In order to unlock the App, the user must supply a Personal Identification Number (PIN) or a biometric authentication-factor. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none + * `unlock_app_interval_in_secs` - Specifies the period of time in seconds after which the client App should require the user to unlock the App. In order to unlock the App, the user must supply a Personal Identification Number (PIN) or a biometric authentication-factor. A value of zero means that it is disabled. + + **SCIM++ Properties:** + * idcsMaxValue: 9999999 + * idcsMinValue: 0 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `unlock_on_app_foreground_enabled` - If true, indicates that the system should require the user to unlock the client App, when the client App comes to the foreground in the display of the device. In order to unlock the App, the user must supply a Personal Identification Number (PIN) or a biometric authentication-factor. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none + * `unlock_on_app_start_enabled` - If true, indicates that the system should require the user to unlock the client App whenever the App is started. In order to unlock the App, the user must supply a Personal Identification Number (PIN) or a biometric authentication-factor. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `compliance_policy` - Compliance Policy that defines actions to be taken when a condition is violated + + **SCIM++ Properties:** + * idcsCompositeKey: [name] + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: complex + * uniqueness: none + * `action` - The action to be taken if the value of the attribute is not as expected + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `name` - The name of the attribute being evaluated + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - The value of the attribute to be evaluated + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `email_enabled` - If true, indicates that the EMAIL channel is enabled for authentication + + **Added In:** 18.1.2 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `email_settings` - Settings related to Email Factor, such as enabled email magic link factor, custom url for Email Link + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `email_link_custom_url` - Custom redirect Url which will be used in email link + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `email_link_enabled` - Specifies whether Email link is enabled or not. + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none +* `endpoint_restrictions` - Settings that describe the set of restrictions that the system should apply to devices and trusted endpoints of a user + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: complex + * uniqueness: none + * `max_endpoint_trust_duration_in_days` - Maximum number of days until an endpoint can be trusted + + **SCIM++ Properties:** + * idcsMaxValue: 180 + * idcsMinValue: 1 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `max_enrolled_devices` - Maximum number of enrolled devices per user + + **SCIM++ Properties:** + * idcsMaxValue: 20 + * idcsMinValue: 1 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `max_incorrect_attempts` - An integer that represents the maximum number of failed MFA logins before an account is locked + + **SCIM++ Properties:** + * idcsMaxValue: 20 + * idcsMinValue: 5 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `max_trusted_endpoints` - Max number of trusted endpoints per user + + **SCIM++ Properties:** + * idcsMaxValue: 20 + * idcsMinValue: 1 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `trusted_endpoints_enabled` - Specify if trusted endpoints are enabled + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none +* `fido_authenticator_enabled` - If true, indicates that the Fido Authenticator channels are enabled for authentication + + **Added In:** 2009232244 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `hide_backup_factor_enabled` - If true, indicates that 'Show backup factor(s)' button will be hidden during authentication + + **Added In:** 19.3.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `identity_store_settings` - Settings related to the use of a user's profile details from the identity store + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `mobile_number_enabled` - If true, indicates that Multi-Factor Authentication should use the mobile number in the identity store + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `mobile_number_update_enabled` - If true, indicates that the user can update the mobile number in the user's Multi-Factor Authentication profile + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `mfa_enabled_category` - Specifies the category of people for whom Multi-Factor Authentication is enabled. This is a readOnly attribute which reflects the value of mfaEnabledCategory attribute in SsoSettings + + **Deprecated Since: 18.1.2** + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `mfa_enrollment_type` - Specifies if Multi-Factor Authentication enrollment is mandatory or optional for a user + + **Deprecated Since: 18.1.2** + + **SCIM++ Properties:** + * idcsCanonicalValueSourceFilter: attrName eq "mfaEnrollmentType" and attrValues.value eq "$(mfaEnrollmentType)" + * idcsCanonicalValueSourceResourceType: AllowedValue + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `notification_settings` - Settings related to the Mobile App Notification channel, such as pull + + **Added In:** 17.4.2 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: complex + * uniqueness: none + * `pull_enabled` - If true, indicates that the Mobile App Pull Notification channel is enabled for authentication + + **Added In:** 17.4.2 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `phone_call_enabled` - If true, indicates that the phone (PHONE_CALL) channel is enabled for authentication + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `push_enabled` - If true, indicates that the Mobile App Push Notification channel is enabled for authentication + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `security_questions_enabled` - If true, indicates that Security Questions are enabled for authentication + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none +* `sms_enabled` - If true, indicates that the Short Message Service (SMS) channel is enabled for authentication + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `third_party_factor` - Settings related to third-party factor + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `duo_security` - To enable Duo Security factor + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none +* `totp_enabled` - If true, indicates that the Mobile App One Time Passcode channel is enabled for authentication + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none +* `totp_settings` - Settings related to Time-Based One-Time Passcodes (TOTP), such as hashing algo, totp time step, passcode length, and so on + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: complex + * uniqueness: none + * `email_otp_validity_duration_in_mins` - The period of time (in minutes) that a one-time passcode remains valid that the system sends by email. + + **Added In:** 18.1.2 + + **SCIM++ Properties:** + * idcsMaxValue: 60 + * idcsMinValue: 2 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `email_passcode_length` - Exact length of the email one-time passcode. + + **Added In:** 18.1.2 + + **SCIM++ Properties:** + * idcsMaxValue: 10 + * idcsMinValue: 4 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `hashing_algorithm` - The hashing algorithm to be used to calculate a One-Time Passcode. By default, the system uses SHA1. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `jwt_validity_duration_in_secs` - The period of time (in seconds) that a JSON Web Token (JWT) is valid + + **SCIM++ Properties:** + * idcsMaxValue: 99999 + * idcsMinValue: 30 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `key_refresh_interval_in_days` - The duration of time (in days) after which the shared secret has to be refreshed + + **SCIM++ Properties:** + * idcsMaxValue: 999 + * idcsMinValue: 30 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `passcode_length` - Exact length of the One-Time Passcode that the system should generate + + **SCIM++ Properties:** + * idcsMaxValue: 10 + * idcsMinValue: 4 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `sms_otp_validity_duration_in_mins` - The period of time (in minutes) for which a One-Time Passcode that the system sends by Short Message Service (SMS) or by voice remains valid + + **SCIM++ Properties:** + * idcsMaxValue: 60 + * idcsMinValue: 2 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `sms_passcode_length` - Exact length of the Short Message Service (SMS) One-Time Passcode + + **SCIM++ Properties:** + * idcsMaxValue: 10 + * idcsMinValue: 4 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `time_step_in_secs` - Time (in secs) to be used as the time step + + **SCIM++ Properties:** + * idcsMaxValue: 300 + * idcsMinValue: 30 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `time_step_tolerance` - The tolerance/step-size that the system should use when validating a One-Time Passcode + + **SCIM++ Properties:** + * idcsMaxValue: 3 + * idcsMinValue: 2 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings` - This extension defines attributes used to manage Multi-Factor Authentication settings of fido authentication + * `attestation` - Attribute used to define the type of attestation required. + + **Added In:** 2009232244 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `authenticator_selection_attachment` - Attribute used to define authenticator selection attachment. + + **Added In:** 2009232244 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `authenticator_selection_require_resident_key` - Flag used to indicate authenticator selection is required or not + + **Added In:** 2009232244 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none + * `authenticator_selection_resident_key` - Attribute used to define authenticator selection resident key requirement. + + **Added In:** 2009232244 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `authenticator_selection_user_verification` - Attribute used to define authenticator selection verification. + + **Added In:** 2009232244 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `domain_validation_level` - Number of domain levels IDCS should use for origin comparision + + **Added In:** 2109020413 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * idcsMaxValue: 2 + * idcsMinValue: 0 + * required: false + * returned: default + * type: integer + * uniqueness: none + * `exclude_credentials` - Flag used to indicate whether we need to restrict creation of multiple credentials in same authenticator + + **Added In:** 2009232244 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none + * `public_key_types` - List of server supported public key algorithms + + **Added In:** 2009232244 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `timeout` - Timeout for the fido authentication to complete + + **Added In:** 2009232244 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * idcsMaxValue: 600000 + * idcsMinValue: 10000 + * required: true + * returned: default + * type: integer + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionthird_party_authentication_factor_settings` - This extension defines attributes used to manage Multi-Factor Authentication settings of third party provider + * `duo_security_settings` - Settings related to Duo Security + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `api_hostname` - Hostname to access the Duo security account + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `attestation_key` - Attestation key to attest the request and response between Duo Security + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: never + * type: string + * uniqueness: none + * `integration_key` - Integration key from Duo Security authenticator + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `secret_key` - Secret key from Duo Security authenticator + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `user_mapping_attribute` - User attribute mapping value + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `user_enrollment_disabled_factors` - Factors for which enrollment should be blocked for End User + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `yubico_otp_enabled` - If true, indicates that the Yubico OTP is enabled for authentication + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + diff --git a/website/docs/d/identity_domains_authentication_factor_settings.html.markdown b/website/docs/d/identity_domains_authentication_factor_settings.html.markdown new file mode 100644 index 00000000000..eb10a46c0ca --- /dev/null +++ b/website/docs/d/identity_domains_authentication_factor_settings.html.markdown @@ -0,0 +1,1333 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_authentication_factor_settings" +sidebar_current: "docs-oci-datasource-identity_domains-authentication_factor_settings" +description: |- + Provides the list of Authentication Factor Settings in Oracle Cloud Infrastructure Identity Domains service +--- + +# Data Source: oci_identity_domains_authentication_factor_settings +This data source provides the list of Authentication Factor Settings in Oracle Cloud Infrastructure Identity Domains service. + +Search Authentication Factor Settings + +## Example Usage + +```hcl +data "oci_identity_domains_authentication_factor_settings" "test_authentication_factor_settings" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + + #Optional + attribute_sets = [] + attributes = "" + authorization = var.authentication_factor_setting_authorization + resource_type_schema_version = var.authentication_factor_setting_resource_type_schema_version +} +``` + +## Argument Reference + +The following arguments are supported: + +* `attribute_sets` - (Optional) A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. +* `attributes` - (Optional) A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + + +## Attributes Reference + +The following attributes are exported: + +* `authentication_factor_settings` - The list of authentication_factor_settings. + +### AuthenticationFactorSetting Reference + +The following attributes are exported: + +* `auto_enroll_email_factor_disabled` - If true, indicates that email will not be enrolled as a MFA factor automatically if it a account recovery factor + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `bypass_code_enabled` - If true, indicates that Bypass Code is enabled for authentication + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none +* `bypass_code_settings` - Settings related to the bypass code, such as bypass code length, bypass code expiry, max active bypass codes, and so on + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: complex + * uniqueness: none + * `help_desk_code_expiry_in_mins` - Expiry (in minutes) of any bypass code that is generated by the help desk + + **SCIM++ Properties:** + * idcsMaxValue: 9999999 + * idcsMinValue: 1 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `help_desk_generation_enabled` - If true, indicates that help desk bypass code generation is enabled + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none + * `help_desk_max_usage` - The maximum number of times that any bypass code that is generated by the help desk can be used + + **SCIM++ Properties:** + * idcsMaxValue: 999 + * idcsMinValue: 1 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `length` - Exact length of the bypass code to be generated + + **SCIM++ Properties:** + * idcsMaxValue: 20 + * idcsMinValue: 8 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `max_active` - The maximum number of bypass codes that can be issued to any user + + **SCIM++ Properties:** + * idcsMaxValue: 6 + * idcsMinValue: 1 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `self_service_generation_enabled` - If true, indicates that self-service bypass code generation is enabled + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none +* `client_app_settings` - Settings related to compliance, Personal Identification Number (PIN) policy, and so on + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: complex + * uniqueness: none + * `device_protection_policy` - Indicates what protection policy that the system applies on a device. By default, the value is NONE, which indicates that the system applies no protection policy. A value of APP_PIN indicates that the system requires a Personal Identification Number (PIN). A value of DEVICE_BIOMETRIC_OR_APP_PIN indicates that either a PIN or a biometric authentication factor is required. + + **SCIM++ Properties:** + * idcsCanonicalValueSourceFilter: attrName eq "deviceProtectionPolicy" and attrValues.value eq "$(deviceProtectionPolicy)" + * idcsCanonicalValueSourceResourceType: AllowedValue + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `initial_lockout_period_in_secs` - The period of time in seconds that the system will lock a user out of the service after that user exceeds the maximum number of login failures + + **SCIM++ Properties:** + * idcsMaxValue: 86400 + * idcsMinValue: 30 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `key_pair_length` - The size of the key that the system uses to generate the public-private key pair + + **SCIM++ Properties:** + * idcsMaxValue: 4000 + * idcsMinValue: 32 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `lockout_escalation_pattern` - The pattern of escalation that the system follows, in locking a particular user out of the service. + + **SCIM++ Properties:** + * idcsCanonicalValueSourceFilter: attrName eq "lockoutEscalationPattern" and attrValues.value eq "$(lockoutEscalationPattern)" + * idcsCanonicalValueSourceResourceType: AllowedValue + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `max_failures_before_lockout` - The maximum number of times that a particular user can fail to login before the system locks that user out of the service + + **SCIM++ Properties:** + * idcsMaxValue: 10 + * idcsMinValue: 5 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `max_failures_before_warning` - The maximum number of login failures that the system will allow before raising a warning and sending an alert via email + + **SCIM++ Properties:** + * idcsMaxValue: 10 + * idcsMinValue: 0 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `max_lockout_interval_in_secs` - The maximum period of time that the system will lock a particular user out of the service regardless of what the configured pattern of escalation would otherwise dictate + + **SCIM++ Properties:** + * idcsMaxValue: 86400 + * idcsMinValue: 30 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `min_pin_length` - Minimum length of the Personal Identification Number (PIN) + + **SCIM++ Properties:** + * idcsMaxValue: 10 + * idcsMinValue: 6 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `policy_update_freq_in_days` - The period of time in days after which a client should refresh its policy by re-reading that policy from the server + + **SCIM++ Properties:** + * idcsMaxValue: 999 + * idcsMinValue: 1 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `request_signing_algo` - Indicates which algorithm the system will use to sign requests + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `shared_secret_encoding` - Indicates the type of encoding that the system should use to generate a shared secret + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `unlock_app_for_each_request_enabled` - If true, indicates that the system should require the user to unlock the client app for each request. In order to unlock the App, the user must supply a Personal Identification Number (PIN) or a biometric authentication-factor. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none + * `unlock_app_interval_in_secs` - Specifies the period of time in seconds after which the client App should require the user to unlock the App. In order to unlock the App, the user must supply a Personal Identification Number (PIN) or a biometric authentication-factor. A value of zero means that it is disabled. + + **SCIM++ Properties:** + * idcsMaxValue: 9999999 + * idcsMinValue: 0 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `unlock_on_app_foreground_enabled` - If true, indicates that the system should require the user to unlock the client App, when the client App comes to the foreground in the display of the device. In order to unlock the App, the user must supply a Personal Identification Number (PIN) or a biometric authentication-factor. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none + * `unlock_on_app_start_enabled` - If true, indicates that the system should require the user to unlock the client App whenever the App is started. In order to unlock the App, the user must supply a Personal Identification Number (PIN) or a biometric authentication-factor. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `compliance_policy` - Compliance Policy that defines actions to be taken when a condition is violated + + **SCIM++ Properties:** + * idcsCompositeKey: [name] + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: complex + * uniqueness: none + * `action` - The action to be taken if the value of the attribute is not as expected + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `name` - The name of the attribute being evaluated + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - The value of the attribute to be evaluated + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `email_enabled` - If true, indicates that the EMAIL channel is enabled for authentication + + **Added In:** 18.1.2 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `email_settings` - Settings related to Email Factor, such as enabled email magic link factor, custom url for Email Link + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `email_link_custom_url` - Custom redirect Url which will be used in email link + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `email_link_enabled` - Specifies whether Email link is enabled or not. + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none +* `endpoint_restrictions` - Settings that describe the set of restrictions that the system should apply to devices and trusted endpoints of a user + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: complex + * uniqueness: none + * `max_endpoint_trust_duration_in_days` - Maximum number of days until an endpoint can be trusted + + **SCIM++ Properties:** + * idcsMaxValue: 180 + * idcsMinValue: 1 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `max_enrolled_devices` - Maximum number of enrolled devices per user + + **SCIM++ Properties:** + * idcsMaxValue: 20 + * idcsMinValue: 1 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `max_incorrect_attempts` - An integer that represents the maximum number of failed MFA logins before an account is locked + + **SCIM++ Properties:** + * idcsMaxValue: 20 + * idcsMinValue: 5 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `max_trusted_endpoints` - Max number of trusted endpoints per user + + **SCIM++ Properties:** + * idcsMaxValue: 20 + * idcsMinValue: 1 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `trusted_endpoints_enabled` - Specify if trusted endpoints are enabled + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none +* `fido_authenticator_enabled` - If true, indicates that the Fido Authenticator channels are enabled for authentication + + **Added In:** 2009232244 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `hide_backup_factor_enabled` - If true, indicates that 'Show backup factor(s)' button will be hidden during authentication + + **Added In:** 19.3.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `identity_store_settings` - Settings related to the use of a user's profile details from the identity store + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `mobile_number_enabled` - If true, indicates that Multi-Factor Authentication should use the mobile number in the identity store + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `mobile_number_update_enabled` - If true, indicates that the user can update the mobile number in the user's Multi-Factor Authentication profile + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `mfa_enabled_category` - Specifies the category of people for whom Multi-Factor Authentication is enabled. This is a readOnly attribute which reflects the value of mfaEnabledCategory attribute in SsoSettings + + **Deprecated Since: 18.1.2** + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `mfa_enrollment_type` - Specifies if Multi-Factor Authentication enrollment is mandatory or optional for a user + + **Deprecated Since: 18.1.2** + + **SCIM++ Properties:** + * idcsCanonicalValueSourceFilter: attrName eq "mfaEnrollmentType" and attrValues.value eq "$(mfaEnrollmentType)" + * idcsCanonicalValueSourceResourceType: AllowedValue + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `notification_settings` - Settings related to the Mobile App Notification channel, such as pull + + **Added In:** 17.4.2 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: complex + * uniqueness: none + * `pull_enabled` - If true, indicates that the Mobile App Pull Notification channel is enabled for authentication + + **Added In:** 17.4.2 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `phone_call_enabled` - If true, indicates that the phone (PHONE_CALL) channel is enabled for authentication + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `push_enabled` - If true, indicates that the Mobile App Push Notification channel is enabled for authentication + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `security_questions_enabled` - If true, indicates that Security Questions are enabled for authentication + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none +* `sms_enabled` - If true, indicates that the Short Message Service (SMS) channel is enabled for authentication + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `third_party_factor` - Settings related to third-party factor + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `duo_security` - To enable Duo Security factor + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none +* `totp_enabled` - If true, indicates that the Mobile App One Time Passcode channel is enabled for authentication + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none +* `totp_settings` - Settings related to Time-Based One-Time Passcodes (TOTP), such as hashing algo, totp time step, passcode length, and so on + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: complex + * uniqueness: none + * `email_otp_validity_duration_in_mins` - The period of time (in minutes) that a one-time passcode remains valid that the system sends by email. + + **Added In:** 18.1.2 + + **SCIM++ Properties:** + * idcsMaxValue: 60 + * idcsMinValue: 2 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `email_passcode_length` - Exact length of the email one-time passcode. + + **Added In:** 18.1.2 + + **SCIM++ Properties:** + * idcsMaxValue: 10 + * idcsMinValue: 4 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `hashing_algorithm` - The hashing algorithm to be used to calculate a One-Time Passcode. By default, the system uses SHA1. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `jwt_validity_duration_in_secs` - The period of time (in seconds) that a JSON Web Token (JWT) is valid + + **SCIM++ Properties:** + * idcsMaxValue: 99999 + * idcsMinValue: 30 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `key_refresh_interval_in_days` - The duration of time (in days) after which the shared secret has to be refreshed + + **SCIM++ Properties:** + * idcsMaxValue: 999 + * idcsMinValue: 30 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `passcode_length` - Exact length of the One-Time Passcode that the system should generate + + **SCIM++ Properties:** + * idcsMaxValue: 10 + * idcsMinValue: 4 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `sms_otp_validity_duration_in_mins` - The period of time (in minutes) for which a One-Time Passcode that the system sends by Short Message Service (SMS) or by voice remains valid + + **SCIM++ Properties:** + * idcsMaxValue: 60 + * idcsMinValue: 2 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `sms_passcode_length` - Exact length of the Short Message Service (SMS) One-Time Passcode + + **SCIM++ Properties:** + * idcsMaxValue: 10 + * idcsMinValue: 4 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `time_step_in_secs` - Time (in secs) to be used as the time step + + **SCIM++ Properties:** + * idcsMaxValue: 300 + * idcsMinValue: 30 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `time_step_tolerance` - The tolerance/step-size that the system should use when validating a One-Time Passcode + + **SCIM++ Properties:** + * idcsMaxValue: 3 + * idcsMinValue: 2 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings` - This extension defines attributes used to manage Multi-Factor Authentication settings of fido authentication + * `attestation` - Attribute used to define the type of attestation required. + + **Added In:** 2009232244 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `authenticator_selection_attachment` - Attribute used to define authenticator selection attachment. + + **Added In:** 2009232244 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `authenticator_selection_require_resident_key` - Flag used to indicate authenticator selection is required or not + + **Added In:** 2009232244 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none + * `authenticator_selection_resident_key` - Attribute used to define authenticator selection resident key requirement. + + **Added In:** 2009232244 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `authenticator_selection_user_verification` - Attribute used to define authenticator selection verification. + + **Added In:** 2009232244 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `domain_validation_level` - Number of domain levels IDCS should use for origin comparision + + **Added In:** 2109020413 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * idcsMaxValue: 2 + * idcsMinValue: 0 + * required: false + * returned: default + * type: integer + * uniqueness: none + * `exclude_credentials` - Flag used to indicate whether we need to restrict creation of multiple credentials in same authenticator + + **Added In:** 2009232244 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none + * `public_key_types` - List of server supported public key algorithms + + **Added In:** 2009232244 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `timeout` - Timeout for the fido authentication to complete + + **Added In:** 2009232244 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * idcsMaxValue: 600000 + * idcsMinValue: 10000 + * required: true + * returned: default + * type: integer + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionthird_party_authentication_factor_settings` - This extension defines attributes used to manage Multi-Factor Authentication settings of third party provider + * `duo_security_settings` - Settings related to Duo Security + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `api_hostname` - Hostname to access the Duo security account + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `attestation_key` - Attestation key to attest the request and response between Duo Security + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: never + * type: string + * uniqueness: none + * `integration_key` - Integration key from Duo Security authenticator + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `secret_key` - Secret key from Duo Security authenticator + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `user_mapping_attribute` - User attribute mapping value + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `user_enrollment_disabled_factors` - Factors for which enrollment should be blocked for End User + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `yubico_otp_enabled` - If true, indicates that the Yubico OTP is enabled for authentication + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + diff --git a/website/docs/d/identity_domains_customer_secret_key.html.markdown b/website/docs/d/identity_domains_customer_secret_key.html.markdown new file mode 100644 index 00000000000..7569af4d52c --- /dev/null +++ b/website/docs/d/identity_domains_customer_secret_key.html.markdown @@ -0,0 +1,499 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_customer_secret_key" +sidebar_current: "docs-oci-datasource-identity_domains-customer_secret_key" +description: |- + Provides details about a specific Customer Secret Key in Oracle Cloud Infrastructure Identity Domains service +--- + +# Data Source: oci_identity_domains_customer_secret_key +This data source provides details about a specific Customer Secret Key resource in Oracle Cloud Infrastructure Identity Domains service. + +Get user's customer secret key + +## Example Usage + +```hcl +data "oci_identity_domains_customer_secret_key" "test_customer_secret_key" { + #Required + customer_secret_key_id = oci_identity_customer_secret_key.test_customer_secret_key.id + idcs_endpoint = data.oci_identity_domain.test_domain.url + + #Optional + attribute_sets = [] + attributes = "" + authorization = var.customer_secret_key_authorization + resource_type_schema_version = var.customer_secret_key_resource_type_schema_version +} +``` + +## Argument Reference + +The following arguments are supported: + +* `attribute_sets` - (Optional) A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. +* `attributes` - (Optional) A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `customer_secret_key_id` - (Required) ID of the resource +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + + +## Attributes Reference + +The following attributes are exported: + +* `access_key` - Access key + + **SCIM++ Properties:** + * caseExact: true + * type: string + * mutability: readOnly + * required: false + * returned: default +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - Description + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `display_name` - Display Name + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `expires_on` - User credential expires on + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: dateTime + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `status` - User credential status + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: never + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionself_change_user` - Controls whether a user can update themselves or not via User related APIs + * `allow_self_change` - If true, allows requesting user to update themselves. If false, requesting user can't update themself (default). + + **Added In:** 2205182039 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: writeOnly + * required: false + * returned: never + * type: boolean + * uniqueness: none +* `user` - User linked to customer secret key + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - User display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - User name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - User's ocid + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the user linked to this credential + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - User's id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + diff --git a/website/docs/d/identity_domains_customer_secret_keys.html.markdown b/website/docs/d/identity_domains_customer_secret_keys.html.markdown new file mode 100644 index 00000000000..0ac8080d141 --- /dev/null +++ b/website/docs/d/identity_domains_customer_secret_keys.html.markdown @@ -0,0 +1,509 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_customer_secret_keys" +sidebar_current: "docs-oci-datasource-identity_domains-customer_secret_keys" +description: |- + Provides the list of Customer Secret Keys in Oracle Cloud Infrastructure Identity Domains service +--- + +# Data Source: oci_identity_domains_customer_secret_keys +This data source provides the list of Customer Secret Keys in Oracle Cloud Infrastructure Identity Domains service. + +Search user's customer secret key + +## Example Usage + +```hcl +data "oci_identity_domains_customer_secret_keys" "test_customer_secret_keys" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + + #Optional + customer_secret_key_count = var.customer_secret_key_customer_secret_key_count + customer_secret_key_filter = var.customer_secret_key_customer_secret_key_filter + attribute_sets = [] + attributes = "" + authorization = var.customer_secret_key_authorization + resource_type_schema_version = var.customer_secret_key_resource_type_schema_version + start_index = var.customer_secret_key_start_index +} +``` + +## Argument Reference + +The following arguments are supported: + +* `customer_secret_key_count` - (Optional) OPTIONAL. An integer that indicates the desired maximum number of query results per page. 1000 is the largest value that you can use. See the Pagination section of the System for Cross-Domain Identity Management Protocol specification for more information. (Section 3.4.2.4). +* `customer_secret_key_filter` - (Optional) OPTIONAL. The filter string that is used to request a subset of resources. The filter string MUST be a valid filter expression. See the Filtering section of the SCIM specification for more information (Section 3.4.2.2). The string should contain at least one condition that each item must match in order to be returned in the search results. Each condition specifies an attribute, an operator, and a value. Conditions within a filter can be connected by logical operators (such as AND and OR). Sets of conditions can be grouped together using parentheses. +* `attribute_sets` - (Optional) A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. +* `attributes` - (Optional) A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `start_index` - (Optional) OPTIONAL. An integer that indicates the 1-based index of the first query result. See the Pagination section of the SCIM specification for more information. (Section 3.4.2.4). The number of results pages to return. The first page is 1. Specify 2 to access the second page of results, and so on. + + +## Attributes Reference + +The following attributes are exported: + +* `customer_secret_keys` - The list of customer_secret_keys. + +### CustomerSecretKey Reference + +The following attributes are exported: + +* `access_key` - Access key + + **SCIM++ Properties:** + * caseExact: true + * type: string + * mutability: readOnly + * required: false + * returned: default +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - Description + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `display_name` - Display Name + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `expires_on` - User credential expires on + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: dateTime + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `status` - User credential status + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: never + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionself_change_user` - Controls whether a user can update themselves or not via User related APIs + * `allow_self_change` - If true, allows requesting user to update themselves. If false, requesting user can't update themself (default). + + **Added In:** 2205182039 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: writeOnly + * required: false + * returned: never + * type: boolean + * uniqueness: none +* `user` - User linked to customer secret key + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - User display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - User name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - User's ocid + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the user linked to this credential + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - User's id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + diff --git a/website/docs/d/identity_domains_dynamic_resource_group.html.markdown b/website/docs/d/identity_domains_dynamic_resource_group.html.markdown new file mode 100644 index 00000000000..e4aa86d7ed2 --- /dev/null +++ b/website/docs/d/identity_domains_dynamic_resource_group.html.markdown @@ -0,0 +1,644 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_dynamic_resource_group" +sidebar_current: "docs-oci-datasource-identity_domains-dynamic_resource_group" +description: |- + Provides details about a specific Dynamic Resource Group in Oracle Cloud Infrastructure Identity Domains service +--- + +# Data Source: oci_identity_domains_dynamic_resource_group +This data source provides details about a specific Dynamic Resource Group resource in Oracle Cloud Infrastructure Identity Domains service. + +Get a DynamicResourceGroup + +## Example Usage + +```hcl +data "oci_identity_domains_dynamic_resource_group" "test_dynamic_resource_group" { + #Required + dynamic_resource_group_id = oci_identity_group.test_group.id + idcs_endpoint = data.oci_identity_domain.test_domain.url + + #Optional + attribute_sets = [] + attributes = "" + authorization = var.dynamic_resource_group_authorization + resource_type_schema_version = var.dynamic_resource_group_resource_type_schema_version +} +``` + +## Argument Reference + +The following arguments are supported: + +* `attribute_sets` - (Optional) A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. +* `attributes` - (Optional) A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `dynamic_resource_group_id` - (Required) ID of the resource +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + + +## Attributes Reference + +The following attributes are exported: + +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - text that explains the purpose of this Dynamic Resource Group + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Description + * idcsCsvAttributeNameMappings: [[columnHeaderName:Description]] + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: always + * type: string + * uniqueness: none +* `display_name` - User-friendly, mutable identifier + + **SCIM++ Properties:** + * idcsCsvAttributeName: Display Name + * idcsCsvAttributeNameMappings: [[columnHeaderName:Name, deprecatedColumnHeaderName:Display Name]] + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: string + * uniqueness: global +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `dynamic_group_app_roles` - A list of appRoles that are currently granted to this Dynamic Resource Group. The Identity service will assert these AppRoles for any resource that satisfies the matching-rule of this DynamicResourceGroup. + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `admin_role` - If true, then the role provides administrative access privileges. READ-ONLY. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: boolean + * uniqueness: none + * `app_id` - ID of parent App. READ-ONLY. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `app_name` - Name of parent App. READ-ONLY. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `display` - A human readable name, primarily used for display purposes. READ-ONLY. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `legacy_group_name` - The name of the legacy group associated with this AppRole. + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `ref` - The URI of the corresponding appRole resource to which the user belongs + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: reference + * uniqueness: none + * `value` - The identifier of the appRole + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: always + * type: string + * uniqueness: none +* `grants` - Grants assigned to group + + **SCIM++ Properties:** + * idcsAddedSinceVersion: 3 + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `app_id` - App identifier + + **SCIM++ Properties:** + * caseExact: true + * idcsAddedSinceVersion: 3 + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `grant_mechanism` - Each value of grantMechanism indicates how (or by what component) some App (or App-Entitlement) was granted.\nA customer or the UI should use only grantMechanism values that start with 'ADMINISTRATOR':\n - 'ADMINISTRATOR_TO_USER' is for a direct grant to a specific User.\n - 'ADMINISTRATOR_TO_GROUP' is for a grant to a specific Group, which results in indirect grants to Users who are members of that Group.\n - 'ADMINISTRATOR_TO_APP' is for a grant to a specific App. The grantee (client) App gains access to the granted (server) App. + + **SCIM++ Properties:** + * caseExact: true + * idcsAddedSinceVersion: 3 + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - Grant URI + + **SCIM++ Properties:** + * idcsAddedSinceVersion: 3 + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - Grant identifier + + **SCIM++ Properties:** + * caseExact: true + * idcsAddedSinceVersion: 3 + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `matching_rule` - Store as a string the matching-rule for this Dynamic Resource Group. This may match any number of Apps in this Domain, as well as matching any number of Oracle Cloud Infrastructure resources that are not in any Domain but that are in the Oracle Cloud Infrastructure Compartment that contains this Domain. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: request + * type: string + * uniqueness: none +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextension_oci_tags` - Oracle Cloud Infrastructure Tags. + * `defined_tags` - Oracle Cloud Infrastructure Defined Tags + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * idcsCompositeKey: [namespace, key, value] + * type: complex + * idcsSearchable: true + * required: false + * mutability: readWrite + * multiValued: true + * returned: default + * `key` - Oracle Cloud Infrastructure Tag key + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * required: true + * mutability: readWrite + * returned: default + * idcsSearchable: true + * uniqueness: none + * `namespace` - Oracle Cloud Infrastructure Tag namespace + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * required: true + * mutability: readWrite + * returned: default + * idcsSearchable: true + * uniqueness: none + * `value` - Oracle Cloud Infrastructure Tag value + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * required: true + * mutability: readWrite + * returned: default + * type: string + * idcsSearchable: true + * uniqueness: none + * `freeform_tags` - Oracle Cloud Infrastructure Freeform Tags + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * type: complex + * required: false + * mutability: readWrite + * returned: default + * multiValued: true + * `key` - Oracle Cloud Infrastructure Tag key + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * required: true + * mutability: readWrite + * returned: default + * idcsSearchable: true + * uniqueness: none + * `value` - Oracle Cloud Infrastructure Tag value + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * required: true + * mutability: readWrite + * returned: default + * type: string + * idcsSearchable: true + * uniqueness: none + * `tag_slug` - Oracle Cloud Infrastructure Tag slug + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * type: binary + * mutability: readOnly + * returned: request + diff --git a/website/docs/d/identity_domains_dynamic_resource_groups.html.markdown b/website/docs/d/identity_domains_dynamic_resource_groups.html.markdown new file mode 100644 index 00000000000..6f09d7602d6 --- /dev/null +++ b/website/docs/d/identity_domains_dynamic_resource_groups.html.markdown @@ -0,0 +1,654 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_dynamic_resource_groups" +sidebar_current: "docs-oci-datasource-identity_domains-dynamic_resource_groups" +description: |- + Provides the list of Dynamic Resource Groups in Oracle Cloud Infrastructure Identity Domains service +--- + +# Data Source: oci_identity_domains_dynamic_resource_groups +This data source provides the list of Dynamic Resource Groups in Oracle Cloud Infrastructure Identity Domains service. + +Search DynamicResourceGroups + +## Example Usage + +```hcl +data "oci_identity_domains_dynamic_resource_groups" "test_dynamic_resource_groups" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + + #Optional + dynamic_resource_group_count = var.dynamic_resource_group_dynamic_resource_group_count + dynamic_resource_group_filter = var.dynamic_resource_group_dynamic_resource_group_filter + attribute_sets = [] + attributes = "" + authorization = var.dynamic_resource_group_authorization + resource_type_schema_version = var.dynamic_resource_group_resource_type_schema_version + start_index = var.dynamic_resource_group_start_index +} +``` + +## Argument Reference + +The following arguments are supported: + +* `dynamic_resource_group_count` - (Optional) OPTIONAL. An integer that indicates the desired maximum number of query results per page. 1000 is the largest value that you can use. See the Pagination section of the System for Cross-Domain Identity Management Protocol specification for more information. (Section 3.4.2.4). +* `dynamic_resource_group_filter` - (Optional) OPTIONAL. The filter string that is used to request a subset of resources. The filter string MUST be a valid filter expression. See the Filtering section of the SCIM specification for more information (Section 3.4.2.2). The string should contain at least one condition that each item must match in order to be returned in the search results. Each condition specifies an attribute, an operator, and a value. Conditions within a filter can be connected by logical operators (such as AND and OR). Sets of conditions can be grouped together using parentheses. +* `attribute_sets` - (Optional) A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. +* `attributes` - (Optional) A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. +* `start_index` - (Optional) OPTIONAL. An integer that indicates the 1-based index of the first query result. See the Pagination section of the SCIM specification for more information. (Section 3.4.2.4). The number of results pages to return. The first page is 1. Specify 2 to access the second page of results, and so on. + + +## Attributes Reference + +The following attributes are exported: + +* `dynamic_resource_groups` - The list of dynamic_resource_groups. + +### DynamicResourceGroup Reference + +The following attributes are exported: + +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - text that explains the purpose of this Dynamic Resource Group + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Description + * idcsCsvAttributeNameMappings: [[columnHeaderName:Description]] + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: always + * type: string + * uniqueness: none +* `display_name` - User-friendly, mutable identifier + + **SCIM++ Properties:** + * idcsCsvAttributeName: Display Name + * idcsCsvAttributeNameMappings: [[columnHeaderName:Name, deprecatedColumnHeaderName:Display Name]] + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: string + * uniqueness: global +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `dynamic_group_app_roles` - A list of appRoles that are currently granted to this Dynamic Resource Group. The Identity service will assert these AppRoles for any resource that satisfies the matching-rule of this DynamicResourceGroup. + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `admin_role` - If true, then the role provides administrative access privileges. READ-ONLY. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: boolean + * uniqueness: none + * `app_id` - ID of parent App. READ-ONLY. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `app_name` - Name of parent App. READ-ONLY. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `display` - A human readable name, primarily used for display purposes. READ-ONLY. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `legacy_group_name` - The name of the legacy group associated with this AppRole. + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `ref` - The URI of the corresponding appRole resource to which the user belongs + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: reference + * uniqueness: none + * `value` - The identifier of the appRole + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: always + * type: string + * uniqueness: none +* `grants` - Grants assigned to group + + **SCIM++ Properties:** + * idcsAddedSinceVersion: 3 + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `app_id` - App identifier + + **SCIM++ Properties:** + * caseExact: true + * idcsAddedSinceVersion: 3 + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `grant_mechanism` - Each value of grantMechanism indicates how (or by what component) some App (or App-Entitlement) was granted.\nA customer or the UI should use only grantMechanism values that start with 'ADMINISTRATOR':\n - 'ADMINISTRATOR_TO_USER' is for a direct grant to a specific User.\n - 'ADMINISTRATOR_TO_GROUP' is for a grant to a specific Group, which results in indirect grants to Users who are members of that Group.\n - 'ADMINISTRATOR_TO_APP' is for a grant to a specific App. The grantee (client) App gains access to the granted (server) App. + + **SCIM++ Properties:** + * caseExact: true + * idcsAddedSinceVersion: 3 + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - Grant URI + + **SCIM++ Properties:** + * idcsAddedSinceVersion: 3 + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - Grant identifier + + **SCIM++ Properties:** + * caseExact: true + * idcsAddedSinceVersion: 3 + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `matching_rule` - Store as a string the matching-rule for this Dynamic Resource Group. This may match any number of Apps in this Domain, as well as matching any number of Oracle Cloud Infrastructure resources that are not in any Domain but that are in the Oracle Cloud Infrastructure Compartment that contains this Domain. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: request + * type: string + * uniqueness: none +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextension_oci_tags` - Oracle Cloud Infrastructure Tags. + * `defined_tags` - Oracle Cloud Infrastructure Defined Tags + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * idcsCompositeKey: [namespace, key, value] + * type: complex + * idcsSearchable: true + * required: false + * mutability: readWrite + * multiValued: true + * returned: default + * `key` - Oracle Cloud Infrastructure Tag key + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * required: true + * mutability: readWrite + * returned: default + * idcsSearchable: true + * uniqueness: none + * `namespace` - Oracle Cloud Infrastructure Tag namespace + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * required: true + * mutability: readWrite + * returned: default + * idcsSearchable: true + * uniqueness: none + * `value` - Oracle Cloud Infrastructure Tag value + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * required: true + * mutability: readWrite + * returned: default + * type: string + * idcsSearchable: true + * uniqueness: none + * `freeform_tags` - Oracle Cloud Infrastructure Freeform Tags + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * type: complex + * required: false + * mutability: readWrite + * returned: default + * multiValued: true + * `key` - Oracle Cloud Infrastructure Tag key + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * required: true + * mutability: readWrite + * returned: default + * idcsSearchable: true + * uniqueness: none + * `value` - Oracle Cloud Infrastructure Tag value + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * required: true + * mutability: readWrite + * returned: default + * type: string + * idcsSearchable: true + * uniqueness: none + * `tag_slug` - Oracle Cloud Infrastructure Tag slug + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * type: binary + * mutability: readOnly + * returned: request + diff --git a/website/docs/d/identity_domains_group.html.markdown b/website/docs/d/identity_domains_group.html.markdown new file mode 100644 index 00000000000..84eb9c8e419 --- /dev/null +++ b/website/docs/d/identity_domains_group.html.markdown @@ -0,0 +1,1124 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_group" +sidebar_current: "docs-oci-datasource-identity_domains-group" +description: |- + Provides details about a specific Group in Oracle Cloud Infrastructure Identity Domains service +--- + +# Data Source: oci_identity_domains_group +This data source provides details about a specific Group resource in Oracle Cloud Infrastructure Identity Domains service. + +Get a Group - The Group search and get operations on users/members will throw an exception if it has more than 10K members, to avoid the exception use the pagination filter to get or search group members + +## Example Usage + +```hcl +data "oci_identity_domains_group" "test_group" { + #Required + group_id = oci_identity_group.test_group.id + idcs_endpoint = data.oci_identity_domain.test_domain.url + + #Optional + attribute_sets = [] + attributes = "" + authorization = var.group_authorization + resource_type_schema_version = var.group_resource_type_schema_version +} +``` + +## Argument Reference + +The following arguments are supported: + +* `attribute_sets` - (Optional) A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. +* `attributes` - (Optional) A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `group_id` - (Required) ID of the resource +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + + +## Attributes Reference + +The following attributes are exported: + +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `display_name` - Group display name + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Display Name + * idcsCsvAttributeNameMappings: [[columnHeaderName:Name, deprecatedColumnHeaderName:Display Name]] + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: string + * uniqueness: global +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `external_id` - An identifier for the Resource as defined by the Service Consumer. The externalId may simplify identification of the Resource between Service Consumer and Service Provider by allowing the Consumer to refer to the Resource with its own identifier, obviating the need to store a local mapping between the local identifier of the Resource and the identifier used by the Service Provider. Each Resource MAY include a non-empty externalId value. The value of the externalId attribute is always issued by the Service Consumer and can never be specified by the Service Provider. The Service Provider MUST always interpret the externalId as scoped to the Service Consumer's tenant. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `members` - Group members - when requesting members attribute, a max of 10,000 members will be returned in a single request. It is recommended to use startIndex and count to return members in pages instead of in a single response, eg : #attributes=members[startIndex=1%26count=10] + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [value] + * idcsCsvAttributeNameMappings: [[columnHeaderName:User Members, mapsTo:members[User].value, multiValueDelimiter:;]] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * idcsPaginateResponse: true + * type: complex + * uniqueness: none + * `date_added` - The DateTime the member was added to the Group. + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readOnly + * returned: default + * type: dateTime + * uniqueness: none + * `display` - Member display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `membership_ocid` - Membership Ocid + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - Member name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - OCID of the member of this Group + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the member Resource of this Group + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - Indicates the type of resource--for example, User or Group + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * idcsDefaultValue: User + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - ID of the member of this Group + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: string + * uniqueness: none +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `non_unique_display_name` - A human readable name for Group as defined by the Service Consumer + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Non-Unique Display Name + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: always + * type: string +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextension_oci_tags` - Oracle Cloud Infrastructure Tags. + * `defined_tags` - Oracle Cloud Infrastructure Defined Tags + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * idcsCompositeKey: [namespace, key, value] + * type: complex + * idcsSearchable: true + * required: false + * mutability: readWrite + * multiValued: true + * returned: default + * `key` - Oracle Cloud Infrastructure Tag key + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * required: true + * mutability: readWrite + * returned: default + * idcsSearchable: true + * uniqueness: none + * `namespace` - Oracle Cloud Infrastructure Tag namespace + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * required: true + * mutability: readWrite + * returned: default + * idcsSearchable: true + * uniqueness: none + * `value` - Oracle Cloud Infrastructure Tag value + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * required: true + * mutability: readWrite + * returned: default + * type: string + * idcsSearchable: true + * uniqueness: none + * `freeform_tags` - Oracle Cloud Infrastructure Freeform Tags + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * type: complex + * required: false + * mutability: readWrite + * returned: default + * multiValued: true + * `key` - Oracle Cloud Infrastructure Tag key + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * required: true + * mutability: readWrite + * returned: default + * idcsSearchable: true + * uniqueness: none + * `value` - Oracle Cloud Infrastructure Tag value + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * required: true + * mutability: readWrite + * returned: default + * type: string + * idcsSearchable: true + * uniqueness: none + * `tag_slug` - Oracle Cloud Infrastructure Tag slug + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * type: binary + * mutability: readOnly + * returned: request +* `urnietfparamsscimschemasoracleidcsextensiondbcs_group` - Schema for Database Service Resource + * `domain_level_schema` - DBCS Domain-level schema-name. This attribute refers implicitly to a value of 'domainLevelSchemaNames' for a particular DB Domain. + + **Added In:** 18.2.4 + + **SCIM++ Properties:** + * idcsSearchable: false + * idcsSensitive: none + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `domain_level_schema_names` - DBCS Domain-level schema-names. Each value is specific to a DB Domain. + + **Added In:** 18.2.4 + + **SCIM++ Properties:** + * idcsCompositeKey: [domainName, schemaName] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * `domain_name` - DBCS Domain Name + + **Added In:** 18.2.4 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none + * `schema_name` - The DBCS schema-name granted to this group in the DB domain that 'domainName' specifies. + + **Added In:** 18.2.4 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none + * `instance_level_schema` - DBCS instance-level schema-name. This attribute refers implicitly to a value of 'instanceLevelSchemaNames' for a particular DB Instance. + + **Added In:** 18.2.4 + + **SCIM++ Properties:** + * idcsSearchable: false + * idcsSensitive: none + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `instance_level_schema_names` - DBCS instance-level schema-names. Each schema-name is specific to a DB Instance. + + **Added In:** 18.2.4 + + **SCIM++ Properties:** + * idcsCompositeKey: [dbInstanceId, schemaName] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * `db_instance_id` - App Id of DBCS App instance + + **Added In:** 18.2.4 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none + * `schema_name` - The DBCS schema-name granted to this Group for the DB instance that 'dbInstanceId' specifies. + + **Added In:** 18.2.4 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensiondynamic_group` - Dynamic Group + * `membership_rule` - Membership rule + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `membership_type` - Membership type + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: always + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensiongroup_group` - Idcs Group + * `app_roles` - A list of appRoles that the user belongs to, either thorough direct membership, nested groups, or dynamically calculated + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `admin_role` - If true, then the role provides administrative access privileges. READ-ONLY. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: boolean + * uniqueness: none + * `app_id` - ID of parent App. READ-ONLY. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `app_name` - Name of parent App. READ-ONLY. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `display` - A human readable name, primarily used for display purposes. READ-ONLY. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `legacy_group_name` - The name of the legacy group associated with this AppRole. + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the corresponding appRole resource to which the user belongs + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: reference + * uniqueness: none + * `type` - A label indicating the attribute's function; e.g., 'direct' or 'indirect'. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `value` - The identifier of the appRole + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: always + * type: string + * uniqueness: none + * `creation_mechanism` - Source from which this group got created. + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeNameMappings: [[defaultValue:import]] + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: request + * type: string + * uniqueness: none + * `description` - Group description + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Description + * idcsCsvAttributeNameMappings: [[columnHeaderName:Description]] + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `grants` - Grants assigned to group + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `app_id` - App identifier + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `grant_mechanism` - Each value of grantMechanism indicates how (or by what component) some App (or App-Entitlement) was granted.\nA customer or the UI should use only grantMechanism values that start with 'ADMINISTRATOR':\n - 'ADMINISTRATOR_TO_USER' is for a direct grant to a specific User.\n - 'ADMINISTRATOR_TO_GROUP' is for a grant to a specific Group, which results in indirect grants to Users who are members of that Group.\n - 'ADMINISTRATOR_TO_APP' is for a grant to a specific App. The grantee (client) App gains access to the granted (server) App. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - Grant URI + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - Grant identifier + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `owners` - Group owners + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [value, type] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `display` - Owner display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the owning Resource of this Group + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - Indicates the type of resource--for example, User or Group + + **SCIM++ Properties:** + * caseExact: true + * idcsDefaultValue: User + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - ID of the owner of this Group + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: string + * uniqueness: none + * `password_policy` - Password Policy associated with this Group. + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `name` - PasswordPolicy Name + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `priority` - PasswordPolicy priority + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: integer + * uniqueness: none + * `ref` - PasswordPolicy URI + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The ID of the PasswordPolicy. + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: always + * type: string + * uniqueness: none + * `synced_from_app` - The entity that created this Group. + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `display` - App Display Name + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * caseExact: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - App URI + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of the entity that created this Group. + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * idcsDefaultValue: App + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the App. + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionposix_group` - POSIX Group extension + * `gid_number` - Integer uniquely identifying a group in a POSIX administrative domain + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: request + * type: integer + * uniqueness: server +* `urnietfparamsscimschemasoracleidcsextensionrequestable_group` - Requestable Group + * `requestable` - Flag controlling whether group membership can be request by user through self service console. + + **Added In:** 17.3.4 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * idcsCsvAttributeNameMappings: [[columnHeaderName:Requestable, mapsTo:requestable]] + * multiValued: false + * mutability: readWrite + * required: false + * returned: request + * type: boolean + * uniqueness: none + diff --git a/website/docs/d/identity_domains_groups.html.markdown b/website/docs/d/identity_domains_groups.html.markdown new file mode 100644 index 00000000000..2ce9b80fb10 --- /dev/null +++ b/website/docs/d/identity_domains_groups.html.markdown @@ -0,0 +1,1134 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_groups" +sidebar_current: "docs-oci-datasource-identity_domains-groups" +description: |- + Provides the list of Groups in Oracle Cloud Infrastructure Identity Domains service +--- + +# Data Source: oci_identity_domains_groups +This data source provides the list of Groups in Oracle Cloud Infrastructure Identity Domains service. + +Search Groups.The Group search and get operations on users/members will throw an exception if it has more than 10K members, to avoid the exception use the pagination filter to get or search group members + +## Example Usage + +```hcl +data "oci_identity_domains_groups" "test_groups" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + + #Optional + group_count = var.group_group_count + group_filter = var.group_group_filter + attribute_sets = [] + attributes = "" + authorization = var.group_authorization + resource_type_schema_version = var.group_resource_type_schema_version + start_index = var.group_start_index +} +``` + +## Argument Reference + +The following arguments are supported: + +* `group_count` - (Optional) OPTIONAL. An integer that indicates the desired maximum number of query results per page. 1000 is the largest value that you can use. See the Pagination section of the System for Cross-Domain Identity Management Protocol specification for more information. (Section 3.4.2.4). +* `group_filter` - (Optional) OPTIONAL. The filter string that is used to request a subset of resources. The filter string MUST be a valid filter expression. See the Filtering section of the SCIM specification for more information (Section 3.4.2.2). The string should contain at least one condition that each item must match in order to be returned in the search results. Each condition specifies an attribute, an operator, and a value. Conditions within a filter can be connected by logical operators (such as AND and OR). Sets of conditions can be grouped together using parentheses. +* `attribute_sets` - (Optional) A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. +* `attributes` - (Optional) A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. +* `start_index` - (Optional) OPTIONAL. An integer that indicates the 1-based index of the first query result. See the Pagination section of the SCIM specification for more information. (Section 3.4.2.4). The number of results pages to return. The first page is 1. Specify 2 to access the second page of results, and so on. + + +## Attributes Reference + +The following attributes are exported: + +* `groups` - The list of groups. + +### Group Reference + +The following attributes are exported: + +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `display_name` - Group display name + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Display Name + * idcsCsvAttributeNameMappings: [[columnHeaderName:Name, deprecatedColumnHeaderName:Display Name]] + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: string + * uniqueness: global +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `external_id` - An identifier for the Resource as defined by the Service Consumer. The externalId may simplify identification of the Resource between Service Consumer and Service Provider by allowing the Consumer to refer to the Resource with its own identifier, obviating the need to store a local mapping between the local identifier of the Resource and the identifier used by the Service Provider. Each Resource MAY include a non-empty externalId value. The value of the externalId attribute is always issued by the Service Consumer and can never be specified by the Service Provider. The Service Provider MUST always interpret the externalId as scoped to the Service Consumer's tenant. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `members` - Group members - when requesting members attribute, a max of 10,000 members will be returned in a single request. It is recommended to use startIndex and count to return members in pages instead of in a single response, eg : #attributes=members[startIndex=1%26count=10] + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [value] + * idcsCsvAttributeNameMappings: [[columnHeaderName:User Members, mapsTo:members[User].value, multiValueDelimiter:;]] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * idcsPaginateResponse: true + * type: complex + * uniqueness: none + * `date_added` - The DateTime the member was added to the Group. + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readOnly + * returned: default + * type: dateTime + * uniqueness: none + * `display` - Member display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `membership_ocid` - Membership Ocid + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - Member name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - OCID of the member of this Group + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the member Resource of this Group + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - Indicates the type of resource--for example, User or Group + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * idcsDefaultValue: User + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - ID of the member of this Group + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: string + * uniqueness: none +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `non_unique_display_name` - A human readable name for Group as defined by the Service Consumer + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Non-Unique Display Name + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: always + * type: string +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextension_oci_tags` - Oracle Cloud Infrastructure Tags. + * `defined_tags` - Oracle Cloud Infrastructure Defined Tags + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * idcsCompositeKey: [namespace, key, value] + * type: complex + * idcsSearchable: true + * required: false + * mutability: readWrite + * multiValued: true + * returned: default + * `key` - Oracle Cloud Infrastructure Tag key + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * required: true + * mutability: readWrite + * returned: default + * idcsSearchable: true + * uniqueness: none + * `namespace` - Oracle Cloud Infrastructure Tag namespace + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * required: true + * mutability: readWrite + * returned: default + * idcsSearchable: true + * uniqueness: none + * `value` - Oracle Cloud Infrastructure Tag value + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * required: true + * mutability: readWrite + * returned: default + * type: string + * idcsSearchable: true + * uniqueness: none + * `freeform_tags` - Oracle Cloud Infrastructure Freeform Tags + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * type: complex + * required: false + * mutability: readWrite + * returned: default + * multiValued: true + * `key` - Oracle Cloud Infrastructure Tag key + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * required: true + * mutability: readWrite + * returned: default + * idcsSearchable: true + * uniqueness: none + * `value` - Oracle Cloud Infrastructure Tag value + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * required: true + * mutability: readWrite + * returned: default + * type: string + * idcsSearchable: true + * uniqueness: none + * `tag_slug` - Oracle Cloud Infrastructure Tag slug + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * type: binary + * mutability: readOnly + * returned: request +* `urnietfparamsscimschemasoracleidcsextensiondbcs_group` - Schema for Database Service Resource + * `domain_level_schema` - DBCS Domain-level schema-name. This attribute refers implicitly to a value of 'domainLevelSchemaNames' for a particular DB Domain. + + **Added In:** 18.2.4 + + **SCIM++ Properties:** + * idcsSearchable: false + * idcsSensitive: none + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `domain_level_schema_names` - DBCS Domain-level schema-names. Each value is specific to a DB Domain. + + **Added In:** 18.2.4 + + **SCIM++ Properties:** + * idcsCompositeKey: [domainName, schemaName] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * `domain_name` - DBCS Domain Name + + **Added In:** 18.2.4 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none + * `schema_name` - The DBCS schema-name granted to this group in the DB domain that 'domainName' specifies. + + **Added In:** 18.2.4 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none + * `instance_level_schema` - DBCS instance-level schema-name. This attribute refers implicitly to a value of 'instanceLevelSchemaNames' for a particular DB Instance. + + **Added In:** 18.2.4 + + **SCIM++ Properties:** + * idcsSearchable: false + * idcsSensitive: none + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `instance_level_schema_names` - DBCS instance-level schema-names. Each schema-name is specific to a DB Instance. + + **Added In:** 18.2.4 + + **SCIM++ Properties:** + * idcsCompositeKey: [dbInstanceId, schemaName] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * `db_instance_id` - App Id of DBCS App instance + + **Added In:** 18.2.4 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none + * `schema_name` - The DBCS schema-name granted to this Group for the DB instance that 'dbInstanceId' specifies. + + **Added In:** 18.2.4 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensiondynamic_group` - Dynamic Group + * `membership_rule` - Membership rule + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `membership_type` - Membership type + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: always + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensiongroup_group` - Idcs Group + * `app_roles` - A list of appRoles that the user belongs to, either thorough direct membership, nested groups, or dynamically calculated + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `admin_role` - If true, then the role provides administrative access privileges. READ-ONLY. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: boolean + * uniqueness: none + * `app_id` - ID of parent App. READ-ONLY. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `app_name` - Name of parent App. READ-ONLY. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `display` - A human readable name, primarily used for display purposes. READ-ONLY. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `legacy_group_name` - The name of the legacy group associated with this AppRole. + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the corresponding appRole resource to which the user belongs + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: reference + * uniqueness: none + * `type` - A label indicating the attribute's function; e.g., 'direct' or 'indirect'. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `value` - The identifier of the appRole + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: always + * type: string + * uniqueness: none + * `creation_mechanism` - Source from which this group got created. + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeNameMappings: [[defaultValue:import]] + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: request + * type: string + * uniqueness: none + * `description` - Group description + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Description + * idcsCsvAttributeNameMappings: [[columnHeaderName:Description]] + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `grants` - Grants assigned to group + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `app_id` - App identifier + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `grant_mechanism` - Each value of grantMechanism indicates how (or by what component) some App (or App-Entitlement) was granted.\nA customer or the UI should use only grantMechanism values that start with 'ADMINISTRATOR':\n - 'ADMINISTRATOR_TO_USER' is for a direct grant to a specific User.\n - 'ADMINISTRATOR_TO_GROUP' is for a grant to a specific Group, which results in indirect grants to Users who are members of that Group.\n - 'ADMINISTRATOR_TO_APP' is for a grant to a specific App. The grantee (client) App gains access to the granted (server) App. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - Grant URI + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - Grant identifier + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `owners` - Group owners + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [value, type] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `display` - Owner display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the owning Resource of this Group + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - Indicates the type of resource--for example, User or Group + + **SCIM++ Properties:** + * caseExact: true + * idcsDefaultValue: User + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - ID of the owner of this Group + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: string + * uniqueness: none + * `password_policy` - Password Policy associated with this Group. + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `name` - PasswordPolicy Name + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `priority` - PasswordPolicy priority + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: integer + * uniqueness: none + * `ref` - PasswordPolicy URI + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The ID of the PasswordPolicy. + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: always + * type: string + * uniqueness: none + * `synced_from_app` - The entity that created this Group. + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `display` - App Display Name + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * caseExact: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - App URI + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of the entity that created this Group. + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * idcsDefaultValue: App + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the App. + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionposix_group` - POSIX Group extension + * `gid_number` - Integer uniquely identifying a group in a POSIX administrative domain + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: request + * type: integer + * uniqueness: server +* `urnietfparamsscimschemasoracleidcsextensionrequestable_group` - Requestable Group + * `requestable` - Flag controlling whether group membership can be request by user through self service console. + + **Added In:** 17.3.4 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * idcsCsvAttributeNameMappings: [[columnHeaderName:Requestable, mapsTo:requestable]] + * multiValued: false + * mutability: readWrite + * required: false + * returned: request + * type: boolean + * uniqueness: none + diff --git a/website/docs/d/identity_domains_identity_provider.html.markdown b/website/docs/d/identity_domains_identity_provider.html.markdown new file mode 100644 index 00000000000..b8cd434dda1 --- /dev/null +++ b/website/docs/d/identity_domains_identity_provider.html.markdown @@ -0,0 +1,1435 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_identity_provider" +sidebar_current: "docs-oci-datasource-identity_domains-identity_provider" +description: |- + Provides details about a specific Identity Provider in Oracle Cloud Infrastructure Identity Domains service +--- + +# Data Source: oci_identity_domains_identity_provider +This data source provides details about a specific Identity Provider resource in Oracle Cloud Infrastructure Identity Domains service. + +Get an Identity Provider + +## Example Usage + +```hcl +data "oci_identity_domains_identity_provider" "test_identity_provider" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + identity_provider_id = oci_identity_identity_provider.test_identity_provider.id + + #Optional + attribute_sets = [] + attributes = "" + authorization = var.identity_provider_authorization + resource_type_schema_version = var.identity_provider_resource_type_schema_version +} +``` + +## Argument Reference + +The following arguments are supported: + +* `attribute_sets` - (Optional) A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. +* `attributes` - (Optional) A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `identity_provider_id` - (Required) ID of the resource +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + + +## Attributes Reference + +The following attributes are exported: + +* `assertion_attribute` - Assertion attribute name. + + **Deprecated Since: 20.1.3** + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * idcsValuePersistedInOtherAttribute: true +* `authn_request_binding` - HTTP binding to use for authentication requests. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `correlation_policy` - Correlation policy + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - Policy display name + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - Policy URI + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - A label that indicates the type that this references. + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsDefaultValue: Policy + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Policy identifier + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - Description + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `enabled` - Set to true to indicate Partner enabled. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none +* `encryption_certificate` - Encryption certificate + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `external_id` - An identifier for the Resource as defined by the Service Consumer. The externalId may simplify identification of the Resource between Service Consumer and Service Provider by allowing the Consumer to refer to the Resource with its own identifier, obviating the need to store a local mapping between the local identifier of the Resource and the identifier used by the Service Provider. Each Resource MAY include a non-empty externalId value. The value of the externalId attribute is always issued by the Service Consumer and can never be specified by the Service Provider. The Service Provider MUST always interpret the externalId as scoped to the Service Consumer's tenant. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `icon_url` - Identity Provider Icon URL. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idp_sso_url` - Identity Provider SSO URL + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `include_signing_cert_in_signature` - Set to true to include the signing certificate in the signature. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `jit_user_prov_assigned_groups` - Refers to every group of which a JIT-provisioned User should be a member. Just-in-Time user-provisioning applies this static list when jitUserProvGroupStaticListEnabled:true. + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - A human readable name, primarily used for display purposes. READ-ONLY. + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - Group URI + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - Group identifier + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `jit_user_prov_attribute_update_enabled` - Set to true to indicate JIT User Creation is enabled + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `jit_user_prov_attributes` - Assertion To User Mapping + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [value] + * idcsSearchable: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `ref` - Mapped Attribute URI + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * mutability: immutable + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - Mapped Attribute identifier + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * mutability: immutable + * required: true + * returned: default + * type: string + * uniqueness: none +* `jit_user_prov_create_user_enabled` - Set to true to indicate JIT User Creation is enabled + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `jit_user_prov_enabled` - Set to true to indicate JIT User Provisioning is enabled + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `jit_user_prov_group_assertion_attribute_enabled` - Set to true to indicate JIT User Provisioning Groups should be assigned based on assertion attribute + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `jit_user_prov_group_assignment_method` - The default value is 'Overwrite', which tells Just-In-Time user-provisioning to replace any current group-assignments for a User with those assigned by assertions and/or those assigned statically. Specify 'Merge' if you want Just-In-Time user-provisioning to combine its group-assignments with those the user already has. + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `jit_user_prov_group_mapping_mode` - Property to indicate the mode of group mapping + + **Added In:** 2205120021 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `jit_user_prov_group_mappings` - The list of mappings between the Identity Domain Group and the IDP group. + + **Added In:** 2205120021 + + **SCIM++ Properties:** + * idcsCompositeKey: [idpGroup] + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `idp_group` - IDP Group Name + + **Added In:** 2205120021 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * type: string + * `ref` - Group URI + + **Added In:** 2205120021 + + **SCIM++ Properties:** + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: reference + * `value` - Domain Group + + **Added In:** 2205120021 + + **SCIM++ Properties:** + * multiValued: false + * mutability: readWrite + * required: true + * idcsSearchable: true + * type: string +* `jit_user_prov_group_saml_attribute_name` - Name of the assertion attribute containing the users groups + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `jit_user_prov_group_static_list_enabled` - Set to true to indicate JIT User Provisioning Groups should be assigned from a static list + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `jit_user_prov_ignore_error_on_absent_groups` - Set to true to indicate ignoring absence of group while provisioning + + **Added In:** 2111112015 + + **SCIM++ Properties:** + * caseExact: false + * idcsAddedSinceVersion: 30 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `logout_binding` - HTTP binding to use for logout. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `logout_enabled` - Set to true to enable logout. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `logout_request_url` - Logout request URL + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `logout_response_url` - Logout response URL + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `metadata` - Metadata + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `name_id_format` - Default authentication request name ID format. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `partner_name` - Unique name of the trusted Identity Provider. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: string + * uniqueness: server +* `partner_provider_id` - Provider ID + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: server +* `requested_authentication_context` - SAML SP authentication type. + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `require_force_authn` - This SP requires requests SAML IdP to enforce re-authentication. + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `requires_encrypted_assertion` - SAML SP must accept encrypted assertion only. + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `saml_ho_krequired` - SAML SP HoK Enabled. + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `service_instance_identifier` - The serviceInstanceIdentifier of the App that hosts this IdP. This value will match the opcServiceInstanceGUID of any service-instance that the IdP represents. + + **Added In:** 18.2.6 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: never + * type: string + * uniqueness: server +* `shown_on_login_page` - Set to true to indicate whether to show IdP in login page or not. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `signature_hash_algorithm` - Signature hash algorithm. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `signing_certificate` - Signing certificate + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `succinct_id` - Succinct ID + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: server +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `tenant_provider_id` - The alternate Provider ID to be used as the Oracle Identity Cloud Service providerID (instead of the one in SamlSettings) when interacting with this IdP. + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `type` - Identity Provider Type + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider` - Social Identity Provider Extension Schema + * `access_token_url` - Social IDP Access token URL + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `account_linking_enabled` - Whether account linking is enabled + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none + * `admin_scope` - Admin scope to request + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `authz_url` - Social IDP Authorization URL + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `client_credential_in_payload` - Whether the client credential is contained in payload + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `clock_skew_in_seconds` - Social IDP allowed clock skew time + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none + * `consumer_key` - Social IDP Client Application Client ID + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `consumer_secret` - Social IDP Client Application Client Secret + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * idcsSensitive: encrypt + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `discovery_url` - Discovery URL + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `id_attribute` - Id attribute used for account linking + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: none + * `profile_url` - Social IDP User profile URL + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `redirect_url` - redirect URL for social idp + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `registration_enabled` - Whether registration is enabled + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none + * `scope` - Scope to request + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `service_provider_name` - Service Provider Name + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: true + * returned: default + * type: string + * uniqueness: none + * `status` - Status + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionx509identity_provider` - X509 Identity Provider Extension Schema + * `cert_match_attribute` - X509 Certificate Matching Attribute + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `crl_check_on_ocsp_failure_enabled` - Fallback on CRL Validation if OCSP fails. + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `crl_enabled` - Set to true to enable CRL Validation + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `crl_location` - CRL Location URL + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `crl_reload_duration` - Fetch the CRL contents every X minutes + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none + * `ocsp_allow_unknown_response_status` - Allow access if OCSP response is UNKNOWN or OCSP Responder does not respond within the timeout duration + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `ocsp_enable_signed_response` - Describes if the OCSP response is signed + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `ocsp_enabled` - Set to true to enable OCSP Validation + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `ocsp_responder_url` - This property specifies OCSP Responder URL. + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocsp_revalidate_time` - Revalidate OCSP status for user after X hours + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * idcsMaxValue: 24 + * idcsMinValue: 0 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none + * `ocsp_server_name` - This property specifies the OCSP Server alias name + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocsp_trust_cert_chain` - OCSP Trusted Certificate Chain + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `other_cert_match_attribute` - Check for specific conditions of other certificate attributes + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `signing_certificate_chain` - Certificate alias list to create a chain for the incoming client certificate + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `user_match_attribute` - This property specifies the userstore attribute value that must match the incoming certificate attribute. + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `user_mapping_method` - User mapping method. + + **Deprecated Since: 20.1.3** + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * idcsValuePersistedInOtherAttribute: true +* `user_mapping_store_attribute` - This property specifies the userstore attribute value that must match the incoming assertion attribute value or the incoming nameid attribute value in order to identify the user during SSO.
You can construct the userMappingStoreAttribute value by specifying attributes from the Oracle Identity Cloud Service Core Users schema. For examples of how to construct the userMappingStoreAttribute value, see the Example of a Request Body section of the Examples tab for the POST and PUT methods of the /IdentityProviders endpoint. + + **Deprecated Since: 20.1.3** + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * idcsValuePersistedInOtherAttribute: true + diff --git a/website/docs/d/identity_domains_identity_providers.html.markdown b/website/docs/d/identity_domains_identity_providers.html.markdown new file mode 100644 index 00000000000..2baea1db9fe --- /dev/null +++ b/website/docs/d/identity_domains_identity_providers.html.markdown @@ -0,0 +1,1445 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_identity_providers" +sidebar_current: "docs-oci-datasource-identity_domains-identity_providers" +description: |- + Provides the list of Identity Providers in Oracle Cloud Infrastructure Identity Domains service +--- + +# Data Source: oci_identity_domains_identity_providers +This data source provides the list of Identity Providers in Oracle Cloud Infrastructure Identity Domains service. + +Search Identity Providers + +## Example Usage + +```hcl +data "oci_identity_domains_identity_providers" "test_identity_providers" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + + #Optional + identity_provider_count = var.identity_provider_identity_provider_count + identity_provider_filter = var.identity_provider_identity_provider_filter + attribute_sets = [] + attributes = "" + authorization = var.identity_provider_authorization + resource_type_schema_version = var.identity_provider_resource_type_schema_version + start_index = var.identity_provider_start_index +} +``` + +## Argument Reference + +The following arguments are supported: + +* `identity_provider_count` - (Optional) OPTIONAL. An integer that indicates the desired maximum number of query results per page. 1000 is the largest value that you can use. See the Pagination section of the System for Cross-Domain Identity Management Protocol specification for more information. (Section 3.4.2.4). +* `identity_provider_filter` - (Optional) OPTIONAL. The filter string that is used to request a subset of resources. The filter string MUST be a valid filter expression. See the Filtering section of the SCIM specification for more information (Section 3.4.2.2). The string should contain at least one condition that each item must match in order to be returned in the search results. Each condition specifies an attribute, an operator, and a value. Conditions within a filter can be connected by logical operators (such as AND and OR). Sets of conditions can be grouped together using parentheses. +* `attribute_sets` - (Optional) A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. +* `attributes` - (Optional) A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. +* `start_index` - (Optional) OPTIONAL. An integer that indicates the 1-based index of the first query result. See the Pagination section of the SCIM specification for more information. (Section 3.4.2.4). The number of results pages to return. The first page is 1. Specify 2 to access the second page of results, and so on. + + +## Attributes Reference + +The following attributes are exported: + +* `identity_providers` - The list of identity_providers. + +### IdentityProvider Reference + +The following attributes are exported: + +* `assertion_attribute` - Assertion attribute name. + + **Deprecated Since: 20.1.3** + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * idcsValuePersistedInOtherAttribute: true +* `authn_request_binding` - HTTP binding to use for authentication requests. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `correlation_policy` - Correlation policy + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - Policy display name + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - Policy URI + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - A label that indicates the type that this references. + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsDefaultValue: Policy + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Policy identifier + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - Description + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `enabled` - Set to true to indicate Partner enabled. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none +* `encryption_certificate` - Encryption certificate + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `external_id` - An identifier for the Resource as defined by the Service Consumer. The externalId may simplify identification of the Resource between Service Consumer and Service Provider by allowing the Consumer to refer to the Resource with its own identifier, obviating the need to store a local mapping between the local identifier of the Resource and the identifier used by the Service Provider. Each Resource MAY include a non-empty externalId value. The value of the externalId attribute is always issued by the Service Consumer and can never be specified by the Service Provider. The Service Provider MUST always interpret the externalId as scoped to the Service Consumer's tenant. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `icon_url` - Identity Provider Icon URL. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idp_sso_url` - Identity Provider SSO URL + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `include_signing_cert_in_signature` - Set to true to include the signing certificate in the signature. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `jit_user_prov_assigned_groups` - Refers to every group of which a JIT-provisioned User should be a member. Just-in-Time user-provisioning applies this static list when jitUserProvGroupStaticListEnabled:true. + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - A human readable name, primarily used for display purposes. READ-ONLY. + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - Group URI + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - Group identifier + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `jit_user_prov_attribute_update_enabled` - Set to true to indicate JIT User Creation is enabled + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `jit_user_prov_attributes` - Assertion To User Mapping + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [value] + * idcsSearchable: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `ref` - Mapped Attribute URI + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * mutability: immutable + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - Mapped Attribute identifier + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * mutability: immutable + * required: true + * returned: default + * type: string + * uniqueness: none +* `jit_user_prov_create_user_enabled` - Set to true to indicate JIT User Creation is enabled + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `jit_user_prov_enabled` - Set to true to indicate JIT User Provisioning is enabled + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `jit_user_prov_group_assertion_attribute_enabled` - Set to true to indicate JIT User Provisioning Groups should be assigned based on assertion attribute + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `jit_user_prov_group_assignment_method` - The default value is 'Overwrite', which tells Just-In-Time user-provisioning to replace any current group-assignments for a User with those assigned by assertions and/or those assigned statically. Specify 'Merge' if you want Just-In-Time user-provisioning to combine its group-assignments with those the user already has. + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `jit_user_prov_group_mapping_mode` - Property to indicate the mode of group mapping + + **Added In:** 2205120021 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `jit_user_prov_group_mappings` - The list of mappings between the Identity Domain Group and the IDP group. + + **Added In:** 2205120021 + + **SCIM++ Properties:** + * idcsCompositeKey: [idpGroup] + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `idp_group` - IDP Group Name + + **Added In:** 2205120021 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * type: string + * `ref` - Group URI + + **Added In:** 2205120021 + + **SCIM++ Properties:** + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: reference + * `value` - Domain Group + + **Added In:** 2205120021 + + **SCIM++ Properties:** + * multiValued: false + * mutability: readWrite + * required: true + * idcsSearchable: true + * type: string +* `jit_user_prov_group_saml_attribute_name` - Name of the assertion attribute containing the users groups + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `jit_user_prov_group_static_list_enabled` - Set to true to indicate JIT User Provisioning Groups should be assigned from a static list + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `jit_user_prov_ignore_error_on_absent_groups` - Set to true to indicate ignoring absence of group while provisioning + + **Added In:** 2111112015 + + **SCIM++ Properties:** + * caseExact: false + * idcsAddedSinceVersion: 30 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `logout_binding` - HTTP binding to use for logout. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `logout_enabled` - Set to true to enable logout. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `logout_request_url` - Logout request URL + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `logout_response_url` - Logout response URL + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `metadata` - Metadata + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `name_id_format` - Default authentication request name ID format. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `partner_name` - Unique name of the trusted Identity Provider. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: string + * uniqueness: server +* `partner_provider_id` - Provider ID + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: server +* `requested_authentication_context` - SAML SP authentication type. + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `require_force_authn` - This SP requires requests SAML IdP to enforce re-authentication. + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `requires_encrypted_assertion` - SAML SP must accept encrypted assertion only. + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `saml_ho_krequired` - SAML SP HoK Enabled. + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `service_instance_identifier` - The serviceInstanceIdentifier of the App that hosts this IdP. This value will match the opcServiceInstanceGUID of any service-instance that the IdP represents. + + **Added In:** 18.2.6 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: never + * type: string + * uniqueness: server +* `shown_on_login_page` - Set to true to indicate whether to show IdP in login page or not. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `signature_hash_algorithm` - Signature hash algorithm. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `signing_certificate` - Signing certificate + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `succinct_id` - Succinct ID + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: server +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `tenant_provider_id` - The alternate Provider ID to be used as the Oracle Identity Cloud Service providerID (instead of the one in SamlSettings) when interacting with this IdP. + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `type` - Identity Provider Type + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider` - Social Identity Provider Extension Schema + * `access_token_url` - Social IDP Access token URL + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `account_linking_enabled` - Whether account linking is enabled + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none + * `admin_scope` - Admin scope to request + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `authz_url` - Social IDP Authorization URL + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `client_credential_in_payload` - Whether the client credential is contained in payload + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `clock_skew_in_seconds` - Social IDP allowed clock skew time + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none + * `consumer_key` - Social IDP Client Application Client ID + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `consumer_secret` - Social IDP Client Application Client Secret + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * idcsSensitive: encrypt + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `discovery_url` - Discovery URL + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `id_attribute` - Id attribute used for account linking + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: none + * `profile_url` - Social IDP User profile URL + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `redirect_url` - redirect URL for social idp + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `registration_enabled` - Whether registration is enabled + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none + * `scope` - Scope to request + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `service_provider_name` - Service Provider Name + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: true + * returned: default + * type: string + * uniqueness: none + * `status` - Status + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionx509identity_provider` - X509 Identity Provider Extension Schema + * `cert_match_attribute` - X509 Certificate Matching Attribute + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `crl_check_on_ocsp_failure_enabled` - Fallback on CRL Validation if OCSP fails. + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `crl_enabled` - Set to true to enable CRL Validation + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `crl_location` - CRL Location URL + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `crl_reload_duration` - Fetch the CRL contents every X minutes + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none + * `ocsp_allow_unknown_response_status` - Allow access if OCSP response is UNKNOWN or OCSP Responder does not respond within the timeout duration + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `ocsp_enable_signed_response` - Describes if the OCSP response is signed + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `ocsp_enabled` - Set to true to enable OCSP Validation + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `ocsp_responder_url` - This property specifies OCSP Responder URL. + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocsp_revalidate_time` - Revalidate OCSP status for user after X hours + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * idcsMaxValue: 24 + * idcsMinValue: 0 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none + * `ocsp_server_name` - This property specifies the OCSP Server alias name + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocsp_trust_cert_chain` - OCSP Trusted Certificate Chain + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `other_cert_match_attribute` - Check for specific conditions of other certificate attributes + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `signing_certificate_chain` - Certificate alias list to create a chain for the incoming client certificate + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `user_match_attribute` - This property specifies the userstore attribute value that must match the incoming certificate attribute. + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `user_mapping_method` - User mapping method. + + **Deprecated Since: 20.1.3** + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * idcsValuePersistedInOtherAttribute: true +* `user_mapping_store_attribute` - This property specifies the userstore attribute value that must match the incoming assertion attribute value or the incoming nameid attribute value in order to identify the user during SSO.
You can construct the userMappingStoreAttribute value by specifying attributes from the Oracle Identity Cloud Service Core Users schema. For examples of how to construct the userMappingStoreAttribute value, see the Example of a Request Body section of the Examples tab for the POST and PUT methods of the /IdentityProviders endpoint. + + **Deprecated Since: 20.1.3** + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * idcsValuePersistedInOtherAttribute: true + diff --git a/website/docs/d/identity_domains_kmsi_setting.html.markdown b/website/docs/d/identity_domains_kmsi_setting.html.markdown new file mode 100644 index 00000000000..78b74662e3d --- /dev/null +++ b/website/docs/d/identity_domains_kmsi_setting.html.markdown @@ -0,0 +1,459 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_kmsi_setting" +sidebar_current: "docs-oci-datasource-identity_domains-kmsi_setting" +description: |- + Provides details about a specific Kmsi Setting in Oracle Cloud Infrastructure Identity Domains service +--- + +# Data Source: oci_identity_domains_kmsi_setting +This data source provides details about a specific Kmsi Setting resource in Oracle Cloud Infrastructure Identity Domains service. + +Get KmsiSettings + +## Example Usage + +```hcl +data "oci_identity_domains_kmsi_setting" "test_kmsi_setting" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + kmsi_setting_id = oci_identity_domains_kmsi_setting.test_kmsi_setting.id + + #Optional + attribute_sets = [] + attributes = "" + authorization = var.kmsi_setting_authorization + resource_type_schema_version = var.kmsi_setting_resource_type_schema_version +} +``` + +## Argument Reference + +The following arguments are supported: + +* `attribute_sets` - (Optional) A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. +* `attributes` - (Optional) A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `kmsi_setting_id` - (Required) ID of the resource +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + + +## Attributes Reference + +The following attributes are exported: + +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `external_id` - An identifier for the Resource as defined by the Service Consumer. The externalId may simplify identification of the Resource between Service Consumer and Service Provider by allowing the Consumer to refer to the Resource with its own identifier, obviating the need to store a local mapping between the local identifier of the Resource and the identifier used by the Service Provider. Each Resource MAY include a non-empty externalId value. The value of the externalId attribute is always issued by the Service Consumer and can never be specified by the Service Provider. The Service Provider MUST always interpret the externalId as scoped to the Service Consumer's tenant. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `kmsi_feature_enabled` - Identifier represents KMSI feature is enabled or not. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `kmsi_prompt_enabled` - Identifier represents KMSI to be prompted to user or not. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `last_enabled_on` - Timestamp of when the KmsiSettings was enabled last time. + + **Added In:** 2203071610 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: dateTime + * uniqueness: none +* `last_used_validity_in_days` - Identifier represents duration in days within which kmsi token must be used. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * idcsMaxValue: 365 + * idcsMinValue: 1 + * uniqueness: none +* `max_allowed_sessions` - Identifier represents maximum KMSI sessions allowed in the system. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * idcsMaxValue: 10 + * idcsMinValue: 1 + * uniqueness: none +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `token_validity_in_days` - Identifier represents validity duration in days. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * idcsMaxValue: 1100 + * idcsMinValue: 1 + * uniqueness: none +* `tou_prompt_disabled` - Identifier represents whether user is prompted for ToU or not. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + diff --git a/website/docs/d/identity_domains_kmsi_settings.html.markdown b/website/docs/d/identity_domains_kmsi_settings.html.markdown new file mode 100644 index 00000000000..991ae7e4a8d --- /dev/null +++ b/website/docs/d/identity_domains_kmsi_settings.html.markdown @@ -0,0 +1,463 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_kmsi_settings" +sidebar_current: "docs-oci-datasource-identity_domains-kmsi_settings" +description: |- + Provides the list of Kmsi Settings in Oracle Cloud Infrastructure Identity Domains service +--- + +# Data Source: oci_identity_domains_kmsi_settings +This data source provides the list of Kmsi Settings in Oracle Cloud Infrastructure Identity Domains service. + +Search KmsiSettings + +## Example Usage + +```hcl +data "oci_identity_domains_kmsi_settings" "test_kmsi_settings" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + + #Optional + attribute_sets = [] + attributes = "" + authorization = var.kmsi_setting_authorization + resource_type_schema_version = var.kmsi_setting_resource_type_schema_version +} +``` + +## Argument Reference + +The following arguments are supported: + +* `attribute_sets` - (Optional) A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. +* `attributes` - (Optional) A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + + +## Attributes Reference + +The following attributes are exported: + +* `kmsi_settings` - The list of kmsi_settings. + +### KmsiSetting Reference + +The following attributes are exported: + +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `external_id` - An identifier for the Resource as defined by the Service Consumer. The externalId may simplify identification of the Resource between Service Consumer and Service Provider by allowing the Consumer to refer to the Resource with its own identifier, obviating the need to store a local mapping between the local identifier of the Resource and the identifier used by the Service Provider. Each Resource MAY include a non-empty externalId value. The value of the externalId attribute is always issued by the Service Consumer and can never be specified by the Service Provider. The Service Provider MUST always interpret the externalId as scoped to the Service Consumer's tenant. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `kmsi_feature_enabled` - Identifier represents KMSI feature is enabled or not. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `kmsi_prompt_enabled` - Identifier represents KMSI to be prompted to user or not. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `last_enabled_on` - Timestamp of when the KmsiSettings was enabled last time. + + **Added In:** 2203071610 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: dateTime + * uniqueness: none +* `last_used_validity_in_days` - Identifier represents duration in days within which kmsi token must be used. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * idcsMaxValue: 365 + * idcsMinValue: 1 + * uniqueness: none +* `max_allowed_sessions` - Identifier represents maximum KMSI sessions allowed in the system. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * idcsMaxValue: 10 + * idcsMinValue: 1 + * uniqueness: none +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `token_validity_in_days` - Identifier represents validity duration in days. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * idcsMaxValue: 1100 + * idcsMinValue: 1 + * uniqueness: none +* `tou_prompt_disabled` - Identifier represents whether user is prompted for ToU or not. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + diff --git a/website/docs/d/identity_domains_my_api_key.html.markdown b/website/docs/d/identity_domains_my_api_key.html.markdown new file mode 100644 index 00000000000..bb145919fc4 --- /dev/null +++ b/website/docs/d/identity_domains_my_api_key.html.markdown @@ -0,0 +1,464 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_my_api_key" +sidebar_current: "docs-oci-datasource-identity_domains-my_api_key" +description: |- + Provides details about a specific My Api Key in Oracle Cloud Infrastructure Identity Domains service +--- + +# Data Source: oci_identity_domains_my_api_key +This data source provides details about a specific My Api Key resource in Oracle Cloud Infrastructure Identity Domains service. + +Get user's api key + +## Example Usage + +```hcl +data "oci_identity_domains_my_api_key" "test_my_api_key" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + my_api_key_id = oci_identity_api_key.test_api_key.id + + #Optional + authorization = var.my_api_key_authorization + resource_type_schema_version = var.my_api_key_resource_type_schema_version +} +``` + +## Argument Reference + +The following arguments are supported: + +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `my_api_key_id` - (Required) ID of the resource +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + + +## Attributes Reference + +The following attributes are exported: + +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - Description + + **Added In:** 2101262133 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `fingerprint` - Fingerprint + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * type: string + * mutability: readOnly + * required: true + * returned: default +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `key` - Key + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: true + * idcsPii: true + * type: string + * mutability: immutable + * required: true + * returned: default +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `user` - User linked to api key + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - User display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - User name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - User's ocid + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the user linked to this credential + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - User's id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + diff --git a/website/docs/d/identity_domains_my_api_keys.html.markdown b/website/docs/d/identity_domains_my_api_keys.html.markdown new file mode 100644 index 00000000000..012b06c9820 --- /dev/null +++ b/website/docs/d/identity_domains_my_api_keys.html.markdown @@ -0,0 +1,474 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_my_api_keys" +sidebar_current: "docs-oci-datasource-identity_domains-my_api_keys" +description: |- + Provides the list of My Api Keys in Oracle Cloud Infrastructure Identity Domains service +--- + +# Data Source: oci_identity_domains_my_api_keys +This data source provides the list of My Api Keys in Oracle Cloud Infrastructure Identity Domains service. + +Search Api Key + +## Example Usage + +```hcl +data "oci_identity_domains_my_api_keys" "test_my_api_keys" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + + #Optional + my_api_key_count = var.my_api_key_my_api_key_count + my_api_key_filter = var.my_api_key_my_api_key_filter + authorization = var.my_api_key_authorization + resource_type_schema_version = var.my_api_key_resource_type_schema_version + start_index = var.my_api_key_start_index +} +``` + +## Argument Reference + +The following arguments are supported: + +* `my_api_key_count` - (Optional) OPTIONAL. An integer that indicates the desired maximum number of query results per page. 1000 is the largest value that you can use. See the Pagination section of the System for Cross-Domain Identity Management Protocol specification for more information. (Section 3.4.2.4). +* `my_api_key_filter` - (Optional) OPTIONAL. The filter string that is used to request a subset of resources. The filter string MUST be a valid filter expression. See the Filtering section of the SCIM specification for more information (Section 3.4.2.2). The string should contain at least one condition that each item must match in order to be returned in the search results. Each condition specifies an attribute, an operator, and a value. Conditions within a filter can be connected by logical operators (such as AND and OR). Sets of conditions can be grouped together using parentheses. +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. +* `start_index` - (Optional) OPTIONAL. An integer that indicates the 1-based index of the first query result. See the Pagination section of the SCIM specification for more information. (Section 3.4.2.4). The number of results pages to return. The first page is 1. Specify 2 to access the second page of results, and so on. + + +## Attributes Reference + +The following attributes are exported: + +* `my_api_keys` - The list of my_api_keys. + +### MyApiKey Reference + +The following attributes are exported: + +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - Description + + **Added In:** 2101262133 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `fingerprint` - Fingerprint + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * type: string + * mutability: readOnly + * required: true + * returned: default +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `key` - Key + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: true + * idcsPii: true + * type: string + * mutability: immutable + * required: true + * returned: default +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `user` - User linked to api key + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - User display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - User name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - User's ocid + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the user linked to this credential + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - User's id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + diff --git a/website/docs/d/identity_domains_my_auth_token.html.markdown b/website/docs/d/identity_domains_my_auth_token.html.markdown new file mode 100644 index 00000000000..6019b460a4e --- /dev/null +++ b/website/docs/d/identity_domains_my_auth_token.html.markdown @@ -0,0 +1,468 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_my_auth_token" +sidebar_current: "docs-oci-datasource-identity_domains-my_auth_token" +description: |- + Provides details about a specific My Auth Token in Oracle Cloud Infrastructure Identity Domains service +--- + +# Data Source: oci_identity_domains_my_auth_token +This data source provides details about a specific My Auth Token resource in Oracle Cloud Infrastructure Identity Domains service. + +Get user's auth token + +## Example Usage + +```hcl +data "oci_identity_domains_my_auth_token" "test_my_auth_token" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + my_auth_token_id = oci_identity_auth_token.test_auth_token.id + + #Optional + authorization = var.my_auth_token_authorization + resource_type_schema_version = var.my_auth_token_resource_type_schema_version +} +``` + +## Argument Reference + +The following arguments are supported: + +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `my_auth_token_id` - (Required) ID of the resource +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + + +## Attributes Reference + +The following attributes are exported: + +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - Description + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `expires_on` - User credential expires on + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: dateTime + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `status` - User credential status + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: never + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `user` - User linked to auth token + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - User display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - User name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - User's ocid + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the user linked to this credential + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - User's id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + diff --git a/website/docs/d/identity_domains_my_auth_tokens.html.markdown b/website/docs/d/identity_domains_my_auth_tokens.html.markdown new file mode 100644 index 00000000000..87ce14a93e6 --- /dev/null +++ b/website/docs/d/identity_domains_my_auth_tokens.html.markdown @@ -0,0 +1,478 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_my_auth_tokens" +sidebar_current: "docs-oci-datasource-identity_domains-my_auth_tokens" +description: |- + Provides the list of My Auth Tokens in Oracle Cloud Infrastructure Identity Domains service +--- + +# Data Source: oci_identity_domains_my_auth_tokens +This data source provides the list of My Auth Tokens in Oracle Cloud Infrastructure Identity Domains service. + +Search AuthTokens + +## Example Usage + +```hcl +data "oci_identity_domains_my_auth_tokens" "test_my_auth_tokens" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + + #Optional + my_auth_token_count = var.my_auth_token_my_auth_token_count + my_auth_token_filter = var.my_auth_token_my_auth_token_filter + authorization = var.my_auth_token_authorization + resource_type_schema_version = var.my_auth_token_resource_type_schema_version + start_index = var.my_auth_token_start_index +} +``` + +## Argument Reference + +The following arguments are supported: + +* `my_auth_token_count` - (Optional) OPTIONAL. An integer that indicates the desired maximum number of query results per page. 1000 is the largest value that you can use. See the Pagination section of the System for Cross-Domain Identity Management Protocol specification for more information. (Section 3.4.2.4). +* `my_auth_token_filter` - (Optional) OPTIONAL. The filter string that is used to request a subset of resources. The filter string MUST be a valid filter expression. See the Filtering section of the SCIM specification for more information (Section 3.4.2.2). The string should contain at least one condition that each item must match in order to be returned in the search results. Each condition specifies an attribute, an operator, and a value. Conditions within a filter can be connected by logical operators (such as AND and OR). Sets of conditions can be grouped together using parentheses. +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. +* `start_index` - (Optional) OPTIONAL. An integer that indicates the 1-based index of the first query result. See the Pagination section of the SCIM specification for more information. (Section 3.4.2.4). The number of results pages to return. The first page is 1. Specify 2 to access the second page of results, and so on. + + +## Attributes Reference + +The following attributes are exported: + +* `my_auth_tokens` - The list of my_auth_tokens. + +### MyAuthToken Reference + +The following attributes are exported: + +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - Description + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `expires_on` - User credential expires on + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: dateTime + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `status` - User credential status + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: never + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `user` - User linked to auth token + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - User display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - User name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - User's ocid + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the user linked to this credential + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - User's id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + diff --git a/website/docs/d/identity_domains_my_customer_secret_key.html.markdown b/website/docs/d/identity_domains_my_customer_secret_key.html.markdown new file mode 100644 index 00000000000..14371b0e1ee --- /dev/null +++ b/website/docs/d/identity_domains_my_customer_secret_key.html.markdown @@ -0,0 +1,482 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_my_customer_secret_key" +sidebar_current: "docs-oci-datasource-identity_domains-my_customer_secret_key" +description: |- + Provides details about a specific My Customer Secret Key in Oracle Cloud Infrastructure Identity Domains service +--- + +# Data Source: oci_identity_domains_my_customer_secret_key +This data source provides details about a specific My Customer Secret Key resource in Oracle Cloud Infrastructure Identity Domains service. + +Get user's customer secret key + +## Example Usage + +```hcl +data "oci_identity_domains_my_customer_secret_key" "test_my_customer_secret_key" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + my_customer_secret_key_id = oci_identity_customer_secret_key.test_customer_secret_key.id + + #Optional + authorization = var.my_customer_secret_key_authorization + resource_type_schema_version = var.my_customer_secret_key_resource_type_schema_version +} +``` + +## Argument Reference + +The following arguments are supported: + +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `my_customer_secret_key_id` - (Required) ID of the resource +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + + +## Attributes Reference + +The following attributes are exported: + +* `access_key` - Access key + + **SCIM++ Properties:** + * caseExact: true + * type: string + * mutability: readOnly + * required: false + * returned: default +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - Description + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `display_name` - Display Name + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `expires_on` - User credential expires on + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: dateTime + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `status` - User credential status + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: never + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `user` - User linked to customer secret key + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - User display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - User name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - User's ocid + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the user linked to this credential + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - User's id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + diff --git a/website/docs/d/identity_domains_my_customer_secret_keys.html.markdown b/website/docs/d/identity_domains_my_customer_secret_keys.html.markdown new file mode 100644 index 00000000000..9bf04bb5305 --- /dev/null +++ b/website/docs/d/identity_domains_my_customer_secret_keys.html.markdown @@ -0,0 +1,492 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_my_customer_secret_keys" +sidebar_current: "docs-oci-datasource-identity_domains-my_customer_secret_keys" +description: |- + Provides the list of My Customer Secret Keys in Oracle Cloud Infrastructure Identity Domains service +--- + +# Data Source: oci_identity_domains_my_customer_secret_keys +This data source provides the list of My Customer Secret Keys in Oracle Cloud Infrastructure Identity Domains service. + +Search user's customer secret key + +## Example Usage + +```hcl +data "oci_identity_domains_my_customer_secret_keys" "test_my_customer_secret_keys" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + + #Optional + my_customer_secret_key_count = var.my_customer_secret_key_my_customer_secret_key_count + my_customer_secret_key_filter = var.my_customer_secret_key_my_customer_secret_key_filter + authorization = var.my_customer_secret_key_authorization + resource_type_schema_version = var.my_customer_secret_key_resource_type_schema_version + start_index = var.my_customer_secret_key_start_index +} +``` + +## Argument Reference + +The following arguments are supported: + +* `my_customer_secret_key_count` - (Optional) OPTIONAL. An integer that indicates the desired maximum number of query results per page. 1000 is the largest value that you can use. See the Pagination section of the System for Cross-Domain Identity Management Protocol specification for more information. (Section 3.4.2.4). +* `my_customer_secret_key_filter` - (Optional) OPTIONAL. The filter string that is used to request a subset of resources. The filter string MUST be a valid filter expression. See the Filtering section of the SCIM specification for more information (Section 3.4.2.2). The string should contain at least one condition that each item must match in order to be returned in the search results. Each condition specifies an attribute, an operator, and a value. Conditions within a filter can be connected by logical operators (such as AND and OR). Sets of conditions can be grouped together using parentheses. +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. +* `start_index` - (Optional) OPTIONAL. An integer that indicates the 1-based index of the first query result. See the Pagination section of the SCIM specification for more information. (Section 3.4.2.4). The number of results pages to return. The first page is 1. Specify 2 to access the second page of results, and so on. + + +## Attributes Reference + +The following attributes are exported: + +* `my_customer_secret_keys` - The list of my_customer_secret_keys. + +### MyCustomerSecretKey Reference + +The following attributes are exported: + +* `access_key` - Access key + + **SCIM++ Properties:** + * caseExact: true + * type: string + * mutability: readOnly + * required: false + * returned: default +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - Description + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `display_name` - Display Name + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `expires_on` - User credential expires on + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: dateTime + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `status` - User credential status + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: never + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `user` - User linked to customer secret key + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - User display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - User name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - User's ocid + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the user linked to this credential + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - User's id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + diff --git a/website/docs/d/identity_domains_my_device.html.markdown b/website/docs/d/identity_domains_my_device.html.markdown new file mode 100644 index 00000000000..3208e01c913 --- /dev/null +++ b/website/docs/d/identity_domains_my_device.html.markdown @@ -0,0 +1,854 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_my_device" +sidebar_current: "docs-oci-datasource-identity_domains-my_device" +description: |- + Provides details about a specific My Device in Oracle Cloud Infrastructure Identity Domains service +--- + +# Data Source: oci_identity_domains_my_device +This data source provides details about a specific My Device resource in Oracle Cloud Infrastructure Identity Domains service. + +Get a Device + +## Example Usage + +```hcl +data "oci_identity_domains_my_device" "test_my_device" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + my_device_id = oci_identity_domains_my_device.test_my_device.id + + #Optional + attribute_sets = [] + attributes = "" + authorization = var.my_device_authorization + resource_type_schema_version = var.my_device_resource_type_schema_version +} +``` + +## Argument Reference + +The following arguments are supported: + +* `attribute_sets` - (Optional) A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. +* `attributes` - (Optional) A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `my_device_id` - (Required) ID of the resource +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + + +## Attributes Reference + +The following attributes are exported: + +* `additional_attributes` - Device additional attributes + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `key` - Device Attribute Key Name + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: true + * returned: always + * type: string + * uniqueness: none + * `value` - Device Attribute Value + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `app_version` - Mobile Authenticator App Version + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `authentication_factors` - Authentication Factors + + **SCIM++ Properties:** + * caseExact: true + * idcsCompositeKey: [type] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: complex + * `public_key` - Authentication Factor public key issued by client + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `status` - Authentication Factor Status + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `type` - Authentication Factor Type + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `authentication_method` - Authentication method used in device. For FIDO, it will contain SECURITY_KEY/WINDOWS_HELLO etc + + **Added In:** 2009232244 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `base_public_key` - Device base public Key + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `country_code` - Country code of user's Phone Number + + **Added In:** 19.1.4 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `device_type` - Device hardware name/model + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `device_uuid` - Unique id sent from device + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `display_name` - Device friendly display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `expires_on` - Attribute added for replication log, it is not used by IDCS, just added as place holder + + **Added In:** 2111040242 + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `external_id` - An identifier for the Resource as defined by the Service Consumer. The externalId may simplify identification of the Resource between Service Consumer and Service Provider by allowing the Consumer to refer to the Resource with its own identifier, obviating the need to store a local mapping between the local identifier of the Resource and the identifier used by the Service Provider. Each Resource MAY include a non-empty externalId value. The value of the externalId attribute is always issued be the Service Consumer and can never be specified by the Service Provider. The Service Provider MUST always interpret the externalId as scoped to the Service Consumer's tenant. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `is_acc_rec_enabled` - Flag that indicates whether the device is enrolled for account recovery + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `is_compliant` - Device Compliance Status + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `last_sync_time` - Last Sync time for device + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: dateTime + * uniqueness: none +* `last_validated_time` - The most recent timestamp when the device was successfully validated using one time passcode + + **Added In:** 17.3.6 + + **SCIM++ Properties:** + * idcsSearchable: false + * idcsAllowUpdatesInReadOnlyMode: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: dateTime + * uniqueness: none +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `non_compliances` - Device Non Compliances + + **SCIM++ Properties:** + * idcsCompositeKey: [name, value] + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `action` - Device Compliance Action + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none + * `name` - Device Compliance name + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Device Compliance value + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `package_id` - Mobile Authenticator App Package Id + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `phone_number` - User's Phone Number + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: none +* `platform` - Device Platform + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: none +* `push_notification_target` - Push Notification target. Reference to Device notification related resource + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * uniqueness: none + * `ref` - The URI that corresponds to the push notification target resource of this device + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The identifier of the push notification target + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: always + * type: string + * uniqueness: none +* `reason` - Additional comments/reasons for the change in device status + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `seed` - Attribute added for replication log, it is not used by IDCS, it is actual encrypted TOTP seed for the user + + **Added In:** 2111040242 + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `seed_dek_id` - Attribute added for replication log, it is not used by IDCS, the DEK that encrypts the specific seed for that user + + **Added In:** 2111040242 + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `status` - Device Status + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `third_party_factor` - User's third-party authentication factor details + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `ref` - The URI that corresponds to the third party device resource + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `third_party_factor_type` - Type of the third party authentication factor + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: none + * `third_party_vendor_name` - The vendor name of the third party factor + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - The identifier of third party device + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: true + * returned: default + * type: string + * uniqueness: none +* `user` - Device member + + **Deprecated Since: 17.3.4** + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: true + * returned: default + * type: complex + * uniqueness: none + * `display` - User display name + + **Deprecated Since: 17.3.4** + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the user + + **Added In:** 2105091740 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the member Resource of this device + + **Deprecated Since: 17.3.4** + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The identifier of the user + + **Deprecated Since: 17.3.4** + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: true + * returned: always + * type: string + * uniqueness: none + diff --git a/website/docs/d/identity_domains_my_devices.html.markdown b/website/docs/d/identity_domains_my_devices.html.markdown new file mode 100644 index 00000000000..a61b8d12ace --- /dev/null +++ b/website/docs/d/identity_domains_my_devices.html.markdown @@ -0,0 +1,864 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_my_devices" +sidebar_current: "docs-oci-datasource-identity_domains-my_devices" +description: |- + Provides the list of My Devices in Oracle Cloud Infrastructure Identity Domains service +--- + +# Data Source: oci_identity_domains_my_devices +This data source provides the list of My Devices in Oracle Cloud Infrastructure Identity Domains service. + +Search Devices + +## Example Usage + +```hcl +data "oci_identity_domains_my_devices" "test_my_devices" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + + #Optional + my_device_count = var.my_device_my_device_count + my_device_filter = var.my_device_my_device_filter + attribute_sets = [] + attributes = "" + authorization = var.my_device_authorization + resource_type_schema_version = var.my_device_resource_type_schema_version + start_index = var.my_device_start_index +} +``` + +## Argument Reference + +The following arguments are supported: + +* `my_device_count` - (Optional) OPTIONAL. An integer that indicates the desired maximum number of query results per page. 1000 is the largest value that you can use. See the Pagination section of the System for Cross-Domain Identity Management Protocol specification for more information. (Section 3.4.2.4). +* `my_device_filter` - (Optional) OPTIONAL. The filter string that is used to request a subset of resources. The filter string MUST be a valid filter expression. See the Filtering section of the SCIM specification for more information (Section 3.4.2.2). The string should contain at least one condition that each item must match in order to be returned in the search results. Each condition specifies an attribute, an operator, and a value. Conditions within a filter can be connected by logical operators (such as AND and OR). Sets of conditions can be grouped together using parentheses. +* `attribute_sets` - (Optional) A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. +* `attributes` - (Optional) A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. +* `start_index` - (Optional) OPTIONAL. An integer that indicates the 1-based index of the first query result. See the Pagination section of the SCIM specification for more information. (Section 3.4.2.4). The number of results pages to return. The first page is 1. Specify 2 to access the second page of results, and so on. + + +## Attributes Reference + +The following attributes are exported: + +* `my_devices` - The list of my_devices. + +### MyDevice Reference + +The following attributes are exported: + +* `additional_attributes` - Device additional attributes + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `key` - Device Attribute Key Name + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: true + * returned: always + * type: string + * uniqueness: none + * `value` - Device Attribute Value + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `app_version` - Mobile Authenticator App Version + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `authentication_factors` - Authentication Factors + + **SCIM++ Properties:** + * caseExact: true + * idcsCompositeKey: [type] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: complex + * `public_key` - Authentication Factor public key issued by client + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `status` - Authentication Factor Status + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `type` - Authentication Factor Type + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `authentication_method` - Authentication method used in device. For FIDO, it will contain SECURITY_KEY/WINDOWS_HELLO etc + + **Added In:** 2009232244 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `base_public_key` - Device base public Key + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `country_code` - Country code of user's Phone Number + + **Added In:** 19.1.4 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `device_type` - Device hardware name/model + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `device_uuid` - Unique id sent from device + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `display_name` - Device friendly display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `expires_on` - Attribute added for replication log, it is not used by IDCS, just added as place holder + + **Added In:** 2111040242 + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `external_id` - An identifier for the Resource as defined by the Service Consumer. The externalId may simplify identification of the Resource between Service Consumer and Service Provider by allowing the Consumer to refer to the Resource with its own identifier, obviating the need to store a local mapping between the local identifier of the Resource and the identifier used by the Service Provider. Each Resource MAY include a non-empty externalId value. The value of the externalId attribute is always issued be the Service Consumer and can never be specified by the Service Provider. The Service Provider MUST always interpret the externalId as scoped to the Service Consumer's tenant. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `is_acc_rec_enabled` - Flag that indicates whether the device is enrolled for account recovery + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `is_compliant` - Device Compliance Status + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `last_sync_time` - Last Sync time for device + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: dateTime + * uniqueness: none +* `last_validated_time` - The most recent timestamp when the device was successfully validated using one time passcode + + **Added In:** 17.3.6 + + **SCIM++ Properties:** + * idcsSearchable: false + * idcsAllowUpdatesInReadOnlyMode: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: dateTime + * uniqueness: none +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `non_compliances` - Device Non Compliances + + **SCIM++ Properties:** + * idcsCompositeKey: [name, value] + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `action` - Device Compliance Action + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none + * `name` - Device Compliance name + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Device Compliance value + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `package_id` - Mobile Authenticator App Package Id + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `phone_number` - User's Phone Number + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: none +* `platform` - Device Platform + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: none +* `push_notification_target` - Push Notification target. Reference to Device notification related resource + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * uniqueness: none + * `ref` - The URI that corresponds to the push notification target resource of this device + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The identifier of the push notification target + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: always + * type: string + * uniqueness: none +* `reason` - Additional comments/reasons for the change in device status + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `seed` - Attribute added for replication log, it is not used by IDCS, it is actual encrypted TOTP seed for the user + + **Added In:** 2111040242 + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `seed_dek_id` - Attribute added for replication log, it is not used by IDCS, the DEK that encrypts the specific seed for that user + + **Added In:** 2111040242 + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `status` - Device Status + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `third_party_factor` - User's third-party authentication factor details + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `ref` - The URI that corresponds to the third party device resource + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `third_party_factor_type` - Type of the third party authentication factor + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: none + * `third_party_vendor_name` - The vendor name of the third party factor + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - The identifier of third party device + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: true + * returned: default + * type: string + * uniqueness: none +* `user` - Device member + + **Deprecated Since: 17.3.4** + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: true + * returned: default + * type: complex + * uniqueness: none + * `display` - User display name + + **Deprecated Since: 17.3.4** + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the user + + **Added In:** 2105091740 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the member Resource of this device + + **Deprecated Since: 17.3.4** + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The identifier of the user + + **Deprecated Since: 17.3.4** + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: true + * returned: always + * type: string + * uniqueness: none + diff --git a/website/docs/d/identity_domains_my_groups.html.markdown b/website/docs/d/identity_domains_my_groups.html.markdown new file mode 100644 index 00000000000..12262aeff8b --- /dev/null +++ b/website/docs/d/identity_domains_my_groups.html.markdown @@ -0,0 +1,901 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_my_groups" +sidebar_current: "docs-oci-datasource-identity_domains-my_groups" +description: |- + Provides the list of My Groups in Oracle Cloud Infrastructure Identity Domains service +--- + +# Data Source: oci_identity_domains_my_groups +This data source provides the list of My Groups in Oracle Cloud Infrastructure Identity Domains service. + +Search My Groups + +## Example Usage + +```hcl +data "oci_identity_domains_my_groups" "test_my_groups" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + + #Optional + my_group_count = var.my_group_my_group_count + my_group_filter = var.my_group_my_group_filter + attribute_sets = [] + attributes = "" + authorization = var.my_group_authorization + resource_type_schema_version = var.my_group_resource_type_schema_version + start_index = var.my_group_start_index +} +``` + +## Argument Reference + +The following arguments are supported: + +* `my_group_count` - (Optional) OPTIONAL. An integer that indicates the desired maximum number of query results per page. 1000 is the largest value that you can use. See the Pagination section of the System for Cross-Domain Identity Management Protocol specification for more information. (Section 3.4.2.4). +* `my_group_filter` - (Optional) OPTIONAL. The filter string that is used to request a subset of resources. The filter string MUST be a valid filter expression. See the Filtering section of the SCIM specification for more information (Section 3.4.2.2). The string should contain at least one condition that each item must match in order to be returned in the search results. Each condition specifies an attribute, an operator, and a value. Conditions within a filter can be connected by logical operators (such as AND and OR). Sets of conditions can be grouped together using parentheses. +* `attribute_sets` - (Optional) A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. +* `attributes` - (Optional) A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. +* `start_index` - (Optional) OPTIONAL. An integer that indicates the 1-based index of the first query result. See the Pagination section of the SCIM specification for more information. (Section 3.4.2.4). The number of results pages to return. The first page is 1. Specify 2 to access the second page of results, and so on. + + +## Attributes Reference + +The following attributes are exported: + +* `my_groups` - The list of my_groups. + +### MyGroup Reference + +The following attributes are exported: + +* `resources` - A multi-valued list of complex objects containing the requested resources. This MAY be a subset of the full set of resources if pagination is requested. REQUIRED if "totalResults" is non-zero. + * `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `display_name` - Group display name + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Display Name + * idcsCsvAttributeNameMappings: [[columnHeaderName:Name, deprecatedColumnHeaderName:Display Name]] + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: string + * uniqueness: global + * `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `external_id` - An identifier for the Resource as defined by the Service Consumer. The externalId may simplify identification of the Resource between Service Consumer and Service Provider by allowing the Consumer to refer to the Resource with its own identifier, obviating the need to store a local mapping between the local identifier of the Resource and the identifier used by the Service Provider. Each Resource MAY include a non-empty externalId value. The value of the externalId attribute is always issued by the Service Consumer and can never be specified by the Service Provider. The Service Provider MUST always interpret the externalId as scoped to the Service Consumer's tenant. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global + * `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none + * `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none + * `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `members` - Group members - when requesting members attribute, a max of 10,000 members will be returned in a single request. It is recommended to use startIndex and count to return members in pages instead of in a single response, eg : #attributes=members[startIndex=1%26count=10] + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [value] + * idcsCsvAttributeNameMappings: [[columnHeaderName:User Members, mapsTo:members[User].value, multiValueDelimiter:;]] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * idcsPaginateResponse: true + * type: complex + * uniqueness: none + * `date_added` - The DateTime the member was added to the Group. + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readOnly + * returned: default + * type: dateTime + * uniqueness: none + * `display` - Member display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `membership_ocid` - Membership Ocid + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - Member name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - OCID of the member of this Group + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the member Resource of this Group + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - Indicates the type of resource--for example, User or Group + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * idcsDefaultValue: User + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - ID of the member of this Group + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: string + * uniqueness: none + * `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `non_unique_display_name` - A human readable name for Group as defined by the Service Consumer + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Non-Unique Display Name + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: always + * type: string + * `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global + * `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `urnietfparamsscimschemasoracleidcsextensiongroup_group` - Idcs Group + * `app_roles` - A list of appRoles that the user belongs to, either thorough direct membership, nested groups, or dynamically calculated + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `admin_role` - If true, then the role provides administrative access privileges. READ-ONLY. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: boolean + * uniqueness: none + * `app_id` - ID of parent App. READ-ONLY. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `app_name` - Name of parent App. READ-ONLY. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `display` - A human readable name, primarily used for display purposes. READ-ONLY. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `legacy_group_name` - The name of the legacy group associated with this AppRole. + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the corresponding appRole resource to which the user belongs + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: reference + * uniqueness: none + * `type` - A label indicating the attribute's function; e.g., 'direct' or 'indirect'. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `value` - The identifier of the appRole + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: always + * type: string + * uniqueness: none + * `creation_mechanism` - Source from which this group got created. + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeNameMappings: [[defaultValue:import]] + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: request + * type: string + * uniqueness: none + * `description` - Group description + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Description + * idcsCsvAttributeNameMappings: [[columnHeaderName:Description]] + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `grants` - Grants assigned to group + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `app_id` - App identifier + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `grant_mechanism` - Each value of grantMechanism indicates how (or by what component) some App (or App-Entitlement) was granted.\nA customer or the UI should use only grantMechanism values that start with 'ADMINISTRATOR':\n - 'ADMINISTRATOR_TO_USER' is for a direct grant to a specific User.\n - 'ADMINISTRATOR_TO_GROUP' is for a grant to a specific Group, which results in indirect grants to Users who are members of that Group.\n - 'ADMINISTRATOR_TO_APP' is for a grant to a specific App. The grantee (client) App gains access to the granted (server) App. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - Grant URI + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - Grant identifier + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `owners` - Group owners + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [value, type] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `display` - Owner display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the owning Resource of this Group + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - Indicates the type of resource--for example, User or Group + + **SCIM++ Properties:** + * caseExact: true + * idcsDefaultValue: User + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - ID of the owner of this Group + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: string + * uniqueness: none + * `password_policy` - Password Policy associated with this Group. + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `name` - PasswordPolicy Name + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `priority` - PasswordPolicy priority + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: integer + * uniqueness: none + * `ref` - PasswordPolicy URI + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The ID of the PasswordPolicy. + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: always + * type: string + * uniqueness: none + * `synced_from_app` - The entity that created this Group. + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `display` - App Display Name + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * caseExact: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - App URI + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of the entity that created this Group. + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * idcsDefaultValue: App + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the App. + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none + * `urnietfparamsscimschemasoracleidcsextensionposix_group` - POSIX Group extension + * `gid_number` - Integer uniquely identifying a group in a POSIX administrative domain + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: request + * type: integer + * uniqueness: server +* `items_per_page` - The number of resources returned in a list response page. REQUIRED when partial results returned due to pagination. +* `schemas` - The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. REQUIRED. +* `start_index` - The 1-based index of the first result in the current set of list results. REQUIRED when partial results returned due to pagination. +* `total_results` - The total number of results returned by the list or query operation. The value may be larger than the number of resources returned such as when returning a single page of results where multiple pages are available. REQUIRED. + diff --git a/website/docs/d/identity_domains_my_oauth2client_credential.html.markdown b/website/docs/d/identity_domains_my_oauth2client_credential.html.markdown new file mode 100644 index 00000000000..038e5e78d24 --- /dev/null +++ b/website/docs/d/identity_domains_my_oauth2client_credential.html.markdown @@ -0,0 +1,517 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_my_oauth2client_credential" +sidebar_current: "docs-oci-datasource-identity_domains-my_oauth2client_credential" +description: |- + Provides details about a specific My O Auth2 Client Credential in Oracle Cloud Infrastructure Identity Domains service +--- + +# Data Source: oci_identity_domains_my_oauth2client_credential +This data source provides details about a specific My O Auth2 Client Credential resource in Oracle Cloud Infrastructure Identity Domains service. + +Get user's oauth2 client credential + +## Example Usage + +```hcl +data "oci_identity_domains_my_oauth2client_credential" "test_my_oauth2client_credential" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + my_oauth2client_credential_id = oci_identity_domains_my_oauth2client_credential.test_my_oauth2client_credential.id + + #Optional + authorization = var.my_oauth2client_credential_authorization + resource_type_schema_version = var.my_oauth2client_credential_resource_type_schema_version +} +``` + +## Argument Reference + +The following arguments are supported: + +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `my_oauth2client_credential_id` - (Required) ID of the resource +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + + +## Attributes Reference + +The following attributes are exported: + +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - Description + + **Added In:** 2101262133 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `expires_on` - User credential expires on + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: dateTime + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `is_reset_secret` - Specifies if secret need to be reset + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: writeOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `name` - Name + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: true + * returned: default +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `scopes` - Scopes + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [audience, scope] + * type: complex + * mutability: readWrite + * multiValued: true + * required: true + * returned: default + * `audience` - Audience + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: true + * returned: default + * `scope` - Scope + + **SCIM++ Properties:** + * caseExact: false + * idcsScimCompliant: false + * type: string + * mutability: readWrite + * multiValued: false + * required: true + * returned: default +* `status` - User credential status + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: never + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `user` - User linked to oauth2 client credential + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - User display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - User name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - User's ocid + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the user linked to this credential + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - User's id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + diff --git a/website/docs/d/identity_domains_my_oauth2client_credentials.html.markdown b/website/docs/d/identity_domains_my_oauth2client_credentials.html.markdown new file mode 100644 index 00000000000..6bae2c25336 --- /dev/null +++ b/website/docs/d/identity_domains_my_oauth2client_credentials.html.markdown @@ -0,0 +1,527 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_my_oauth2client_credentials" +sidebar_current: "docs-oci-datasource-identity_domains-my_oauth2client_credentials" +description: |- + Provides the list of My O Auth2 Client Credentials in Oracle Cloud Infrastructure Identity Domains service +--- + +# Data Source: oci_identity_domains_my_oauth2client_credentials +This data source provides the list of My O Auth2 Client Credentials in Oracle Cloud Infrastructure Identity Domains service. + +Search oauth2 client credentials + +## Example Usage + +```hcl +data "oci_identity_domains_my_oauth2client_credentials" "test_my_oauth2client_credentials" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + + #Optional + my_oauth2client_credential_count = var.my_oauth2client_credential_my_oauth2client_credential_count + my_oauth2client_credential_filter = var.my_oauth2client_credential_my_oauth2client_credential_filter + authorization = var.my_oauth2client_credential_authorization + resource_type_schema_version = var.my_oauth2client_credential_resource_type_schema_version + start_index = var.my_oauth2client_credential_start_index +} +``` + +## Argument Reference + +The following arguments are supported: + +* `my_oauth2client_credential_count` - (Optional) OPTIONAL. An integer that indicates the desired maximum number of query results per page. 1000 is the largest value that you can use. See the Pagination section of the System for Cross-Domain Identity Management Protocol specification for more information. (Section 3.4.2.4). +* `my_oauth2client_credential_filter` - (Optional) OPTIONAL. The filter string that is used to request a subset of resources. The filter string MUST be a valid filter expression. See the Filtering section of the SCIM specification for more information (Section 3.4.2.2). The string should contain at least one condition that each item must match in order to be returned in the search results. Each condition specifies an attribute, an operator, and a value. Conditions within a filter can be connected by logical operators (such as AND and OR). Sets of conditions can be grouped together using parentheses. +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. +* `start_index` - (Optional) OPTIONAL. An integer that indicates the 1-based index of the first query result. See the Pagination section of the SCIM specification for more information. (Section 3.4.2.4). The number of results pages to return. The first page is 1. Specify 2 to access the second page of results, and so on. + + +## Attributes Reference + +The following attributes are exported: + +* `my_oauth2client_credentials` - The list of my_oauth2client_credentials. + +### MyOAuth2ClientCredential Reference + +The following attributes are exported: + +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - Description + + **Added In:** 2101262133 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `expires_on` - User credential expires on + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: dateTime + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `is_reset_secret` - Specifies if secret need to be reset + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: writeOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `name` - Name + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: true + * returned: default +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `scopes` - Scopes + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [audience, scope] + * type: complex + * mutability: readWrite + * multiValued: true + * required: true + * returned: default + * `audience` - Audience + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: true + * returned: default + * `scope` - Scope + + **SCIM++ Properties:** + * caseExact: false + * idcsScimCompliant: false + * type: string + * mutability: readWrite + * multiValued: false + * required: true + * returned: default +* `status` - User credential status + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: never + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `user` - User linked to oauth2 client credential + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - User display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - User name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - User's ocid + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the user linked to this credential + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - User's id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + diff --git a/website/docs/d/identity_domains_my_smtp_credential.html.markdown b/website/docs/d/identity_domains_my_smtp_credential.html.markdown new file mode 100644 index 00000000000..5a6951e2565 --- /dev/null +++ b/website/docs/d/identity_domains_my_smtp_credential.html.markdown @@ -0,0 +1,474 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_my_smtp_credential" +sidebar_current: "docs-oci-datasource-identity_domains-my_smtp_credential" +description: |- + Provides details about a specific My Smtp Credential in Oracle Cloud Infrastructure Identity Domains service +--- + +# Data Source: oci_identity_domains_my_smtp_credential +This data source provides details about a specific My Smtp Credential resource in Oracle Cloud Infrastructure Identity Domains service. + +Get user's smtp credentials + +## Example Usage + +```hcl +data "oci_identity_domains_my_smtp_credential" "test_my_smtp_credential" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + my_smtp_credential_id = oci_identity_smtp_credential.test_smtp_credential.id + + #Optional + authorization = var.my_smtp_credential_authorization + resource_type_schema_version = var.my_smtp_credential_resource_type_schema_version +} +``` + +## Argument Reference + +The following arguments are supported: + +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `my_smtp_credential_id` - (Required) ID of the resource +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + + +## Attributes Reference + +The following attributes are exported: + +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - Description + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `expires_on` - User credential expires on + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: dateTime + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `status` - User credential status + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: never + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `user` - User linked to smtp credential + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - User display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - User name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - User's ocid + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the user linked to this credential + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - User's id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none +* `user_name` - User name + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readOnly + * required: true + * returned: default + diff --git a/website/docs/d/identity_domains_my_smtp_credentials.html.markdown b/website/docs/d/identity_domains_my_smtp_credentials.html.markdown new file mode 100644 index 00000000000..146ec695efd --- /dev/null +++ b/website/docs/d/identity_domains_my_smtp_credentials.html.markdown @@ -0,0 +1,484 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_my_smtp_credentials" +sidebar_current: "docs-oci-datasource-identity_domains-my_smtp_credentials" +description: |- + Provides the list of My Smtp Credentials in Oracle Cloud Infrastructure Identity Domains service +--- + +# Data Source: oci_identity_domains_my_smtp_credentials +This data source provides the list of My Smtp Credentials in Oracle Cloud Infrastructure Identity Domains service. + +Search smtp credentials + +## Example Usage + +```hcl +data "oci_identity_domains_my_smtp_credentials" "test_my_smtp_credentials" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + + #Optional + my_smtp_credential_count = var.my_smtp_credential_my_smtp_credential_count + my_smtp_credential_filter = var.my_smtp_credential_my_smtp_credential_filter + authorization = var.my_smtp_credential_authorization + resource_type_schema_version = var.my_smtp_credential_resource_type_schema_version + start_index = var.my_smtp_credential_start_index +} +``` + +## Argument Reference + +The following arguments are supported: + +* `my_smtp_credential_count` - (Optional) OPTIONAL. An integer that indicates the desired maximum number of query results per page. 1000 is the largest value that you can use. See the Pagination section of the System for Cross-Domain Identity Management Protocol specification for more information. (Section 3.4.2.4). +* `my_smtp_credential_filter` - (Optional) OPTIONAL. The filter string that is used to request a subset of resources. The filter string MUST be a valid filter expression. See the Filtering section of the SCIM specification for more information (Section 3.4.2.2). The string should contain at least one condition that each item must match in order to be returned in the search results. Each condition specifies an attribute, an operator, and a value. Conditions within a filter can be connected by logical operators (such as AND and OR). Sets of conditions can be grouped together using parentheses. +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. +* `start_index` - (Optional) OPTIONAL. An integer that indicates the 1-based index of the first query result. See the Pagination section of the SCIM specification for more information. (Section 3.4.2.4). The number of results pages to return. The first page is 1. Specify 2 to access the second page of results, and so on. + + +## Attributes Reference + +The following attributes are exported: + +* `my_smtp_credentials` - The list of my_smtp_credentials. + +### MySmtpCredential Reference + +The following attributes are exported: + +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - Description + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `expires_on` - User credential expires on + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: dateTime + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `status` - User credential status + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: never + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `user` - User linked to smtp credential + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - User display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - User name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - User's ocid + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the user linked to this credential + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - User's id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none +* `user_name` - User name + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readOnly + * required: true + * returned: default + diff --git a/website/docs/d/identity_domains_my_support_account.html.markdown b/website/docs/d/identity_domains_my_support_account.html.markdown new file mode 100644 index 00000000000..d81d02d6b29 --- /dev/null +++ b/website/docs/d/identity_domains_my_support_account.html.markdown @@ -0,0 +1,469 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_my_support_account" +sidebar_current: "docs-oci-datasource-identity_domains-my_support_account" +description: |- + Provides details about a specific My Support Account in Oracle Cloud Infrastructure Identity Domains service +--- + +# Data Source: oci_identity_domains_my_support_account +This data source provides details about a specific My Support Account resource in Oracle Cloud Infrastructure Identity Domains service. + +Get a Support Account + +## Example Usage + +```hcl +data "oci_identity_domains_my_support_account" "test_my_support_account" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + my_support_account_id = oci_identity_domains_my_support_account.test_my_support_account.id + + #Optional + authorization = var.my_support_account_authorization + resource_type_schema_version = var.my_support_account_resource_type_schema_version +} +``` + +## Argument Reference + +The following arguments are supported: + +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `my_support_account_id` - (Required) ID of the resource +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + + +## Attributes Reference + +The following attributes are exported: + +* `my_support_account_provider` - User Support Account Provider + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * idcsSearchable: true + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `token` - User Support Account Token + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * required: true + * returned: never + * type: string + * uniqueness: none +* `user` - User linked to Support Account + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - User display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - User name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - User's ocid + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the user linked to this Support Account + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - User's id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none +* `user_id` - User Support User Id + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readOnly + * idcsSearchable: true + * required: false + * returned: default + * type: string + * uniqueness: none + diff --git a/website/docs/d/identity_domains_my_support_accounts.html.markdown b/website/docs/d/identity_domains_my_support_accounts.html.markdown new file mode 100644 index 00000000000..1c587575cd5 --- /dev/null +++ b/website/docs/d/identity_domains_my_support_accounts.html.markdown @@ -0,0 +1,479 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_my_support_accounts" +sidebar_current: "docs-oci-datasource-identity_domains-my_support_accounts" +description: |- + Provides the list of My Support Accounts in Oracle Cloud Infrastructure Identity Domains service +--- + +# Data Source: oci_identity_domains_my_support_accounts +This data source provides the list of My Support Accounts in Oracle Cloud Infrastructure Identity Domains service. + +Search Support Accounts + +## Example Usage + +```hcl +data "oci_identity_domains_my_support_accounts" "test_my_support_accounts" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + + #Optional + my_support_account_count = var.my_support_account_my_support_account_count + my_support_account_filter = var.my_support_account_my_support_account_filter + authorization = var.my_support_account_authorization + resource_type_schema_version = var.my_support_account_resource_type_schema_version + start_index = var.my_support_account_start_index +} +``` + +## Argument Reference + +The following arguments are supported: + +* `my_support_account_count` - (Optional) OPTIONAL. An integer that indicates the desired maximum number of query results per page. 1000 is the largest value that you can use. See the Pagination section of the System for Cross-Domain Identity Management Protocol specification for more information. (Section 3.4.2.4). +* `my_support_account_filter` - (Optional) OPTIONAL. The filter string that is used to request a subset of resources. The filter string MUST be a valid filter expression. See the Filtering section of the SCIM specification for more information (Section 3.4.2.2). The string should contain at least one condition that each item must match in order to be returned in the search results. Each condition specifies an attribute, an operator, and a value. Conditions within a filter can be connected by logical operators (such as AND and OR). Sets of conditions can be grouped together using parentheses. +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. +* `start_index` - (Optional) OPTIONAL. An integer that indicates the 1-based index of the first query result. See the Pagination section of the SCIM specification for more information. (Section 3.4.2.4). The number of results pages to return. The first page is 1. Specify 2 to access the second page of results, and so on. + + +## Attributes Reference + +The following attributes are exported: + +* `my_support_accounts` - The list of my_support_accounts. + +### MySupportAccount Reference + +The following attributes are exported: + +* `my_support_account_provider` - User Support Account Provider + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * idcsSearchable: true + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `token` - User Support Account Token + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * required: true + * returned: never + * type: string + * uniqueness: none +* `user` - User linked to Support Account + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - User display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - User name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - User's ocid + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the user linked to this Support Account + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - User's id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none +* `user_id` - User Support User Id + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readOnly + * idcsSearchable: true + * required: false + * returned: default + * type: string + * uniqueness: none + diff --git a/website/docs/d/identity_domains_my_trusted_user_agent.html.markdown b/website/docs/d/identity_domains_my_trusted_user_agent.html.markdown new file mode 100644 index 00000000000..11a79eb29af --- /dev/null +++ b/website/docs/d/identity_domains_my_trusted_user_agent.html.markdown @@ -0,0 +1,557 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_my_trusted_user_agent" +sidebar_current: "docs-oci-datasource-identity_domains-my_trusted_user_agent" +description: |- + Provides details about a specific My Trusted User Agent in Oracle Cloud Infrastructure Identity Domains service +--- + +# Data Source: oci_identity_domains_my_trusted_user_agent +This data source provides details about a specific My Trusted User Agent resource in Oracle Cloud Infrastructure Identity Domains service. + +Get a Trusted User Agent + +## Example Usage + +```hcl +data "oci_identity_domains_my_trusted_user_agent" "test_my_trusted_user_agent" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + my_trusted_user_agent_id = oci_cloud_bridge_agent.test_agent.id + + #Optional + attribute_sets = [] + attributes = "" + authorization = var.my_trusted_user_agent_authorization + resource_type_schema_version = var.my_trusted_user_agent_resource_type_schema_version +} +``` + +## Argument Reference + +The following arguments are supported: + +* `attribute_sets` - (Optional) A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. +* `attributes` - (Optional) A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `my_trusted_user_agent_id` - (Required) ID of the resource +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + + +## Attributes Reference + +The following attributes are exported: + +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `expiry_time` - Validation period of the trust token. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `last_used_on` - Indicates when this token was used lastime. + + **Added In:** 2111190457 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: dateTime + * uniqueness: none +* `location` - Trust token issued geo-location. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: none +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `name` - The name of the User Agent that the user wants the system to trust and to use in Multi-Factor Authentication. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: true + * returned: always + * type: string + * uniqueness: none +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `platform` - User agent platform for which the trust token has been issued. + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: none +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `token_type` - The token type being created. This token is used as trusted and kmsi token. + + **Added In:** 2111190457 + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `trust_token` - Trust token for the user agent. This is a random string value that will be updated whenever a token that has been issued is verified successfully. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * idcsSensitive: none + * multiValued: false + * mutability: readOnly + * required: true + * returned: always + * type: string + * uniqueness: none +* `trusted_factors` - Trusted 2FA Factors + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * caseExact: true + * idcsCompositeKey: [type] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: complex + * `category` - Trusted Factor Type. Local, X509, SAML SOCIAL + + **Added In:** 2111190457 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `creation_time` - trust factor creation time + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: dateTime + * uniqueness: none + * `type` - Trusted Factor + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `user` - user for whom the trust-token was issued + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: complex + * uniqueness: none + * `display` - Friendly name of the User to be used for purposes of display. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the user + + **Added In:** 2105091740 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - Full URI to the user for whom the trust-token was issued. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: reference + * uniqueness: none + * `value` - The SCIM ID of the user for whom the trust-token was issued. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + diff --git a/website/docs/d/identity_domains_my_trusted_user_agents.html.markdown b/website/docs/d/identity_domains_my_trusted_user_agents.html.markdown new file mode 100644 index 00000000000..6d1953ac7cc --- /dev/null +++ b/website/docs/d/identity_domains_my_trusted_user_agents.html.markdown @@ -0,0 +1,567 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_my_trusted_user_agents" +sidebar_current: "docs-oci-datasource-identity_domains-my_trusted_user_agents" +description: |- + Provides the list of My Trusted User Agents in Oracle Cloud Infrastructure Identity Domains service +--- + +# Data Source: oci_identity_domains_my_trusted_user_agents +This data source provides the list of My Trusted User Agents in Oracle Cloud Infrastructure Identity Domains service. + +Search Trusted User Agents + +## Example Usage + +```hcl +data "oci_identity_domains_my_trusted_user_agents" "test_my_trusted_user_agents" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + + #Optional + my_trusted_user_agent_count = var.my_trusted_user_agent_my_trusted_user_agent_count + my_trusted_user_agent_filter = var.my_trusted_user_agent_my_trusted_user_agent_filter + attribute_sets = [] + attributes = "" + authorization = var.my_trusted_user_agent_authorization + resource_type_schema_version = var.my_trusted_user_agent_resource_type_schema_version + start_index = var.my_trusted_user_agent_start_index +} +``` + +## Argument Reference + +The following arguments are supported: + +* `my_trusted_user_agent_count` - (Optional) OPTIONAL. An integer that indicates the desired maximum number of query results per page. 1000 is the largest value that you can use. See the Pagination section of the System for Cross-Domain Identity Management Protocol specification for more information. (Section 3.4.2.4). +* `my_trusted_user_agent_filter` - (Optional) OPTIONAL. The filter string that is used to request a subset of resources. The filter string MUST be a valid filter expression. See the Filtering section of the SCIM specification for more information (Section 3.4.2.2). The string should contain at least one condition that each item must match in order to be returned in the search results. Each condition specifies an attribute, an operator, and a value. Conditions within a filter can be connected by logical operators (such as AND and OR). Sets of conditions can be grouped together using parentheses. +* `attribute_sets` - (Optional) A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. +* `attributes` - (Optional) A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. +* `start_index` - (Optional) OPTIONAL. An integer that indicates the 1-based index of the first query result. See the Pagination section of the SCIM specification for more information. (Section 3.4.2.4). The number of results pages to return. The first page is 1. Specify 2 to access the second page of results, and so on. + + +## Attributes Reference + +The following attributes are exported: + +* `my_trusted_user_agents` - The list of my_trusted_user_agents. + +### MyTrustedUserAgent Reference + +The following attributes are exported: + +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `expiry_time` - Validation period of the trust token. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `last_used_on` - Indicates when this token was used lastime. + + **Added In:** 2111190457 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: dateTime + * uniqueness: none +* `location` - Trust token issued geo-location. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: none +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `name` - The name of the User Agent that the user wants the system to trust and to use in Multi-Factor Authentication. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: true + * returned: always + * type: string + * uniqueness: none +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `platform` - User agent platform for which the trust token has been issued. + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: none +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `token_type` - The token type being created. This token is used as trusted and kmsi token. + + **Added In:** 2111190457 + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `trust_token` - Trust token for the user agent. This is a random string value that will be updated whenever a token that has been issued is verified successfully. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * idcsSensitive: none + * multiValued: false + * mutability: readOnly + * required: true + * returned: always + * type: string + * uniqueness: none +* `trusted_factors` - Trusted 2FA Factors + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * caseExact: true + * idcsCompositeKey: [type] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: complex + * `category` - Trusted Factor Type. Local, X509, SAML SOCIAL + + **Added In:** 2111190457 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `creation_time` - trust factor creation time + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: dateTime + * uniqueness: none + * `type` - Trusted Factor + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `user` - user for whom the trust-token was issued + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: complex + * uniqueness: none + * `display` - Friendly name of the User to be used for purposes of display. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the user + + **Added In:** 2105091740 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - Full URI to the user for whom the trust-token was issued. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: reference + * uniqueness: none + * `value` - The SCIM ID of the user for whom the trust-token was issued. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + diff --git a/website/docs/d/identity_domains_my_user_db_credential.html.markdown b/website/docs/d/identity_domains_my_user_db_credential.html.markdown new file mode 100644 index 00000000000..53506e09791 --- /dev/null +++ b/website/docs/d/identity_domains_my_user_db_credential.html.markdown @@ -0,0 +1,519 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_my_user_db_credential" +sidebar_current: "docs-oci-datasource-identity_domains-my_user_db_credential" +description: |- + Provides details about a specific My User Db Credential in Oracle Cloud Infrastructure Identity Domains service +--- + +# Data Source: oci_identity_domains_my_user_db_credential +This data source provides details about a specific My User Db Credential resource in Oracle Cloud Infrastructure Identity Domains service. + +Get a User's DbCredentials + +## Example Usage + +```hcl +data "oci_identity_domains_my_user_db_credential" "test_my_user_db_credential" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + my_user_db_credential_id = oci_identity_db_credential.test_db_credential.id + + #Optional + authorization = var.my_user_db_credential_authorization + resource_type_schema_version = var.my_user_db_credential_resource_type_schema_version +} +``` + +## Argument Reference + +The following arguments are supported: + +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `my_user_db_credential_id` - (Required) ID of the resource +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + + +## Attributes Reference + +The following attributes are exported: + +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `db_password` - The db password of the user + + **SCIM++ Properties:** + * type: string + * mutability: immutable + * returned: default + * required: true +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - Description + + **Added In:** 2109020413 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `expired` - Indicates that the db password has expired + + **SCIM++ Properties:** + * type: boolean + * mutability: readOnly + * returned: default +* `expires_on` - User credential expires on + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: dateTime + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `last_set_date` - A DateTime that specifies the date and time when the current db password was set + + **SCIM++ Properties:** + * type: dateTime + * mutability: readOnly + * returned: default +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `mixed_db_password` - The db password of the user with mixed salt + + **SCIM++ Properties:** + * type: string + * mutability: readOnly + * returned: default + * required: false +* `mixed_salt` - The mixed salt of the password + + **SCIM++ Properties:** + * type: string + * mutability: readOnly + * returned: default + * required: false +* `name` - Name + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readOnly + * required: false + * returned: default +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `salt` - The salt of the password + + **SCIM++ Properties:** + * type: string + * mutability: readOnly + * returned: default + * required: false +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `status` - User credential status + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: never + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `user` - User linked to db credential + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - User display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - User name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - User's ocid + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the user linked to this credential + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - User's id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: true + * returned: always + * type: string + * uniqueness: none + diff --git a/website/docs/d/identity_domains_my_user_db_credentials.html.markdown b/website/docs/d/identity_domains_my_user_db_credentials.html.markdown new file mode 100644 index 00000000000..4c3374b5aa4 --- /dev/null +++ b/website/docs/d/identity_domains_my_user_db_credentials.html.markdown @@ -0,0 +1,529 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_my_user_db_credentials" +sidebar_current: "docs-oci-datasource-identity_domains-my_user_db_credentials" +description: |- + Provides the list of My User Db Credentials in Oracle Cloud Infrastructure Identity Domains service +--- + +# Data Source: oci_identity_domains_my_user_db_credentials +This data source provides the list of My User Db Credentials in Oracle Cloud Infrastructure Identity Domains service. + +Search a User's DBCredentials + +## Example Usage + +```hcl +data "oci_identity_domains_my_user_db_credentials" "test_my_user_db_credentials" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + + #Optional + my_user_db_credential_count = var.my_user_db_credential_my_user_db_credential_count + my_user_db_credential_filter = var.my_user_db_credential_my_user_db_credential_filter + authorization = var.my_user_db_credential_authorization + resource_type_schema_version = var.my_user_db_credential_resource_type_schema_version + start_index = var.my_user_db_credential_start_index +} +``` + +## Argument Reference + +The following arguments are supported: + +* `my_user_db_credential_count` - (Optional) OPTIONAL. An integer that indicates the desired maximum number of query results per page. 1000 is the largest value that you can use. See the Pagination section of the System for Cross-Domain Identity Management Protocol specification for more information. (Section 3.4.2.4). +* `my_user_db_credential_filter` - (Optional) OPTIONAL. The filter string that is used to request a subset of resources. The filter string MUST be a valid filter expression. See the Filtering section of the SCIM specification for more information (Section 3.4.2.2). The string should contain at least one condition that each item must match in order to be returned in the search results. Each condition specifies an attribute, an operator, and a value. Conditions within a filter can be connected by logical operators (such as AND and OR). Sets of conditions can be grouped together using parentheses. +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. +* `start_index` - (Optional) OPTIONAL. An integer that indicates the 1-based index of the first query result. See the Pagination section of the SCIM specification for more information. (Section 3.4.2.4). The number of results pages to return. The first page is 1. Specify 2 to access the second page of results, and so on. + + +## Attributes Reference + +The following attributes are exported: + +* `my_user_db_credentials` - The list of my_user_db_credentials. + +### MyUserDbCredential Reference + +The following attributes are exported: + +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `db_password` - The db password of the user + + **SCIM++ Properties:** + * type: string + * mutability: immutable + * returned: default + * required: true +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - Description + + **Added In:** 2109020413 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `expired` - Indicates that the db password has expired + + **SCIM++ Properties:** + * type: boolean + * mutability: readOnly + * returned: default +* `expires_on` - User credential expires on + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: dateTime + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `last_set_date` - A DateTime that specifies the date and time when the current db password was set + + **SCIM++ Properties:** + * type: dateTime + * mutability: readOnly + * returned: default +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `mixed_db_password` - The db password of the user with mixed salt + + **SCIM++ Properties:** + * type: string + * mutability: readOnly + * returned: default + * required: false +* `mixed_salt` - The mixed salt of the password + + **SCIM++ Properties:** + * type: string + * mutability: readOnly + * returned: default + * required: false +* `name` - Name + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readOnly + * required: false + * returned: default +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `salt` - The salt of the password + + **SCIM++ Properties:** + * type: string + * mutability: readOnly + * returned: default + * required: false +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `status` - User credential status + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: never + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `user` - User linked to db credential + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - User display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - User name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - User's ocid + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the user linked to this credential + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - User's id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: true + * returned: always + * type: string + * uniqueness: none + diff --git a/website/docs/d/identity_domains_oauth2client_credential.html.markdown b/website/docs/d/identity_domains_oauth2client_credential.html.markdown new file mode 100644 index 00000000000..ad5e7fae6e3 --- /dev/null +++ b/website/docs/d/identity_domains_oauth2client_credential.html.markdown @@ -0,0 +1,534 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_oauth2client_credential" +sidebar_current: "docs-oci-datasource-identity_domains-oauth2client_credential" +description: |- + Provides details about a specific O Auth2 Client Credential in Oracle Cloud Infrastructure Identity Domains service +--- + +# Data Source: oci_identity_domains_oauth2client_credential +This data source provides details about a specific O Auth2 Client Credential resource in Oracle Cloud Infrastructure Identity Domains service. + +Get user's oauth2 client credential + +## Example Usage + +```hcl +data "oci_identity_domains_oauth2client_credential" "test_oauth2client_credential" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + o_auth2client_credential_id = oci_identity_domains_o_auth2client_credential.test_o_auth2client_credential.id + + #Optional + attribute_sets = [] + attributes = "" + authorization = var.oauth2client_credential_authorization + resource_type_schema_version = var.oauth2client_credential_resource_type_schema_version +} +``` + +## Argument Reference + +The following arguments are supported: + +* `attribute_sets` - (Optional) A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. +* `attributes` - (Optional) A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `o_auth2client_credential_id` - (Required) ID of the resource +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + + +## Attributes Reference + +The following attributes are exported: + +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - Description + + **Added In:** 2101262133 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `expires_on` - User credential expires on + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: dateTime + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `is_reset_secret` - Specifies if secret need to be reset + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: writeOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `name` - Name + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: true + * returned: default +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `scopes` - Scopes + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [audience, scope] + * type: complex + * mutability: readWrite + * multiValued: true + * required: true + * returned: default + * `audience` - Audience + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: true + * returned: default + * `scope` - Scope + + **SCIM++ Properties:** + * caseExact: false + * idcsScimCompliant: false + * type: string + * mutability: readWrite + * multiValued: false + * required: true + * returned: default +* `status` - User credential status + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: never + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionself_change_user` - Controls whether a user can update themselves or not via User related APIs + * `allow_self_change` - If true, allows requesting user to update themselves. If false, requesting user can't update themself (default). + + **Added In:** 2205182039 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: writeOnly + * required: false + * returned: never + * type: boolean + * uniqueness: none +* `user` - User linked to oauth2 client credential + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - User display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - User name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - User's ocid + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the user linked to this credential + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - User's id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + diff --git a/website/docs/d/identity_domains_oauth2client_credentials.html.markdown b/website/docs/d/identity_domains_oauth2client_credentials.html.markdown new file mode 100644 index 00000000000..15eadf3f7e1 --- /dev/null +++ b/website/docs/d/identity_domains_oauth2client_credentials.html.markdown @@ -0,0 +1,544 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_oauth2client_credentials" +sidebar_current: "docs-oci-datasource-identity_domains-oauth2client_credentials" +description: |- + Provides the list of O Auth2 Client Credentials in Oracle Cloud Infrastructure Identity Domains service +--- + +# Data Source: oci_identity_domains_oauth2client_credentials +This data source provides the list of O Auth2 Client Credentials in Oracle Cloud Infrastructure Identity Domains service. + +Search oauth2 client credentials + +## Example Usage + +```hcl +data "oci_identity_domains_oauth2client_credentials" "test_oauth2client_credentials" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + + #Optional + oauth2client_credential_count = var.oauth2client_credential_oauth2client_credential_count + oauth2client_credential_filter = var.oauth2client_credential_oauth2client_credential_filter + attribute_sets = [] + attributes = "" + authorization = var.oauth2client_credential_authorization + resource_type_schema_version = var.oauth2client_credential_resource_type_schema_version + start_index = var.oauth2client_credential_start_index +} +``` + +## Argument Reference + +The following arguments are supported: + +* `oauth2client_credential_count` - (Optional) OPTIONAL. An integer that indicates the desired maximum number of query results per page. 1000 is the largest value that you can use. See the Pagination section of the System for Cross-Domain Identity Management Protocol specification for more information. (Section 3.4.2.4). +* `oauth2client_credential_filter` - (Optional) OPTIONAL. The filter string that is used to request a subset of resources. The filter string MUST be a valid filter expression. See the Filtering section of the SCIM specification for more information (Section 3.4.2.2). The string should contain at least one condition that each item must match in order to be returned in the search results. Each condition specifies an attribute, an operator, and a value. Conditions within a filter can be connected by logical operators (such as AND and OR). Sets of conditions can be grouped together using parentheses. +* `attribute_sets` - (Optional) A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. +* `attributes` - (Optional) A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. +* `start_index` - (Optional) OPTIONAL. An integer that indicates the 1-based index of the first query result. See the Pagination section of the SCIM specification for more information. (Section 3.4.2.4). The number of results pages to return. The first page is 1. Specify 2 to access the second page of results, and so on. + + +## Attributes Reference + +The following attributes are exported: + +* `oauth2client_credentials` - The list of oauth2client_credentials. + +### OAuth2ClientCredential Reference + +The following attributes are exported: + +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - Description + + **Added In:** 2101262133 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `expires_on` - User credential expires on + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: dateTime + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `is_reset_secret` - Specifies if secret need to be reset + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: writeOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `name` - Name + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: true + * returned: default +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `scopes` - Scopes + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [audience, scope] + * type: complex + * mutability: readWrite + * multiValued: true + * required: true + * returned: default + * `audience` - Audience + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: true + * returned: default + * `scope` - Scope + + **SCIM++ Properties:** + * caseExact: false + * idcsScimCompliant: false + * type: string + * mutability: readWrite + * multiValued: false + * required: true + * returned: default +* `status` - User credential status + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: never + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionself_change_user` - Controls whether a user can update themselves or not via User related APIs + * `allow_self_change` - If true, allows requesting user to update themselves. If false, requesting user can't update themself (default). + + **Added In:** 2205182039 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: writeOnly + * required: false + * returned: never + * type: boolean + * uniqueness: none +* `user` - User linked to oauth2 client credential + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - User display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - User name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - User's ocid + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the user linked to this credential + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - User's id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + diff --git a/website/docs/d/identity_domains_password_policies.html.markdown b/website/docs/d/identity_domains_password_policies.html.markdown new file mode 100644 index 00000000000..3ae29f1532c --- /dev/null +++ b/website/docs/d/identity_domains_password_policies.html.markdown @@ -0,0 +1,807 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_password_policies" +sidebar_current: "docs-oci-datasource-identity_domains-password_policies" +description: |- + Provides the list of Password Policies in Oracle Cloud Infrastructure Identity Domains service +--- + +# Data Source: oci_identity_domains_password_policies +This data source provides the list of Password Policies in Oracle Cloud Infrastructure Identity Domains service. + +Search Password Policies + +## Example Usage + +```hcl +data "oci_identity_domains_password_policies" "test_password_policies" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + + #Optional + password_policy_count = var.password_policy_password_policy_count + password_policy_filter = var.password_policy_password_policy_filter + attribute_sets = [] + attributes = "" + authorization = var.password_policy_authorization + resource_type_schema_version = var.password_policy_resource_type_schema_version + start_index = var.password_policy_start_index +} +``` + +## Argument Reference + +The following arguments are supported: + +* `password_policy_count` - (Optional) OPTIONAL. An integer that indicates the desired maximum number of query results per page. 1000 is the largest value that you can use. See the Pagination section of the System for Cross-Domain Identity Management Protocol specification for more information. (Section 3.4.2.4). +* `password_policy_filter` - (Optional) OPTIONAL. The filter string that is used to request a subset of resources. The filter string MUST be a valid filter expression. See the Filtering section of the SCIM specification for more information (Section 3.4.2.2). The string should contain at least one condition that each item must match in order to be returned in the search results. Each condition specifies an attribute, an operator, and a value. Conditions within a filter can be connected by logical operators (such as AND and OR). Sets of conditions can be grouped together using parentheses. +* `attribute_sets` - (Optional) A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. +* `attributes` - (Optional) A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. +* `start_index` - (Optional) OPTIONAL. An integer that indicates the 1-based index of the first query result. See the Pagination section of the SCIM specification for more information. (Section 3.4.2.4). The number of results pages to return. The first page is 1. Specify 2 to access the second page of results, and so on. + + +## Attributes Reference + +The following attributes are exported: + +* `password_policies` - The list of password_policies. + +### PasswordPolicy Reference + +The following attributes are exported: + +* `allowed_chars` - A String value whose contents indicate a set of characters that can appear, in any sequence, in a password value + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `configured_password_policy_rules` - List of password policy rules that have values set. This map of stringKey:stringValue pairs can be used to aid users while setting/resetting password + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [key] + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - The specific password policy rule + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readOnly + * required: true + * returned: always + * type: string + * uniqueness: none + * `value` - User-friendly text that describes a specific password policy rule + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readOnly + * required: true + * returned: always + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - A String that describes the password policy + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `dictionary_delimiter` - A delimiter used to separate characters in the dictionary file + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `dictionary_location` - A Reference value that contains the URI of a dictionary of words not allowed to appear within a password value + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `dictionary_word_disallowed` - Indicates whether the password can match a dictionary word + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `disallowed_chars` - A String value whose contents indicate a set of characters that cannot appear, in any sequence, in a password value + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `disallowed_substrings` - A String value whose contents indicate a set of substrings that cannot appear, in any sequence, in a password value + + **SCIM++ Properties:** + * caseExact: false + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `external_id` - An identifier for the Resource as defined by the Service Consumer. The externalId may simplify identification of the Resource between Service Consumer and Service Provider by allowing the Consumer to refer to the Resource with its own identifier, obviating the need to store a local mapping between the local identifier of the Resource and the identifier used by the Service Provider. Each Resource MAY include a non-empty externalId value. The value of the externalId attribute is always issued by the Service Consumer and can never be specified by the Service Provider. The Service Provider MUST always interpret the externalId as scoped to the Service Consumer's tenant. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `first_name_disallowed` - Indicates a sequence of characters that match the user's first name of given name cannot be the password. Password validation against policy will be ignored if length of first name is less than or equal to 3 characters. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `force_password_reset` - Indicates whether all of the users should be forced to reset their password on the next login (to comply with new password policy changes) + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: writeOnly + * required: false + * returned: never + * type: boolean + * uniqueness: none +* `groups` - A list of groups that the password policy belongs to. + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - Group Display Name + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the corresponding Group resource to which the password policy belongs + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The identifier of the group. + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: string + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `last_name_disallowed` - Indicates a sequence of characters that match the user's last name of given name cannot be the password. Password validation against policy will be ignored if length of last name is less than or equal to 3 characters. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `lockout_duration` - The time period in minutes to lock out a user account when the threshold of invalid login attempts is reached. The available range is from 5 through 1440 minutes (24 hours). + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `max_incorrect_attempts` - An integer that represents the maximum number of failed logins before an account is locked + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `max_length` - The maximum password length (in characters). A value of 0 or no value indicates no maximum length restriction. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `max_repeated_chars` - The maximum number of repeated characters allowed in a password. A value of 0 or no value indicates no such restriction. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `max_special_chars` - The maximum number of special characters in a password. A value of 0 or no value indicates no maximum special characters restriction. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `min_alpha_numerals` - The minimum number of a combination of alphabetic and numeric characters in a password. A value of 0 or no value indicates no minimum alphanumeric character restriction. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `min_alphas` - The minimum number of alphabetic characters in a password. A value of 0 or no value indicates no minimum alphas restriction. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `min_length` - The minimum password length (in characters). A value of 0 or no value indicates no minimum length restriction. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `min_lower_case` - The minimum number of lowercase alphabetic characters in a password. A value of 0 or no value indicates no minimum lowercase restriction. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `min_numerals` - The minimum number of numeric characters in a password. A value of 0 or no value indicates no minimum numeric character restriction. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `min_password_age` - Minimum time after which the user can resubmit the reset password request + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `min_special_chars` - The minimum number of special characters in a password. A value of 0 or no value indicates no minimum special characters restriction. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `min_unique_chars` - The minimum number of unique characters in a password. A value of 0 or no value indicates no minimum unique characters restriction. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `min_upper_case` - The minimum number of uppercase alphabetic characters in a password. A value of 0 or no value indicates no minimum uppercase restriction. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `name` - A String that is the name of the policy to display to the user. This is the only mandatory attribute for a password policy. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: true + * returned: always + * type: string + * uniqueness: server +* `num_passwords_in_history` - The number of passwords that will be kept in history that may not be used as a password + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `password_expire_warning` - An integer indicating the number of days before which the user should be warned about password expiry. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `password_expires_after` - The number of days after which the password expires automatically + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `password_strength` - Indicates whether the password policy is configured as Simple, Standard, or Custom. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `priority` - Password policy priority + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * idcsMinValue: 1 + * uniqueness: server +* `required_chars` - A String value whose contents indicate a set of characters that must appear, in any sequence, in a password value + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `starts_with_alphabet` - Indicates that the password must begin with an alphabetic character + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `user_name_disallowed` - Indicates a sequence of characters that match the username cannot be the password. Password validation against policy will be ignored if length of user name is less than or equal to 3 characters. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + diff --git a/website/docs/d/identity_domains_password_policy.html.markdown b/website/docs/d/identity_domains_password_policy.html.markdown new file mode 100644 index 00000000000..1b20cc57e2c --- /dev/null +++ b/website/docs/d/identity_domains_password_policy.html.markdown @@ -0,0 +1,797 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_password_policy" +sidebar_current: "docs-oci-datasource-identity_domains-password_policy" +description: |- + Provides details about a specific Password Policy in Oracle Cloud Infrastructure Identity Domains service +--- + +# Data Source: oci_identity_domains_password_policy +This data source provides details about a specific Password Policy resource in Oracle Cloud Infrastructure Identity Domains service. + +Get a Password Policy + +## Example Usage + +```hcl +data "oci_identity_domains_password_policy" "test_password_policy" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + password_policy_id = oci_identity_policy.test_policy.id + + #Optional + attribute_sets = [] + attributes = "" + authorization = var.password_policy_authorization + resource_type_schema_version = var.password_policy_resource_type_schema_version +} +``` + +## Argument Reference + +The following arguments are supported: + +* `attribute_sets` - (Optional) A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. +* `attributes` - (Optional) A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `password_policy_id` - (Required) ID of the resource +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + + +## Attributes Reference + +The following attributes are exported: + +* `allowed_chars` - A String value whose contents indicate a set of characters that can appear, in any sequence, in a password value + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `configured_password_policy_rules` - List of password policy rules that have values set. This map of stringKey:stringValue pairs can be used to aid users while setting/resetting password + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [key] + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - The specific password policy rule + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readOnly + * required: true + * returned: always + * type: string + * uniqueness: none + * `value` - User-friendly text that describes a specific password policy rule + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readOnly + * required: true + * returned: always + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - A String that describes the password policy + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `dictionary_delimiter` - A delimiter used to separate characters in the dictionary file + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `dictionary_location` - A Reference value that contains the URI of a dictionary of words not allowed to appear within a password value + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `dictionary_word_disallowed` - Indicates whether the password can match a dictionary word + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `disallowed_chars` - A String value whose contents indicate a set of characters that cannot appear, in any sequence, in a password value + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `disallowed_substrings` - A String value whose contents indicate a set of substrings that cannot appear, in any sequence, in a password value + + **SCIM++ Properties:** + * caseExact: false + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `external_id` - An identifier for the Resource as defined by the Service Consumer. The externalId may simplify identification of the Resource between Service Consumer and Service Provider by allowing the Consumer to refer to the Resource with its own identifier, obviating the need to store a local mapping between the local identifier of the Resource and the identifier used by the Service Provider. Each Resource MAY include a non-empty externalId value. The value of the externalId attribute is always issued by the Service Consumer and can never be specified by the Service Provider. The Service Provider MUST always interpret the externalId as scoped to the Service Consumer's tenant. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `first_name_disallowed` - Indicates a sequence of characters that match the user's first name of given name cannot be the password. Password validation against policy will be ignored if length of first name is less than or equal to 3 characters. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `force_password_reset` - Indicates whether all of the users should be forced to reset their password on the next login (to comply with new password policy changes) + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: writeOnly + * required: false + * returned: never + * type: boolean + * uniqueness: none +* `groups` - A list of groups that the password policy belongs to. + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - Group Display Name + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the corresponding Group resource to which the password policy belongs + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The identifier of the group. + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: string + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `last_name_disallowed` - Indicates a sequence of characters that match the user's last name of given name cannot be the password. Password validation against policy will be ignored if length of last name is less than or equal to 3 characters. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `lockout_duration` - The time period in minutes to lock out a user account when the threshold of invalid login attempts is reached. The available range is from 5 through 1440 minutes (24 hours). + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `max_incorrect_attempts` - An integer that represents the maximum number of failed logins before an account is locked + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `max_length` - The maximum password length (in characters). A value of 0 or no value indicates no maximum length restriction. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `max_repeated_chars` - The maximum number of repeated characters allowed in a password. A value of 0 or no value indicates no such restriction. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `max_special_chars` - The maximum number of special characters in a password. A value of 0 or no value indicates no maximum special characters restriction. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `min_alpha_numerals` - The minimum number of a combination of alphabetic and numeric characters in a password. A value of 0 or no value indicates no minimum alphanumeric character restriction. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `min_alphas` - The minimum number of alphabetic characters in a password. A value of 0 or no value indicates no minimum alphas restriction. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `min_length` - The minimum password length (in characters). A value of 0 or no value indicates no minimum length restriction. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `min_lower_case` - The minimum number of lowercase alphabetic characters in a password. A value of 0 or no value indicates no minimum lowercase restriction. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `min_numerals` - The minimum number of numeric characters in a password. A value of 0 or no value indicates no minimum numeric character restriction. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `min_password_age` - Minimum time after which the user can resubmit the reset password request + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `min_special_chars` - The minimum number of special characters in a password. A value of 0 or no value indicates no minimum special characters restriction. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `min_unique_chars` - The minimum number of unique characters in a password. A value of 0 or no value indicates no minimum unique characters restriction. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `min_upper_case` - The minimum number of uppercase alphabetic characters in a password. A value of 0 or no value indicates no minimum uppercase restriction. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `name` - A String that is the name of the policy to display to the user. This is the only mandatory attribute for a password policy. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: true + * returned: always + * type: string + * uniqueness: server +* `num_passwords_in_history` - The number of passwords that will be kept in history that may not be used as a password + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `password_expire_warning` - An integer indicating the number of days before which the user should be warned about password expiry. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `password_expires_after` - The number of days after which the password expires automatically + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `password_strength` - Indicates whether the password policy is configured as Simple, Standard, or Custom. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `priority` - Password policy priority + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * idcsMinValue: 1 + * uniqueness: server +* `required_chars` - A String value whose contents indicate a set of characters that must appear, in any sequence, in a password value + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `starts_with_alphabet` - Indicates that the password must begin with an alphabetic character + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `user_name_disallowed` - Indicates a sequence of characters that match the username cannot be the password. Password validation against policy will be ignored if length of user name is less than or equal to 3 characters. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + diff --git a/website/docs/d/identity_domains_smtp_credential.html.markdown b/website/docs/d/identity_domains_smtp_credential.html.markdown new file mode 100644 index 00000000000..94b0601940a --- /dev/null +++ b/website/docs/d/identity_domains_smtp_credential.html.markdown @@ -0,0 +1,491 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_smtp_credential" +sidebar_current: "docs-oci-datasource-identity_domains-smtp_credential" +description: |- + Provides details about a specific Smtp Credential in Oracle Cloud Infrastructure Identity Domains service +--- + +# Data Source: oci_identity_domains_smtp_credential +This data source provides details about a specific Smtp Credential resource in Oracle Cloud Infrastructure Identity Domains service. + +Get user's smtp credentials + +## Example Usage + +```hcl +data "oci_identity_domains_smtp_credential" "test_smtp_credential" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + smtp_credential_id = oci_identity_smtp_credential.test_smtp_credential.id + + #Optional + attribute_sets = [] + attributes = "" + authorization = var.smtp_credential_authorization + resource_type_schema_version = var.smtp_credential_resource_type_schema_version +} +``` + +## Argument Reference + +The following arguments are supported: + +* `attribute_sets` - (Optional) A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. +* `attributes` - (Optional) A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. +* `smtp_credential_id` - (Required) ID of the resource + + +## Attributes Reference + +The following attributes are exported: + +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - Description + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `expires_on` - User credential expires on + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: dateTime + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `status` - User credential status + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: never + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionself_change_user` - Controls whether a user can update themselves or not via User related APIs + * `allow_self_change` - If true, allows requesting user to update themselves. If false, requesting user can't update themself (default). + + **Added In:** 2205182039 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: writeOnly + * required: false + * returned: never + * type: boolean + * uniqueness: none +* `user` - User linked to smtp credential + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - User display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - User name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - User's ocid + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the user linked to this credential + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - User's id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none +* `user_name` - User name + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readOnly + * required: true + * returned: default + diff --git a/website/docs/d/identity_domains_smtp_credentials.html.markdown b/website/docs/d/identity_domains_smtp_credentials.html.markdown new file mode 100644 index 00000000000..ea4196c9575 --- /dev/null +++ b/website/docs/d/identity_domains_smtp_credentials.html.markdown @@ -0,0 +1,501 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_smtp_credentials" +sidebar_current: "docs-oci-datasource-identity_domains-smtp_credentials" +description: |- + Provides the list of Smtp Credentials in Oracle Cloud Infrastructure Identity Domains service +--- + +# Data Source: oci_identity_domains_smtp_credentials +This data source provides the list of Smtp Credentials in Oracle Cloud Infrastructure Identity Domains service. + +Search smtp credentials + +## Example Usage + +```hcl +data "oci_identity_domains_smtp_credentials" "test_smtp_credentials" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + + #Optional + smtp_credential_count = var.smtp_credential_smtp_credential_count + smtp_credential_filter = var.smtp_credential_smtp_credential_filter + attribute_sets = [] + attributes = "" + authorization = var.smtp_credential_authorization + resource_type_schema_version = var.smtp_credential_resource_type_schema_version + start_index = var.smtp_credential_start_index +} +``` + +## Argument Reference + +The following arguments are supported: + +* `smtp_credential_count` - (Optional) OPTIONAL. An integer that indicates the desired maximum number of query results per page. 1000 is the largest value that you can use. See the Pagination section of the System for Cross-Domain Identity Management Protocol specification for more information. (Section 3.4.2.4). +* `smtp_credential_filter` - (Optional) OPTIONAL. The filter string that is used to request a subset of resources. The filter string MUST be a valid filter expression. See the Filtering section of the SCIM specification for more information (Section 3.4.2.2). The string should contain at least one condition that each item must match in order to be returned in the search results. Each condition specifies an attribute, an operator, and a value. Conditions within a filter can be connected by logical operators (such as AND and OR). Sets of conditions can be grouped together using parentheses. +* `attribute_sets` - (Optional) A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. +* `attributes` - (Optional) A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. +* `start_index` - (Optional) OPTIONAL. An integer that indicates the 1-based index of the first query result. See the Pagination section of the SCIM specification for more information. (Section 3.4.2.4). The number of results pages to return. The first page is 1. Specify 2 to access the second page of results, and so on. + + +## Attributes Reference + +The following attributes are exported: + +* `smtp_credentials` - The list of smtp_credentials. + +### SmtpCredential Reference + +The following attributes are exported: + +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - Description + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `expires_on` - User credential expires on + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: dateTime + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `status` - User credential status + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: never + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionself_change_user` - Controls whether a user can update themselves or not via User related APIs + * `allow_self_change` - If true, allows requesting user to update themselves. If false, requesting user can't update themself (default). + + **Added In:** 2205182039 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: writeOnly + * required: false + * returned: never + * type: boolean + * uniqueness: none +* `user` - User linked to smtp credential + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - User display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - User name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - User's ocid + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the user linked to this credential + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - User's id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none +* `user_name` - User name + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readOnly + * required: true + * returned: default + diff --git a/website/docs/d/identity_domains_user.html.markdown b/website/docs/d/identity_domains_user.html.markdown new file mode 100644 index 00000000000..c017b6e84c2 --- /dev/null +++ b/website/docs/d/identity_domains_user.html.markdown @@ -0,0 +1,3926 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_user" +sidebar_current: "docs-oci-datasource-identity_domains-user" +description: |- + Provides details about a specific User in Oracle Cloud Infrastructure Identity Domains service +--- + +# Data Source: oci_identity_domains_user +This data source provides details about a specific User resource in Oracle Cloud Infrastructure Identity Domains service. + +Get a User + +## Example Usage + +```hcl +data "oci_identity_domains_user" "test_user" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + user_id = oci_identity_user.test_user.id + + #Optional + attribute_sets = [] + attributes = "" + authorization = var.user_authorization + resource_type_schema_version = var.user_resource_type_schema_version +} +``` + +## Argument Reference + +The following arguments are supported: + +* `attribute_sets` - (Optional) A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. +* `attributes` - (Optional) A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. +* `user_id` - (Required) ID of the resource + + +## Attributes Reference + +The following attributes are exported: + +* `active` - User status + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Active + * idcsCsvAttributeNameMappings: [[columnHeaderName:Active]] + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `addresses` - A physical mailing address for this User, as described in (address Element). Canonical Type Values of work, home, and other. The value attribute is a complex type with the following sub-attributes. + + **SCIM++ Properties:** + * idcsCompositeKey: [type] + * idcsCsvAttributeNameMappings: [[columnHeaderName:Work Address Street, deprecatedColumnHeaderName:Work Street Address, mapsTo:addresses[work].streetAddress], [columnHeaderName:Work Address Locality, deprecatedColumnHeaderName:Work City, mapsTo:addresses[work].locality], [columnHeaderName:Work Address Region, deprecatedColumnHeaderName:Work State, mapsTo:addresses[work].region], [columnHeaderName:Work Address Postal Code, deprecatedColumnHeaderName:Work Postal Code, mapsTo:addresses[work].postalCode], [columnHeaderName:Work Address Country, deprecatedColumnHeaderName:Work Country, mapsTo:addresses[work].country], [columnHeaderName:Work Address Formatted, mapsTo:addresses[work].formatted], [columnHeaderName:Home Address Formatted, mapsTo:addresses[home].formatted], [columnHeaderName:Other Address Formatted, mapsTo:addresses[other].formatted], [columnHeaderName:Home Address Street, mapsTo:addresses[home].streetAddress], [columnHeaderName:Other Address Street, mapsTo:addresses[other].streetAddress], [columnHeaderName:Home Address Locality, mapsTo:addresses[home].locality], [columnHeaderName:Other Address Locality, mapsTo:addresses[other].locality], [columnHeaderName:Home Address Region, mapsTo:addresses[home].region], [columnHeaderName:Other Address Region, mapsTo:addresses[other].region], [columnHeaderName:Home Address Country, mapsTo:addresses[home].country], [columnHeaderName:Other Address Country, mapsTo:addresses[other].country], [columnHeaderName:Home Address Postal Code, mapsTo:addresses[home].postalCode], [columnHeaderName:Other Address Postal Code, mapsTo:addresses[other].postalCode], [columnHeaderName:Primary Address Type, mapsTo:addresses[$(type)].primary]] + * idcsPii: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `country` - The country name component. + + **SCIM++ Properties:** + * caseExact: false + * idcsCanonicalValueSourceFilter: attrName eq "countries" and attrValues.value eq "upper($(country))" + * idcsCanonicalValueSourceResourceType: AllowedValue + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `formatted` - The full mailing address, formatted for display or use with a mailing label. This attribute MAY contain newlines. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `locality` - The city or locality component. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `postal_code` - The zipcode or postal code component. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `primary` - A Boolean value indicating the 'primary' or preferred attribute value for this attribute. The primary attribute value 'true' MUST appear no more than once. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `region` - The state or region component. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `street_address` - The full street address component, which may include house number, street name, PO BOX, and multi-line extended street address information. This attribute MAY contain newlines. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `type` - A label indicating the attribute's function; e.g., 'work' or 'home'. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - Description of the user + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: false + * idcsPii: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `display_name` - Display name + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Display Name + * idcsCsvAttributeNameMappings: [[columnHeaderName:Display Name]] + * idcsPii: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `emails` - A complex attribute representing emails + + **SCIM++ Properties:** + * idcsCompositeKey: [value, type] + * idcsCsvAttributeNameMappings: [[columnHeaderName:Work Email, mapsTo:emails[work].value], [columnHeaderName:Home Email, mapsTo:emails[home].value], [columnHeaderName:Primary Email Type, mapsTo:emails[$(type)].primary], [columnHeaderName:Other Email, mapsTo:emails[other].value], [columnHeaderName:Recovery Email, mapsTo:emails[recovery].value], [columnHeaderName:Work Email Verified, mapsTo:emails[work].verified], [columnHeaderName:Home Email Verified, mapsTo:emails[home].verified], [columnHeaderName:Other Email Verified, mapsTo:emails[other].verified], [columnHeaderName:Recovery Email Verified, mapsTo:emails[recovery].verified]] + * idcsPii: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `pending_verification_data` - Pending e-mail address verification + + **Added In:** 19.1.4 + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `primary` - A Boolean value that indicates whether the email address is the primary email address. The primary attribute value 'true' MUST appear no more than once. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `secondary` - A Boolean value that indicates whether the email address is the secondary email address. The secondary attribute value 'true' MUST appear no more than once. + + **Added In:** 18.2.6 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `type` - Type of email address + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Email address + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `verified` - A Boolean value that indicates whether or not the e-mail address is verified + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `entitlements` - A list of entitlements for the User that represent a thing the User has. + + **SCIM++ Properties:** + * idcsCompositeKey: [value, type] + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - A human readable name, primarily used for display purposes. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `primary` - A Boolean value indicating the 'primary' or preferred attribute value for this attribute. The primary attribute value 'true' MUST appear no more than once. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `type` - A label indicating the attribute's function. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - The value of an entitlement. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `external_id` - An identifier for the Resource as defined by the Service Consumer. The externalId may simplify identification of the Resource between Service Consumer and Service Provider by allowing the Consumer to refer to the Resource with its own identifier, obviating the need to store a local mapping between the local identifier of the Resource and the identifier used by the Service Provider. Each Resource MAY include a non-empty externalId value. The value of the externalId attribute is always issued by the Service Consumer and can never be specified by the Service Provider. The Service Provider MUST always interpret the externalId as scoped to the Service Consumer's tenant. + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeNameMappings: [[columnHeaderName:External Id]] + * idcsPii: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `groups` - A list of groups that the user belongs to, either thorough direct membership, nested groups, or dynamically calculated + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `date_added` - Date when the member is Added to the group + + **Added In:** 2105200541 + + **SCIM++ Properties:** + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `display` - A human readable name, primarily used for display purposes. READ-ONLY. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `external_id` - An identifier for the Resource as defined by the Service Consumer. READ-ONLY. + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `membership_ocid` - Membership Ocid + + **Added In:** 2103141444 + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `non_unique_display` - A human readable name for Group as defined by the Service Consumer. READ-ONLY. + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - Ocid of the User's group. + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the corresponding Group resource to which the user belongs + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - A label indicating the attribute's function; e.g., 'direct' or 'indirect'. + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `value` - The identifier of the User's group. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: always + * type: string + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `ims` - User's instant messaging addresses + + **SCIM++ Properties:** + * idcsCompositeKey: [value, type] + * idcsPii: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - A human-readable name, primarily used for display purposes + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `primary` - A Boolean value that indicates the 'primary' or preferred attribute value for this attribute--for example, the preferred messenger or primary messenger. The primary attribute value 'true' MUST appear no more than once. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `type` - A label that indicates the attribute's function--for example, 'aim', 'gtalk', or 'mobile' + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - User's instant messaging address + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `locale` - Used to indicate the User's default location for purposes of localizing items such as currency, date and time format, numerical representations, and so on. + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Locale + * idcsCsvAttributeNameMappings: [[columnHeaderName:Locale]] + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `name` - A complex attribute that contains attributes representing the name + + **SCIM++ Properties:** + * idcsCsvAttributeNameMappings: [[columnHeaderName:Formatted Name, mapsTo:name.formatted], [columnHeaderName:Honorific Prefix, mapsTo:name.honorificPrefix], [columnHeaderName:First Name, mapsTo:name.givenName], [columnHeaderName:Middle Name, mapsTo:name.middleName], [columnHeaderName:Last Name, mapsTo:name.familyName], [columnHeaderName:Honorific Suffix, mapsTo:name.honorificSuffix]] + * idcsPii: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: complex + * uniqueness: none + * `family_name` - Last name + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Last Name + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `formatted` - Full name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `given_name` - First name + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: First Name + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `honorific_prefix` - Prefix + + **SCIM++ Properties:** + * idcsCsvAttributeName: Honorific Prefix + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `honorific_suffix` - Suffix + + **SCIM++ Properties:** + * idcsCsvAttributeName: Honorific Suffix + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `middle_name` - Middle name + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Middle Name + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `nick_name` - Nick name + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Nick Name + * idcsCsvAttributeNameMappings: [[columnHeaderName:Nick Name]] + * idcsPii: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `password` - Password attribute. Max length for password is controlled via Password Policy. + + **SCIM++ Properties:** + * idcsCsvAttributeName: Password + * idcsCsvAttributeNameMappings: [[columnHeaderName:Password]] + * idcsPii: true + * idcsSearchable: false + * idcsSensitive: hash + * multiValued: false + * mutability: writeOnly + * required: false + * returned: never + * type: string + * uniqueness: none +* `phone_numbers` - Phone numbers + + **SCIM++ Properties:** + * idcsCompositeKey: [value, type] + * idcsCsvAttributeNameMappings: [[columnHeaderName:Work Phone, mapsTo:phoneNumbers[work].value], [columnHeaderName:Mobile No, mapsTo:phoneNumbers[mobile].value], [columnHeaderName:Home Phone, mapsTo:phoneNumbers[home].value], [columnHeaderName:Fax, mapsTo:phoneNumbers[fax].value], [columnHeaderName:Pager, mapsTo:phoneNumbers[pager].value], [columnHeaderName:Other Phone, mapsTo:phoneNumbers[other].value], [columnHeaderName:Recovery Phone, mapsTo:phoneNumbers[recovery].value], [columnHeaderName:Primary Phone Type, mapsTo:phoneNumbers[$(type)].primary]] + * idcsPii: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - A human-readable name, primarily used for display purposes. READ ONLY + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `primary` - A Boolean value that indicates the 'primary' or preferred attribute value for this attribute--for example, the preferred phone number or primary phone number. The primary attribute value 'true' MUST appear no more than once. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `type` - A label that indicates the attribute's function- for example, 'work', 'home', or 'mobile' + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - User's phone number + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `verified` - A Boolean value that indicates if the phone number is verified. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `photos` - URLs of photos for the User + + **SCIM++ Properties:** + * idcsCompositeKey: [value, type] + * idcsPii: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - A human readable name, primarily used for display purposes. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `primary` - A Boolean value indicating the 'primary' or preferred attribute value for this attribute, e.g., the preferred photo or thumbnail. The primary attribute value 'true' MUST appear no more than once. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `type` - A label indicating the attribute's function; e.g., 'photo' or 'thumbnail'. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - URL of a photo for the User + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: reference + * uniqueness: none +* `preferred_language` - User's preferred written or spoken language used for localized user interfaces + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Preferred Language + * idcsCsvAttributeNameMappings: [[columnHeaderName:Preferred Language]] + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `profile_url` - A fully-qualified URL to a page representing the User's online profile + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Profile URL + * idcsCsvAttributeNameMappings: [[columnHeaderName:Profile Url]] + * idcsPii: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: reference + * uniqueness: none +* `roles` - A list of roles for the User that collectively represent who the User is; e.g., 'Student', 'Faculty'. + + **SCIM++ Properties:** + * idcsCompositeKey: [value, type] + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - A human readable name, primarily used for display purposes. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `primary` - A Boolean value indicating the 'primary' or preferred attribute value for this attribute. The primary attribute value 'true' MUST appear no more than once. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `type` - A label indicating the attribute's function. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - The value of a role. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `timezone` - User's timezone + + **SCIM++ Properties:** + * caseExact: false + * idcsCanonicalValueSourceFilter: attrName eq "timezones" and attrValues.value eq "$(timezone)" + * idcsCanonicalValueSourceResourceType: AllowedValue + * idcsCsvAttributeName: TimeZone + * idcsCsvAttributeNameMappings: [[columnHeaderName:Time Zone, deprecatedColumnHeaderName:TimeZone]] + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `title` - Title + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Title + * idcsCsvAttributeNameMappings: [[columnHeaderName:Title]] + * idcsPii: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasextensionenterprise20user` - Enterprise User + * `cost_center` - Identifies the name of a cost center. + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Cost Center + * idcsCsvAttributeNameMappings: [[columnHeaderName:Cost Center]] + * idcsPii: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `department` - Identifies the name of a department. + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Department + * idcsCsvAttributeNameMappings: [[columnHeaderName:Department]] + * idcsPii: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `division` - Identifies the name of a division. + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Division + * idcsCsvAttributeNameMappings: [[columnHeaderName:Division]] + * idcsPii: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `employee_number` - Numeric or alphanumeric identifier assigned to a person, typically based on order of hire or association with an organization. + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Employee Number + * idcsCsvAttributeNameMappings: [[columnHeaderName:Employee Number]] + * idcsPii: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `manager` - The User's manager. A complex type that optionally allows Service Providers to represent organizational hierarchy by referencing the 'id' attribute of another User. + + **SCIM++ Properties:** + * idcsCsvAttributeNameMappings: [[columnHeaderName:Manager, deprecatedColumnHeaderName:Manager Name, mapsTo:manager.value]] + * idcsPii: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display_name` - The displayName of the User's manager. OPTIONAL and READ-ONLY. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource representing the User's manager. RECOMMENDED. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The id of the SCIM resource representing the User's manager. RECOMMENDED. + + **SCIM++ Properties:** + * idcsCsvAttributeName: Manager Name + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `organization` - Identifies the name of an organization. + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Organization + * idcsCsvAttributeNameMappings: [[columnHeaderName:Organization Name, deprecatedColumnHeaderName:Organization]] + * idcsPii: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextension_oci_tags` - Oracle Cloud Infrastructure Tags. + * `defined_tags` - Oracle Cloud Infrastructure Defined Tags + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * idcsCompositeKey: [namespace, key, value] + * type: complex + * idcsSearchable: true + * required: false + * mutability: readWrite + * multiValued: true + * returned: default + * `key` - Oracle Cloud Infrastructure Tag key + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * required: true + * mutability: readWrite + * returned: default + * idcsSearchable: true + * uniqueness: none + * `namespace` - Oracle Cloud Infrastructure Tag namespace + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * required: true + * mutability: readWrite + * returned: default + * idcsSearchable: true + * uniqueness: none + * `value` - Oracle Cloud Infrastructure Tag value + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * required: true + * mutability: readWrite + * returned: default + * type: string + * idcsSearchable: true + * uniqueness: none + * `freeform_tags` - Oracle Cloud Infrastructure Freeform Tags + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * type: complex + * required: false + * mutability: readWrite + * returned: default + * multiValued: true + * `key` - Oracle Cloud Infrastructure Tag key + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * required: true + * mutability: readWrite + * returned: default + * idcsSearchable: true + * uniqueness: none + * `value` - Oracle Cloud Infrastructure Tag value + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * required: true + * mutability: readWrite + * returned: default + * type: string + * idcsSearchable: true + * uniqueness: none + * `tag_slug` - Oracle Cloud Infrastructure Tag slug + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * type: binary + * mutability: readOnly + * returned: request +* `urnietfparamsscimschemasoracleidcsextensionadaptive_user` - This extension defines attributes to manage user's risk score. + * `risk_level` - Risk Level + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: request + * type: string + * uniqueness: none + * `risk_scores` - The risk score pertaining to the user. + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [value] + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `last_update_timestamp` - Last update timestamp for the risk score + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: dateTime + * uniqueness: none + * `ref` - Risk Provider Profile URI: URI that corresponds to risk source identifier. + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: reference + * uniqueness: none + * `risk_level` - Risk Level + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: string + * uniqueness: none + * `score` - Risk Score value + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: integer + * uniqueness: none + * `source` - Risk Provider Profile Source + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `status` - Risk Provider Profile status + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `value` - Risk Provider Profile: Identifier for the provider service from which the risk score was received. + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensioncapabilities_user` - User's Capabilities + * `can_use_api_keys` - Indicates weather a user can use api keys + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `can_use_auth_tokens` - Indicates weather a user can use auth tokens + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `can_use_console_password` - Indicates weather a user can use console password + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `can_use_customer_secret_keys` - Indicates weather a user can use customer secret keys + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `can_use_db_credentials` - Indicates weather a user can use db credentials + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `can_use_oauth2client_credentials` - Indicates weather a user can use oauth2 client credentials + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `can_use_smtp_credentials` - Indicates weather a user can use smtp credentials + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensiondb_credentials_user` - Db Credentials User extension + * `db_login_attempts` - The number of failed login attempts. The value is reset to 0 after a successful login. + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: integer + * uniqueness: none + * `db_user_name` - The Database User Name + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * multiValued: false + * mutability: readWrite + * required: false + * type: string + * returned: request + * caseExact: false + * uniqueness: none + * idcsSearchable: true +* `urnietfparamsscimschemasoracleidcsextensiondb_user_user` - DB User extension + * `db_global_roles` - DB global roles to which the user is granted access. + + **Added In:** 18.2.2 + + **SCIM++ Properties:** + * idcsSearchable: false + * idcsSensitive: none + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `domain_level_schema` - DB domain level schema to which the user is granted access. + + **Added In:** 18.2.2 + + **SCIM++ Properties:** + * idcsSearchable: false + * idcsSensitive: none + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `instance_level_schema` - DB instance level schema to which the user is granted access. + + **Added In:** 18.2.2 + + **SCIM++ Properties:** + * idcsSearchable: false + * idcsSensitive: none + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `is_db_user` - If true, indicates this is a database user. + + **Added In:** 18.2.2 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: boolean + * uniqueness: none + * `password_verifiers` - Password Verifiers for DB User. + + **Added In:** 18.2.2 + + **SCIM++ Properties:** + * idcsCompositeKey: [type] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `type` - Type of database password verifier (for example, MR-SHA512 or SSHA). + + **Added In:** 18.2.2 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Hash value of database password verifier. + + **Added In:** 18.2.2 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * idcsSensitive: none + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionkerberos_user_user` - Kerberos User extension + * `realm_users` - A list of kerberos realm users for an Oracle Cloud Infrastructure IAM User + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `principal_name` - Principal Name of the KerberosRealmUser associated with the Oracle Cloud Infrastructure IAM User. + + **SCIM++ Properties:** + * idcsPii: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `realm_name` - Realm Name for the KerberosRealmUser associated with the Oracle Cloud Infrastructure IAM User. + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the corresponding KerberosRealmUser resource associated with the Oracle Cloud Infrastructure IAM User. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - id of the KerberosRealmUser associated with the Oracle Cloud Infrastructure IAM User. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionmfa_user` - This extension defines attributes used to manage Multi-Factor Authentication within a service provider. The extension is typically applied to a User resource, but MAY be applied to other resources that use MFA. + * `bypass_codes` - A list of bypass codes belongs to user + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `ref` - The URI of the corresponding BypassCode resource which belongs to user + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The identifier of the User's bypass code. + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: always + * type: string + * uniqueness: none + * `devices` - A list of devices enrolled by the user. + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `authentication_method` - Authentication method. + + **Added In:** 2009232244 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `display` - A human readable name, primarily used for display purposes. READ-ONLY. + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `factor_status` - Device authentication factor status. + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `factor_type` - Device authentication factor type. + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `last_sync_time` - Last Sync time for device. + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `ref` - The URI of the corresponding Device resource which belongs to user + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `status` - Device status. + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `third_party_vendor_name` - Third party factor vendor name. + + **Added In:** 2009232244 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The identifier of the User's device. + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: always + * type: string + * uniqueness: none + * `login_attempts` - Number of incorrect Multi Factor Authentication login attempts made by this user. The user gets locked, if this reaches the threshold specified in the maxIncorrectAttempts attribute in AuthenticationFactorSettings + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: integer + * uniqueness: none + * `mfa_enabled_on` - This represents the date when the user enrolled for multi factor authentication. This will be set to null, when the user resets his factors. + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: request + * type: dateTime + * uniqueness: none + * `mfa_ignored_apps` - User MFA Ignored Apps Identifiers + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `mfa_status` - User Opted for MFA + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `preferred_authentication_factor` - Preferred Authentication Factor Type + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `preferred_authentication_method` - Preferred Authentication method + + **Added In:** 2009232244 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `preferred_device` - User preferred device + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - Device display name + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the device resource + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The identifier of the User's preferred device + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `preferred_third_party_vendor` - Preferred Third party vendor name + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `trusted_user_agents` - A list of trusted User Agents owned by this user. Multi-Factored Authentication uses Trusted User Agents to authenticate users. A User Agent is software application that a user uses to issue requests. For example, a User Agent could be a particular browser (possibly one of several executing on a desktop or laptop) or a particular mobile application (again, oneof several executing on a particular mobile device). A User Agent is trusted once the Multi-Factor Authentication has verified it in some way. + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `display` - A human-readable identifier for this trusted user agent, used primarily for display purposes. READ-ONLY. + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the corresponding trusted user agent resource. + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The identifier of the User's trusted user agent. + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionpassword_state_user` - This extension defines attributes used to manage account passwords within a Service Provider. The extension is typically applied to a User resource, but MAY be applied to other resources that use passwords. + * `applicable_password_policy` - Applicable Password Policy + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `display` - Password Policy Display Name + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `priority` - PasswordPolicy priority + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: integer + * uniqueness: none + * `ref` - The URI of the corresponding PasswordPolicy resource. + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The identifier of the password policy. + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: always + * type: string + * uniqueness: none + * `cant_change` - Indicates that the current password MAY NOT be changed and all other password expiry settings SHALL be ignored + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: boolean + * uniqueness: none + * `cant_expire` - Indicates that the password expiry policy will not be applied for the current Resource + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: boolean + * uniqueness: none + * `expired` - Indicates that the password has expired + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: boolean + * uniqueness: none + * `last_failed_validation_date` - A DateTime that specifies the date and time when last failed password validation was set + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: dateTime + * uniqueness: none + * `last_successful_set_date` - A DateTime that specifies the date and time when the current password was set + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: dateTime + * uniqueness: none + * `last_successful_validation_date` - A DateTime that specifies the date and time when last successful password validation was set + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: dateTime + * uniqueness: none + * `must_change` - Indicates that the subject password value MUST change on next login. If not changed, typically the account is locked. The value may be set indirectly when the subject's current password expires or directly set by an administrator. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: boolean + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionpasswordless_user` - This extension defines attributes used to manage Passwordless-Factor Authentication within a service provider. The extension is typically applied to a User resource, but MAY be applied to other resources that use MFA. + * `factor_identifier` - Factor Identifier ID + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - Factor Identifier display name + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the device resource + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The identifier of the User's preferred device + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `factor_method` - Authentication Factor Method + + **Added In:** 2009232244 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `factor_type` - Authentication Factor Type + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionposix_user` - POSIX User extension + * `gecos` - General information about the POSIX account such as their real name and phone number + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: request + * type: string + * uniqueness: none + * `gid_number` - Primary Group identifier of the POSIX user + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: request + * type: integer + * uniqueness: none + * `home_directory` - The absolute path to the home directory of the POSIX account + + **SCIM++ Properties:** + * caseExact: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: request + * type: string + * uniqueness: none + * `login_shell` - The path to the login shell of the POSIX account + + **SCIM++ Properties:** + * caseExact: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: request + * type: string + * uniqueness: none + * `uid_number` - Integer uniquely identifying a user in a POSIX administrative domain + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: request + * type: integer + * uniqueness: server +* `urnietfparamsscimschemasoracleidcsextensionsecurity_questions_user` - This extension defines attributes used to store Security Questions of User. + * `sec_questions` - Security question and answers provided by end-user for Account recovery and/or MFA. While setting up security questions, end-user can also provide hint along with answer. + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `answer` - Answer provided by an user for a security question. + + **SCIM++ Properties:** + * idcsCsvAttributeName: Answer + * idcsSearchable: false + * idcsSensitive: hash + * multiValued: false + * mutability: writeOnly + * required: true + * returned: never + * type: string + * uniqueness: none + * idcsPii: true + * `hint_text` - Hint for an answer given by user while setting up Security Question. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the corresponding SecurityQuestion resource + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - Id of the question selected by user while setting up Security Question. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionself_change_user` - Controls whether a user can update themselves or not via User related APIs + * `allow_self_change` - If true, allows requesting user to update themselves. If false, requesting user can't update themself (default). + + **Added In:** 2205182039 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: writeOnly + * required: false + * returned: never + * type: boolean + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionself_registration_user` - This extension defines attributes used to manage self registration profile linked to the user. + * `consent_granted` - A boolean value that indicates whether the consent is granted. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `self_registration_profile` - Self registration profile used when user is self registered. + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: true + * returned: request + * type: complex + * uniqueness: none + * `display` - A human readable name, primarily used for display purposes. READ-ONLY. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `ref` - URI of the profile. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - Self Registration Profile Id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: true + * returned: always + * type: string + * uniqueness: none + * `user_token` - User token used for auto-login. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionsff_user` - SFF Auth Keys User extension + * `sff_auth_keys` - SFF auth keys clob + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: request + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionsocial_account_user` - Social User extension + * `social_accounts` - Description: + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * idcsPii: true + * type: complex + * uniqueness: none + * `display` - A human readable name, primarily used for display purposes. READ-ONLY. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the corresponding SocialAccount resource linked with the user + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - +* `urnietfparamsscimschemasoracleidcsextensionterms_of_use_user` - Terms Of Use extension + * `terms_of_use_consents` - Description: + + **Added In:** 18.2.6 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `ref` - The URI of the corresponding TermsOfUseConsent resource linked with the user + + **Added In:** 18.2.6 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - +* `urnietfparamsscimschemasoracleidcsextensionuser_credentials_user` - User's credentials + * `api_keys` - A list of api keys corresponding to user. + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - The value of of the User's api key. + + **Added In:** 2106240046 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `ocid` - Ocid of the User's api key. + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI of the corresponding ApiKey resource to which the user belongs + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The identifier of the User's api key. + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `auth_tokens` - A list of auth tokens corresponding to user. + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `ocid` - Ocid of the User's auth token. + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI of the corresponding AuthToken resource to which the user belongs + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The identifier of the User's auth token. + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `customer_secret_keys` - A list of customer secret keys corresponding to user. + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `ocid` - Ocid of the User's customer secret key. + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI of the corresponding CustomerSecretKey resource to which the user belongs + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The identifier of the User's customer secret key. + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `db_credentials` - A list of db credentials corresponding to user. + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `ocid` - Ocid of the User's db credential. + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI of the corresponding UserDbCredential resource to which the user belongs + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The identifier of the User's db credential. + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `o_auth2client_credentials` - A list of oauth2 client credentials corresponding to user. + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `ocid` - Ocid of the User's oAuth2 client credential. + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI of the corresponding OAuth2ClientCredential resource to which the user belongs + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The identifier of the User's oAuth2 client credential. + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `smtp_credentials` - A list of smtp credentials corresponding to user. + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `ocid` - Ocid of the User's auth token. + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI of the corresponding SmtpCredential resource to which the user belongs + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The identifier of the User's smtp credential. + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionuser_state_user` - This extension defines attributes used to manage account passwords within a service provider. The extension is typically applied to a User resource, but MAY be applied to other resources that use passwords. + * `last_failed_login_date` - The last failed login date + + **SCIM++ Properties:** + * idcsSearchable: false + * idcsAllowUpdatesInReadOnlyMode: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: dateTime + * uniqueness: none + * `last_successful_login_date` - The last successful login date + + **SCIM++ Properties:** + * idcsSearchable: true + * idcsAllowUpdatesInReadOnlyMode: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: dateTime + * uniqueness: none + * `locked` - A complex attribute that indicates an account is locked (blocking new sessions) + + **SCIM++ Properties:** + * idcsCsvAttributeNameMappings: [[columnHeaderName:Locked, mapsTo:locked.on], [columnHeaderName:Locked Reason, mapsTo:locked.reason], [columnHeaderName:Locked Date, mapsTo:locked.lockDate]] + * idcsSearchable: false + * idcsAllowUpdatesInReadOnlyMode: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `expired` - Indicates whether user password is expired. If this value is false, password expiry will still be evaluated during user login. + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: request + * type: boolean + * uniqueness: none + * `lock_date` - The date and time that the current resource was locked + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `on` - Indicates tat the account is locked + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `reason` - Indicates the reason for locking. Valid values are: 0 - failed password login attempts, 1 - admin lock, 2 - failed reset password attempts, 3 - failed MFA login attempts, 4 - failed MFA login attempts for federated user, 5 - failed Database login attempts + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none + * `login_attempts` - The number of failed login attempts. The value is reset to 0 after a successful login. + + **SCIM++ Properties:** + * idcsSearchable: false + * idcsAllowUpdatesInReadOnlyMode: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: integer + * uniqueness: none + * `max_concurrent_sessions` - Maximum number of concurrent sessions for a User + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsMaxValue: 999 + * idcsMinValue: 1 + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none + * `previous_successful_login_date` - The previous successful login date + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: dateTime + * uniqueness: none + * `recovery_attempts` - The number of failed recovery attempts. The value is reset to 0 after a successful login. + + **Added In:** 19.1.4 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: integer + * uniqueness: none + * `recovery_enroll_attempts` - The number of failed account recovery enrollment attempts. + + **Added In:** 19.1.4 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: integer + * uniqueness: none + * `recovery_locked` - A complex attribute that indicates an password recovery is locked (blocking new sessions) + + **Added In:** 19.1.4 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `lock_date` - The date and time that the current resource was locked + + **Added In:** 19.1.4 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `on` - Indicates that the rev is locked + + **Added In:** 19.1.4 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionuser_user` - Oracle Cloud Infrastructure IAM User + * `user_provider` - Registration provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: none + * `account_recovery_required` - Boolean value to prompt user to setup account recovery during login. + + **Added In:** 19.1.4 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: request + * type: boolean + * uniqueness: none + * `accounts` - Accounts assigned to this User. Each value of this attribute refers to an app-specific identity that is owned by this User. Therefore, this attribute is a convenience that allows one to see on each User the Apps to which that User has access. + + **SCIM++ Properties:** + * idcsPii: true + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `active` - Status of the account + + **Added In:** 17.4.6 + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `app_id` - The ID of the App to which this Account gives access. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - Name of the account assigned to the User. + + **Added In:** 17.4.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the Account assigned to the User. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The Id of the Account assigned to the User. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `app_roles` - A list of all AppRoles to which this User belongs directly, indirectly or implicitly. The User could belong directly because the User is a member of the AppRole, could belong indirectly because the User is a member of a Group that is a member of the AppRole, or could belong implicitly because the AppRole is public. + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `admin_role` - If true, then the role provides administrative access privileges. READ-ONLY. + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `app_id` - The ID of the App that defines this AppRole. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `app_name` - The name (Client ID) of the App that defines this AppRole. + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `display` - The display name of the AppRole assigned to the User. + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `legacy_group_name` - The name (if any) under which this AppRole should appear in this User's group-memberships for reasons of backward compatibility. Oracle Cloud Infrastructure IAM distinguishes between Groups and AppRoles, but some services still expect AppRoles appear as if they were service-instance-specific Groups. + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the AppRole assigned to the User. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The kind of membership this User has in the AppRole. A value of 'direct' indicates that the User is a member of the AppRole. A value of 'indirect' indicates that the User is a member of a Group that is a member of the AppRole. A value of 'implicit' indicates that the AppRole is public. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `value` - The Id of the AppRole assigned to the User. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: always + * type: string + * uniqueness: none + * `applicable_authentication_target_app` - The app against which the user will authenticate. The value is not persisted but rather calculated. If the user's delegatedAuthenticationTargetApp is set, that value is returned. Otherwise, the app returned by evaluating the user's applicable Delegated Authentication Policy is returned. + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `display` - App Display Name + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - App URI + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `target_request_timeout` - Timeout interval for Synchronization TargetAction in milliseconds + + **Added In:** 18.2.6 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: integer + * uniqueness: none + * `type` - A label that indicates whether this is an App or IdentitySource. + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - App identifier + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * caseExact: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `bypass_notification` - A Boolean value indicating whether or not to send email notification after creating the user. This attribute is not used in update/replace operations. + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeNameMappings: [[columnHeaderName:ByPass Notification]] + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: never + * type: boolean + * uniqueness: none + * `creation_mechanism` - User creation mechanism + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeNameMappings: [[defaultValue:import]] + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: request + * type: string + * uniqueness: none + * `delegated_authentication_target_app` - If set, indicates the user's preferred authentication target app. If not set and the user's \"syncedFromApp\" is set and is enabled for delegated authentication, it is used. Otherwise, the user authenticates locally to Oracle Cloud Infrastructure IAM. + + **Added In:** 17.4.6 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - App Display Name + + **Added In:** 17.4.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - App URI + + **Added In:** 17.4.6 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - A label that indicates whether this is an App or IdentitySource. + + **Added In:** 17.4.6 + + **SCIM++ Properties:** + * idcsDefaultValue: IdentitySource + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - App identifier + + **Added In:** 17.4.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `do_not_show_getting_started` - A Boolean value indicating whether or not to hide the getting started page + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `grants` - Grants to this User. Each value of this attribute refers to a Grant to this User of some App (and optionally of some entitlement). Therefore, this attribute is a convenience that allows one to see on each User all of the Grants to that User. + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `app_id` - The ID of the App in this Grant. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `grant_mechanism` - Each value of grantMechanism indicates how (or by what component) some App (or App-Entitlement) was granted.\nA customer or the UI should use only grantMechanism values that start with 'ADMINISTRATOR':\n - 'ADMINISTRATOR_TO_USER' is for a direct grant to a specific User.\n - 'ADMINISTRATOR_TO_GROUP' is for a grant to a specific Group, which results in indirect grants to Users who are members of that Group.\n - 'ADMINISTRATOR_TO_APP' is for a grant to a specific App. The grantee (client) App gains access to the granted (server) App. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `grantor_id` - Grantor identifier + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of this Grant to this User. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The ID of this Grant to this User. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `idcs_app_roles_limited_to_groups` - Description: + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsCompositeKey: [value, idcsAppRoleId] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * `display` - Group display name + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `idcs_app_role_id` - The id of the Oracle Cloud Infrastructure IAM AppRole grant limited to one or more Groups. + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsCsvAttributeName: IDCS AppRole Name + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `ocid` - The ocid of a Group the AppRole Grant is limited to + + **Added In:** 2202230830 + + **SCIM++ Properties:** + * idcsCsvAttributeName: Group Ocid + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource representing the Group manager. RECOMMENDED. + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The id of a Group the AppRole Grant is limited to + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsCsvAttributeName: Group Name + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `is_account_recovery_enrolled` - A Boolean value indicating whether or not a user is enrolled for account recovery + + **Added In:** 19.1.4 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: boolean + * uniqueness: none + * `is_authentication_delegated` - A Boolean value indicating whether or not authentication request by this user should be delegated to a remote app. This value should be true only when the User was originally synced from an app which is enabled for delegated authentication + + **Added In:** 17.4.6 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: never + * type: boolean + * uniqueness: none + * `is_federated_user` - A Boolean value indicating whether or not the user is federated. + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Federated + * idcsCsvAttributeNameMappings: [[columnHeaderName:Federated]] + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `is_group_membership_normalized` - A Boolean value indicating whether or not group membership is normalized for this user. + + **Deprecated Since: 19.3.3** + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: never + * type: boolean + * uniqueness: none + * `is_group_membership_synced_to_users_groups` - A Boolean value Indicates whether this User's group membership has been sync'ed from Group.members to UsersGroups. + + **Added In:** 19.3.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: never + * type: boolean + * uniqueness: none + * `notification_email_template_id` - Specifies the EmailTemplate to be used when sending notification to the user this request is for. If specified, it overrides the default EmailTemplate for this event. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: writeOnly + * required: false + * returned: never + * type: string + * uniqueness: none + * `status` - A supplemental status indicating the reason why a user is disabled + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `support_accounts` - A list of Support Accounts corresponding to user. + + **Added In:** 2103141444 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `user_provider` - User Support Account Provider + + **Added In:** 2103141444 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `ocid` - Ocid of the User's Support Account. + + **Added In:** 2103141444 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI of the corresponding Support Account resource to which the user belongs + + **Added In:** 2103141444 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `user_id` - User Support User Id + + **Added In:** 2103141444 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `value` - The identifier of the User's support Account. + + **Added In:** 2103141444 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `synced_from_app` - Managed App or an Identity Source from where the user is synced. If enabled, this Managed App or Identity Source can be used for performing delegated authentication. + + **Added In:** 18.2.6 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - App Display Name + + **Added In:** 18.2.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - App URI + + **Added In:** 18.2.6 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - A label that indicates whether this is an App or IdentitySource. + + **Added In:** 18.2.6 + + **SCIM++ Properties:** + * idcsDefaultValue: IdentitySource + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - App identifier + + **Added In:** 18.2.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `user_flow_controlled_by_external_client` - A Boolean value indicating whether to bypass notification and return user token to be used by an external client to control the user flow. + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: never + * type: boolean + * uniqueness: none + * `user_token` - User token returned if userFlowControlledByExternalClient is true + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * uniqueness: none + * `ref` - User Token URI + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - User Token identifier + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `user_name` - User name + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: User ID + * idcsCsvAttributeNameMappings: [[columnHeaderName:User Name, deprecatedColumnHeaderName:User ID]] + * idcsPii: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: string + * uniqueness: global +* `user_type` - Used to identify the organization-to-user relationship + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: User Type + * idcsCsvAttributeNameMappings: [[columnHeaderName:User Type]] + * idcsPii: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `x509certificates` - A list of certificates issued to the User. + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - A human readable name, primarily used for display purposes. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `primary` - A Boolean value indicating the 'primary' or preferred attribute value for this attribute. The primary attribute value 'true' MUST appear no more than once. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `type` - A label indicating the attribute's function. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The value of a X509 certificate. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: binary + * uniqueness: none + diff --git a/website/docs/d/identity_domains_user_db_credential.html.markdown b/website/docs/d/identity_domains_user_db_credential.html.markdown new file mode 100644 index 00000000000..e410cc04951 --- /dev/null +++ b/website/docs/d/identity_domains_user_db_credential.html.markdown @@ -0,0 +1,536 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_user_db_credential" +sidebar_current: "docs-oci-datasource-identity_domains-user_db_credential" +description: |- + Provides details about a specific User Db Credential in Oracle Cloud Infrastructure Identity Domains service +--- + +# Data Source: oci_identity_domains_user_db_credential +This data source provides details about a specific User Db Credential resource in Oracle Cloud Infrastructure Identity Domains service. + +Get a User's DbCredentials + +## Example Usage + +```hcl +data "oci_identity_domains_user_db_credential" "test_user_db_credential" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + user_db_credential_id = oci_identity_db_credential.test_db_credential.id + + #Optional + attribute_sets = [] + attributes = "" + authorization = var.user_db_credential_authorization + resource_type_schema_version = var.user_db_credential_resource_type_schema_version +} +``` + +## Argument Reference + +The following arguments are supported: + +* `attribute_sets` - (Optional) A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. +* `attributes` - (Optional) A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. +* `user_db_credential_id` - (Required) ID of the resource + + +## Attributes Reference + +The following attributes are exported: + +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `db_password` - The db password of the user + + **SCIM++ Properties:** + * type: string + * mutability: immutable + * returned: default + * required: true +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - Description + + **Added In:** 2109020413 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `expired` - Indicates that the db password has expired + + **SCIM++ Properties:** + * type: boolean + * mutability: readOnly + * returned: default +* `expires_on` - User credential expires on + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: dateTime + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `last_set_date` - A DateTime that specifies the date and time when the current db password was set + + **SCIM++ Properties:** + * type: dateTime + * mutability: readOnly + * returned: default +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `mixed_db_password` - The db password of the user with mixed salt + + **SCIM++ Properties:** + * type: string + * mutability: readOnly + * returned: default + * required: false +* `mixed_salt` - The mixed salt of the password + + **SCIM++ Properties:** + * type: string + * mutability: readOnly + * returned: default + * required: false +* `name` - Name + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readOnly + * required: false + * returned: default +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `salt` - The salt of the password + + **SCIM++ Properties:** + * type: string + * mutability: readOnly + * returned: default + * required: false +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `status` - User credential status + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: never + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionself_change_user` - Controls whether a user can update themselves or not via User related APIs + * `allow_self_change` - If true, allows requesting user to update themselves. If false, requesting user can't update themself (default). + + **Added In:** 2205182039 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: writeOnly + * required: false + * returned: never + * type: boolean + * uniqueness: none +* `user` - User linked to db credential + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - User display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - User name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - User's ocid + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the user linked to this credential + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - User's id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: true + * returned: always + * type: string + * uniqueness: none + diff --git a/website/docs/d/identity_domains_user_db_credentials.html.markdown b/website/docs/d/identity_domains_user_db_credentials.html.markdown new file mode 100644 index 00000000000..fc113bc367a --- /dev/null +++ b/website/docs/d/identity_domains_user_db_credentials.html.markdown @@ -0,0 +1,546 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_user_db_credentials" +sidebar_current: "docs-oci-datasource-identity_domains-user_db_credentials" +description: |- + Provides the list of User Db Credentials in Oracle Cloud Infrastructure Identity Domains service +--- + +# Data Source: oci_identity_domains_user_db_credentials +This data source provides the list of User Db Credentials in Oracle Cloud Infrastructure Identity Domains service. + +Search a User's DBCredentials + +## Example Usage + +```hcl +data "oci_identity_domains_user_db_credentials" "test_user_db_credentials" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + + #Optional + user_db_credential_count = var.user_db_credential_user_db_credential_count + user_db_credential_filter = var.user_db_credential_user_db_credential_filter + attribute_sets = [] + attributes = "" + authorization = var.user_db_credential_authorization + resource_type_schema_version = var.user_db_credential_resource_type_schema_version + start_index = var.user_db_credential_start_index +} +``` + +## Argument Reference + +The following arguments are supported: + +* `user_db_credential_count` - (Optional) OPTIONAL. An integer that indicates the desired maximum number of query results per page. 1000 is the largest value that you can use. See the Pagination section of the System for Cross-Domain Identity Management Protocol specification for more information. (Section 3.4.2.4). +* `user_db_credential_filter` - (Optional) OPTIONAL. The filter string that is used to request a subset of resources. The filter string MUST be a valid filter expression. See the Filtering section of the SCIM specification for more information (Section 3.4.2.2). The string should contain at least one condition that each item must match in order to be returned in the search results. Each condition specifies an attribute, an operator, and a value. Conditions within a filter can be connected by logical operators (such as AND and OR). Sets of conditions can be grouped together using parentheses. +* `attribute_sets` - (Optional) A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. +* `attributes` - (Optional) A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. +* `start_index` - (Optional) OPTIONAL. An integer that indicates the 1-based index of the first query result. See the Pagination section of the SCIM specification for more information. (Section 3.4.2.4). The number of results pages to return. The first page is 1. Specify 2 to access the second page of results, and so on. + + +## Attributes Reference + +The following attributes are exported: + +* `user_db_credentials` - The list of user_db_credentials. + +### UserDbCredential Reference + +The following attributes are exported: + +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `db_password` - The db password of the user + + **SCIM++ Properties:** + * type: string + * mutability: immutable + * returned: default + * required: true +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - Description + + **Added In:** 2109020413 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `expired` - Indicates that the db password has expired + + **SCIM++ Properties:** + * type: boolean + * mutability: readOnly + * returned: default +* `expires_on` - User credential expires on + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: dateTime + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `last_set_date` - A DateTime that specifies the date and time when the current db password was set + + **SCIM++ Properties:** + * type: dateTime + * mutability: readOnly + * returned: default +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `mixed_db_password` - The db password of the user with mixed salt + + **SCIM++ Properties:** + * type: string + * mutability: readOnly + * returned: default + * required: false +* `mixed_salt` - The mixed salt of the password + + **SCIM++ Properties:** + * type: string + * mutability: readOnly + * returned: default + * required: false +* `name` - Name + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readOnly + * required: false + * returned: default +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `salt` - The salt of the password + + **SCIM++ Properties:** + * type: string + * mutability: readOnly + * returned: default + * required: false +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `status` - User credential status + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: never + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionself_change_user` - Controls whether a user can update themselves or not via User related APIs + * `allow_self_change` - If true, allows requesting user to update themselves. If false, requesting user can't update themself (default). + + **Added In:** 2205182039 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: writeOnly + * required: false + * returned: never + * type: boolean + * uniqueness: none +* `user` - User linked to db credential + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - User display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - User name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - User's ocid + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the user linked to this credential + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - User's id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: true + * returned: always + * type: string + * uniqueness: none + diff --git a/website/docs/d/identity_domains_users.html.markdown b/website/docs/d/identity_domains_users.html.markdown new file mode 100644 index 00000000000..3eb675d9271 --- /dev/null +++ b/website/docs/d/identity_domains_users.html.markdown @@ -0,0 +1,3936 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_users" +sidebar_current: "docs-oci-datasource-identity_domains-users" +description: |- + Provides the list of Users in Oracle Cloud Infrastructure Identity Domains service +--- + +# Data Source: oci_identity_domains_users +This data source provides the list of Users in Oracle Cloud Infrastructure Identity Domains service. + +Search Users + +## Example Usage + +```hcl +data "oci_identity_domains_users" "test_users" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + + #Optional + user_count = var.user_user_count + user_filter = var.user_user_filter + attribute_sets = [] + attributes = "" + authorization = var.user_authorization + resource_type_schema_version = var.user_resource_type_schema_version + start_index = var.user_start_index +} +``` + +## Argument Reference + +The following arguments are supported: + +* `user_count` - (Optional) OPTIONAL. An integer that indicates the desired maximum number of query results per page. 1000 is the largest value that you can use. See the Pagination section of the System for Cross-Domain Identity Management Protocol specification for more information. (Section 3.4.2.4). +* `user_filter` - (Optional) OPTIONAL. The filter string that is used to request a subset of resources. The filter string MUST be a valid filter expression. See the Filtering section of the SCIM specification for more information (Section 3.4.2.2). The string should contain at least one condition that each item must match in order to be returned in the search results. Each condition specifies an attribute, an operator, and a value. Conditions within a filter can be connected by logical operators (such as AND and OR). Sets of conditions can be grouped together using parentheses. +* `attribute_sets` - (Optional) A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. +* `attributes` - (Optional) A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. +* `start_index` - (Optional) OPTIONAL. An integer that indicates the 1-based index of the first query result. See the Pagination section of the SCIM specification for more information. (Section 3.4.2.4). The number of results pages to return. The first page is 1. Specify 2 to access the second page of results, and so on. + + +## Attributes Reference + +The following attributes are exported: + +* `users` - The list of users. + +### User Reference + +The following attributes are exported: + +* `active` - User status + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Active + * idcsCsvAttributeNameMappings: [[columnHeaderName:Active]] + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `addresses` - A physical mailing address for this User, as described in (address Element). Canonical Type Values of work, home, and other. The value attribute is a complex type with the following sub-attributes. + + **SCIM++ Properties:** + * idcsCompositeKey: [type] + * idcsCsvAttributeNameMappings: [[columnHeaderName:Work Address Street, deprecatedColumnHeaderName:Work Street Address, mapsTo:addresses[work].streetAddress], [columnHeaderName:Work Address Locality, deprecatedColumnHeaderName:Work City, mapsTo:addresses[work].locality], [columnHeaderName:Work Address Region, deprecatedColumnHeaderName:Work State, mapsTo:addresses[work].region], [columnHeaderName:Work Address Postal Code, deprecatedColumnHeaderName:Work Postal Code, mapsTo:addresses[work].postalCode], [columnHeaderName:Work Address Country, deprecatedColumnHeaderName:Work Country, mapsTo:addresses[work].country], [columnHeaderName:Work Address Formatted, mapsTo:addresses[work].formatted], [columnHeaderName:Home Address Formatted, mapsTo:addresses[home].formatted], [columnHeaderName:Other Address Formatted, mapsTo:addresses[other].formatted], [columnHeaderName:Home Address Street, mapsTo:addresses[home].streetAddress], [columnHeaderName:Other Address Street, mapsTo:addresses[other].streetAddress], [columnHeaderName:Home Address Locality, mapsTo:addresses[home].locality], [columnHeaderName:Other Address Locality, mapsTo:addresses[other].locality], [columnHeaderName:Home Address Region, mapsTo:addresses[home].region], [columnHeaderName:Other Address Region, mapsTo:addresses[other].region], [columnHeaderName:Home Address Country, mapsTo:addresses[home].country], [columnHeaderName:Other Address Country, mapsTo:addresses[other].country], [columnHeaderName:Home Address Postal Code, mapsTo:addresses[home].postalCode], [columnHeaderName:Other Address Postal Code, mapsTo:addresses[other].postalCode], [columnHeaderName:Primary Address Type, mapsTo:addresses[$(type)].primary]] + * idcsPii: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `country` - The country name component. + + **SCIM++ Properties:** + * caseExact: false + * idcsCanonicalValueSourceFilter: attrName eq "countries" and attrValues.value eq "upper($(country))" + * idcsCanonicalValueSourceResourceType: AllowedValue + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `formatted` - The full mailing address, formatted for display or use with a mailing label. This attribute MAY contain newlines. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `locality` - The city or locality component. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `postal_code` - The zipcode or postal code component. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `primary` - A Boolean value indicating the 'primary' or preferred attribute value for this attribute. The primary attribute value 'true' MUST appear no more than once. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `region` - The state or region component. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `street_address` - The full street address component, which may include house number, street name, PO BOX, and multi-line extended street address information. This attribute MAY contain newlines. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `type` - A label indicating the attribute's function; e.g., 'work' or 'home'. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - Description of the user + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: false + * idcsPii: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `display_name` - Display name + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Display Name + * idcsCsvAttributeNameMappings: [[columnHeaderName:Display Name]] + * idcsPii: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `emails` - A complex attribute representing emails + + **SCIM++ Properties:** + * idcsCompositeKey: [value, type] + * idcsCsvAttributeNameMappings: [[columnHeaderName:Work Email, mapsTo:emails[work].value], [columnHeaderName:Home Email, mapsTo:emails[home].value], [columnHeaderName:Primary Email Type, mapsTo:emails[$(type)].primary], [columnHeaderName:Other Email, mapsTo:emails[other].value], [columnHeaderName:Recovery Email, mapsTo:emails[recovery].value], [columnHeaderName:Work Email Verified, mapsTo:emails[work].verified], [columnHeaderName:Home Email Verified, mapsTo:emails[home].verified], [columnHeaderName:Other Email Verified, mapsTo:emails[other].verified], [columnHeaderName:Recovery Email Verified, mapsTo:emails[recovery].verified]] + * idcsPii: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `pending_verification_data` - Pending e-mail address verification + + **Added In:** 19.1.4 + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `primary` - A Boolean value that indicates whether the email address is the primary email address. The primary attribute value 'true' MUST appear no more than once. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `secondary` - A Boolean value that indicates whether the email address is the secondary email address. The secondary attribute value 'true' MUST appear no more than once. + + **Added In:** 18.2.6 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `type` - Type of email address + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Email address + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `verified` - A Boolean value that indicates whether or not the e-mail address is verified + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `entitlements` - A list of entitlements for the User that represent a thing the User has. + + **SCIM++ Properties:** + * idcsCompositeKey: [value, type] + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - A human readable name, primarily used for display purposes. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `primary` - A Boolean value indicating the 'primary' or preferred attribute value for this attribute. The primary attribute value 'true' MUST appear no more than once. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `type` - A label indicating the attribute's function. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - The value of an entitlement. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `external_id` - An identifier for the Resource as defined by the Service Consumer. The externalId may simplify identification of the Resource between Service Consumer and Service Provider by allowing the Consumer to refer to the Resource with its own identifier, obviating the need to store a local mapping between the local identifier of the Resource and the identifier used by the Service Provider. Each Resource MAY include a non-empty externalId value. The value of the externalId attribute is always issued by the Service Consumer and can never be specified by the Service Provider. The Service Provider MUST always interpret the externalId as scoped to the Service Consumer's tenant. + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeNameMappings: [[columnHeaderName:External Id]] + * idcsPii: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `groups` - A list of groups that the user belongs to, either thorough direct membership, nested groups, or dynamically calculated + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `date_added` - Date when the member is Added to the group + + **Added In:** 2105200541 + + **SCIM++ Properties:** + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `display` - A human readable name, primarily used for display purposes. READ-ONLY. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `external_id` - An identifier for the Resource as defined by the Service Consumer. READ-ONLY. + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `membership_ocid` - Membership Ocid + + **Added In:** 2103141444 + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `non_unique_display` - A human readable name for Group as defined by the Service Consumer. READ-ONLY. + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - Ocid of the User's group. + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the corresponding Group resource to which the user belongs + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - A label indicating the attribute's function; e.g., 'direct' or 'indirect'. + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `value` - The identifier of the User's group. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: always + * type: string + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `ims` - User's instant messaging addresses + + **SCIM++ Properties:** + * idcsCompositeKey: [value, type] + * idcsPii: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - A human-readable name, primarily used for display purposes + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `primary` - A Boolean value that indicates the 'primary' or preferred attribute value for this attribute--for example, the preferred messenger or primary messenger. The primary attribute value 'true' MUST appear no more than once. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `type` - A label that indicates the attribute's function--for example, 'aim', 'gtalk', or 'mobile' + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - User's instant messaging address + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `locale` - Used to indicate the User's default location for purposes of localizing items such as currency, date and time format, numerical representations, and so on. + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Locale + * idcsCsvAttributeNameMappings: [[columnHeaderName:Locale]] + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `name` - A complex attribute that contains attributes representing the name + + **SCIM++ Properties:** + * idcsCsvAttributeNameMappings: [[columnHeaderName:Formatted Name, mapsTo:name.formatted], [columnHeaderName:Honorific Prefix, mapsTo:name.honorificPrefix], [columnHeaderName:First Name, mapsTo:name.givenName], [columnHeaderName:Middle Name, mapsTo:name.middleName], [columnHeaderName:Last Name, mapsTo:name.familyName], [columnHeaderName:Honorific Suffix, mapsTo:name.honorificSuffix]] + * idcsPii: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: complex + * uniqueness: none + * `family_name` - Last name + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Last Name + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `formatted` - Full name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `given_name` - First name + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: First Name + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `honorific_prefix` - Prefix + + **SCIM++ Properties:** + * idcsCsvAttributeName: Honorific Prefix + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `honorific_suffix` - Suffix + + **SCIM++ Properties:** + * idcsCsvAttributeName: Honorific Suffix + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `middle_name` - Middle name + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Middle Name + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `nick_name` - Nick name + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Nick Name + * idcsCsvAttributeNameMappings: [[columnHeaderName:Nick Name]] + * idcsPii: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `password` - Password attribute. Max length for password is controlled via Password Policy. + + **SCIM++ Properties:** + * idcsCsvAttributeName: Password + * idcsCsvAttributeNameMappings: [[columnHeaderName:Password]] + * idcsPii: true + * idcsSearchable: false + * idcsSensitive: hash + * multiValued: false + * mutability: writeOnly + * required: false + * returned: never + * type: string + * uniqueness: none +* `phone_numbers` - Phone numbers + + **SCIM++ Properties:** + * idcsCompositeKey: [value, type] + * idcsCsvAttributeNameMappings: [[columnHeaderName:Work Phone, mapsTo:phoneNumbers[work].value], [columnHeaderName:Mobile No, mapsTo:phoneNumbers[mobile].value], [columnHeaderName:Home Phone, mapsTo:phoneNumbers[home].value], [columnHeaderName:Fax, mapsTo:phoneNumbers[fax].value], [columnHeaderName:Pager, mapsTo:phoneNumbers[pager].value], [columnHeaderName:Other Phone, mapsTo:phoneNumbers[other].value], [columnHeaderName:Recovery Phone, mapsTo:phoneNumbers[recovery].value], [columnHeaderName:Primary Phone Type, mapsTo:phoneNumbers[$(type)].primary]] + * idcsPii: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - A human-readable name, primarily used for display purposes. READ ONLY + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `primary` - A Boolean value that indicates the 'primary' or preferred attribute value for this attribute--for example, the preferred phone number or primary phone number. The primary attribute value 'true' MUST appear no more than once. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `type` - A label that indicates the attribute's function- for example, 'work', 'home', or 'mobile' + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - User's phone number + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `verified` - A Boolean value that indicates if the phone number is verified. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `photos` - URLs of photos for the User + + **SCIM++ Properties:** + * idcsCompositeKey: [value, type] + * idcsPii: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - A human readable name, primarily used for display purposes. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `primary` - A Boolean value indicating the 'primary' or preferred attribute value for this attribute, e.g., the preferred photo or thumbnail. The primary attribute value 'true' MUST appear no more than once. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `type` - A label indicating the attribute's function; e.g., 'photo' or 'thumbnail'. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - URL of a photo for the User + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: reference + * uniqueness: none +* `preferred_language` - User's preferred written or spoken language used for localized user interfaces + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Preferred Language + * idcsCsvAttributeNameMappings: [[columnHeaderName:Preferred Language]] + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `profile_url` - A fully-qualified URL to a page representing the User's online profile + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Profile URL + * idcsCsvAttributeNameMappings: [[columnHeaderName:Profile Url]] + * idcsPii: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: reference + * uniqueness: none +* `roles` - A list of roles for the User that collectively represent who the User is; e.g., 'Student', 'Faculty'. + + **SCIM++ Properties:** + * idcsCompositeKey: [value, type] + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - A human readable name, primarily used for display purposes. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `primary` - A Boolean value indicating the 'primary' or preferred attribute value for this attribute. The primary attribute value 'true' MUST appear no more than once. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `type` - A label indicating the attribute's function. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - The value of a role. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `timezone` - User's timezone + + **SCIM++ Properties:** + * caseExact: false + * idcsCanonicalValueSourceFilter: attrName eq "timezones" and attrValues.value eq "$(timezone)" + * idcsCanonicalValueSourceResourceType: AllowedValue + * idcsCsvAttributeName: TimeZone + * idcsCsvAttributeNameMappings: [[columnHeaderName:Time Zone, deprecatedColumnHeaderName:TimeZone]] + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `title` - Title + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Title + * idcsCsvAttributeNameMappings: [[columnHeaderName:Title]] + * idcsPii: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasextensionenterprise20user` - Enterprise User + * `cost_center` - Identifies the name of a cost center. + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Cost Center + * idcsCsvAttributeNameMappings: [[columnHeaderName:Cost Center]] + * idcsPii: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `department` - Identifies the name of a department. + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Department + * idcsCsvAttributeNameMappings: [[columnHeaderName:Department]] + * idcsPii: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `division` - Identifies the name of a division. + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Division + * idcsCsvAttributeNameMappings: [[columnHeaderName:Division]] + * idcsPii: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `employee_number` - Numeric or alphanumeric identifier assigned to a person, typically based on order of hire or association with an organization. + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Employee Number + * idcsCsvAttributeNameMappings: [[columnHeaderName:Employee Number]] + * idcsPii: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `manager` - The User's manager. A complex type that optionally allows Service Providers to represent organizational hierarchy by referencing the 'id' attribute of another User. + + **SCIM++ Properties:** + * idcsCsvAttributeNameMappings: [[columnHeaderName:Manager, deprecatedColumnHeaderName:Manager Name, mapsTo:manager.value]] + * idcsPii: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display_name` - The displayName of the User's manager. OPTIONAL and READ-ONLY. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource representing the User's manager. RECOMMENDED. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The id of the SCIM resource representing the User's manager. RECOMMENDED. + + **SCIM++ Properties:** + * idcsCsvAttributeName: Manager Name + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `organization` - Identifies the name of an organization. + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Organization + * idcsCsvAttributeNameMappings: [[columnHeaderName:Organization Name, deprecatedColumnHeaderName:Organization]] + * idcsPii: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextension_oci_tags` - Oracle Cloud Infrastructure Tags. + * `defined_tags` - Oracle Cloud Infrastructure Defined Tags + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * idcsCompositeKey: [namespace, key, value] + * type: complex + * idcsSearchable: true + * required: false + * mutability: readWrite + * multiValued: true + * returned: default + * `key` - Oracle Cloud Infrastructure Tag key + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * required: true + * mutability: readWrite + * returned: default + * idcsSearchable: true + * uniqueness: none + * `namespace` - Oracle Cloud Infrastructure Tag namespace + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * required: true + * mutability: readWrite + * returned: default + * idcsSearchable: true + * uniqueness: none + * `value` - Oracle Cloud Infrastructure Tag value + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * required: true + * mutability: readWrite + * returned: default + * type: string + * idcsSearchable: true + * uniqueness: none + * `freeform_tags` - Oracle Cloud Infrastructure Freeform Tags + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * type: complex + * required: false + * mutability: readWrite + * returned: default + * multiValued: true + * `key` - Oracle Cloud Infrastructure Tag key + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * required: true + * mutability: readWrite + * returned: default + * idcsSearchable: true + * uniqueness: none + * `value` - Oracle Cloud Infrastructure Tag value + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * required: true + * mutability: readWrite + * returned: default + * type: string + * idcsSearchable: true + * uniqueness: none + * `tag_slug` - Oracle Cloud Infrastructure Tag slug + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * type: binary + * mutability: readOnly + * returned: request +* `urnietfparamsscimschemasoracleidcsextensionadaptive_user` - This extension defines attributes to manage user's risk score. + * `risk_level` - Risk Level + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: request + * type: string + * uniqueness: none + * `risk_scores` - The risk score pertaining to the user. + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [value] + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `last_update_timestamp` - Last update timestamp for the risk score + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: dateTime + * uniqueness: none + * `ref` - Risk Provider Profile URI: URI that corresponds to risk source identifier. + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: reference + * uniqueness: none + * `risk_level` - Risk Level + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: string + * uniqueness: none + * `score` - Risk Score value + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: integer + * uniqueness: none + * `source` - Risk Provider Profile Source + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `status` - Risk Provider Profile status + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `value` - Risk Provider Profile: Identifier for the provider service from which the risk score was received. + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensioncapabilities_user` - User's Capabilities + * `can_use_api_keys` - Indicates weather a user can use api keys + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `can_use_auth_tokens` - Indicates weather a user can use auth tokens + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `can_use_console_password` - Indicates weather a user can use console password + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `can_use_customer_secret_keys` - Indicates weather a user can use customer secret keys + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `can_use_db_credentials` - Indicates weather a user can use db credentials + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `can_use_oauth2client_credentials` - Indicates weather a user can use oauth2 client credentials + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `can_use_smtp_credentials` - Indicates weather a user can use smtp credentials + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensiondb_credentials_user` - Db Credentials User extension + * `db_login_attempts` - The number of failed login attempts. The value is reset to 0 after a successful login. + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: integer + * uniqueness: none + * `db_user_name` - The Database User Name + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * multiValued: false + * mutability: readWrite + * required: false + * type: string + * returned: request + * caseExact: false + * uniqueness: none + * idcsSearchable: true +* `urnietfparamsscimschemasoracleidcsextensiondb_user_user` - DB User extension + * `db_global_roles` - DB global roles to which the user is granted access. + + **Added In:** 18.2.2 + + **SCIM++ Properties:** + * idcsSearchable: false + * idcsSensitive: none + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `domain_level_schema` - DB domain level schema to which the user is granted access. + + **Added In:** 18.2.2 + + **SCIM++ Properties:** + * idcsSearchable: false + * idcsSensitive: none + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `instance_level_schema` - DB instance level schema to which the user is granted access. + + **Added In:** 18.2.2 + + **SCIM++ Properties:** + * idcsSearchable: false + * idcsSensitive: none + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `is_db_user` - If true, indicates this is a database user. + + **Added In:** 18.2.2 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: boolean + * uniqueness: none + * `password_verifiers` - Password Verifiers for DB User. + + **Added In:** 18.2.2 + + **SCIM++ Properties:** + * idcsCompositeKey: [type] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `type` - Type of database password verifier (for example, MR-SHA512 or SSHA). + + **Added In:** 18.2.2 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Hash value of database password verifier. + + **Added In:** 18.2.2 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * idcsSensitive: none + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionkerberos_user_user` - Kerberos User extension + * `realm_users` - A list of kerberos realm users for an Oracle Cloud Infrastructure IAM User + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `principal_name` - Principal Name of the KerberosRealmUser associated with the Oracle Cloud Infrastructure IAM User. + + **SCIM++ Properties:** + * idcsPii: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `realm_name` - Realm Name for the KerberosRealmUser associated with the Oracle Cloud Infrastructure IAM User. + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the corresponding KerberosRealmUser resource associated with the Oracle Cloud Infrastructure IAM User. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - id of the KerberosRealmUser associated with the Oracle Cloud Infrastructure IAM User. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionmfa_user` - This extension defines attributes used to manage Multi-Factor Authentication within a service provider. The extension is typically applied to a User resource, but MAY be applied to other resources that use MFA. + * `bypass_codes` - A list of bypass codes belongs to user + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `ref` - The URI of the corresponding BypassCode resource which belongs to user + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The identifier of the User's bypass code. + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: always + * type: string + * uniqueness: none + * `devices` - A list of devices enrolled by the user. + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `authentication_method` - Authentication method. + + **Added In:** 2009232244 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `display` - A human readable name, primarily used for display purposes. READ-ONLY. + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `factor_status` - Device authentication factor status. + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `factor_type` - Device authentication factor type. + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `last_sync_time` - Last Sync time for device. + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `ref` - The URI of the corresponding Device resource which belongs to user + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `status` - Device status. + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `third_party_vendor_name` - Third party factor vendor name. + + **Added In:** 2009232244 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The identifier of the User's device. + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: always + * type: string + * uniqueness: none + * `login_attempts` - Number of incorrect Multi Factor Authentication login attempts made by this user. The user gets locked, if this reaches the threshold specified in the maxIncorrectAttempts attribute in AuthenticationFactorSettings + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: integer + * uniqueness: none + * `mfa_enabled_on` - This represents the date when the user enrolled for multi factor authentication. This will be set to null, when the user resets his factors. + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: request + * type: dateTime + * uniqueness: none + * `mfa_ignored_apps` - User MFA Ignored Apps Identifiers + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `mfa_status` - User Opted for MFA + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `preferred_authentication_factor` - Preferred Authentication Factor Type + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `preferred_authentication_method` - Preferred Authentication method + + **Added In:** 2009232244 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `preferred_device` - User preferred device + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - Device display name + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the device resource + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The identifier of the User's preferred device + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `preferred_third_party_vendor` - Preferred Third party vendor name + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `trusted_user_agents` - A list of trusted User Agents owned by this user. Multi-Factored Authentication uses Trusted User Agents to authenticate users. A User Agent is software application that a user uses to issue requests. For example, a User Agent could be a particular browser (possibly one of several executing on a desktop or laptop) or a particular mobile application (again, oneof several executing on a particular mobile device). A User Agent is trusted once the Multi-Factor Authentication has verified it in some way. + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `display` - A human-readable identifier for this trusted user agent, used primarily for display purposes. READ-ONLY. + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the corresponding trusted user agent resource. + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The identifier of the User's trusted user agent. + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionpassword_state_user` - This extension defines attributes used to manage account passwords within a Service Provider. The extension is typically applied to a User resource, but MAY be applied to other resources that use passwords. + * `applicable_password_policy` - Applicable Password Policy + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `display` - Password Policy Display Name + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `priority` - PasswordPolicy priority + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: integer + * uniqueness: none + * `ref` - The URI of the corresponding PasswordPolicy resource. + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The identifier of the password policy. + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: always + * type: string + * uniqueness: none + * `cant_change` - Indicates that the current password MAY NOT be changed and all other password expiry settings SHALL be ignored + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: boolean + * uniqueness: none + * `cant_expire` - Indicates that the password expiry policy will not be applied for the current Resource + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: boolean + * uniqueness: none + * `expired` - Indicates that the password has expired + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: boolean + * uniqueness: none + * `last_failed_validation_date` - A DateTime that specifies the date and time when last failed password validation was set + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: dateTime + * uniqueness: none + * `last_successful_set_date` - A DateTime that specifies the date and time when the current password was set + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: dateTime + * uniqueness: none + * `last_successful_validation_date` - A DateTime that specifies the date and time when last successful password validation was set + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: dateTime + * uniqueness: none + * `must_change` - Indicates that the subject password value MUST change on next login. If not changed, typically the account is locked. The value may be set indirectly when the subject's current password expires or directly set by an administrator. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: boolean + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionpasswordless_user` - This extension defines attributes used to manage Passwordless-Factor Authentication within a service provider. The extension is typically applied to a User resource, but MAY be applied to other resources that use MFA. + * `factor_identifier` - Factor Identifier ID + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - Factor Identifier display name + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the device resource + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The identifier of the User's preferred device + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `factor_method` - Authentication Factor Method + + **Added In:** 2009232244 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `factor_type` - Authentication Factor Type + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionposix_user` - POSIX User extension + * `gecos` - General information about the POSIX account such as their real name and phone number + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: request + * type: string + * uniqueness: none + * `gid_number` - Primary Group identifier of the POSIX user + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: request + * type: integer + * uniqueness: none + * `home_directory` - The absolute path to the home directory of the POSIX account + + **SCIM++ Properties:** + * caseExact: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: request + * type: string + * uniqueness: none + * `login_shell` - The path to the login shell of the POSIX account + + **SCIM++ Properties:** + * caseExact: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: request + * type: string + * uniqueness: none + * `uid_number` - Integer uniquely identifying a user in a POSIX administrative domain + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: request + * type: integer + * uniqueness: server +* `urnietfparamsscimschemasoracleidcsextensionsecurity_questions_user` - This extension defines attributes used to store Security Questions of User. + * `sec_questions` - Security question and answers provided by end-user for Account recovery and/or MFA. While setting up security questions, end-user can also provide hint along with answer. + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `answer` - Answer provided by an user for a security question. + + **SCIM++ Properties:** + * idcsCsvAttributeName: Answer + * idcsSearchable: false + * idcsSensitive: hash + * multiValued: false + * mutability: writeOnly + * required: true + * returned: never + * type: string + * uniqueness: none + * idcsPii: true + * `hint_text` - Hint for an answer given by user while setting up Security Question. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the corresponding SecurityQuestion resource + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - Id of the question selected by user while setting up Security Question. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionself_change_user` - Controls whether a user can update themselves or not via User related APIs + * `allow_self_change` - If true, allows requesting user to update themselves. If false, requesting user can't update themself (default). + + **Added In:** 2205182039 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: writeOnly + * required: false + * returned: never + * type: boolean + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionself_registration_user` - This extension defines attributes used to manage self registration profile linked to the user. + * `consent_granted` - A boolean value that indicates whether the consent is granted. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `self_registration_profile` - Self registration profile used when user is self registered. + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: true + * returned: request + * type: complex + * uniqueness: none + * `display` - A human readable name, primarily used for display purposes. READ-ONLY. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `ref` - URI of the profile. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - Self Registration Profile Id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: true + * returned: always + * type: string + * uniqueness: none + * `user_token` - User token used for auto-login. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionsff_user` - SFF Auth Keys User extension + * `sff_auth_keys` - SFF auth keys clob + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: request + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionsocial_account_user` - Social User extension + * `social_accounts` - Description: + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * idcsPii: true + * type: complex + * uniqueness: none + * `display` - A human readable name, primarily used for display purposes. READ-ONLY. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the corresponding SocialAccount resource linked with the user + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - +* `urnietfparamsscimschemasoracleidcsextensionterms_of_use_user` - Terms Of Use extension + * `terms_of_use_consents` - Description: + + **Added In:** 18.2.6 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `ref` - The URI of the corresponding TermsOfUseConsent resource linked with the user + + **Added In:** 18.2.6 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - +* `urnietfparamsscimschemasoracleidcsextensionuser_credentials_user` - User's credentials + * `api_keys` - A list of api keys corresponding to user. + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - The value of of the User's api key. + + **Added In:** 2106240046 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `ocid` - Ocid of the User's api key. + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI of the corresponding ApiKey resource to which the user belongs + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The identifier of the User's api key. + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `auth_tokens` - A list of auth tokens corresponding to user. + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `ocid` - Ocid of the User's auth token. + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI of the corresponding AuthToken resource to which the user belongs + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The identifier of the User's auth token. + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `customer_secret_keys` - A list of customer secret keys corresponding to user. + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `ocid` - Ocid of the User's customer secret key. + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI of the corresponding CustomerSecretKey resource to which the user belongs + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The identifier of the User's customer secret key. + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `db_credentials` - A list of db credentials corresponding to user. + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `ocid` - Ocid of the User's db credential. + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI of the corresponding UserDbCredential resource to which the user belongs + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The identifier of the User's db credential. + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `o_auth2client_credentials` - A list of oauth2 client credentials corresponding to user. + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `ocid` - Ocid of the User's oAuth2 client credential. + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI of the corresponding OAuth2ClientCredential resource to which the user belongs + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The identifier of the User's oAuth2 client credential. + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `smtp_credentials` - A list of smtp credentials corresponding to user. + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `ocid` - Ocid of the User's auth token. + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI of the corresponding SmtpCredential resource to which the user belongs + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The identifier of the User's smtp credential. + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionuser_state_user` - This extension defines attributes used to manage account passwords within a service provider. The extension is typically applied to a User resource, but MAY be applied to other resources that use passwords. + * `last_failed_login_date` - The last failed login date + + **SCIM++ Properties:** + * idcsSearchable: false + * idcsAllowUpdatesInReadOnlyMode: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: dateTime + * uniqueness: none + * `last_successful_login_date` - The last successful login date + + **SCIM++ Properties:** + * idcsSearchable: true + * idcsAllowUpdatesInReadOnlyMode: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: dateTime + * uniqueness: none + * `locked` - A complex attribute that indicates an account is locked (blocking new sessions) + + **SCIM++ Properties:** + * idcsCsvAttributeNameMappings: [[columnHeaderName:Locked, mapsTo:locked.on], [columnHeaderName:Locked Reason, mapsTo:locked.reason], [columnHeaderName:Locked Date, mapsTo:locked.lockDate]] + * idcsSearchable: false + * idcsAllowUpdatesInReadOnlyMode: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `expired` - Indicates whether user password is expired. If this value is false, password expiry will still be evaluated during user login. + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: request + * type: boolean + * uniqueness: none + * `lock_date` - The date and time that the current resource was locked + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `on` - Indicates tat the account is locked + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `reason` - Indicates the reason for locking. Valid values are: 0 - failed password login attempts, 1 - admin lock, 2 - failed reset password attempts, 3 - failed MFA login attempts, 4 - failed MFA login attempts for federated user, 5 - failed Database login attempts + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none + * `login_attempts` - The number of failed login attempts. The value is reset to 0 after a successful login. + + **SCIM++ Properties:** + * idcsSearchable: false + * idcsAllowUpdatesInReadOnlyMode: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: integer + * uniqueness: none + * `max_concurrent_sessions` - Maximum number of concurrent sessions for a User + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsMaxValue: 999 + * idcsMinValue: 1 + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none + * `previous_successful_login_date` - The previous successful login date + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: dateTime + * uniqueness: none + * `recovery_attempts` - The number of failed recovery attempts. The value is reset to 0 after a successful login. + + **Added In:** 19.1.4 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: integer + * uniqueness: none + * `recovery_enroll_attempts` - The number of failed account recovery enrollment attempts. + + **Added In:** 19.1.4 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: integer + * uniqueness: none + * `recovery_locked` - A complex attribute that indicates an password recovery is locked (blocking new sessions) + + **Added In:** 19.1.4 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `lock_date` - The date and time that the current resource was locked + + **Added In:** 19.1.4 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `on` - Indicates that the rev is locked + + **Added In:** 19.1.4 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionuser_user` - Oracle Cloud Infrastructure IAM User + * `user_provider` - Registration provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: none + * `account_recovery_required` - Boolean value to prompt user to setup account recovery during login. + + **Added In:** 19.1.4 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: request + * type: boolean + * uniqueness: none + * `accounts` - Accounts assigned to this User. Each value of this attribute refers to an app-specific identity that is owned by this User. Therefore, this attribute is a convenience that allows one to see on each User the Apps to which that User has access. + + **SCIM++ Properties:** + * idcsPii: true + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `active` - Status of the account + + **Added In:** 17.4.6 + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `app_id` - The ID of the App to which this Account gives access. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - Name of the account assigned to the User. + + **Added In:** 17.4.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the Account assigned to the User. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The Id of the Account assigned to the User. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `app_roles` - A list of all AppRoles to which this User belongs directly, indirectly or implicitly. The User could belong directly because the User is a member of the AppRole, could belong indirectly because the User is a member of a Group that is a member of the AppRole, or could belong implicitly because the AppRole is public. + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `admin_role` - If true, then the role provides administrative access privileges. READ-ONLY. + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `app_id` - The ID of the App that defines this AppRole. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `app_name` - The name (Client ID) of the App that defines this AppRole. + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `display` - The display name of the AppRole assigned to the User. + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `legacy_group_name` - The name (if any) under which this AppRole should appear in this User's group-memberships for reasons of backward compatibility. Oracle Cloud Infrastructure IAM distinguishes between Groups and AppRoles, but some services still expect AppRoles appear as if they were service-instance-specific Groups. + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the AppRole assigned to the User. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The kind of membership this User has in the AppRole. A value of 'direct' indicates that the User is a member of the AppRole. A value of 'indirect' indicates that the User is a member of a Group that is a member of the AppRole. A value of 'implicit' indicates that the AppRole is public. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `value` - The Id of the AppRole assigned to the User. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: always + * type: string + * uniqueness: none + * `applicable_authentication_target_app` - The app against which the user will authenticate. The value is not persisted but rather calculated. If the user's delegatedAuthenticationTargetApp is set, that value is returned. Otherwise, the app returned by evaluating the user's applicable Delegated Authentication Policy is returned. + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `display` - App Display Name + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - App URI + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `target_request_timeout` - Timeout interval for Synchronization TargetAction in milliseconds + + **Added In:** 18.2.6 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: integer + * uniqueness: none + * `type` - A label that indicates whether this is an App or IdentitySource. + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - App identifier + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * caseExact: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `bypass_notification` - A Boolean value indicating whether or not to send email notification after creating the user. This attribute is not used in update/replace operations. + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeNameMappings: [[columnHeaderName:ByPass Notification]] + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: never + * type: boolean + * uniqueness: none + * `creation_mechanism` - User creation mechanism + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeNameMappings: [[defaultValue:import]] + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: request + * type: string + * uniqueness: none + * `delegated_authentication_target_app` - If set, indicates the user's preferred authentication target app. If not set and the user's \"syncedFromApp\" is set and is enabled for delegated authentication, it is used. Otherwise, the user authenticates locally to Oracle Cloud Infrastructure IAM. + + **Added In:** 17.4.6 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - App Display Name + + **Added In:** 17.4.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - App URI + + **Added In:** 17.4.6 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - A label that indicates whether this is an App or IdentitySource. + + **Added In:** 17.4.6 + + **SCIM++ Properties:** + * idcsDefaultValue: IdentitySource + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - App identifier + + **Added In:** 17.4.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `do_not_show_getting_started` - A Boolean value indicating whether or not to hide the getting started page + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `grants` - Grants to this User. Each value of this attribute refers to a Grant to this User of some App (and optionally of some entitlement). Therefore, this attribute is a convenience that allows one to see on each User all of the Grants to that User. + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `app_id` - The ID of the App in this Grant. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `grant_mechanism` - Each value of grantMechanism indicates how (or by what component) some App (or App-Entitlement) was granted.\nA customer or the UI should use only grantMechanism values that start with 'ADMINISTRATOR':\n - 'ADMINISTRATOR_TO_USER' is for a direct grant to a specific User.\n - 'ADMINISTRATOR_TO_GROUP' is for a grant to a specific Group, which results in indirect grants to Users who are members of that Group.\n - 'ADMINISTRATOR_TO_APP' is for a grant to a specific App. The grantee (client) App gains access to the granted (server) App. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `grantor_id` - Grantor identifier + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of this Grant to this User. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The ID of this Grant to this User. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `idcs_app_roles_limited_to_groups` - Description: + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsCompositeKey: [value, idcsAppRoleId] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * `display` - Group display name + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `idcs_app_role_id` - The id of the Oracle Cloud Infrastructure IAM AppRole grant limited to one or more Groups. + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsCsvAttributeName: IDCS AppRole Name + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `ocid` - The ocid of a Group the AppRole Grant is limited to + + **Added In:** 2202230830 + + **SCIM++ Properties:** + * idcsCsvAttributeName: Group Ocid + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource representing the Group manager. RECOMMENDED. + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The id of a Group the AppRole Grant is limited to + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsCsvAttributeName: Group Name + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `is_account_recovery_enrolled` - A Boolean value indicating whether or not a user is enrolled for account recovery + + **Added In:** 19.1.4 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: boolean + * uniqueness: none + * `is_authentication_delegated` - A Boolean value indicating whether or not authentication request by this user should be delegated to a remote app. This value should be true only when the User was originally synced from an app which is enabled for delegated authentication + + **Added In:** 17.4.6 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: never + * type: boolean + * uniqueness: none + * `is_federated_user` - A Boolean value indicating whether or not the user is federated. + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Federated + * idcsCsvAttributeNameMappings: [[columnHeaderName:Federated]] + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `is_group_membership_normalized` - A Boolean value indicating whether or not group membership is normalized for this user. + + **Deprecated Since: 19.3.3** + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: never + * type: boolean + * uniqueness: none + * `is_group_membership_synced_to_users_groups` - A Boolean value Indicates whether this User's group membership has been sync'ed from Group.members to UsersGroups. + + **Added In:** 19.3.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: never + * type: boolean + * uniqueness: none + * `notification_email_template_id` - Specifies the EmailTemplate to be used when sending notification to the user this request is for. If specified, it overrides the default EmailTemplate for this event. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: writeOnly + * required: false + * returned: never + * type: string + * uniqueness: none + * `status` - A supplemental status indicating the reason why a user is disabled + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `support_accounts` - A list of Support Accounts corresponding to user. + + **Added In:** 2103141444 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `user_provider` - User Support Account Provider + + **Added In:** 2103141444 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `ocid` - Ocid of the User's Support Account. + + **Added In:** 2103141444 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI of the corresponding Support Account resource to which the user belongs + + **Added In:** 2103141444 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `user_id` - User Support User Id + + **Added In:** 2103141444 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `value` - The identifier of the User's support Account. + + **Added In:** 2103141444 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `synced_from_app` - Managed App or an Identity Source from where the user is synced. If enabled, this Managed App or Identity Source can be used for performing delegated authentication. + + **Added In:** 18.2.6 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - App Display Name + + **Added In:** 18.2.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - App URI + + **Added In:** 18.2.6 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - A label that indicates whether this is an App or IdentitySource. + + **Added In:** 18.2.6 + + **SCIM++ Properties:** + * idcsDefaultValue: IdentitySource + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - App identifier + + **Added In:** 18.2.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `user_flow_controlled_by_external_client` - A Boolean value indicating whether to bypass notification and return user token to be used by an external client to control the user flow. + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: never + * type: boolean + * uniqueness: none + * `user_token` - User token returned if userFlowControlledByExternalClient is true + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * uniqueness: none + * `ref` - User Token URI + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - User Token identifier + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `user_name` - User name + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: User ID + * idcsCsvAttributeNameMappings: [[columnHeaderName:User Name, deprecatedColumnHeaderName:User ID]] + * idcsPii: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: string + * uniqueness: global +* `user_type` - Used to identify the organization-to-user relationship + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: User Type + * idcsCsvAttributeNameMappings: [[columnHeaderName:User Type]] + * idcsPii: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `x509certificates` - A list of certificates issued to the User. + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - A human readable name, primarily used for display purposes. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `primary` - A Boolean value indicating the 'primary' or preferred attribute value for this attribute. The primary attribute value 'true' MUST appear no more than once. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `type` - A label indicating the attribute's function. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The value of a X509 certificate. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: binary + * uniqueness: none + diff --git a/website/docs/guides/resource_discovery.html.markdown b/website/docs/guides/resource_discovery.html.markdown index 9a0e86eb9ff..72d814b2457 100644 --- a/website/docs/guides/resource_discovery.html.markdown +++ b/website/docs/guides/resource_discovery.html.markdown @@ -167,6 +167,7 @@ Make sure the `output_path` is empty before running resource discovery * `health_checks` - Discovers health_checks resources within the specified compartment * `identity` - Discovers identity resources across the entire tenancy * `identity_data_plane` - Discovers identity_data_plane resources within the specified compartment + * `identity_domains` - Discovers identity_domains resources within the specified compartment * `integration` - Discovers integration resources within the specified compartment * `jms` - Discovers jms resources within the specified compartment * `kms` - Discovers kms resources within the specified compartment @@ -734,6 +735,29 @@ identity_data_plane * oci\_identity\_data\_plane\_generate\_scoped\_access\_token +identity_domains + +* oci\_identity\_domains\_user +* oci\_identity\_domains\_group +* oci\_identity\_domains\_dynamic\_resource\_group +* oci\_identity\_domains\_password\_policy +* oci\_identity\_domains\_identity\_provider +* oci\_identity\_domains\_api\_key +* oci\_identity\_domains\_auth\_token +* oci\_identity\_domains\_customer\_secret\_key +* oci\_identity\_domains\_oauth2client\_credential +* oci\_identity\_domains\_smtp\_credential +* oci\_identity\_domains\_user\_db\_credential +* oci\_identity\_domains\_my\_api\_key +* oci\_identity\_domains\_my\_auth\_token +* oci\_identity\_domains\_my\_customer\_secret\_key +* oci\_identity\_domains\_my\_oauth2client\_credential +* oci\_identity\_domains\_my\_smtp\_credential +* oci\_identity\_domains\_my\_user\_db\_credential +* oci\_identity\_domains\_my\_support\_account +* oci\_identity\_domains\_authentication\_factor\_setting +* oci\_identity\_domains\_kmsi\_setting + integration * oci\_integration\_integration\_instance diff --git a/website/docs/r/identity_domains_api_key.html.markdown b/website/docs/r/identity_domains_api_key.html.markdown new file mode 100644 index 00000000000..a24913569ea --- /dev/null +++ b/website/docs/r/identity_domains_api_key.html.markdown @@ -0,0 +1,953 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_api_key" +sidebar_current: "docs-oci-resource-identity_domains-api_key" +description: |- + Provides the Api Key resource in Oracle Cloud Infrastructure Identity Domains service +--- + +# oci_identity_domains_api_key +This resource provides the Api Key resource in Oracle Cloud Infrastructure Identity Domains service. + +Add a user's api key + +## Example Usage + +```hcl +resource "oci_identity_domains_api_key" "test_api_key" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + key = var.api_key_key + schemas = ["urn:ietf:params:scim:schemas:oracle:idcs:apikey"] + + #Optional + attribute_sets = [] + attributes = "" + authorization = var.api_key_authorization + description = var.api_key_description + id = var.api_key_id + ocid = var.api_key_ocid + resource_type_schema_version = var.api_key_resource_type_schema_version + tags { + #Required + key = var.api_key_tags_key + value = var.api_key_tags_value + } + urnietfparamsscimschemasoracleidcsextensionself_change_user { + + #Optional + allow_self_change = var.api_key_urnietfparamsscimschemasoracleidcsextensionself_change_user_allow_self_change + } + user { + + #Optional + ocid = oci_identity_domains_user.test_user.ocid + value = oci_identity_domains_user.test_user.id + } +} +``` + +## Argument Reference + +The following arguments are supported: + +* `attribute_sets` - (Optional) A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. +* `attributes` - (Optional) A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `compartment_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - (Optional) (Updatable) A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - (Optional) Description + + **Added In:** 2101262133 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `domain_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `fingerprint` - (Optional) (Updatable) Fingerprint + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * type: string + * mutability: readOnly + * required: true + * returned: default +* `id` - (Optional) Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - (Optional) (Updatable) The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - (Optional) The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - (Optional) The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `idcs_last_modified_by` - (Optional) (Updatable) The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - (Optional) The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - (Optional) The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - (Optional) (Updatable) The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - (Optional) (Updatable) Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `key` - (Required) Key + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: true + * idcsPii: true + * type: string + * mutability: immutable + * required: true + * returned: default +* `meta` - (Optional) (Updatable) A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - (Optional) The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - (Optional) The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - (Optional) The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - (Optional) Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - (Optional) The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `ocid` - (Optional) Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. +* `schemas` - (Required) REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tags` - (Optional) A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - (Required) Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionself_change_user` - (Optional) Controls whether a user can update themselves or not via User related APIs + * `allow_self_change` - (Optional) If true, allows requesting user to update themselves. If false, requesting user can't update themself (default). + + **Added In:** 2205182039 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: writeOnly + * required: false + * returned: never + * type: boolean + * uniqueness: none +* `user` - (Optional) User linked to api key + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - (Optional) (Updatable) User display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - (Optional) (Updatable) User name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) User's ocid + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI that corresponds to the user linked to this credential + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - (Optional) User's id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + + +** IMPORTANT ** +Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values + +## Attributes Reference + +The following attributes are exported: + +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - Description + + **Added In:** 2101262133 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `fingerprint` - Fingerprint + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * type: string + * mutability: readOnly + * required: true + * returned: default +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `key` - Key + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: true + * idcsPii: true + * type: string + * mutability: immutable + * required: true + * returned: default +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionself_change_user` - Controls whether a user can update themselves or not via User related APIs + * `allow_self_change` - If true, allows requesting user to update themselves. If false, requesting user can't update themself (default). + + **Added In:** 2205182039 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: writeOnly + * required: false + * returned: never + * type: boolean + * uniqueness: none +* `user` - User linked to api key + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - User display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - User name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - User's ocid + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the user linked to this credential + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - User's id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + +## Timeouts + +The `timeouts` block allows you to specify [timeouts](https://registry.terraform.io/providers/oracle/oci/latest/docs/guides/changing_timeouts) for certain operations: + * `create` - (Defaults to 20 minutes), when creating the Api Key + * `update` - (Defaults to 20 minutes), when updating the Api Key + * `delete` - (Defaults to 20 minutes), when destroying the Api Key + + +## Import + +ApiKeys can be imported using the `id`, e.g. + +``` +$ terraform import oci_identity_domains_api_key.test_api_key "idcsEndpoint/{idcsEndpoint}/apiKeys/{apiKeyId}" +``` + diff --git a/website/docs/r/identity_domains_auth_token.html.markdown b/website/docs/r/identity_domains_auth_token.html.markdown new file mode 100644 index 00000000000..121dbd5568f --- /dev/null +++ b/website/docs/r/identity_domains_auth_token.html.markdown @@ -0,0 +1,962 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_auth_token" +sidebar_current: "docs-oci-resource-identity_domains-auth_token" +description: |- + Provides the Auth Token resource in Oracle Cloud Infrastructure Identity Domains service +--- + +# oci_identity_domains_auth_token +This resource provides the Auth Token resource in Oracle Cloud Infrastructure Identity Domains service. + +Add a user's auth token + +## Example Usage + +```hcl +resource "oci_identity_domains_auth_token" "test_auth_token" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + schemas = ["urn:ietf:params:scim:schemas:oracle:idcs:authToken"] + + #Optional + attribute_sets = [] + attributes = "" + authorization = var.auth_token_authorization + description = var.auth_token_description + expires_on = var.auth_token_expires_on + id = var.auth_token_id + ocid = var.auth_token_ocid + resource_type_schema_version = var.auth_token_resource_type_schema_version + status = var.auth_token_status + tags { + #Required + key = var.auth_token_tags_key + value = var.auth_token_tags_value + } + urnietfparamsscimschemasoracleidcsextensionself_change_user { + + #Optional + allow_self_change = var.auth_token_urnietfparamsscimschemasoracleidcsextensionself_change_user_allow_self_change + } + user { + + #Optional + ocid = oci_identity_domains_user.test_user.ocid + value = oci_identity_domains_user.test_user.id + } +} +``` + +## Argument Reference + +The following arguments are supported: + +* `attribute_sets` - (Optional) A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. +* `attributes` - (Optional) A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `compartment_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - (Optional) (Updatable) A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - (Optional) Description + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `domain_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `expires_on` - (Optional) User credential expires on + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: dateTime + * uniqueness: none +* `id` - (Optional) Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - (Optional) (Updatable) The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - (Optional) The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - (Optional) The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `idcs_last_modified_by` - (Optional) (Updatable) The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - (Optional) The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - (Optional) The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - (Optional) (Updatable) The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - (Optional) (Updatable) Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `meta` - (Optional) (Updatable) A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - (Optional) The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - (Optional) The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - (Optional) The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - (Optional) Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - (Optional) The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `ocid` - (Optional) Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. +* `schemas` - (Required) REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `status` - (Optional) User credential status + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: never + * type: string + * uniqueness: none +* `tags` - (Optional) A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - (Required) Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionself_change_user` - (Optional) Controls whether a user can update themselves or not via User related APIs + * `allow_self_change` - (Optional) If true, allows requesting user to update themselves. If false, requesting user can't update themself (default). + + **Added In:** 2205182039 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: writeOnly + * required: false + * returned: never + * type: boolean + * uniqueness: none +* `user` - (Optional) User linked to auth token + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - (Optional) (Updatable) User display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - (Optional) (Updatable) User name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) User's ocid + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI that corresponds to the user linked to this credential + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - (Optional) User's id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + + +** IMPORTANT ** +Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values + +## Attributes Reference + +The following attributes are exported: + +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - Description + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `expires_on` - User credential expires on + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: dateTime + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `status` - User credential status + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: never + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionself_change_user` - Controls whether a user can update themselves or not via User related APIs + * `allow_self_change` - If true, allows requesting user to update themselves. If false, requesting user can't update themself (default). + + **Added In:** 2205182039 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: writeOnly + * required: false + * returned: never + * type: boolean + * uniqueness: none +* `user` - User linked to auth token + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - User display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - User name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - User's ocid + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the user linked to this credential + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - User's id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + +## Timeouts + +The `timeouts` block allows you to specify [timeouts](https://registry.terraform.io/providers/oracle/oci/latest/docs/guides/changing_timeouts) for certain operations: + * `create` - (Defaults to 20 minutes), when creating the Auth Token + * `update` - (Defaults to 20 minutes), when updating the Auth Token + * `delete` - (Defaults to 20 minutes), when destroying the Auth Token + + +## Import + +AuthTokens can be imported using the `id`, e.g. + +``` +$ terraform import oci_identity_domains_auth_token.test_auth_token "idcsEndpoint/{idcsEndpoint}/authTokens/{authTokenId}" +``` + diff --git a/website/docs/r/identity_domains_authentication_factor_setting.html.markdown b/website/docs/r/identity_domains_authentication_factor_setting.html.markdown new file mode 100644 index 00000000000..ead94b1bc96 --- /dev/null +++ b/website/docs/r/identity_domains_authentication_factor_setting.html.markdown @@ -0,0 +1,2754 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_authentication_factor_setting" +sidebar_current: "docs-oci-resource-identity_domains-authentication_factor_setting" +description: |- + Provides the Authentication Factor Setting resource in Oracle Cloud Infrastructure Identity Domains service +--- + +# oci_identity_domains_authentication_factor_setting +This resource provides the Authentication Factor Setting resource in Oracle Cloud Infrastructure Identity Domains service. + +Replace Authentication Factor Settings + +## Example Usage + +```hcl +resource "oci_identity_domains_authentication_factor_setting" "test_authentication_factor_setting" { + #Required + authentication_factor_setting_id = oci_identity_domains_authentication_factor_setting.test_authentication_factor_setting.id + bypass_code_enabled = var.authentication_factor_setting_bypass_code_enabled + bypass_code_settings { + #Required + help_desk_code_expiry_in_mins = var.authentication_factor_setting_bypass_code_settings_help_desk_code_expiry_in_mins + help_desk_generation_enabled = var.authentication_factor_setting_bypass_code_settings_help_desk_generation_enabled + help_desk_max_usage = var.authentication_factor_setting_bypass_code_settings_help_desk_max_usage + length = var.authentication_factor_setting_bypass_code_settings_length + max_active = "6" + self_service_generation_enabled = var.authentication_factor_setting_bypass_code_settings_self_service_generation_enabled + } + client_app_settings { + #Required + device_protection_policy = "NONE" + initial_lockout_period_in_secs = "30" + key_pair_length = "2048" + lockout_escalation_pattern = "Constant" + max_failures_before_lockout = "10" + max_failures_before_warning = "5" + max_lockout_interval_in_secs = "86400" + min_pin_length = "6" + policy_update_freq_in_days = var.authentication_factor_setting_client_app_settings_policy_update_freq_in_days + request_signing_algo = var.authentication_factor_setting_client_app_settings_request_signing_algo + shared_secret_encoding = var.authentication_factor_setting_client_app_settings_shared_secret_encoding + unlock_app_for_each_request_enabled = "false" + unlock_app_interval_in_secs = "300" + unlock_on_app_foreground_enabled = "false" + unlock_on_app_start_enabled = "false" + } + compliance_policy { + #Required + action = "Allow" + name = "lockScreenRequired" + value = "false" + } + endpoint_restrictions { + #Required + max_endpoint_trust_duration_in_days = "180" + max_enrolled_devices = var.authentication_factor_setting_endpoint_restrictions_max_enrolled_devices + max_incorrect_attempts = "20" + max_trusted_endpoints = "20" + trusted_endpoints_enabled = var.authentication_factor_setting_endpoint_restrictions_trusted_endpoints_enabled + } + idcs_endpoint = data.oci_identity_domain.test_domain.url + mfa_enrollment_type = var.authentication_factor_setting_mfa_enrollment_type + notification_settings { + #Required + pull_enabled = var.authentication_factor_setting_notification_settings_pull_enabled + } + push_enabled = var.authentication_factor_setting_push_enabled + schemas = ["urn:ietf:params:scim:schemas:oracle:idcs:AuthenticationFactorSettings"] + security_questions_enabled = var.authentication_factor_setting_security_questions_enabled + sms_enabled = var.authentication_factor_setting_sms_enabled + totp_enabled = var.authentication_factor_setting_totp_enabled + totp_settings { + #Required + email_otp_validity_duration_in_mins = var.authentication_factor_setting_totp_settings_email_otp_validity_duration_in_mins + email_passcode_length = "6" + hashing_algorithm = var.authentication_factor_setting_totp_settings_hashing_algorithm + jwt_validity_duration_in_secs = "300" + key_refresh_interval_in_days = "60" + passcode_length = "6" + sms_otp_validity_duration_in_mins = "6" + sms_passcode_length = "6" + time_step_in_secs = "30" + time_step_tolerance = "3" + } + + #Optional + attribute_sets = [] + attributes = "" + authorization = var.authentication_factor_setting_authorization + auto_enroll_email_factor_disabled = var.authentication_factor_setting_auto_enroll_email_factor_disabled + email_enabled = var.authentication_factor_setting_email_enabled + email_settings { + #Required + email_link_enabled = var.authentication_factor_setting_email_settings_email_link_enabled + + #Optional + email_link_custom_url = var.authentication_factor_setting_email_settings_email_link_custom_url + } + fido_authenticator_enabled = var.authentication_factor_setting_fido_authenticator_enabled + hide_backup_factor_enabled = var.authentication_factor_setting_hide_backup_factor_enabled + id = var.authentication_factor_setting_id + identity_store_settings { + + #Optional + mobile_number_enabled = var.authentication_factor_setting_identity_store_settings_mobile_number_enabled + mobile_number_update_enabled = var.authentication_factor_setting_identity_store_settings_mobile_number_update_enabled + } + ocid = var.authentication_factor_setting_ocid + phone_call_enabled = var.authentication_factor_setting_phone_call_enabled + resource_type_schema_version = var.authentication_factor_setting_resource_type_schema_version + tags { + #Required + key = var.authentication_factor_setting_tags_key + value = var.authentication_factor_setting_tags_value + } + third_party_factor { + #Required + duo_security = var.authentication_factor_setting_third_party_factor_duo_security + } + urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings { + #Required + attestation = "NONE" + authenticator_selection_attachment = "BOTH" + authenticator_selection_require_resident_key = "false" + authenticator_selection_resident_key = "NONE" + authenticator_selection_user_verification = var.authentication_factor_setting_urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings_authenticator_selection_user_verification + exclude_credentials = "false" + public_key_types = ["RS1"] + timeout = "60000" + + #Optional + domain_validation_level = "1" + } + urnietfparamsscimschemasoracleidcsextensionthird_party_authentication_factor_settings { + + #Optional + duo_security_settings { + #Required + api_hostname = var.authentication_factor_setting_urnietfparamsscimschemasoracleidcsextensionthird_party_authentication_factor_settings_duo_security_settings_api_hostname + integration_key = var.authentication_factor_setting_urnietfparamsscimschemasoracleidcsextensionthird_party_authentication_factor_settings_duo_security_settings_integration_key + secret_key = var.authentication_factor_setting_urnietfparamsscimschemasoracleidcsextensionthird_party_authentication_factor_settings_duo_security_settings_secret_key + user_mapping_attribute = var.authentication_factor_setting_urnietfparamsscimschemasoracleidcsextensionthird_party_authentication_factor_settings_duo_security_settings_user_mapping_attribute + + #Optional + attestation_key = var.authentication_factor_setting_urnietfparamsscimschemasoracleidcsextensionthird_party_authentication_factor_settings_duo_security_settings_attestation_key + } + } + user_enrollment_disabled_factors = var.authentication_factor_setting_user_enrollment_disabled_factors + yubico_otp_enabled = var.authentication_factor_setting_yubico_otp_enabled +} +``` + +## Argument Reference + +The following arguments are supported: + +* `attribute_sets` - (Optional) (Updatable) A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. +* `attributes` - (Optional) (Updatable) A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. +* `authentication_factor_setting_id` - (Required) ID of the resource +* `authorization` - (Optional) (Updatable) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `auto_enroll_email_factor_disabled` - (Optional) (Updatable) If true, indicates that email will not be enrolled as a MFA factor automatically if it a account recovery factor + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `bypass_code_enabled` - (Required) (Updatable) If true, indicates that Bypass Code is enabled for authentication + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none +* `bypass_code_settings` - (Required) (Updatable) Settings related to the bypass code, such as bypass code length, bypass code expiry, max active bypass codes, and so on + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: complex + * uniqueness: none + * `help_desk_code_expiry_in_mins` - (Required) (Updatable) Expiry (in minutes) of any bypass code that is generated by the help desk + + **SCIM++ Properties:** + * idcsMaxValue: 9999999 + * idcsMinValue: 1 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `help_desk_generation_enabled` - (Required) (Updatable) If true, indicates that help desk bypass code generation is enabled + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none + * `help_desk_max_usage` - (Required) (Updatable) The maximum number of times that any bypass code that is generated by the help desk can be used + + **SCIM++ Properties:** + * idcsMaxValue: 999 + * idcsMinValue: 1 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `length` - (Required) (Updatable) Exact length of the bypass code to be generated + + **SCIM++ Properties:** + * idcsMaxValue: 20 + * idcsMinValue: 8 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `max_active` - (Required) (Updatable) The maximum number of bypass codes that can be issued to any user + + **SCIM++ Properties:** + * idcsMaxValue: 6 + * idcsMinValue: 1 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `self_service_generation_enabled` - (Required) (Updatable) If true, indicates that self-service bypass code generation is enabled + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none +* `client_app_settings` - (Required) (Updatable) Settings related to compliance, Personal Identification Number (PIN) policy, and so on + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: complex + * uniqueness: none + * `device_protection_policy` - (Required) (Updatable) Indicates what protection policy that the system applies on a device. By default, the value is NONE, which indicates that the system applies no protection policy. A value of APP_PIN indicates that the system requires a Personal Identification Number (PIN). A value of DEVICE_BIOMETRIC_OR_APP_PIN indicates that either a PIN or a biometric authentication factor is required. + + **SCIM++ Properties:** + * idcsCanonicalValueSourceFilter: attrName eq "deviceProtectionPolicy" and attrValues.value eq "$(deviceProtectionPolicy)" + * idcsCanonicalValueSourceResourceType: AllowedValue + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `initial_lockout_period_in_secs` - (Required) (Updatable) The period of time in seconds that the system will lock a user out of the service after that user exceeds the maximum number of login failures + + **SCIM++ Properties:** + * idcsMaxValue: 86400 + * idcsMinValue: 30 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `key_pair_length` - (Required) (Updatable) The size of the key that the system uses to generate the public-private key pair + + **SCIM++ Properties:** + * idcsMaxValue: 4000 + * idcsMinValue: 32 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `lockout_escalation_pattern` - (Required) (Updatable) The pattern of escalation that the system follows, in locking a particular user out of the service. + + **SCIM++ Properties:** + * idcsCanonicalValueSourceFilter: attrName eq "lockoutEscalationPattern" and attrValues.value eq "$(lockoutEscalationPattern)" + * idcsCanonicalValueSourceResourceType: AllowedValue + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `max_failures_before_lockout` - (Required) (Updatable) The maximum number of times that a particular user can fail to login before the system locks that user out of the service + + **SCIM++ Properties:** + * idcsMaxValue: 10 + * idcsMinValue: 5 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `max_failures_before_warning` - (Required) (Updatable) The maximum number of login failures that the system will allow before raising a warning and sending an alert via email + + **SCIM++ Properties:** + * idcsMaxValue: 10 + * idcsMinValue: 0 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `max_lockout_interval_in_secs` - (Required) (Updatable) The maximum period of time that the system will lock a particular user out of the service regardless of what the configured pattern of escalation would otherwise dictate + + **SCIM++ Properties:** + * idcsMaxValue: 86400 + * idcsMinValue: 30 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `min_pin_length` - (Required) (Updatable) Minimum length of the Personal Identification Number (PIN) + + **SCIM++ Properties:** + * idcsMaxValue: 10 + * idcsMinValue: 6 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `policy_update_freq_in_days` - (Required) (Updatable) The period of time in days after which a client should refresh its policy by re-reading that policy from the server + + **SCIM++ Properties:** + * idcsMaxValue: 999 + * idcsMinValue: 1 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `request_signing_algo` - (Required) (Updatable) Indicates which algorithm the system will use to sign requests + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `shared_secret_encoding` - (Required) (Updatable) Indicates the type of encoding that the system should use to generate a shared secret + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `unlock_app_for_each_request_enabled` - (Required) (Updatable) If true, indicates that the system should require the user to unlock the client app for each request. In order to unlock the App, the user must supply a Personal Identification Number (PIN) or a biometric authentication-factor. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none + * `unlock_app_interval_in_secs` - (Required) (Updatable) Specifies the period of time in seconds after which the client App should require the user to unlock the App. In order to unlock the App, the user must supply a Personal Identification Number (PIN) or a biometric authentication-factor. A value of zero means that it is disabled. + + **SCIM++ Properties:** + * idcsMaxValue: 9999999 + * idcsMinValue: 0 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `unlock_on_app_foreground_enabled` - (Required) (Updatable) If true, indicates that the system should require the user to unlock the client App, when the client App comes to the foreground in the display of the device. In order to unlock the App, the user must supply a Personal Identification Number (PIN) or a biometric authentication-factor. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none + * `unlock_on_app_start_enabled` - (Required) (Updatable) If true, indicates that the system should require the user to unlock the client App whenever the App is started. In order to unlock the App, the user must supply a Personal Identification Number (PIN) or a biometric authentication-factor. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none +* `compartment_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `compliance_policy` - (Required) (Updatable) Compliance Policy that defines actions to be taken when a condition is violated + + **SCIM++ Properties:** + * idcsCompositeKey: [name] + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: complex + * uniqueness: none + * `action` - (Required) (Updatable) The action to be taken if the value of the attribute is not as expected + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `name` - (Required) (Updatable) The name of the attribute being evaluated + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) (Updatable) The value of the attribute to be evaluated + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - (Optional) (Updatable) A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `domain_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `email_enabled` - (Optional) (Updatable) If true, indicates that the EMAIL channel is enabled for authentication + + **Added In:** 18.1.2 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `email_settings` - (Optional) (Updatable) Settings related to Email Factor, such as enabled email magic link factor, custom url for Email Link + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `email_link_custom_url` - (Optional) (Updatable) Custom redirect Url which will be used in email link + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `email_link_enabled` - (Required) (Updatable) Specifies whether Email link is enabled or not. + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none +* `endpoint_restrictions` - (Required) (Updatable) Settings that describe the set of restrictions that the system should apply to devices and trusted endpoints of a user + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: complex + * uniqueness: none + * `max_endpoint_trust_duration_in_days` - (Required) (Updatable) Maximum number of days until an endpoint can be trusted + + **SCIM++ Properties:** + * idcsMaxValue: 180 + * idcsMinValue: 1 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `max_enrolled_devices` - (Required) (Updatable) Maximum number of enrolled devices per user + + **SCIM++ Properties:** + * idcsMaxValue: 20 + * idcsMinValue: 1 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `max_incorrect_attempts` - (Required) (Updatable) An integer that represents the maximum number of failed MFA logins before an account is locked + + **SCIM++ Properties:** + * idcsMaxValue: 20 + * idcsMinValue: 5 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `max_trusted_endpoints` - (Required) (Updatable) Max number of trusted endpoints per user + + **SCIM++ Properties:** + * idcsMaxValue: 20 + * idcsMinValue: 1 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `trusted_endpoints_enabled` - (Required) (Updatable) Specify if trusted endpoints are enabled + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none +* `fido_authenticator_enabled` - (Optional) (Updatable) If true, indicates that the Fido Authenticator channels are enabled for authentication + + **Added In:** 2009232244 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `hide_backup_factor_enabled` - (Optional) (Updatable) If true, indicates that 'Show backup factor(s)' button will be hidden during authentication + + **Added In:** 19.3.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `id` - (Optional) (Updatable) Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - (Optional) (Updatable) The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - (Optional) (Updatable) The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) (Updatable) The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - (Optional) (Updatable) The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) (Updatable) The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `idcs_last_modified_by` - (Optional) (Updatable) The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - (Optional) (Updatable) The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) (Updatable) The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - (Optional) (Updatable) The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) (Updatable) The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - (Optional) (Updatable) The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - (Optional) (Updatable) Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `identity_store_settings` - (Optional) (Updatable) Settings related to the use of a user's profile details from the identity store + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `mobile_number_enabled` - (Optional) (Updatable) If true, indicates that Multi-Factor Authentication should use the mobile number in the identity store + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `mobile_number_update_enabled` - (Optional) (Updatable) If true, indicates that the user can update the mobile number in the user's Multi-Factor Authentication profile + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `meta` - (Optional) (Updatable) A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - (Optional) (Updatable) The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - (Optional) (Updatable) The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - (Optional) (Updatable) The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - (Optional) (Updatable) Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - (Optional) (Updatable) The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `mfa_enabled_category` - (Optional) (Updatable) Specifies the category of people for whom Multi-Factor Authentication is enabled. This is a readOnly attribute which reflects the value of mfaEnabledCategory attribute in SsoSettings + + **Deprecated Since: 18.1.2** + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `mfa_enrollment_type` - (Required) (Updatable) Specifies if Multi-Factor Authentication enrollment is mandatory or optional for a user + + **Deprecated Since: 18.1.2** + + **SCIM++ Properties:** + * idcsCanonicalValueSourceFilter: attrName eq "mfaEnrollmentType" and attrValues.value eq "$(mfaEnrollmentType)" + * idcsCanonicalValueSourceResourceType: AllowedValue + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `notification_settings` - (Required) (Updatable) Settings related to the Mobile App Notification channel, such as pull + + **Added In:** 17.4.2 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: complex + * uniqueness: none + * `pull_enabled` - (Required) (Updatable) If true, indicates that the Mobile App Pull Notification channel is enabled for authentication + + **Added In:** 17.4.2 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none +* `ocid` - (Optional) (Updatable) Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `phone_call_enabled` - (Optional) (Updatable) If true, indicates that the phone (PHONE_CALL) channel is enabled for authentication + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `push_enabled` - (Required) (Updatable) If true, indicates that the Mobile App Push Notification channel is enabled for authentication + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none +* `resource_type_schema_version` - (Optional) (Updatable) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. +* `schemas` - (Required) (Updatable) REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `security_questions_enabled` - (Required) (Updatable) If true, indicates that Security Questions are enabled for authentication + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none +* `sms_enabled` - (Required) (Updatable) If true, indicates that the Short Message Service (SMS) channel is enabled for authentication + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none +* `tags` - (Optional) (Updatable) A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - (Required) (Updatable) Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) (Updatable) Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `third_party_factor` - (Optional) (Updatable) Settings related to third-party factor + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `duo_security` - (Required) (Updatable) To enable Duo Security factor + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none +* `totp_enabled` - (Required) (Updatable) If true, indicates that the Mobile App One Time Passcode channel is enabled for authentication + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none +* `totp_settings` - (Required) (Updatable) Settings related to Time-Based One-Time Passcodes (TOTP), such as hashing algo, totp time step, passcode length, and so on + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: complex + * uniqueness: none + * `email_otp_validity_duration_in_mins` - (Required) (Updatable) The period of time (in minutes) that a one-time passcode remains valid that the system sends by email. + + **Added In:** 18.1.2 + + **SCIM++ Properties:** + * idcsMaxValue: 60 + * idcsMinValue: 2 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `email_passcode_length` - (Required) (Updatable) Exact length of the email one-time passcode. + + **Added In:** 18.1.2 + + **SCIM++ Properties:** + * idcsMaxValue: 10 + * idcsMinValue: 4 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `hashing_algorithm` - (Required) (Updatable) The hashing algorithm to be used to calculate a One-Time Passcode. By default, the system uses SHA1. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `jwt_validity_duration_in_secs` - (Required) (Updatable) The period of time (in seconds) that a JSON Web Token (JWT) is valid + + **SCIM++ Properties:** + * idcsMaxValue: 99999 + * idcsMinValue: 30 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `key_refresh_interval_in_days` - (Required) (Updatable) The duration of time (in days) after which the shared secret has to be refreshed + + **SCIM++ Properties:** + * idcsMaxValue: 999 + * idcsMinValue: 30 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `passcode_length` - (Required) (Updatable) Exact length of the One-Time Passcode that the system should generate + + **SCIM++ Properties:** + * idcsMaxValue: 10 + * idcsMinValue: 4 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `sms_otp_validity_duration_in_mins` - (Required) (Updatable) The period of time (in minutes) for which a One-Time Passcode that the system sends by Short Message Service (SMS) or by voice remains valid + + **SCIM++ Properties:** + * idcsMaxValue: 60 + * idcsMinValue: 2 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `sms_passcode_length` - (Required) (Updatable) Exact length of the Short Message Service (SMS) One-Time Passcode + + **SCIM++ Properties:** + * idcsMaxValue: 10 + * idcsMinValue: 4 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `time_step_in_secs` - (Required) (Updatable) Time (in secs) to be used as the time step + + **SCIM++ Properties:** + * idcsMaxValue: 300 + * idcsMinValue: 30 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `time_step_tolerance` - (Required) (Updatable) The tolerance/step-size that the system should use when validating a One-Time Passcode + + **SCIM++ Properties:** + * idcsMaxValue: 3 + * idcsMinValue: 2 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings` - (Optional) (Updatable) This extension defines attributes used to manage Multi-Factor Authentication settings of fido authentication + * `attestation` - (Required) (Updatable) Attribute used to define the type of attestation required. + + **Added In:** 2009232244 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `authenticator_selection_attachment` - (Required) (Updatable) Attribute used to define authenticator selection attachment. + + **Added In:** 2009232244 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `authenticator_selection_require_resident_key` - (Required) (Updatable) Flag used to indicate authenticator selection is required or not + + **Added In:** 2009232244 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none + * `authenticator_selection_resident_key` - (Required) (Updatable) Attribute used to define authenticator selection resident key requirement. + + **Added In:** 2009232244 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `authenticator_selection_user_verification` - (Required) (Updatable) Attribute used to define authenticator selection verification. + + **Added In:** 2009232244 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `domain_validation_level` - (Optional) (Updatable) Number of domain levels IDCS should use for origin comparision + + **Added In:** 2109020413 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * idcsMaxValue: 2 + * idcsMinValue: 0 + * required: false + * returned: default + * type: integer + * uniqueness: none + * `exclude_credentials` - (Required) (Updatable) Flag used to indicate whether we need to restrict creation of multiple credentials in same authenticator + + **Added In:** 2009232244 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none + * `public_key_types` - (Required) (Updatable) List of server supported public key algorithms + + **Added In:** 2009232244 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `timeout` - (Required) (Updatable) Timeout for the fido authentication to complete + + **Added In:** 2009232244 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * idcsMaxValue: 600000 + * idcsMinValue: 10000 + * required: true + * returned: default + * type: integer + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionthird_party_authentication_factor_settings` - (Optional) (Updatable) This extension defines attributes used to manage Multi-Factor Authentication settings of third party provider + * `duo_security_settings` - (Optional) (Updatable) Settings related to Duo Security + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `api_hostname` - (Required) (Updatable) Hostname to access the Duo security account + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `attestation_key` - (Optional) (Updatable) Attestation key to attest the request and response between Duo Security + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: never + * type: string + * uniqueness: none + * `integration_key` - (Required) (Updatable) Integration key from Duo Security authenticator + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `secret_key` - (Required) (Updatable) Secret key from Duo Security authenticator + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `user_mapping_attribute` - (Required) (Updatable) User attribute mapping value + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `user_enrollment_disabled_factors` - (Optional) (Updatable) Factors for which enrollment should be blocked for End User + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `yubico_otp_enabled` - (Optional) (Updatable) If true, indicates that the Yubico OTP is enabled for authentication + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + + +** IMPORTANT ** +Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values + +## Attributes Reference + +The following attributes are exported: + +* `auto_enroll_email_factor_disabled` - If true, indicates that email will not be enrolled as a MFA factor automatically if it a account recovery factor + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `bypass_code_enabled` - If true, indicates that Bypass Code is enabled for authentication + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none +* `bypass_code_settings` - Settings related to the bypass code, such as bypass code length, bypass code expiry, max active bypass codes, and so on + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: complex + * uniqueness: none + * `help_desk_code_expiry_in_mins` - Expiry (in minutes) of any bypass code that is generated by the help desk + + **SCIM++ Properties:** + * idcsMaxValue: 9999999 + * idcsMinValue: 1 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `help_desk_generation_enabled` - If true, indicates that help desk bypass code generation is enabled + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none + * `help_desk_max_usage` - The maximum number of times that any bypass code that is generated by the help desk can be used + + **SCIM++ Properties:** + * idcsMaxValue: 999 + * idcsMinValue: 1 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `length` - Exact length of the bypass code to be generated + + **SCIM++ Properties:** + * idcsMaxValue: 20 + * idcsMinValue: 8 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `max_active` - The maximum number of bypass codes that can be issued to any user + + **SCIM++ Properties:** + * idcsMaxValue: 6 + * idcsMinValue: 1 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `self_service_generation_enabled` - If true, indicates that self-service bypass code generation is enabled + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none +* `client_app_settings` - Settings related to compliance, Personal Identification Number (PIN) policy, and so on + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: complex + * uniqueness: none + * `device_protection_policy` - Indicates what protection policy that the system applies on a device. By default, the value is NONE, which indicates that the system applies no protection policy. A value of APP_PIN indicates that the system requires a Personal Identification Number (PIN). A value of DEVICE_BIOMETRIC_OR_APP_PIN indicates that either a PIN or a biometric authentication factor is required. + + **SCIM++ Properties:** + * idcsCanonicalValueSourceFilter: attrName eq "deviceProtectionPolicy" and attrValues.value eq "$(deviceProtectionPolicy)" + * idcsCanonicalValueSourceResourceType: AllowedValue + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `initial_lockout_period_in_secs` - The period of time in seconds that the system will lock a user out of the service after that user exceeds the maximum number of login failures + + **SCIM++ Properties:** + * idcsMaxValue: 86400 + * idcsMinValue: 30 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `key_pair_length` - The size of the key that the system uses to generate the public-private key pair + + **SCIM++ Properties:** + * idcsMaxValue: 4000 + * idcsMinValue: 32 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `lockout_escalation_pattern` - The pattern of escalation that the system follows, in locking a particular user out of the service. + + **SCIM++ Properties:** + * idcsCanonicalValueSourceFilter: attrName eq "lockoutEscalationPattern" and attrValues.value eq "$(lockoutEscalationPattern)" + * idcsCanonicalValueSourceResourceType: AllowedValue + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `max_failures_before_lockout` - The maximum number of times that a particular user can fail to login before the system locks that user out of the service + + **SCIM++ Properties:** + * idcsMaxValue: 10 + * idcsMinValue: 5 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `max_failures_before_warning` - The maximum number of login failures that the system will allow before raising a warning and sending an alert via email + + **SCIM++ Properties:** + * idcsMaxValue: 10 + * idcsMinValue: 0 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `max_lockout_interval_in_secs` - The maximum period of time that the system will lock a particular user out of the service regardless of what the configured pattern of escalation would otherwise dictate + + **SCIM++ Properties:** + * idcsMaxValue: 86400 + * idcsMinValue: 30 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `min_pin_length` - Minimum length of the Personal Identification Number (PIN) + + **SCIM++ Properties:** + * idcsMaxValue: 10 + * idcsMinValue: 6 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `policy_update_freq_in_days` - The period of time in days after which a client should refresh its policy by re-reading that policy from the server + + **SCIM++ Properties:** + * idcsMaxValue: 999 + * idcsMinValue: 1 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `request_signing_algo` - Indicates which algorithm the system will use to sign requests + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `shared_secret_encoding` - Indicates the type of encoding that the system should use to generate a shared secret + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `unlock_app_for_each_request_enabled` - If true, indicates that the system should require the user to unlock the client app for each request. In order to unlock the App, the user must supply a Personal Identification Number (PIN) or a biometric authentication-factor. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none + * `unlock_app_interval_in_secs` - Specifies the period of time in seconds after which the client App should require the user to unlock the App. In order to unlock the App, the user must supply a Personal Identification Number (PIN) or a biometric authentication-factor. A value of zero means that it is disabled. + + **SCIM++ Properties:** + * idcsMaxValue: 9999999 + * idcsMinValue: 0 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `unlock_on_app_foreground_enabled` - If true, indicates that the system should require the user to unlock the client App, when the client App comes to the foreground in the display of the device. In order to unlock the App, the user must supply a Personal Identification Number (PIN) or a biometric authentication-factor. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none + * `unlock_on_app_start_enabled` - If true, indicates that the system should require the user to unlock the client App whenever the App is started. In order to unlock the App, the user must supply a Personal Identification Number (PIN) or a biometric authentication-factor. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `compliance_policy` - Compliance Policy that defines actions to be taken when a condition is violated + + **SCIM++ Properties:** + * idcsCompositeKey: [name] + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: complex + * uniqueness: none + * `action` - The action to be taken if the value of the attribute is not as expected + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `name` - The name of the attribute being evaluated + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - The value of the attribute to be evaluated + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `email_enabled` - If true, indicates that the EMAIL channel is enabled for authentication + + **Added In:** 18.1.2 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `email_settings` - Settings related to Email Factor, such as enabled email magic link factor, custom url for Email Link + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `email_link_custom_url` - Custom redirect Url which will be used in email link + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `email_link_enabled` - Specifies whether Email link is enabled or not. + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none +* `endpoint_restrictions` - Settings that describe the set of restrictions that the system should apply to devices and trusted endpoints of a user + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: complex + * uniqueness: none + * `max_endpoint_trust_duration_in_days` - Maximum number of days until an endpoint can be trusted + + **SCIM++ Properties:** + * idcsMaxValue: 180 + * idcsMinValue: 1 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `max_enrolled_devices` - Maximum number of enrolled devices per user + + **SCIM++ Properties:** + * idcsMaxValue: 20 + * idcsMinValue: 1 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `max_incorrect_attempts` - An integer that represents the maximum number of failed MFA logins before an account is locked + + **SCIM++ Properties:** + * idcsMaxValue: 20 + * idcsMinValue: 5 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `max_trusted_endpoints` - Max number of trusted endpoints per user + + **SCIM++ Properties:** + * idcsMaxValue: 20 + * idcsMinValue: 1 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `trusted_endpoints_enabled` - Specify if trusted endpoints are enabled + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none +* `fido_authenticator_enabled` - If true, indicates that the Fido Authenticator channels are enabled for authentication + + **Added In:** 2009232244 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `hide_backup_factor_enabled` - If true, indicates that 'Show backup factor(s)' button will be hidden during authentication + + **Added In:** 19.3.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `identity_store_settings` - Settings related to the use of a user's profile details from the identity store + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `mobile_number_enabled` - If true, indicates that Multi-Factor Authentication should use the mobile number in the identity store + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `mobile_number_update_enabled` - If true, indicates that the user can update the mobile number in the user's Multi-Factor Authentication profile + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `mfa_enabled_category` - Specifies the category of people for whom Multi-Factor Authentication is enabled. This is a readOnly attribute which reflects the value of mfaEnabledCategory attribute in SsoSettings + + **Deprecated Since: 18.1.2** + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `mfa_enrollment_type` - Specifies if Multi-Factor Authentication enrollment is mandatory or optional for a user + + **Deprecated Since: 18.1.2** + + **SCIM++ Properties:** + * idcsCanonicalValueSourceFilter: attrName eq "mfaEnrollmentType" and attrValues.value eq "$(mfaEnrollmentType)" + * idcsCanonicalValueSourceResourceType: AllowedValue + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `notification_settings` - Settings related to the Mobile App Notification channel, such as pull + + **Added In:** 17.4.2 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: complex + * uniqueness: none + * `pull_enabled` - If true, indicates that the Mobile App Pull Notification channel is enabled for authentication + + **Added In:** 17.4.2 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `phone_call_enabled` - If true, indicates that the phone (PHONE_CALL) channel is enabled for authentication + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `push_enabled` - If true, indicates that the Mobile App Push Notification channel is enabled for authentication + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `security_questions_enabled` - If true, indicates that Security Questions are enabled for authentication + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none +* `sms_enabled` - If true, indicates that the Short Message Service (SMS) channel is enabled for authentication + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `third_party_factor` - Settings related to third-party factor + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `duo_security` - To enable Duo Security factor + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none +* `totp_enabled` - If true, indicates that the Mobile App One Time Passcode channel is enabled for authentication + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none +* `totp_settings` - Settings related to Time-Based One-Time Passcodes (TOTP), such as hashing algo, totp time step, passcode length, and so on + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: complex + * uniqueness: none + * `email_otp_validity_duration_in_mins` - The period of time (in minutes) that a one-time passcode remains valid that the system sends by email. + + **Added In:** 18.1.2 + + **SCIM++ Properties:** + * idcsMaxValue: 60 + * idcsMinValue: 2 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `email_passcode_length` - Exact length of the email one-time passcode. + + **Added In:** 18.1.2 + + **SCIM++ Properties:** + * idcsMaxValue: 10 + * idcsMinValue: 4 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `hashing_algorithm` - The hashing algorithm to be used to calculate a One-Time Passcode. By default, the system uses SHA1. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `jwt_validity_duration_in_secs` - The period of time (in seconds) that a JSON Web Token (JWT) is valid + + **SCIM++ Properties:** + * idcsMaxValue: 99999 + * idcsMinValue: 30 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `key_refresh_interval_in_days` - The duration of time (in days) after which the shared secret has to be refreshed + + **SCIM++ Properties:** + * idcsMaxValue: 999 + * idcsMinValue: 30 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `passcode_length` - Exact length of the One-Time Passcode that the system should generate + + **SCIM++ Properties:** + * idcsMaxValue: 10 + * idcsMinValue: 4 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `sms_otp_validity_duration_in_mins` - The period of time (in minutes) for which a One-Time Passcode that the system sends by Short Message Service (SMS) or by voice remains valid + + **SCIM++ Properties:** + * idcsMaxValue: 60 + * idcsMinValue: 2 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `sms_passcode_length` - Exact length of the Short Message Service (SMS) One-Time Passcode + + **SCIM++ Properties:** + * idcsMaxValue: 10 + * idcsMinValue: 4 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `time_step_in_secs` - Time (in secs) to be used as the time step + + **SCIM++ Properties:** + * idcsMaxValue: 300 + * idcsMinValue: 30 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none + * `time_step_tolerance` - The tolerance/step-size that the system should use when validating a One-Time Passcode + + **SCIM++ Properties:** + * idcsMaxValue: 3 + * idcsMinValue: 2 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: integer + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionfido_authentication_factor_settings` - This extension defines attributes used to manage Multi-Factor Authentication settings of fido authentication + * `attestation` - Attribute used to define the type of attestation required. + + **Added In:** 2009232244 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `authenticator_selection_attachment` - Attribute used to define authenticator selection attachment. + + **Added In:** 2009232244 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `authenticator_selection_require_resident_key` - Flag used to indicate authenticator selection is required or not + + **Added In:** 2009232244 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none + * `authenticator_selection_resident_key` - Attribute used to define authenticator selection resident key requirement. + + **Added In:** 2009232244 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `authenticator_selection_user_verification` - Attribute used to define authenticator selection verification. + + **Added In:** 2009232244 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `domain_validation_level` - Number of domain levels IDCS should use for origin comparision + + **Added In:** 2109020413 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * idcsMaxValue: 2 + * idcsMinValue: 0 + * required: false + * returned: default + * type: integer + * uniqueness: none + * `exclude_credentials` - Flag used to indicate whether we need to restrict creation of multiple credentials in same authenticator + + **Added In:** 2009232244 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none + * `public_key_types` - List of server supported public key algorithms + + **Added In:** 2009232244 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `timeout` - Timeout for the fido authentication to complete + + **Added In:** 2009232244 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * idcsMaxValue: 600000 + * idcsMinValue: 10000 + * required: true + * returned: default + * type: integer + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionthird_party_authentication_factor_settings` - This extension defines attributes used to manage Multi-Factor Authentication settings of third party provider + * `duo_security_settings` - Settings related to Duo Security + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `api_hostname` - Hostname to access the Duo security account + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `attestation_key` - Attestation key to attest the request and response between Duo Security + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: never + * type: string + * uniqueness: none + * `integration_key` - Integration key from Duo Security authenticator + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `secret_key` - Secret key from Duo Security authenticator + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `user_mapping_attribute` - User attribute mapping value + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `user_enrollment_disabled_factors` - Factors for which enrollment should be blocked for End User + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `yubico_otp_enabled` - If true, indicates that the Yubico OTP is enabled for authentication + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + +## Timeouts + +The `timeouts` block allows you to specify [timeouts](https://registry.terraform.io/providers/oracle/oci/latest/docs/guides/changing_timeouts) for certain operations: + * `create` - (Defaults to 20 minutes), when creating the Authentication Factor Setting + * `update` - (Defaults to 20 minutes), when updating the Authentication Factor Setting + * `delete` - (Defaults to 20 minutes), when destroying the Authentication Factor Setting + + +## Import + +AuthenticationFactorSettings can be imported using the `id`, e.g. + +``` +$ terraform import oci_identity_domains_authentication_factor_setting.test_authentication_factor_setting "idcsEndpoint/{idcsEndpoint}/authenticationFactorSettings/{authenticationFactorSettingId}" +``` + diff --git a/website/docs/r/identity_domains_customer_secret_key.html.markdown b/website/docs/r/identity_domains_customer_secret_key.html.markdown new file mode 100644 index 00000000000..f476380cc93 --- /dev/null +++ b/website/docs/r/identity_domains_customer_secret_key.html.markdown @@ -0,0 +1,991 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_customer_secret_key" +sidebar_current: "docs-oci-resource-identity_domains-customer_secret_key" +description: |- + Provides the Customer Secret Key resource in Oracle Cloud Infrastructure Identity Domains service +--- + +# oci_identity_domains_customer_secret_key +This resource provides the Customer Secret Key resource in Oracle Cloud Infrastructure Identity Domains service. + +Add a user's customer secret key + +## Example Usage + +```hcl +resource "oci_identity_domains_customer_secret_key" "test_customer_secret_key" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + schemas = ["urn:ietf:params:scim:schemas:oracle:idcs:customerSecretKey"] + + #Optional + attribute_sets = [] + attributes = "" + authorization = var.customer_secret_key_authorization + description = var.customer_secret_key_description + display_name = var.customer_secret_key_display_name + expires_on = var.customer_secret_key_expires_on + id = var.customer_secret_key_id + ocid = var.customer_secret_key_ocid + resource_type_schema_version = var.customer_secret_key_resource_type_schema_version + status = var.customer_secret_key_status + tags { + #Required + key = var.customer_secret_key_tags_key + value = var.customer_secret_key_tags_value + } + urnietfparamsscimschemasoracleidcsextensionself_change_user { + + #Optional + allow_self_change = var.customer_secret_key_urnietfparamsscimschemasoracleidcsextensionself_change_user_allow_self_change + } + user { + + #Optional + ocid = oci_identity_domains_user.test_user.ocid + value = oci_identity_domains_user.test_user.id + } +} +``` + +## Argument Reference + +The following arguments are supported: + +* `access_key` - (Optional) (Updatable) Access key + + **SCIM++ Properties:** + * caseExact: true + * type: string + * mutability: readOnly + * required: false + * returned: default +* `attribute_sets` - (Optional) A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. +* `attributes` - (Optional) A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `compartment_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - (Optional) (Updatable) A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - (Optional) Description + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `display_name` - (Optional) Display Name + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `domain_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `expires_on` - (Optional) User credential expires on + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: dateTime + * uniqueness: none +* `id` - (Optional) Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - (Optional) (Updatable) The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - (Optional) The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - (Optional) The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `idcs_last_modified_by` - (Optional) (Updatable) The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - (Optional) The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - (Optional) The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - (Optional) (Updatable) The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - (Optional) (Updatable) Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `meta` - (Optional) (Updatable) A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - (Optional) The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - (Optional) The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - (Optional) The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - (Optional) Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - (Optional) The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `ocid` - (Optional) Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. +* `schemas` - (Required) REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `status` - (Optional) User credential status + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: never + * type: string + * uniqueness: none +* `tags` - (Optional) A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - (Required) Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionself_change_user` - (Optional) Controls whether a user can update themselves or not via User related APIs + * `allow_self_change` - (Optional) If true, allows requesting user to update themselves. If false, requesting user can't update themself (default). + + **Added In:** 2205182039 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: writeOnly + * required: false + * returned: never + * type: boolean + * uniqueness: none +* `user` - (Optional) User linked to customer secret key + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - (Optional) (Updatable) User display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - (Optional) (Updatable) User name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) User's ocid + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI that corresponds to the user linked to this credential + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - (Optional) User's id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + + +** IMPORTANT ** +Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values + +## Attributes Reference + +The following attributes are exported: + +* `access_key` - Access key + + **SCIM++ Properties:** + * caseExact: true + * type: string + * mutability: readOnly + * required: false + * returned: default +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - Description + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `display_name` - Display Name + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `expires_on` - User credential expires on + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: dateTime + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `status` - User credential status + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: never + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionself_change_user` - Controls whether a user can update themselves or not via User related APIs + * `allow_self_change` - If true, allows requesting user to update themselves. If false, requesting user can't update themself (default). + + **Added In:** 2205182039 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: writeOnly + * required: false + * returned: never + * type: boolean + * uniqueness: none +* `user` - User linked to customer secret key + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - User display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - User name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - User's ocid + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the user linked to this credential + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - User's id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + +## Timeouts + +The `timeouts` block allows you to specify [timeouts](https://registry.terraform.io/providers/oracle/oci/latest/docs/guides/changing_timeouts) for certain operations: + * `create` - (Defaults to 20 minutes), when creating the Customer Secret Key + * `update` - (Defaults to 20 minutes), when updating the Customer Secret Key + * `delete` - (Defaults to 20 minutes), when destroying the Customer Secret Key + + +## Import + +CustomerSecretKeys can be imported using the `id`, e.g. + +``` +$ terraform import oci_identity_domains_customer_secret_key.test_customer_secret_key "idcsEndpoint/{idcsEndpoint}/customerSecretKeys/{customerSecretKeyId}" +``` + diff --git a/website/docs/r/identity_domains_dynamic_resource_group.html.markdown b/website/docs/r/identity_domains_dynamic_resource_group.html.markdown new file mode 100644 index 00000000000..b919c57777a --- /dev/null +++ b/website/docs/r/identity_domains_dynamic_resource_group.html.markdown @@ -0,0 +1,1284 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_dynamic_resource_group" +sidebar_current: "docs-oci-resource-identity_domains-dynamic_resource_group" +description: |- + Provides the Dynamic Resource Group resource in Oracle Cloud Infrastructure Identity Domains service +--- + +# oci_identity_domains_dynamic_resource_group +This resource provides the Dynamic Resource Group resource in Oracle Cloud Infrastructure Identity Domains service. + +Create a DynamicResourceGroup + +## Example Usage + +```hcl +resource "oci_identity_domains_dynamic_resource_group" "test_dynamic_resource_group" { + #Required + display_name = var.dynamic_resource_group_display_name + idcs_endpoint = data.oci_identity_domain.test_domain.url + matching_rule = var.dynamic_resource_group_matching_rule + schemas = ["urn:ietf:params:scim:schemas:oracle:idcs:DynamicResourceGroup"] + + #Optional + attribute_sets = [] + attributes = "" + authorization = var.dynamic_resource_group_authorization + description = var.dynamic_resource_group_description + id = var.dynamic_resource_group_id + ocid = var.dynamic_resource_group_ocid + resource_type_schema_version = var.dynamic_resource_group_resource_type_schema_version + tags { + #Required + key = var.dynamic_resource_group_tags_key + value = var.dynamic_resource_group_tags_value + } + urnietfparamsscimschemasoracleidcsextension_oci_tags { + + #Optional + defined_tags { + #Required + key = var.dynamic_resource_group_urnietfparamsscimschemasoracleidcsextension_oci_tags_defined_tags_key + namespace = var.dynamic_resource_group_urnietfparamsscimschemasoracleidcsextension_oci_tags_defined_tags_namespace + value = var.dynamic_resource_group_urnietfparamsscimschemasoracleidcsextension_oci_tags_defined_tags_value + } + freeform_tags { + #Required + key = var.dynamic_resource_group_urnietfparamsscimschemasoracleidcsextension_oci_tags_freeform_tags_key + value = var.dynamic_resource_group_urnietfparamsscimschemasoracleidcsextension_oci_tags_freeform_tags_value + } + } +} +``` + +## Argument Reference + +The following arguments are supported: + +* `attribute_sets` - (Optional) (Updatable) A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. +* `attributes` - (Optional) (Updatable) A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. +* `authorization` - (Optional) (Updatable) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `compartment_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - (Optional) (Updatable) A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - (Optional) (Updatable) text that explains the purpose of this Dynamic Resource Group + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Description + * idcsCsvAttributeNameMappings: [[columnHeaderName:Description]] + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: always + * type: string + * uniqueness: none +* `display_name` - (Required) (Updatable) User-friendly, mutable identifier + + **SCIM++ Properties:** + * idcsCsvAttributeName: Display Name + * idcsCsvAttributeNameMappings: [[columnHeaderName:Name, deprecatedColumnHeaderName:Display Name]] + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: string + * uniqueness: global +* `domain_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `dynamic_group_app_roles` - (Optional) (Updatable) A list of appRoles that are currently granted to this Dynamic Resource Group. The Identity service will assert these AppRoles for any resource that satisfies the matching-rule of this DynamicResourceGroup. + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `admin_role` - (Optional) (Updatable) If true, then the role provides administrative access privileges. READ-ONLY. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: boolean + * uniqueness: none + * `app_id` - (Optional) (Updatable) ID of parent App. READ-ONLY. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `app_name` - (Optional) (Updatable) Name of parent App. READ-ONLY. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `display` - (Optional) (Updatable) A human readable name, primarily used for display purposes. READ-ONLY. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `legacy_group_name` - (Optional) (Updatable) The name of the legacy group associated with this AppRole. + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the corresponding appRole resource to which the user belongs + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: reference + * uniqueness: none + * `value` - (Required) (Updatable) The identifier of the appRole + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: always + * type: string + * uniqueness: none +* `grants` - (Optional) (Updatable) Grants assigned to group + + **SCIM++ Properties:** + * idcsAddedSinceVersion: 3 + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `app_id` - (Optional) (Updatable) App identifier + + **SCIM++ Properties:** + * caseExact: true + * idcsAddedSinceVersion: 3 + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `grant_mechanism` - (Optional) (Updatable) Each value of grantMechanism indicates how (or by what component) some App (or App-Entitlement) was granted.\nA customer or the UI should use only grantMechanism values that start with 'ADMINISTRATOR':\n - 'ADMINISTRATOR_TO_USER' is for a direct grant to a specific User.\n - 'ADMINISTRATOR_TO_GROUP' is for a grant to a specific Group, which results in indirect grants to Users who are members of that Group.\n - 'ADMINISTRATOR_TO_APP' is for a grant to a specific App. The grantee (client) App gains access to the granted (server) App. + + **SCIM++ Properties:** + * caseExact: true + * idcsAddedSinceVersion: 3 + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) Grant URI + + **SCIM++ Properties:** + * idcsAddedSinceVersion: 3 + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - (Optional) (Updatable) Grant identifier + + **SCIM++ Properties:** + * caseExact: true + * idcsAddedSinceVersion: 3 + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `id` - (Optional) (Updatable) Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - (Optional) (Updatable) The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - (Optional) (Updatable) The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) (Updatable) The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - (Optional) (Updatable) The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) (Updatable) The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `idcs_last_modified_by` - (Optional) (Updatable) The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - (Optional) (Updatable) The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) (Updatable) The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - (Optional) (Updatable) The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) (Updatable) The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - (Optional) (Updatable) The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - (Optional) (Updatable) Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `matching_rule` - (Required) (Updatable) Store as a string the matching-rule for this Dynamic Resource Group. This may match any number of Apps in this Domain, as well as matching any number of Oracle Cloud Infrastructure resources that are not in any Domain but that are in the Oracle Cloud Infrastructure Compartment that contains this Domain. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: request + * type: string + * uniqueness: none +* `meta` - (Optional) (Updatable) A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - (Optional) (Updatable) The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - (Optional) (Updatable) The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - (Optional) (Updatable) The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - (Optional) (Updatable) Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - (Optional) (Updatable) The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `ocid` - (Optional) (Updatable) Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `resource_type_schema_version` - (Optional) (Updatable) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. +* `schemas` - (Required) (Updatable) REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tags` - (Optional) (Updatable) A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - (Required) (Updatable) Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) (Updatable) Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextension_oci_tags` - (Optional) (Updatable) Oracle Cloud Infrastructure Tags. + * `defined_tags` - (Optional) (Updatable) Oracle Cloud Infrastructure Defined Tags + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * idcsCompositeKey: [namespace, key, value] + * type: complex + * idcsSearchable: true + * required: false + * mutability: readWrite + * multiValued: true + * returned: default + * `key` - (Required) (Updatable) Oracle Cloud Infrastructure Tag key + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * required: true + * mutability: readWrite + * returned: default + * idcsSearchable: true + * uniqueness: none + * `namespace` - (Required) (Updatable) Oracle Cloud Infrastructure Tag namespace + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * required: true + * mutability: readWrite + * returned: default + * idcsSearchable: true + * uniqueness: none + * `value` - (Required) (Updatable) Oracle Cloud Infrastructure Tag value + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * required: true + * mutability: readWrite + * returned: default + * type: string + * idcsSearchable: true + * uniqueness: none + * `freeform_tags` - (Optional) (Updatable) Oracle Cloud Infrastructure Freeform Tags + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * type: complex + * required: false + * mutability: readWrite + * returned: default + * multiValued: true + * `key` - (Required) (Updatable) Oracle Cloud Infrastructure Tag key + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * required: true + * mutability: readWrite + * returned: default + * idcsSearchable: true + * uniqueness: none + * `value` - (Required) (Updatable) Oracle Cloud Infrastructure Tag value + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * required: true + * mutability: readWrite + * returned: default + * type: string + * idcsSearchable: true + * uniqueness: none + * `tag_slug` - (Optional) (Updatable) Oracle Cloud Infrastructure Tag slug + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * type: binary + * mutability: readOnly + * returned: request + + +** IMPORTANT ** +Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values + +## Attributes Reference + +The following attributes are exported: + +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - text that explains the purpose of this Dynamic Resource Group + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Description + * idcsCsvAttributeNameMappings: [[columnHeaderName:Description]] + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: always + * type: string + * uniqueness: none +* `display_name` - User-friendly, mutable identifier + + **SCIM++ Properties:** + * idcsCsvAttributeName: Display Name + * idcsCsvAttributeNameMappings: [[columnHeaderName:Name, deprecatedColumnHeaderName:Display Name]] + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: string + * uniqueness: global +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `dynamic_group_app_roles` - A list of appRoles that are currently granted to this Dynamic Resource Group. The Identity service will assert these AppRoles for any resource that satisfies the matching-rule of this DynamicResourceGroup. + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `admin_role` - If true, then the role provides administrative access privileges. READ-ONLY. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: boolean + * uniqueness: none + * `app_id` - ID of parent App. READ-ONLY. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `app_name` - Name of parent App. READ-ONLY. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `display` - A human readable name, primarily used for display purposes. READ-ONLY. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `legacy_group_name` - The name of the legacy group associated with this AppRole. + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `ref` - The URI of the corresponding appRole resource to which the user belongs + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: reference + * uniqueness: none + * `value` - The identifier of the appRole + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: always + * type: string + * uniqueness: none +* `grants` - Grants assigned to group + + **SCIM++ Properties:** + * idcsAddedSinceVersion: 3 + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `app_id` - App identifier + + **SCIM++ Properties:** + * caseExact: true + * idcsAddedSinceVersion: 3 + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `grant_mechanism` - Each value of grantMechanism indicates how (or by what component) some App (or App-Entitlement) was granted.\nA customer or the UI should use only grantMechanism values that start with 'ADMINISTRATOR':\n - 'ADMINISTRATOR_TO_USER' is for a direct grant to a specific User.\n - 'ADMINISTRATOR_TO_GROUP' is for a grant to a specific Group, which results in indirect grants to Users who are members of that Group.\n - 'ADMINISTRATOR_TO_APP' is for a grant to a specific App. The grantee (client) App gains access to the granted (server) App. + + **SCIM++ Properties:** + * caseExact: true + * idcsAddedSinceVersion: 3 + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - Grant URI + + **SCIM++ Properties:** + * idcsAddedSinceVersion: 3 + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - Grant identifier + + **SCIM++ Properties:** + * caseExact: true + * idcsAddedSinceVersion: 3 + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `matching_rule` - Store as a string the matching-rule for this Dynamic Resource Group. This may match any number of Apps in this Domain, as well as matching any number of Oracle Cloud Infrastructure resources that are not in any Domain but that are in the Oracle Cloud Infrastructure Compartment that contains this Domain. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: request + * type: string + * uniqueness: none +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextension_oci_tags` - Oracle Cloud Infrastructure Tags. + * `defined_tags` - Oracle Cloud Infrastructure Defined Tags + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * idcsCompositeKey: [namespace, key, value] + * type: complex + * idcsSearchable: true + * required: false + * mutability: readWrite + * multiValued: true + * returned: default + * `key` - Oracle Cloud Infrastructure Tag key + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * required: true + * mutability: readWrite + * returned: default + * idcsSearchable: true + * uniqueness: none + * `namespace` - Oracle Cloud Infrastructure Tag namespace + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * required: true + * mutability: readWrite + * returned: default + * idcsSearchable: true + * uniqueness: none + * `value` - Oracle Cloud Infrastructure Tag value + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * required: true + * mutability: readWrite + * returned: default + * type: string + * idcsSearchable: true + * uniqueness: none + * `freeform_tags` - Oracle Cloud Infrastructure Freeform Tags + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * type: complex + * required: false + * mutability: readWrite + * returned: default + * multiValued: true + * `key` - Oracle Cloud Infrastructure Tag key + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * required: true + * mutability: readWrite + * returned: default + * idcsSearchable: true + * uniqueness: none + * `value` - Oracle Cloud Infrastructure Tag value + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * required: true + * mutability: readWrite + * returned: default + * type: string + * idcsSearchable: true + * uniqueness: none + * `tag_slug` - Oracle Cloud Infrastructure Tag slug + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * type: binary + * mutability: readOnly + * returned: request + +## Timeouts + +The `timeouts` block allows you to specify [timeouts](https://registry.terraform.io/providers/oracle/oci/latest/docs/guides/changing_timeouts) for certain operations: + * `create` - (Defaults to 20 minutes), when creating the Dynamic Resource Group + * `update` - (Defaults to 20 minutes), when updating the Dynamic Resource Group + * `delete` - (Defaults to 20 minutes), when destroying the Dynamic Resource Group + + +## Import + +DynamicResourceGroups can be imported using the `id`, e.g. + +``` +$ terraform import oci_identity_domains_dynamic_resource_group.test_dynamic_resource_group "idcsEndpoint/{idcsEndpoint}/dynamicResourceGroups/{dynamicResourceGroupId}" +``` + diff --git a/website/docs/r/identity_domains_group.html.markdown b/website/docs/r/identity_domains_group.html.markdown new file mode 100644 index 00000000000..181f7e11b62 --- /dev/null +++ b/website/docs/r/identity_domains_group.html.markdown @@ -0,0 +1,2279 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_group" +sidebar_current: "docs-oci-resource-identity_domains-group" +description: |- + Provides the Group resource in Oracle Cloud Infrastructure Identity Domains service +--- + +# oci_identity_domains_group +This resource provides the Group resource in Oracle Cloud Infrastructure Identity Domains service. + +Create a Group + +## Example Usage + +```hcl +resource "oci_identity_domains_group" "test_group" { + #Required + display_name = var.group_display_name + idcs_endpoint = data.oci_identity_domain.test_domain.url + schemas = ["urn:ietf:params:scim:schemas:core:2.0:Group"] + + #Optional + attribute_sets = [] + attributes = "" + authorization = var.group_authorization + external_id = "externalId" + id = var.group_id + members { + #Required + type = var.group_members_type + value = var.group_members_value + + #Optional + ocid = var.group_members_ocid + } + non_unique_display_name = var.group_non_unique_display_name + ocid = var.group_ocid + resource_type_schema_version = var.group_resource_type_schema_version + tags { + #Required + key = var.group_tags_key + value = var.group_tags_value + } + urnietfparamsscimschemasoracleidcsextension_oci_tags { + + #Optional + defined_tags { + #Required + key = var.group_urnietfparamsscimschemasoracleidcsextension_oci_tags_defined_tags_key + namespace = var.group_urnietfparamsscimschemasoracleidcsextension_oci_tags_defined_tags_namespace + value = var.group_urnietfparamsscimschemasoracleidcsextension_oci_tags_defined_tags_value + } + freeform_tags { + #Required + key = var.group_urnietfparamsscimschemasoracleidcsextension_oci_tags_freeform_tags_key + value = var.group_urnietfparamsscimschemasoracleidcsextension_oci_tags_freeform_tags_value + } + } + urnietfparamsscimschemasoracleidcsextensiondynamic_group { + + #Optional + membership_rule = var.group_urnietfparamsscimschemasoracleidcsextensiondynamic_group_membership_rule + membership_type = var.group_urnietfparamsscimschemasoracleidcsextensiondynamic_group_membership_type + } + urnietfparamsscimschemasoracleidcsextensiongroup_group { + + #Optional + creation_mechanism = var.group_urnietfparamsscimschemasoracleidcsextensiongroup_group_creation_mechanism + description = var.group_urnietfparamsscimschemasoracleidcsextensiongroup_group_description + owners { + #Required + type = var.group_urnietfparamsscimschemasoracleidcsextensiongroup_group_owners_type + value = var.group_urnietfparamsscimschemasoracleidcsextensiongroup_group_owners_value + } + } + urnietfparamsscimschemasoracleidcsextensionposix_group { + + #Optional + gid_number = var.group_urnietfparamsscimschemasoracleidcsextensionposix_group_gid_number + } + urnietfparamsscimschemasoracleidcsextensionrequestable_group { + + #Optional + requestable = var.group_urnietfparamsscimschemasoracleidcsextensionrequestable_group_requestable + } +} +``` + +## Argument Reference + +The following arguments are supported: + +* `attribute_sets` - (Optional) (Updatable) A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. +* `attributes` - (Optional) (Updatable) A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. +* `authorization` - (Optional) (Updatable) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `compartment_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - (Optional) (Updatable) A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `display_name` - (Required) (Updatable) Group display name + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Display Name + * idcsCsvAttributeNameMappings: [[columnHeaderName:Name, deprecatedColumnHeaderName:Display Name]] + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: string + * uniqueness: global +* `domain_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `external_id` - (Optional) (Updatable) An identifier for the Resource as defined by the Service Consumer. The externalId may simplify identification of the Resource between Service Consumer and Service Provider by allowing the Consumer to refer to the Resource with its own identifier, obviating the need to store a local mapping between the local identifier of the Resource and the identifier used by the Service Provider. Each Resource MAY include a non-empty externalId value. The value of the externalId attribute is always issued by the Service Consumer and can never be specified by the Service Provider. The Service Provider MUST always interpret the externalId as scoped to the Service Consumer's tenant. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `id` - (Optional) (Updatable) Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - (Optional) (Updatable) The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - (Optional) (Updatable) The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) (Updatable) The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - (Optional) (Updatable) The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) (Updatable) The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `idcs_last_modified_by` - (Optional) (Updatable) The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - (Optional) (Updatable) The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) (Updatable) The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - (Optional) (Updatable) The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) (Updatable) The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - (Optional) (Updatable) The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - (Optional) (Updatable) Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `members` - (Optional) (Updatable) Group members - when requesting members attribute, a max of 10,000 members will be returned in a single request. It is recommended to use startIndex and count to return members in pages instead of in a single response, eg : #attributes=members[startIndex=1%26count=10] + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [value] + * idcsCsvAttributeNameMappings: [[columnHeaderName:User Members, mapsTo:members[User].value, multiValueDelimiter:;]] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * idcsPaginateResponse: true + * type: complex + * uniqueness: none + * `date_added` - (Optional) (Updatable) The DateTime the member was added to the Group. + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readOnly + * returned: default + * type: dateTime + * uniqueness: none + * `display` - (Optional) (Updatable) Member display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `membership_ocid` - (Optional) (Updatable) Membership Ocid + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - (Optional) (Updatable) Member name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) (Updatable) OCID of the member of this Group + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI that corresponds to the member Resource of this Group + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - (Required) (Updatable) Indicates the type of resource--for example, User or Group + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * idcsDefaultValue: User + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) (Updatable) ID of the member of this Group + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: string + * uniqueness: none +* `meta` - (Optional) (Updatable) A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - (Optional) (Updatable) The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - (Optional) (Updatable) The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - (Optional) (Updatable) The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - (Optional) (Updatable) Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - (Optional) (Updatable) The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `non_unique_display_name` - (Optional) (Updatable) A human readable name for Group as defined by the Service Consumer + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Non-Unique Display Name + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: always + * type: string +* `ocid` - (Optional) (Updatable) Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `resource_type_schema_version` - (Optional) (Updatable) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. +* `schemas` - (Required) (Updatable) REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tags` - (Optional) (Updatable) A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - (Required) (Updatable) Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) (Updatable) Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextension_oci_tags` - (Optional) (Updatable) Oracle Cloud Infrastructure Tags. + * `defined_tags` - (Optional) (Updatable) Oracle Cloud Infrastructure Defined Tags + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * idcsCompositeKey: [namespace, key, value] + * type: complex + * idcsSearchable: true + * required: false + * mutability: readWrite + * multiValued: true + * returned: default + * `key` - (Required) (Updatable) Oracle Cloud Infrastructure Tag key + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * required: true + * mutability: readWrite + * returned: default + * idcsSearchable: true + * uniqueness: none + * `namespace` - (Required) (Updatable) Oracle Cloud Infrastructure Tag namespace + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * required: true + * mutability: readWrite + * returned: default + * idcsSearchable: true + * uniqueness: none + * `value` - (Required) (Updatable) Oracle Cloud Infrastructure Tag value + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * required: true + * mutability: readWrite + * returned: default + * type: string + * idcsSearchable: true + * uniqueness: none + * `freeform_tags` - (Optional) (Updatable) Oracle Cloud Infrastructure Freeform Tags + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * type: complex + * required: false + * mutability: readWrite + * returned: default + * multiValued: true + * `key` - (Required) (Updatable) Oracle Cloud Infrastructure Tag key + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * required: true + * mutability: readWrite + * returned: default + * idcsSearchable: true + * uniqueness: none + * `value` - (Required) (Updatable) Oracle Cloud Infrastructure Tag value + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * required: true + * mutability: readWrite + * returned: default + * type: string + * idcsSearchable: true + * uniqueness: none + * `tag_slug` - (Optional) (Updatable) Oracle Cloud Infrastructure Tag slug + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * type: binary + * mutability: readOnly + * returned: request +* `urnietfparamsscimschemasoracleidcsextensiondbcs_group` - (Optional) (Updatable) Schema for Database Service Resource + * `domain_level_schema` - (Optional) (Updatable) DBCS Domain-level schema-name. This attribute refers implicitly to a value of 'domainLevelSchemaNames' for a particular DB Domain. + + **Added In:** 18.2.4 + + **SCIM++ Properties:** + * idcsSearchable: false + * idcsSensitive: none + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `domain_level_schema_names` - (Optional) (Updatable) DBCS Domain-level schema-names. Each value is specific to a DB Domain. + + **Added In:** 18.2.4 + + **SCIM++ Properties:** + * idcsCompositeKey: [domainName, schemaName] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * `domain_name` - (Required) (Updatable) DBCS Domain Name + + **Added In:** 18.2.4 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none + * `schema_name` - (Required) (Updatable) The DBCS schema-name granted to this group in the DB domain that 'domainName' specifies. + + **Added In:** 18.2.4 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none + * `instance_level_schema` - (Optional) (Updatable) DBCS instance-level schema-name. This attribute refers implicitly to a value of 'instanceLevelSchemaNames' for a particular DB Instance. + + **Added In:** 18.2.4 + + **SCIM++ Properties:** + * idcsSearchable: false + * idcsSensitive: none + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `instance_level_schema_names` - (Optional) (Updatable) DBCS instance-level schema-names. Each schema-name is specific to a DB Instance. + + **Added In:** 18.2.4 + + **SCIM++ Properties:** + * idcsCompositeKey: [dbInstanceId, schemaName] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * `db_instance_id` - (Required) (Updatable) App Id of DBCS App instance + + **Added In:** 18.2.4 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none + * `schema_name` - (Required) (Updatable) The DBCS schema-name granted to this Group for the DB instance that 'dbInstanceId' specifies. + + **Added In:** 18.2.4 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensiondynamic_group` - (Optional) (Updatable) Dynamic Group + * `membership_rule` - (Optional) (Updatable) Membership rule + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `membership_type` - (Optional) (Updatable) Membership type + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: always + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensiongroup_group` - (Optional) (Updatable) Idcs Group + * `app_roles` - (Optional) (Updatable) A list of appRoles that the user belongs to, either thorough direct membership, nested groups, or dynamically calculated + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `admin_role` - (Optional) (Updatable) If true, then the role provides administrative access privileges. READ-ONLY. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: boolean + * uniqueness: none + * `app_id` - (Optional) (Updatable) ID of parent App. READ-ONLY. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `app_name` - (Optional) (Updatable) Name of parent App. READ-ONLY. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `display` - (Optional) (Updatable) A human readable name, primarily used for display purposes. READ-ONLY. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `legacy_group_name` - (Optional) (Updatable) The name of the legacy group associated with this AppRole. + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the corresponding appRole resource to which the user belongs + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: reference + * uniqueness: none + * `type` - (Optional) (Updatable) A label indicating the attribute's function; e.g., 'direct' or 'indirect'. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `value` - (Required) (Updatable) The identifier of the appRole + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: always + * type: string + * uniqueness: none + * `creation_mechanism` - (Optional) (Updatable) Source from which this group got created. + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeNameMappings: [[defaultValue:import]] + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: request + * type: string + * uniqueness: none + * `description` - (Optional) (Updatable) Group description + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Description + * idcsCsvAttributeNameMappings: [[columnHeaderName:Description]] + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `grants` - (Optional) (Updatable) Grants assigned to group + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `app_id` - (Optional) (Updatable) App identifier + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `grant_mechanism` - (Optional) (Updatable) Each value of grantMechanism indicates how (or by what component) some App (or App-Entitlement) was granted.\nA customer or the UI should use only grantMechanism values that start with 'ADMINISTRATOR':\n - 'ADMINISTRATOR_TO_USER' is for a direct grant to a specific User.\n - 'ADMINISTRATOR_TO_GROUP' is for a grant to a specific Group, which results in indirect grants to Users who are members of that Group.\n - 'ADMINISTRATOR_TO_APP' is for a grant to a specific App. The grantee (client) App gains access to the granted (server) App. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) Grant URI + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - (Optional) (Updatable) Grant identifier + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `owners` - (Optional) (Updatable) Group owners + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [value, type] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `display` - (Optional) (Updatable) Owner display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI that corresponds to the owning Resource of this Group + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - (Required) (Updatable) Indicates the type of resource--for example, User or Group + + **SCIM++ Properties:** + * caseExact: true + * idcsDefaultValue: User + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) (Updatable) ID of the owner of this Group + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: string + * uniqueness: none + * `password_policy` - (Optional) (Updatable) Password Policy associated with this Group. + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `name` - (Optional) (Updatable) PasswordPolicy Name + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `priority` - (Optional) (Updatable) PasswordPolicy priority + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: integer + * uniqueness: none + * `ref` - (Optional) (Updatable) PasswordPolicy URI + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - (Required) (Updatable) The ID of the PasswordPolicy. + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: always + * type: string + * uniqueness: none + * `synced_from_app` - (Optional) (Updatable) The entity that created this Group. + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `display` - (Optional) (Updatable) App Display Name + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * caseExact: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) App URI + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - (Required) (Updatable) The type of the entity that created this Group. + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * idcsDefaultValue: App + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) (Updatable) The ID of the App. + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionposix_group` - (Optional) (Updatable) POSIX Group extension + * `gid_number` - (Optional) (Updatable) Integer uniquely identifying a group in a POSIX administrative domain + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: request + * type: integer + * uniqueness: server +* `urnietfparamsscimschemasoracleidcsextensionrequestable_group` - (Optional) (Updatable) Requestable Group + * `requestable` - (Optional) (Updatable) Flag controlling whether group membership can be request by user through self service console. + + **Added In:** 17.3.4 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * idcsCsvAttributeNameMappings: [[columnHeaderName:Requestable, mapsTo:requestable]] + * multiValued: false + * mutability: readWrite + * required: false + * returned: request + * type: boolean + * uniqueness: none + + +** IMPORTANT ** +Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values + +## Attributes Reference + +The following attributes are exported: + +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `display_name` - Group display name + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Display Name + * idcsCsvAttributeNameMappings: [[columnHeaderName:Name, deprecatedColumnHeaderName:Display Name]] + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: string + * uniqueness: global +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `external_id` - An identifier for the Resource as defined by the Service Consumer. The externalId may simplify identification of the Resource between Service Consumer and Service Provider by allowing the Consumer to refer to the Resource with its own identifier, obviating the need to store a local mapping between the local identifier of the Resource and the identifier used by the Service Provider. Each Resource MAY include a non-empty externalId value. The value of the externalId attribute is always issued by the Service Consumer and can never be specified by the Service Provider. The Service Provider MUST always interpret the externalId as scoped to the Service Consumer's tenant. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `members` - Group members - when requesting members attribute, a max of 10,000 members will be returned in a single request. It is recommended to use startIndex and count to return members in pages instead of in a single response, eg : #attributes=members[startIndex=1%26count=10] + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [value] + * idcsCsvAttributeNameMappings: [[columnHeaderName:User Members, mapsTo:members[User].value, multiValueDelimiter:;]] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * idcsPaginateResponse: true + * type: complex + * uniqueness: none + * `date_added` - The DateTime the member was added to the Group. + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readOnly + * returned: default + * type: dateTime + * uniqueness: none + * `display` - Member display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `membership_ocid` - Membership Ocid + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - Member name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - OCID of the member of this Group + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the member Resource of this Group + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - Indicates the type of resource--for example, User or Group + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * idcsDefaultValue: User + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - ID of the member of this Group + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: string + * uniqueness: none +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `non_unique_display_name` - A human readable name for Group as defined by the Service Consumer + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Non-Unique Display Name + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: always + * type: string +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextension_oci_tags` - Oracle Cloud Infrastructure Tags. + * `defined_tags` - Oracle Cloud Infrastructure Defined Tags + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * idcsCompositeKey: [namespace, key, value] + * type: complex + * idcsSearchable: true + * required: false + * mutability: readWrite + * multiValued: true + * returned: default + * `key` - Oracle Cloud Infrastructure Tag key + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * required: true + * mutability: readWrite + * returned: default + * idcsSearchable: true + * uniqueness: none + * `namespace` - Oracle Cloud Infrastructure Tag namespace + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * required: true + * mutability: readWrite + * returned: default + * idcsSearchable: true + * uniqueness: none + * `value` - Oracle Cloud Infrastructure Tag value + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * required: true + * mutability: readWrite + * returned: default + * type: string + * idcsSearchable: true + * uniqueness: none + * `freeform_tags` - Oracle Cloud Infrastructure Freeform Tags + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * type: complex + * required: false + * mutability: readWrite + * returned: default + * multiValued: true + * `key` - Oracle Cloud Infrastructure Tag key + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * required: true + * mutability: readWrite + * returned: default + * idcsSearchable: true + * uniqueness: none + * `value` - Oracle Cloud Infrastructure Tag value + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * required: true + * mutability: readWrite + * returned: default + * type: string + * idcsSearchable: true + * uniqueness: none + * `tag_slug` - Oracle Cloud Infrastructure Tag slug + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * type: binary + * mutability: readOnly + * returned: request +* `urnietfparamsscimschemasoracleidcsextensiondbcs_group` - Schema for Database Service Resource + * `domain_level_schema` - DBCS Domain-level schema-name. This attribute refers implicitly to a value of 'domainLevelSchemaNames' for a particular DB Domain. + + **Added In:** 18.2.4 + + **SCIM++ Properties:** + * idcsSearchable: false + * idcsSensitive: none + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `domain_level_schema_names` - DBCS Domain-level schema-names. Each value is specific to a DB Domain. + + **Added In:** 18.2.4 + + **SCIM++ Properties:** + * idcsCompositeKey: [domainName, schemaName] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * `domain_name` - DBCS Domain Name + + **Added In:** 18.2.4 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none + * `schema_name` - The DBCS schema-name granted to this group in the DB domain that 'domainName' specifies. + + **Added In:** 18.2.4 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none + * `instance_level_schema` - DBCS instance-level schema-name. This attribute refers implicitly to a value of 'instanceLevelSchemaNames' for a particular DB Instance. + + **Added In:** 18.2.4 + + **SCIM++ Properties:** + * idcsSearchable: false + * idcsSensitive: none + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `instance_level_schema_names` - DBCS instance-level schema-names. Each schema-name is specific to a DB Instance. + + **Added In:** 18.2.4 + + **SCIM++ Properties:** + * idcsCompositeKey: [dbInstanceId, schemaName] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * `db_instance_id` - App Id of DBCS App instance + + **Added In:** 18.2.4 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none + * `schema_name` - The DBCS schema-name granted to this Group for the DB instance that 'dbInstanceId' specifies. + + **Added In:** 18.2.4 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensiondynamic_group` - Dynamic Group + * `membership_rule` - Membership rule + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `membership_type` - Membership type + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: always + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensiongroup_group` - Idcs Group + * `app_roles` - A list of appRoles that the user belongs to, either thorough direct membership, nested groups, or dynamically calculated + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `admin_role` - If true, then the role provides administrative access privileges. READ-ONLY. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: boolean + * uniqueness: none + * `app_id` - ID of parent App. READ-ONLY. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `app_name` - Name of parent App. READ-ONLY. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `display` - A human readable name, primarily used for display purposes. READ-ONLY. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `legacy_group_name` - The name of the legacy group associated with this AppRole. + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the corresponding appRole resource to which the user belongs + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: reference + * uniqueness: none + * `type` - A label indicating the attribute's function; e.g., 'direct' or 'indirect'. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `value` - The identifier of the appRole + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: always + * type: string + * uniqueness: none + * `creation_mechanism` - Source from which this group got created. + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeNameMappings: [[defaultValue:import]] + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: request + * type: string + * uniqueness: none + * `description` - Group description + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Description + * idcsCsvAttributeNameMappings: [[columnHeaderName:Description]] + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `grants` - Grants assigned to group + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `app_id` - App identifier + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `grant_mechanism` - Each value of grantMechanism indicates how (or by what component) some App (or App-Entitlement) was granted.\nA customer or the UI should use only grantMechanism values that start with 'ADMINISTRATOR':\n - 'ADMINISTRATOR_TO_USER' is for a direct grant to a specific User.\n - 'ADMINISTRATOR_TO_GROUP' is for a grant to a specific Group, which results in indirect grants to Users who are members of that Group.\n - 'ADMINISTRATOR_TO_APP' is for a grant to a specific App. The grantee (client) App gains access to the granted (server) App. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - Grant URI + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - Grant identifier + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `owners` - Group owners + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [value, type] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `display` - Owner display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the owning Resource of this Group + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - Indicates the type of resource--for example, User or Group + + **SCIM++ Properties:** + * caseExact: true + * idcsDefaultValue: User + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - ID of the owner of this Group + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: string + * uniqueness: none + * `password_policy` - Password Policy associated with this Group. + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `name` - PasswordPolicy Name + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `priority` - PasswordPolicy priority + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: integer + * uniqueness: none + * `ref` - PasswordPolicy URI + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The ID of the PasswordPolicy. + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: always + * type: string + * uniqueness: none + * `synced_from_app` - The entity that created this Group. + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `display` - App Display Name + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * caseExact: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - App URI + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of the entity that created this Group. + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * idcsDefaultValue: App + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the App. + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionposix_group` - POSIX Group extension + * `gid_number` - Integer uniquely identifying a group in a POSIX administrative domain + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: request + * type: integer + * uniqueness: server +* `urnietfparamsscimschemasoracleidcsextensionrequestable_group` - Requestable Group + * `requestable` - Flag controlling whether group membership can be request by user through self service console. + + **Added In:** 17.3.4 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * idcsCsvAttributeNameMappings: [[columnHeaderName:Requestable, mapsTo:requestable]] + * multiValued: false + * mutability: readWrite + * required: false + * returned: request + * type: boolean + * uniqueness: none + +## Timeouts + +The `timeouts` block allows you to specify [timeouts](https://registry.terraform.io/providers/oracle/oci/latest/docs/guides/changing_timeouts) for certain operations: + * `create` - (Defaults to 20 minutes), when creating the Group + * `update` - (Defaults to 20 minutes), when updating the Group + * `delete` - (Defaults to 20 minutes), when destroying the Group + + +## Import + +Groups can be imported using the `id`, e.g. + +``` +$ terraform import oci_identity_domains_group.test_group "idcsEndpoint/{idcsEndpoint}/groups/{groupId}" +``` + diff --git a/website/docs/r/identity_domains_identity_provider.html.markdown b/website/docs/r/identity_domains_identity_provider.html.markdown new file mode 100644 index 00000000000..e5e780fbf8f --- /dev/null +++ b/website/docs/r/identity_domains_identity_provider.html.markdown @@ -0,0 +1,2948 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_identity_provider" +sidebar_current: "docs-oci-resource-identity_domains-identity_provider" +description: |- + Provides the Identity Provider resource in Oracle Cloud Infrastructure Identity Domains service +--- + +# oci_identity_domains_identity_provider +This resource provides the Identity Provider resource in Oracle Cloud Infrastructure Identity Domains service. + +Create an Identity Provider + +## Example Usage + +```hcl +resource "oci_identity_domains_identity_provider" "test_identity_provider" { + #Required + enabled = false + idcs_endpoint = data.oci_identity_domain.test_domain.url + partner_name = var.identity_provider_partner_name + schemas = ["urn:ietf:params:scim:schemas:oracle:idcs:IdentityProvider"] + + #Optional + assertion_attribute = var.identity_provider_assertion_attribute + attribute_sets = [] + attributes = "" + authn_request_binding = var.identity_provider_authn_request_binding + authorization = var.identity_provider_authorization + correlation_policy { + #Required + type = var.identity_provider_correlation_policy_type + value = var.identity_provider_correlation_policy_value + + #Optional + display = var.identity_provider_correlation_policy_display + } + description = var.identity_provider_description + encryption_certificate = var.identity_provider_encryption_certificate + external_id = "externalId" + icon_url = var.identity_provider_icon_url + id = var.identity_provider_id + idp_sso_url = var.identity_provider_idp_sso_url + include_signing_cert_in_signature = var.identity_provider_include_signing_cert_in_signature + jit_user_prov_assigned_groups { + #Required + value = var.identity_provider_jit_user_prov_assigned_groups_value + } + jit_user_prov_attribute_update_enabled = var.identity_provider_jit_user_prov_attribute_update_enabled + jit_user_prov_attributes { + #Required + value = var.identity_provider_jit_user_prov_attributes_value + } + jit_user_prov_create_user_enabled = var.identity_provider_jit_user_prov_create_user_enabled + jit_user_prov_enabled = var.identity_provider_jit_user_prov_enabled + jit_user_prov_group_assertion_attribute_enabled = var.identity_provider_jit_user_prov_group_assertion_attribute_enabled + jit_user_prov_group_assignment_method = var.identity_provider_jit_user_prov_group_assignment_method + jit_user_prov_group_mapping_mode = var.identity_provider_jit_user_prov_group_mapping_mode + jit_user_prov_group_mappings { + #Required + idp_group = var.identity_provider_jit_user_prov_group_mappings_idp_group + value = var.identity_provider_jit_user_prov_group_mappings_value + } + jit_user_prov_group_saml_attribute_name = var.identity_provider_jit_user_prov_group_saml_attribute_name + jit_user_prov_group_static_list_enabled = var.identity_provider_jit_user_prov_group_static_list_enabled + jit_user_prov_ignore_error_on_absent_groups = var.identity_provider_jit_user_prov_ignore_error_on_absent_groups + logout_binding = var.identity_provider_logout_binding + logout_enabled = var.identity_provider_logout_enabled + logout_request_url = var.identity_provider_logout_request_url + logout_response_url = var.identity_provider_logout_response_url + metadata = var.identity_provider_metadata + name_id_format = var.identity_provider_name_id_format + ocid = var.identity_provider_ocid + partner_provider_id = var.identity_provider_partner_provider_id + requested_authentication_context = var.identity_provider_requested_authentication_context + require_force_authn = var.identity_provider_require_force_authn + requires_encrypted_assertion = var.identity_provider_requires_encrypted_assertion + resource_type_schema_version = var.identity_provider_resource_type_schema_version + saml_ho_krequired = var.identity_provider_saml_ho_krequired + service_instance_identifier = var.identity_provider_service_instance_identifier + shown_on_login_page = var.identity_provider_shown_on_login_page + signature_hash_algorithm = var.identity_provider_signature_hash_algorithm + signing_certificate = var.identity_provider_signing_certificate + succinct_id = "succinctId" + tags { + #Required + key = var.identity_provider_tags_key + value = var.identity_provider_tags_value + } + type = var.identity_provider_type + urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider { + #Required + account_linking_enabled = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider_account_linking_enabled + consumer_key = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider_consumer_key + consumer_secret = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider_consumer_secret + registration_enabled = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider_registration_enabled + service_provider_name = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider_service_provider_name + + #Optional + access_token_url = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider_access_token_url + admin_scope = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider_admin_scope + authz_url = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider_authz_url + client_credential_in_payload = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider_client_credential_in_payload + clock_skew_in_seconds = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider_clock_skew_in_seconds + discovery_url = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider_discovery_url + id_attribute = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider_id_attribute + profile_url = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider_profile_url + redirect_url = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider_redirect_url + scope = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider_scope + status = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider_status + } + urnietfparamsscimschemasoracleidcsextensionx509identity_provider { + #Required + cert_match_attribute = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionx509identity_provider_cert_match_attribute + signing_certificate_chain = ["signingCertificateChain"] + user_match_attribute = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionx509identity_provider_user_match_attribute + + #Optional + crl_check_on_ocsp_failure_enabled = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionx509identity_provider_crl_check_on_ocsp_failure_enabled + crl_enabled = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionx509identity_provider_crl_enabled + crl_location = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionx509identity_provider_crl_location + crl_reload_duration = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionx509identity_provider_crl_reload_duration + ocsp_allow_unknown_response_status = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionx509identity_provider_ocsp_allow_unknown_response_status + ocsp_enable_signed_response = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionx509identity_provider_ocsp_enable_signed_response + ocsp_enabled = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionx509identity_provider_ocsp_enabled + ocsp_responder_url = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionx509identity_provider_ocsp_responder_url + ocsp_revalidate_time = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionx509identity_provider_ocsp_revalidate_time + ocsp_server_name = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionx509identity_provider_ocsp_server_name + ocsp_trust_cert_chain = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionx509identity_provider_ocsp_trust_cert_chain + other_cert_match_attribute = var.identity_provider_urnietfparamsscimschemasoracleidcsextensionx509identity_provider_other_cert_match_attribute + } + user_mapping_method = var.identity_provider_user_mapping_method + user_mapping_store_attribute = var.identity_provider_user_mapping_store_attribute +} +``` + +## Argument Reference + +The following arguments are supported: + +* `assertion_attribute` - (Optional) (Updatable) Assertion attribute name. + + **Deprecated Since: 20.1.3** + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * idcsValuePersistedInOtherAttribute: true +* `attribute_sets` - (Optional) (Updatable) A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. +* `attributes` - (Optional) (Updatable) A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. +* `authn_request_binding` - (Optional) (Updatable) HTTP binding to use for authentication requests. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `authorization` - (Optional) (Updatable) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `compartment_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `correlation_policy` - (Optional) (Updatable) Correlation policy + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - (Optional) (Updatable) Policy display name + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) Policy URI + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - (Required) (Updatable) A label that indicates the type that this references. + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsDefaultValue: Policy + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) (Updatable) Policy identifier + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - (Optional) (Updatable) A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - (Optional) (Updatable) Description + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `domain_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `enabled` - (Required) (Updatable) Set to true to indicate Partner enabled. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none +* `encryption_certificate` - (Optional) (Updatable) Encryption certificate + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `external_id` - (Optional) (Updatable) An identifier for the Resource as defined by the Service Consumer. The externalId may simplify identification of the Resource between Service Consumer and Service Provider by allowing the Consumer to refer to the Resource with its own identifier, obviating the need to store a local mapping between the local identifier of the Resource and the identifier used by the Service Provider. Each Resource MAY include a non-empty externalId value. The value of the externalId attribute is always issued by the Service Consumer and can never be specified by the Service Provider. The Service Provider MUST always interpret the externalId as scoped to the Service Consumer's tenant. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `icon_url` - (Optional) (Updatable) Identity Provider Icon URL. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `id` - (Optional) (Updatable) Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - (Optional) (Updatable) The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - (Optional) (Updatable) The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) (Updatable) The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - (Optional) (Updatable) The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) (Updatable) The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `idcs_last_modified_by` - (Optional) (Updatable) The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - (Optional) (Updatable) The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) (Updatable) The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - (Optional) (Updatable) The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) (Updatable) The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - (Optional) (Updatable) The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - (Optional) (Updatable) Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idp_sso_url` - (Optional) (Updatable) Identity Provider SSO URL + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `include_signing_cert_in_signature` - (Optional) (Updatable) Set to true to include the signing certificate in the signature. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `jit_user_prov_assigned_groups` - (Optional) (Updatable) Refers to every group of which a JIT-provisioned User should be a member. Just-in-Time user-provisioning applies this static list when jitUserProvGroupStaticListEnabled:true. + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - (Optional) (Updatable) A human readable name, primarily used for display purposes. READ-ONLY. + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) Group URI + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - (Required) (Updatable) Group identifier + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `jit_user_prov_attribute_update_enabled` - (Optional) (Updatable) Set to true to indicate JIT User Creation is enabled + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `jit_user_prov_attributes` - (Optional) (Updatable) Assertion To User Mapping + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [value] + * idcsSearchable: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `ref` - (Optional) (Updatable) Mapped Attribute URI + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * mutability: immutable + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - (Required) (Updatable) Mapped Attribute identifier + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * mutability: immutable + * required: true + * returned: default + * type: string + * uniqueness: none +* `jit_user_prov_create_user_enabled` - (Optional) (Updatable) Set to true to indicate JIT User Creation is enabled + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `jit_user_prov_enabled` - (Optional) (Updatable) Set to true to indicate JIT User Provisioning is enabled + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `jit_user_prov_group_assertion_attribute_enabled` - (Optional) (Updatable) Set to true to indicate JIT User Provisioning Groups should be assigned based on assertion attribute + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `jit_user_prov_group_assignment_method` - (Optional) (Updatable) The default value is 'Overwrite', which tells Just-In-Time user-provisioning to replace any current group-assignments for a User with those assigned by assertions and/or those assigned statically. Specify 'Merge' if you want Just-In-Time user-provisioning to combine its group-assignments with those the user already has. + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `jit_user_prov_group_mapping_mode` - (Optional) (Updatable) Property to indicate the mode of group mapping + + **Added In:** 2205120021 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `jit_user_prov_group_mappings` - (Optional) (Updatable) The list of mappings between the Identity Domain Group and the IDP group. + + **Added In:** 2205120021 + + **SCIM++ Properties:** + * idcsCompositeKey: [idpGroup] + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `idp_group` - (Required) (Updatable) IDP Group Name + + **Added In:** 2205120021 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * type: string + * `ref` - (Optional) (Updatable) Group URI + + **Added In:** 2205120021 + + **SCIM++ Properties:** + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: reference + * `value` - (Required) (Updatable) Domain Group + + **Added In:** 2205120021 + + **SCIM++ Properties:** + * multiValued: false + * mutability: readWrite + * required: true + * idcsSearchable: true + * type: string +* `jit_user_prov_group_saml_attribute_name` - (Optional) (Updatable) Name of the assertion attribute containing the users groups + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `jit_user_prov_group_static_list_enabled` - (Optional) (Updatable) Set to true to indicate JIT User Provisioning Groups should be assigned from a static list + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `jit_user_prov_ignore_error_on_absent_groups` - (Optional) (Updatable) Set to true to indicate ignoring absence of group while provisioning + + **Added In:** 2111112015 + + **SCIM++ Properties:** + * caseExact: false + * idcsAddedSinceVersion: 30 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `logout_binding` - (Optional) (Updatable) HTTP binding to use for logout. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `logout_enabled` - (Optional) (Updatable) Set to true to enable logout. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `logout_request_url` - (Optional) (Updatable) Logout request URL + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `logout_response_url` - (Optional) (Updatable) Logout response URL + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `meta` - (Optional) (Updatable) A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - (Optional) (Updatable) The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - (Optional) (Updatable) The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - (Optional) (Updatable) The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - (Optional) (Updatable) Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - (Optional) (Updatable) The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `metadata` - (Optional) (Updatable) Metadata + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `name_id_format` - (Optional) (Updatable) Default authentication request name ID format. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `ocid` - (Optional) (Updatable) Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `partner_name` - (Required) (Updatable) Unique name of the trusted Identity Provider. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: string + * uniqueness: server +* `partner_provider_id` - (Optional) (Updatable) Provider ID + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: server +* `requested_authentication_context` - (Optional) (Updatable) SAML SP authentication type. + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `require_force_authn` - (Optional) (Updatable) This SP requires requests SAML IdP to enforce re-authentication. + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `requires_encrypted_assertion` - (Optional) (Updatable) SAML SP must accept encrypted assertion only. + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `resource_type_schema_version` - (Optional) (Updatable) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. +* `saml_ho_krequired` - (Optional) (Updatable) SAML SP HoK Enabled. + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `schemas` - (Required) (Updatable) REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `service_instance_identifier` - (Optional) (Updatable) The serviceInstanceIdentifier of the App that hosts this IdP. This value will match the opcServiceInstanceGUID of any service-instance that the IdP represents. + + **Added In:** 18.2.6 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: never + * type: string + * uniqueness: server +* `shown_on_login_page` - (Optional) (Updatable) Set to true to indicate whether to show IdP in login page or not. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `signature_hash_algorithm` - (Optional) (Updatable) Signature hash algorithm. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `signing_certificate` - (Optional) (Updatable) Signing certificate + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `succinct_id` - (Optional) (Updatable) Succinct ID + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: server +* `tags` - (Optional) (Updatable) A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - (Required) (Updatable) Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) (Updatable) Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `tenant_provider_id` - (Optional) (Updatable) The alternate Provider ID to be used as the Oracle Identity Cloud Service providerID (instead of the one in SamlSettings) when interacting with this IdP. + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `type` - (Optional) (Updatable) Identity Provider Type + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider` - (Optional) (Updatable) Social Identity Provider Extension Schema + * `access_token_url` - (Optional) (Updatable) Social IDP Access token URL + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `account_linking_enabled` - (Required) (Updatable) Whether account linking is enabled + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none + * `admin_scope` - (Optional) (Updatable) Admin scope to request + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `authz_url` - (Optional) (Updatable) Social IDP Authorization URL + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `client_credential_in_payload` - (Optional) (Updatable) Whether the client credential is contained in payload + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `clock_skew_in_seconds` - (Optional) (Updatable) Social IDP allowed clock skew time + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none + * `consumer_key` - (Required) (Updatable) Social IDP Client Application Client ID + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `consumer_secret` - (Required) (Updatable) Social IDP Client Application Client Secret + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * idcsSensitive: encrypt + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `discovery_url` - (Optional) (Updatable) Discovery URL + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `id_attribute` - (Optional) (Updatable) Id attribute used for account linking + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: none + * `profile_url` - (Optional) (Updatable) Social IDP User profile URL + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `redirect_url` - (Optional) (Updatable) redirect URL for social idp + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `registration_enabled` - (Required) (Updatable) Whether registration is enabled + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none + * `scope` - (Optional) (Updatable) Scope to request + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `service_provider_name` - (Required) (Updatable) Service Provider Name + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: true + * returned: default + * type: string + * uniqueness: none + * `status` - (Optional) (Updatable) Status + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionx509identity_provider` - (Optional) (Updatable) X509 Identity Provider Extension Schema + * `cert_match_attribute` - (Required) (Updatable) X509 Certificate Matching Attribute + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `crl_check_on_ocsp_failure_enabled` - (Optional) (Updatable) Fallback on CRL Validation if OCSP fails. + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `crl_enabled` - (Optional) (Updatable) Set to true to enable CRL Validation + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `crl_location` - (Optional) (Updatable) CRL Location URL + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `crl_reload_duration` - (Optional) (Updatable) Fetch the CRL contents every X minutes + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none + * `ocsp_allow_unknown_response_status` - (Optional) (Updatable) Allow access if OCSP response is UNKNOWN or OCSP Responder does not respond within the timeout duration + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `ocsp_enable_signed_response` - (Optional) (Updatable) Describes if the OCSP response is signed + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `ocsp_enabled` - (Optional) (Updatable) Set to true to enable OCSP Validation + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `ocsp_responder_url` - (Optional) (Updatable) This property specifies OCSP Responder URL. + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocsp_revalidate_time` - (Optional) (Updatable) Revalidate OCSP status for user after X hours + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * idcsMaxValue: 24 + * idcsMinValue: 0 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none + * `ocsp_server_name` - (Optional) (Updatable) This property specifies the OCSP Server alias name + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocsp_trust_cert_chain` - (Optional) (Updatable) OCSP Trusted Certificate Chain + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `other_cert_match_attribute` - (Optional) (Updatable) Check for specific conditions of other certificate attributes + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `signing_certificate_chain` - (Required) (Updatable) Certificate alias list to create a chain for the incoming client certificate + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `user_match_attribute` - (Required) (Updatable) This property specifies the userstore attribute value that must match the incoming certificate attribute. + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `user_mapping_method` - (Optional) (Updatable) User mapping method. + + **Deprecated Since: 20.1.3** + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * idcsValuePersistedInOtherAttribute: true +* `user_mapping_store_attribute` - (Optional) (Updatable) This property specifies the userstore attribute value that must match the incoming assertion attribute value or the incoming nameid attribute value in order to identify the user during SSO.
You can construct the userMappingStoreAttribute value by specifying attributes from the Oracle Identity Cloud Service Core Users schema. For examples of how to construct the userMappingStoreAttribute value, see the Example of a Request Body section of the Examples tab for the POST and PUT methods of the /IdentityProviders endpoint. + + **Deprecated Since: 20.1.3** + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * idcsValuePersistedInOtherAttribute: true + + +** IMPORTANT ** +Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values + +## Attributes Reference + +The following attributes are exported: + +* `assertion_attribute` - Assertion attribute name. + + **Deprecated Since: 20.1.3** + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * idcsValuePersistedInOtherAttribute: true +* `authn_request_binding` - HTTP binding to use for authentication requests. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `correlation_policy` - Correlation policy + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - Policy display name + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - Policy URI + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - A label that indicates the type that this references. + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsDefaultValue: Policy + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Policy identifier + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - Description + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `enabled` - Set to true to indicate Partner enabled. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none +* `encryption_certificate` - Encryption certificate + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `external_id` - An identifier for the Resource as defined by the Service Consumer. The externalId may simplify identification of the Resource between Service Consumer and Service Provider by allowing the Consumer to refer to the Resource with its own identifier, obviating the need to store a local mapping between the local identifier of the Resource and the identifier used by the Service Provider. Each Resource MAY include a non-empty externalId value. The value of the externalId attribute is always issued by the Service Consumer and can never be specified by the Service Provider. The Service Provider MUST always interpret the externalId as scoped to the Service Consumer's tenant. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `icon_url` - Identity Provider Icon URL. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idp_sso_url` - Identity Provider SSO URL + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `include_signing_cert_in_signature` - Set to true to include the signing certificate in the signature. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `jit_user_prov_assigned_groups` - Refers to every group of which a JIT-provisioned User should be a member. Just-in-Time user-provisioning applies this static list when jitUserProvGroupStaticListEnabled:true. + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - A human readable name, primarily used for display purposes. READ-ONLY. + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - Group URI + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - Group identifier + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `jit_user_prov_attribute_update_enabled` - Set to true to indicate JIT User Creation is enabled + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `jit_user_prov_attributes` - Assertion To User Mapping + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [value] + * idcsSearchable: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `ref` - Mapped Attribute URI + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * mutability: immutable + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - Mapped Attribute identifier + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * mutability: immutable + * required: true + * returned: default + * type: string + * uniqueness: none +* `jit_user_prov_create_user_enabled` - Set to true to indicate JIT User Creation is enabled + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `jit_user_prov_enabled` - Set to true to indicate JIT User Provisioning is enabled + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `jit_user_prov_group_assertion_attribute_enabled` - Set to true to indicate JIT User Provisioning Groups should be assigned based on assertion attribute + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `jit_user_prov_group_assignment_method` - The default value is 'Overwrite', which tells Just-In-Time user-provisioning to replace any current group-assignments for a User with those assigned by assertions and/or those assigned statically. Specify 'Merge' if you want Just-In-Time user-provisioning to combine its group-assignments with those the user already has. + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `jit_user_prov_group_mapping_mode` - Property to indicate the mode of group mapping + + **Added In:** 2205120021 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `jit_user_prov_group_mappings` - The list of mappings between the Identity Domain Group and the IDP group. + + **Added In:** 2205120021 + + **SCIM++ Properties:** + * idcsCompositeKey: [idpGroup] + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `idp_group` - IDP Group Name + + **Added In:** 2205120021 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * type: string + * `ref` - Group URI + + **Added In:** 2205120021 + + **SCIM++ Properties:** + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: reference + * `value` - Domain Group + + **Added In:** 2205120021 + + **SCIM++ Properties:** + * multiValued: false + * mutability: readWrite + * required: true + * idcsSearchable: true + * type: string +* `jit_user_prov_group_saml_attribute_name` - Name of the assertion attribute containing the users groups + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `jit_user_prov_group_static_list_enabled` - Set to true to indicate JIT User Provisioning Groups should be assigned from a static list + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `jit_user_prov_ignore_error_on_absent_groups` - Set to true to indicate ignoring absence of group while provisioning + + **Added In:** 2111112015 + + **SCIM++ Properties:** + * caseExact: false + * idcsAddedSinceVersion: 30 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `logout_binding` - HTTP binding to use for logout. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `logout_enabled` - Set to true to enable logout. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `logout_request_url` - Logout request URL + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `logout_response_url` - Logout response URL + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `metadata` - Metadata + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `name_id_format` - Default authentication request name ID format. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `partner_name` - Unique name of the trusted Identity Provider. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: string + * uniqueness: server +* `partner_provider_id` - Provider ID + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: server +* `requested_authentication_context` - SAML SP authentication type. + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `require_force_authn` - This SP requires requests SAML IdP to enforce re-authentication. + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `requires_encrypted_assertion` - SAML SP must accept encrypted assertion only. + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `saml_ho_krequired` - SAML SP HoK Enabled. + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `service_instance_identifier` - The serviceInstanceIdentifier of the App that hosts this IdP. This value will match the opcServiceInstanceGUID of any service-instance that the IdP represents. + + **Added In:** 18.2.6 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: never + * type: string + * uniqueness: server +* `shown_on_login_page` - Set to true to indicate whether to show IdP in login page or not. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `signature_hash_algorithm` - Signature hash algorithm. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `signing_certificate` - Signing certificate + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `succinct_id` - Succinct ID + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: server +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `tenant_provider_id` - The alternate Provider ID to be used as the Oracle Identity Cloud Service providerID (instead of the one in SamlSettings) when interacting with this IdP. + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `type` - Identity Provider Type + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionsocial_identity_provider` - Social Identity Provider Extension Schema + * `access_token_url` - Social IDP Access token URL + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `account_linking_enabled` - Whether account linking is enabled + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none + * `admin_scope` - Admin scope to request + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `authz_url` - Social IDP Authorization URL + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `client_credential_in_payload` - Whether the client credential is contained in payload + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `clock_skew_in_seconds` - Social IDP allowed clock skew time + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none + * `consumer_key` - Social IDP Client Application Client ID + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `consumer_secret` - Social IDP Client Application Client Secret + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * idcsSensitive: encrypt + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `discovery_url` - Discovery URL + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `id_attribute` - Id attribute used for account linking + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: none + * `profile_url` - Social IDP User profile URL + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `redirect_url` - redirect URL for social idp + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `registration_enabled` - Whether registration is enabled + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: boolean + * uniqueness: none + * `scope` - Scope to request + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `service_provider_name` - Service Provider Name + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: true + * returned: default + * type: string + * uniqueness: none + * `status` - Status + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionx509identity_provider` - X509 Identity Provider Extension Schema + * `cert_match_attribute` - X509 Certificate Matching Attribute + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `crl_check_on_ocsp_failure_enabled` - Fallback on CRL Validation if OCSP fails. + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `crl_enabled` - Set to true to enable CRL Validation + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `crl_location` - CRL Location URL + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `crl_reload_duration` - Fetch the CRL contents every X minutes + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none + * `ocsp_allow_unknown_response_status` - Allow access if OCSP response is UNKNOWN or OCSP Responder does not respond within the timeout duration + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `ocsp_enable_signed_response` - Describes if the OCSP response is signed + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `ocsp_enabled` - Set to true to enable OCSP Validation + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `ocsp_responder_url` - This property specifies OCSP Responder URL. + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocsp_revalidate_time` - Revalidate OCSP status for user after X hours + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * idcsMaxValue: 24 + * idcsMinValue: 0 + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none + * `ocsp_server_name` - This property specifies the OCSP Server alias name + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocsp_trust_cert_chain` - OCSP Trusted Certificate Chain + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `other_cert_match_attribute` - Check for specific conditions of other certificate attributes + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `signing_certificate_chain` - Certificate alias list to create a chain for the incoming client certificate + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `user_match_attribute` - This property specifies the userstore attribute value that must match the incoming certificate attribute. + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `user_mapping_method` - User mapping method. + + **Deprecated Since: 20.1.3** + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * idcsValuePersistedInOtherAttribute: true +* `user_mapping_store_attribute` - This property specifies the userstore attribute value that must match the incoming assertion attribute value or the incoming nameid attribute value in order to identify the user during SSO.
You can construct the userMappingStoreAttribute value by specifying attributes from the Oracle Identity Cloud Service Core Users schema. For examples of how to construct the userMappingStoreAttribute value, see the Example of a Request Body section of the Examples tab for the POST and PUT methods of the /IdentityProviders endpoint. + + **Deprecated Since: 20.1.3** + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * idcsValuePersistedInOtherAttribute: true + +## Timeouts + +The `timeouts` block allows you to specify [timeouts](https://registry.terraform.io/providers/oracle/oci/latest/docs/guides/changing_timeouts) for certain operations: + * `create` - (Defaults to 20 minutes), when creating the Identity Provider + * `update` - (Defaults to 20 minutes), when updating the Identity Provider + * `delete` - (Defaults to 20 minutes), when destroying the Identity Provider + + +## Import + +IdentityProviders can be imported using the `id`, e.g. + +``` +$ terraform import oci_identity_domains_identity_provider.test_identity_provider "idcsEndpoint/{idcsEndpoint}/identityProviders/{identityProviderId}" +``` + diff --git a/website/docs/r/identity_domains_kmsi_setting.html.markdown b/website/docs/r/identity_domains_kmsi_setting.html.markdown new file mode 100644 index 00000000000..94ef0a57f40 --- /dev/null +++ b/website/docs/r/identity_domains_kmsi_setting.html.markdown @@ -0,0 +1,906 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_kmsi_setting" +sidebar_current: "docs-oci-resource-identity_domains-kmsi_setting" +description: |- + Provides the Kmsi Setting resource in Oracle Cloud Infrastructure Identity Domains service +--- + +# oci_identity_domains_kmsi_setting +This resource provides the Kmsi Setting resource in Oracle Cloud Infrastructure Identity Domains service. + +Replace KmsiSettings + +## Example Usage + +```hcl +resource "oci_identity_domains_kmsi_setting" "test_kmsi_setting" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + kmsi_setting_id = oci_identity_domains_kmsi_setting.test_kmsi_setting.id + schemas = ["urn:ietf:params:scim:schemas:oracle:idcs:KmsiSettings"] + + #Optional + attribute_sets = [] + attributes = "" + authorization = var.kmsi_setting_authorization + external_id = "externalId" + id = var.kmsi_setting_id + kmsi_feature_enabled = var.kmsi_setting_kmsi_feature_enabled + kmsi_prompt_enabled = var.kmsi_setting_kmsi_prompt_enabled + last_enabled_on = var.kmsi_setting_last_enabled_on + last_used_validity_in_days = var.kmsi_setting_last_used_validity_in_days + max_allowed_sessions = var.kmsi_setting_max_allowed_sessions + ocid = var.kmsi_setting_ocid + resource_type_schema_version = var.kmsi_setting_resource_type_schema_version + tags { + #Required + key = var.kmsi_setting_tags_key + value = var.kmsi_setting_tags_value + } + token_validity_in_days = var.kmsi_setting_token_validity_in_days + tou_prompt_disabled = var.kmsi_setting_tou_prompt_disabled +} +``` + +## Argument Reference + +The following arguments are supported: + +* `attribute_sets` - (Optional) (Updatable) A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. +* `attributes` - (Optional) (Updatable) A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. +* `authorization` - (Optional) (Updatable) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `compartment_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - (Optional) (Updatable) A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `domain_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `external_id` - (Optional) (Updatable) An identifier for the Resource as defined by the Service Consumer. The externalId may simplify identification of the Resource between Service Consumer and Service Provider by allowing the Consumer to refer to the Resource with its own identifier, obviating the need to store a local mapping between the local identifier of the Resource and the identifier used by the Service Provider. Each Resource MAY include a non-empty externalId value. The value of the externalId attribute is always issued by the Service Consumer and can never be specified by the Service Provider. The Service Provider MUST always interpret the externalId as scoped to the Service Consumer's tenant. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `id` - (Optional) (Updatable) Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - (Optional) (Updatable) The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - (Optional) (Updatable) The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) (Updatable) The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - (Optional) (Updatable) The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) (Updatable) The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `idcs_last_modified_by` - (Optional) (Updatable) The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - (Optional) (Updatable) The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) (Updatable) The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - (Optional) (Updatable) The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) (Updatable) The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - (Optional) (Updatable) The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - (Optional) (Updatable) Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `kmsi_feature_enabled` - (Optional) (Updatable) Identifier represents KMSI feature is enabled or not. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `kmsi_prompt_enabled` - (Optional) (Updatable) Identifier represents KMSI to be prompted to user or not. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `kmsi_setting_id` - (Required) ID of the resource +* `last_enabled_on` - (Optional) (Updatable) Timestamp of when the KmsiSettings was enabled last time. + + **Added In:** 2203071610 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: dateTime + * uniqueness: none +* `last_used_validity_in_days` - (Optional) (Updatable) Identifier represents duration in days within which kmsi token must be used. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * idcsMaxValue: 365 + * idcsMinValue: 1 + * uniqueness: none +* `max_allowed_sessions` - (Optional) (Updatable) Identifier represents maximum KMSI sessions allowed in the system. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * idcsMaxValue: 10 + * idcsMinValue: 1 + * uniqueness: none +* `meta` - (Optional) (Updatable) A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - (Optional) (Updatable) The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - (Optional) (Updatable) The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - (Optional) (Updatable) The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - (Optional) (Updatable) Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - (Optional) (Updatable) The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `ocid` - (Optional) (Updatable) Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `resource_type_schema_version` - (Optional) (Updatable) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. +* `schemas` - (Required) (Updatable) REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tags` - (Optional) (Updatable) A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - (Required) (Updatable) Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) (Updatable) Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `token_validity_in_days` - (Optional) (Updatable) Identifier represents validity duration in days. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * idcsMaxValue: 1100 + * idcsMinValue: 1 + * uniqueness: none +* `tou_prompt_disabled` - (Optional) (Updatable) Identifier represents whether user is prompted for ToU or not. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + + +** IMPORTANT ** +Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values + +## Attributes Reference + +The following attributes are exported: + +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `external_id` - An identifier for the Resource as defined by the Service Consumer. The externalId may simplify identification of the Resource between Service Consumer and Service Provider by allowing the Consumer to refer to the Resource with its own identifier, obviating the need to store a local mapping between the local identifier of the Resource and the identifier used by the Service Provider. Each Resource MAY include a non-empty externalId value. The value of the externalId attribute is always issued by the Service Consumer and can never be specified by the Service Provider. The Service Provider MUST always interpret the externalId as scoped to the Service Consumer's tenant. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `kmsi_feature_enabled` - Identifier represents KMSI feature is enabled or not. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `kmsi_prompt_enabled` - Identifier represents KMSI to be prompted to user or not. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `last_enabled_on` - Timestamp of when the KmsiSettings was enabled last time. + + **Added In:** 2203071610 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: dateTime + * uniqueness: none +* `last_used_validity_in_days` - Identifier represents duration in days within which kmsi token must be used. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * idcsMaxValue: 365 + * idcsMinValue: 1 + * uniqueness: none +* `max_allowed_sessions` - Identifier represents maximum KMSI sessions allowed in the system. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * idcsMaxValue: 10 + * idcsMinValue: 1 + * uniqueness: none +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `token_validity_in_days` - Identifier represents validity duration in days. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * idcsMaxValue: 1100 + * idcsMinValue: 1 + * uniqueness: none +* `tou_prompt_disabled` - Identifier represents whether user is prompted for ToU or not. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + +## Timeouts + +The `timeouts` block allows you to specify [timeouts](https://registry.terraform.io/providers/oracle/oci/latest/docs/guides/changing_timeouts) for certain operations: + * `create` - (Defaults to 20 minutes), when creating the Kmsi Setting + * `update` - (Defaults to 20 minutes), when updating the Kmsi Setting + * `delete` - (Defaults to 20 minutes), when destroying the Kmsi Setting + + +## Import + +KmsiSettings can be imported using the `id`, e.g. + +``` +$ terraform import oci_identity_domains_kmsi_setting.test_kmsi_setting "idcsEndpoint/{idcsEndpoint}/kmsiSettings/{kmsiSettingId}" +``` + diff --git a/website/docs/r/identity_domains_my_api_key.html.markdown b/website/docs/r/identity_domains_my_api_key.html.markdown new file mode 100644 index 00000000000..184e7367ee7 --- /dev/null +++ b/website/docs/r/identity_domains_my_api_key.html.markdown @@ -0,0 +1,918 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_my_api_key" +sidebar_current: "docs-oci-resource-identity_domains-my_api_key" +description: |- + Provides the My Api Key resource in Oracle Cloud Infrastructure Identity Domains service +--- + +# oci_identity_domains_my_api_key +This resource provides the My Api Key resource in Oracle Cloud Infrastructure Identity Domains service. + +Add a user's api key + +## Example Usage + +```hcl +resource "oci_identity_domains_my_api_key" "test_my_api_key" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + key = var.my_api_key_key + schemas = ["urn:ietf:params:scim:schemas:oracle:idcs:apikey"] + + #Optional + authorization = var.my_api_key_authorization + description = var.my_api_key_description + id = var.my_api_key_id + ocid = var.my_api_key_ocid + resource_type_schema_version = var.my_api_key_resource_type_schema_version + tags { + #Required + key = var.my_api_key_tags_key + value = var.my_api_key_tags_value + } + user { + + #Optional + ocid = var.my_api_key_user_ocid + value = var.my_api_key_user_value + } +} +``` + +## Argument Reference + +The following arguments are supported: + +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `compartment_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - (Optional) (Updatable) A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - (Optional) Description + + **Added In:** 2101262133 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `domain_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `fingerprint` - (Optional) (Updatable) Fingerprint + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * type: string + * mutability: readOnly + * required: true + * returned: default +* `id` - (Optional) Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - (Optional) (Updatable) The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - (Optional) The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - (Optional) The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `idcs_last_modified_by` - (Optional) (Updatable) The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - (Optional) The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - (Optional) The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - (Optional) (Updatable) The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - (Optional) (Updatable) Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `key` - (Required) Key + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: true + * idcsPii: true + * type: string + * mutability: immutable + * required: true + * returned: default +* `meta` - (Optional) (Updatable) A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - (Optional) The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - (Optional) The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - (Optional) The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - (Optional) Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - (Optional) The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `ocid` - (Optional) Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. +* `schemas` - (Required) REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tags` - (Optional) A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - (Required) Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `user` - (Optional) User linked to api key + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - (Optional) (Updatable) User display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - (Optional) (Updatable) User name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) User's ocid + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI that corresponds to the user linked to this credential + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - (Optional) User's id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + + +** IMPORTANT ** +Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values + +## Attributes Reference + +The following attributes are exported: + +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - Description + + **Added In:** 2101262133 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `fingerprint` - Fingerprint + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * type: string + * mutability: readOnly + * required: true + * returned: default +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `key` - Key + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: true + * idcsPii: true + * type: string + * mutability: immutable + * required: true + * returned: default +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `user` - User linked to api key + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - User display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - User name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - User's ocid + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the user linked to this credential + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - User's id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + +## Timeouts + +The `timeouts` block allows you to specify [timeouts](https://registry.terraform.io/providers/oracle/oci/latest/docs/guides/changing_timeouts) for certain operations: + * `create` - (Defaults to 20 minutes), when creating the My Api Key + * `update` - (Defaults to 20 minutes), when updating the My Api Key + * `delete` - (Defaults to 20 minutes), when destroying the My Api Key + + +## Import + +MyApiKeys can be imported using the `id`, e.g. + +``` +$ terraform import oci_identity_domains_my_api_key.test_my_api_key "idcsEndpoint/{idcsEndpoint}/myApiKeys/{myApiKeyId}" +``` + diff --git a/website/docs/r/identity_domains_my_auth_token.html.markdown b/website/docs/r/identity_domains_my_auth_token.html.markdown new file mode 100644 index 00000000000..fbdf2a86a94 --- /dev/null +++ b/website/docs/r/identity_domains_my_auth_token.html.markdown @@ -0,0 +1,927 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_my_auth_token" +sidebar_current: "docs-oci-resource-identity_domains-my_auth_token" +description: |- + Provides the My Auth Token resource in Oracle Cloud Infrastructure Identity Domains service +--- + +# oci_identity_domains_my_auth_token +This resource provides the My Auth Token resource in Oracle Cloud Infrastructure Identity Domains service. + +Add user's auth token + +## Example Usage + +```hcl +resource "oci_identity_domains_my_auth_token" "test_my_auth_token" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + schemas = ["urn:ietf:params:scim:schemas:oracle:idcs:authToken"] + + #Optional + authorization = var.my_auth_token_authorization + description = var.my_auth_token_description + expires_on = var.my_auth_token_expires_on + id = var.my_auth_token_id + ocid = var.my_auth_token_ocid + resource_type_schema_version = var.my_auth_token_resource_type_schema_version + status = var.my_auth_token_status + tags { + #Required + key = var.my_auth_token_tags_key + value = var.my_auth_token_tags_value + } + user { + + #Optional + ocid = var.my_auth_token_user_ocid + value = var.my_auth_token_user_value + } +} +``` + +## Argument Reference + +The following arguments are supported: + +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `compartment_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - (Optional) (Updatable) A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - (Optional) Description + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `domain_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `expires_on` - (Optional) User credential expires on + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: dateTime + * uniqueness: none +* `id` - (Optional) Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - (Optional) (Updatable) The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - (Optional) The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - (Optional) The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `idcs_last_modified_by` - (Optional) (Updatable) The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - (Optional) The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - (Optional) The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - (Optional) (Updatable) The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - (Optional) (Updatable) Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `meta` - (Optional) (Updatable) A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - (Optional) The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - (Optional) The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - (Optional) The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - (Optional) Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - (Optional) The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `ocid` - (Optional) Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. +* `schemas` - (Required) REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `status` - (Optional) User credential status + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: never + * type: string + * uniqueness: none +* `tags` - (Optional) A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - (Required) Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `user` - (Optional) User linked to auth token + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - (Optional) (Updatable) User display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - (Optional) (Updatable) User name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) User's ocid + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI that corresponds to the user linked to this credential + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - (Optional) User's id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + + +** IMPORTANT ** +Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values + +## Attributes Reference + +The following attributes are exported: + +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - Description + + **Added In:** 2010242156 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `expires_on` - User credential expires on + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: dateTime + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `status` - User credential status + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: never + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `user` - User linked to auth token + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - User display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - User name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - User's ocid + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the user linked to this credential + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - User's id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + +## Timeouts + +The `timeouts` block allows you to specify [timeouts](https://registry.terraform.io/providers/oracle/oci/latest/docs/guides/changing_timeouts) for certain operations: + * `create` - (Defaults to 20 minutes), when creating the My Auth Token + * `update` - (Defaults to 20 minutes), when updating the My Auth Token + * `delete` - (Defaults to 20 minutes), when destroying the My Auth Token + + +## Import + +MyAuthTokens can be imported using the `id`, e.g. + +``` +$ terraform import oci_identity_domains_my_auth_token.test_my_auth_token "idcsEndpoint/{idcsEndpoint}/myAuthTokens/{myAuthTokenId}" +``` + diff --git a/website/docs/r/identity_domains_my_customer_secret_key.html.markdown b/website/docs/r/identity_domains_my_customer_secret_key.html.markdown new file mode 100644 index 00000000000..41b3fd6c97e --- /dev/null +++ b/website/docs/r/identity_domains_my_customer_secret_key.html.markdown @@ -0,0 +1,956 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_my_customer_secret_key" +sidebar_current: "docs-oci-resource-identity_domains-my_customer_secret_key" +description: |- + Provides the My Customer Secret Key resource in Oracle Cloud Infrastructure Identity Domains service +--- + +# oci_identity_domains_my_customer_secret_key +This resource provides the My Customer Secret Key resource in Oracle Cloud Infrastructure Identity Domains service. + +Add a user's customer secret key + +## Example Usage + +```hcl +resource "oci_identity_domains_my_customer_secret_key" "test_my_customer_secret_key" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + schemas = ["urn:ietf:params:scim:schemas:oracle:idcs:customerSecretKey"] + + #Optional + authorization = var.my_customer_secret_key_authorization + description = var.my_customer_secret_key_description + display_name = var.my_customer_secret_key_display_name + expires_on = var.my_customer_secret_key_expires_on + id = var.my_customer_secret_key_id + ocid = var.my_customer_secret_key_ocid + resource_type_schema_version = var.my_customer_secret_key_resource_type_schema_version + status = var.my_customer_secret_key_status + tags { + #Required + key = var.my_customer_secret_key_tags_key + value = var.my_customer_secret_key_tags_value + } + user { + + #Optional + ocid = var.my_customer_secret_key_user_ocid + value = var.my_customer_secret_key_user_value + } +} +``` + +## Argument Reference + +The following arguments are supported: + +* `access_key` - (Optional) (Updatable) Access key + + **SCIM++ Properties:** + * caseExact: true + * type: string + * mutability: readOnly + * required: false + * returned: default +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `compartment_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - (Optional) (Updatable) A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - (Optional) Description + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `display_name` - (Optional) Display Name + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `domain_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `expires_on` - (Optional) User credential expires on + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: dateTime + * uniqueness: none +* `id` - (Optional) Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - (Optional) (Updatable) The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - (Optional) The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - (Optional) The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `idcs_last_modified_by` - (Optional) (Updatable) The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - (Optional) The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - (Optional) The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - (Optional) (Updatable) The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - (Optional) (Updatable) Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `meta` - (Optional) (Updatable) A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - (Optional) The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - (Optional) The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - (Optional) The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - (Optional) Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - (Optional) The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `ocid` - (Optional) Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. +* `schemas` - (Required) REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `status` - (Optional) User credential status + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: never + * type: string + * uniqueness: none +* `tags` - (Optional) A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - (Required) Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `user` - (Optional) User linked to customer secret key + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - (Optional) (Updatable) User display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - (Optional) (Updatable) User name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) User's ocid + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI that corresponds to the user linked to this credential + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - (Optional) User's id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + + +** IMPORTANT ** +Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values + +## Attributes Reference + +The following attributes are exported: + +* `access_key` - Access key + + **SCIM++ Properties:** + * caseExact: true + * type: string + * mutability: readOnly + * required: false + * returned: default +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - Description + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `display_name` - Display Name + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `expires_on` - User credential expires on + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: dateTime + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `status` - User credential status + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: never + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `user` - User linked to customer secret key + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - User display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - User name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - User's ocid + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the user linked to this credential + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - User's id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + +## Timeouts + +The `timeouts` block allows you to specify [timeouts](https://registry.terraform.io/providers/oracle/oci/latest/docs/guides/changing_timeouts) for certain operations: + * `create` - (Defaults to 20 minutes), when creating the My Customer Secret Key + * `update` - (Defaults to 20 minutes), when updating the My Customer Secret Key + * `delete` - (Defaults to 20 minutes), when destroying the My Customer Secret Key + + +## Import + +MyCustomerSecretKeys can be imported using the `id`, e.g. + +``` +$ terraform import oci_identity_domains_my_customer_secret_key.test_my_customer_secret_key "idcsEndpoint/{idcsEndpoint}/myCustomerSecretKeys/{myCustomerSecretKeyId}" +``` + diff --git a/website/docs/r/identity_domains_my_oauth2client_credential.html.markdown b/website/docs/r/identity_domains_my_oauth2client_credential.html.markdown new file mode 100644 index 00000000000..463f39995dc --- /dev/null +++ b/website/docs/r/identity_domains_my_oauth2client_credential.html.markdown @@ -0,0 +1,1032 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_my_oauth2client_credential" +sidebar_current: "docs-oci-resource-identity_domains-my_oauth2client_credential" +description: |- + Provides the My O Auth2 Client Credential resource in Oracle Cloud Infrastructure Identity Domains service +--- + +# oci_identity_domains_my_oauth2client_credential +This resource provides the My O Auth2 Client Credential resource in Oracle Cloud Infrastructure Identity Domains service. + +Add a user's oauth2 client credential + +## Example Usage + +```hcl +resource "oci_identity_domains_my_oauth2client_credential" "test_my_oauth2client_credential" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + name = var.my_oauth2client_credential_name + schemas = ["urn:ietf:params:scim:schemas:oracle:idcs:oauth2ClientCredential"] + scopes { + #Required + audience = var.my_oauth2client_credential_scopes_audience + scope = var.my_oauth2client_credential_scopes_scope + } + + #Optional + authorization = var.my_oauth2client_credential_authorization + description = var.my_oauth2client_credential_description + expires_on = var.my_oauth2client_credential_expires_on + id = var.my_oauth2client_credential_id + is_reset_secret = var.my_oauth2client_credential_is_reset_secret + ocid = var.my_oauth2client_credential_ocid + resource_type_schema_version = var.my_oauth2client_credential_resource_type_schema_version + status = var.my_oauth2client_credential_status + tags { + #Required + key = var.my_oauth2client_credential_tags_key + value = var.my_oauth2client_credential_tags_value + } + user { + + #Optional + ocid = var.my_oauth2client_credential_user_ocid + value = var.my_oauth2client_credential_user_value + } +} +``` + +## Argument Reference + +The following arguments are supported: + +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `compartment_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - (Optional) (Updatable) A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - (Optional) Description + + **Added In:** 2101262133 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `domain_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `expires_on` - (Optional) User credential expires on + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: dateTime + * uniqueness: none +* `id` - (Optional) Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - (Optional) (Updatable) The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - (Optional) The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - (Optional) The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `idcs_last_modified_by` - (Optional) (Updatable) The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - (Optional) The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - (Optional) The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - (Optional) (Updatable) The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - (Optional) (Updatable) Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `is_reset_secret` - (Optional) Specifies if secret need to be reset + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: writeOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `meta` - (Optional) (Updatable) A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - (Optional) The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - (Optional) The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - (Optional) The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - (Optional) Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - (Optional) The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `name` - (Required) Name + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: true + * returned: default +* `ocid` - (Optional) Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. +* `schemas` - (Required) REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `scopes` - (Required) Scopes + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [audience, scope] + * type: complex + * mutability: readWrite + * multiValued: true + * required: true + * returned: default + * `audience` - (Required) Audience + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: true + * returned: default + * `scope` - (Required) Scope + + **SCIM++ Properties:** + * caseExact: false + * idcsScimCompliant: false + * type: string + * mutability: readWrite + * multiValued: false + * required: true + * returned: default +* `status` - (Optional) User credential status + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: never + * type: string + * uniqueness: none +* `tags` - (Optional) A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - (Required) Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `user` - (Optional) User linked to oauth2 client credential + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - (Optional) (Updatable) User display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - (Optional) (Updatable) User name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) User's ocid + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI that corresponds to the user linked to this credential + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - (Optional) User's id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + + +** IMPORTANT ** +Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values + +## Attributes Reference + +The following attributes are exported: + +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - Description + + **Added In:** 2101262133 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `expires_on` - User credential expires on + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: dateTime + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `is_reset_secret` - Specifies if secret need to be reset + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: writeOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `name` - Name + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: true + * returned: default +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `scopes` - Scopes + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [audience, scope] + * type: complex + * mutability: readWrite + * multiValued: true + * required: true + * returned: default + * `audience` - Audience + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: true + * returned: default + * `scope` - Scope + + **SCIM++ Properties:** + * caseExact: false + * idcsScimCompliant: false + * type: string + * mutability: readWrite + * multiValued: false + * required: true + * returned: default +* `status` - User credential status + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: never + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `user` - User linked to oauth2 client credential + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - User display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - User name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - User's ocid + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the user linked to this credential + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - User's id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + +## Timeouts + +The `timeouts` block allows you to specify [timeouts](https://registry.terraform.io/providers/oracle/oci/latest/docs/guides/changing_timeouts) for certain operations: + * `create` - (Defaults to 20 minutes), when creating the My O Auth2 Client Credential + * `update` - (Defaults to 20 minutes), when updating the My O Auth2 Client Credential + * `delete` - (Defaults to 20 minutes), when destroying the My O Auth2 Client Credential + + +## Import + +MyOAuth2ClientCredentials can be imported using the `id`, e.g. + +``` +$ terraform import oci_identity_domains_my_oauth2client_credential.test_my_oauth2client_credential "idcsEndpoint/{idcsEndpoint}/myOAuth2ClientCredentials/{myOAuth2ClientCredentialId}" +``` + diff --git a/website/docs/r/identity_domains_my_smtp_credential.html.markdown b/website/docs/r/identity_domains_my_smtp_credential.html.markdown new file mode 100644 index 00000000000..8edad4f1013 --- /dev/null +++ b/website/docs/r/identity_domains_my_smtp_credential.html.markdown @@ -0,0 +1,939 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_my_smtp_credential" +sidebar_current: "docs-oci-resource-identity_domains-my_smtp_credential" +description: |- + Provides the My Smtp Credential resource in Oracle Cloud Infrastructure Identity Domains service +--- + +# oci_identity_domains_my_smtp_credential +This resource provides the My Smtp Credential resource in Oracle Cloud Infrastructure Identity Domains service. + +Add a user's smtp credenials + +## Example Usage + +```hcl +resource "oci_identity_domains_my_smtp_credential" "test_my_smtp_credential" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + schemas = ["urn:ietf:params:scim:schemas:oracle:idcs:smtpCredential"] + + #Optional + authorization = var.my_smtp_credential_authorization + description = var.my_smtp_credential_description + expires_on = var.my_smtp_credential_expires_on + id = var.my_smtp_credential_id + ocid = var.my_smtp_credential_ocid + resource_type_schema_version = var.my_smtp_credential_resource_type_schema_version + status = var.my_smtp_credential_status + tags { + #Required + key = var.my_smtp_credential_tags_key + value = var.my_smtp_credential_tags_value + } + user { + + #Optional + ocid = var.my_smtp_credential_user_ocid + value = var.my_smtp_credential_user_value + } +} +``` + +## Argument Reference + +The following arguments are supported: + +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `compartment_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - (Optional) (Updatable) A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - (Optional) Description + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `domain_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `expires_on` - (Optional) User credential expires on + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: dateTime + * uniqueness: none +* `id` - (Optional) Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - (Optional) (Updatable) The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - (Optional) The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - (Optional) The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `idcs_last_modified_by` - (Optional) (Updatable) The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - (Optional) The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - (Optional) The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - (Optional) (Updatable) The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - (Optional) (Updatable) Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `meta` - (Optional) (Updatable) A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - (Optional) The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - (Optional) The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - (Optional) The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - (Optional) Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - (Optional) The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `ocid` - (Optional) Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. +* `schemas` - (Required) REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `status` - (Optional) User credential status + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: never + * type: string + * uniqueness: none +* `tags` - (Optional) A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - (Required) Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `user` - (Optional) User linked to smtp credential + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - (Optional) (Updatable) User display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - (Optional) (Updatable) User name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) User's ocid + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI that corresponds to the user linked to this credential + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - (Optional) User's id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none +* `user_name` - (Optional) (Updatable) User name + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readOnly + * required: true + * returned: default + + +** IMPORTANT ** +Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values + +## Attributes Reference + +The following attributes are exported: + +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - Description + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `expires_on` - User credential expires on + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: dateTime + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `status` - User credential status + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: never + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `user` - User linked to smtp credential + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - User display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - User name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - User's ocid + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the user linked to this credential + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - User's id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none +* `user_name` - User name + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readOnly + * required: true + * returned: default + +## Timeouts + +The `timeouts` block allows you to specify [timeouts](https://registry.terraform.io/providers/oracle/oci/latest/docs/guides/changing_timeouts) for certain operations: + * `create` - (Defaults to 20 minutes), when creating the My Smtp Credential + * `update` - (Defaults to 20 minutes), when updating the My Smtp Credential + * `delete` - (Defaults to 20 minutes), when destroying the My Smtp Credential + + +## Import + +MySmtpCredentials can be imported using the `id`, e.g. + +``` +$ terraform import oci_identity_domains_my_smtp_credential.test_my_smtp_credential "idcsEndpoint/{idcsEndpoint}/mySmtpCredentials/{mySmtpCredentialId}" +``` + diff --git a/website/docs/r/identity_domains_my_support_account.html.markdown b/website/docs/r/identity_domains_my_support_account.html.markdown new file mode 100644 index 00000000000..f4e90eaaef2 --- /dev/null +++ b/website/docs/r/identity_domains_my_support_account.html.markdown @@ -0,0 +1,927 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_my_support_account" +sidebar_current: "docs-oci-resource-identity_domains-my_support_account" +description: |- + Provides the My Support Account resource in Oracle Cloud Infrastructure Identity Domains service +--- + +# oci_identity_domains_my_support_account +This resource provides the My Support Account resource in Oracle Cloud Infrastructure Identity Domains service. + +Create a Support Account + +## Example Usage + +```hcl +resource "oci_identity_domains_my_support_account" "test_my_support_account" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + schemas = ["urn:ietf:params:scim:schemas:oracle:idcs:supportAccount"] + token = var.my_support_account_token + + #Optional + authorization = var.my_support_account_authorization + id = var.my_support_account_id + ocid = var.my_support_account_ocid + resource_type_schema_version = var.my_support_account_resource_type_schema_version + tags { + #Required + key = var.my_support_account_tags_key + value = var.my_support_account_tags_value + } + user { + + #Optional + ocid = var.my_support_account_user_ocid + value = var.my_support_account_user_value + } +} +``` + +## Argument Reference + +The following arguments are supported: + +* `my_support_account_provider` - (Optional) (Updatable) User Support Account Provider + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * idcsSearchable: true + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `compartment_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - (Optional) (Updatable) A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `domain_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `id` - (Optional) Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - (Optional) (Updatable) The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - (Optional) The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - (Optional) The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `idcs_last_modified_by` - (Optional) (Updatable) The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - (Optional) The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - (Optional) The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - (Optional) (Updatable) The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - (Optional) (Updatable) Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `meta` - (Optional) (Updatable) A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - (Optional) The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - (Optional) The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - (Optional) The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - (Optional) Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - (Optional) The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `ocid` - (Optional) Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. +* `schemas` - (Required) REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tags` - (Optional) A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - (Required) Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `token` - (Required) User Support Account Token + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * required: true + * returned: never + * type: string + * uniqueness: none +* `user` - (Optional) User linked to Support Account + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - (Optional) (Updatable) User display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - (Optional) (Updatable) User name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) User's ocid + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI that corresponds to the user linked to this Support Account + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - (Optional) User's id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none +* `user_id` - (Optional) (Updatable) User Support User Id + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readOnly + * idcsSearchable: true + * required: false + * returned: default + * type: string + * uniqueness: none + + +** IMPORTANT ** +Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values + +## Attributes Reference + +The following attributes are exported: + +* `my_support_account_provider` - User Support Account Provider + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * idcsSearchable: true + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `token` - User Support Account Token + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * required: true + * returned: never + * type: string + * uniqueness: none +* `user` - User linked to Support Account + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - User display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - User name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - User's ocid + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the user linked to this Support Account + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - User's id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none +* `user_id` - User Support User Id + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readOnly + * idcsSearchable: true + * required: false + * returned: default + * type: string + * uniqueness: none + +## Timeouts + +The `timeouts` block allows you to specify [timeouts](https://registry.terraform.io/providers/oracle/oci/latest/docs/guides/changing_timeouts) for certain operations: + * `create` - (Defaults to 20 minutes), when creating the My Support Account + * `update` - (Defaults to 20 minutes), when updating the My Support Account + * `delete` - (Defaults to 20 minutes), when destroying the My Support Account + + +## Import + +MySupportAccounts can be imported using the `id`, e.g. + +``` +$ terraform import oci_identity_domains_my_support_account.test_my_support_account "idcsEndpoint/{idcsEndpoint}/mySupportAccounts/{mySupportAccountId}" +``` + diff --git a/website/docs/r/identity_domains_my_user_db_credential.html.markdown b/website/docs/r/identity_domains_my_user_db_credential.html.markdown new file mode 100644 index 00000000000..ae9b5023ce4 --- /dev/null +++ b/website/docs/r/identity_domains_my_user_db_credential.html.markdown @@ -0,0 +1,1031 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_my_user_db_credential" +sidebar_current: "docs-oci-resource-identity_domains-my_user_db_credential" +description: |- + Provides the My User Db Credential resource in Oracle Cloud Infrastructure Identity Domains service +--- + +# oci_identity_domains_my_user_db_credential +This resource provides the My User Db Credential resource in Oracle Cloud Infrastructure Identity Domains service. + +Set a User's DbCredential + +## Example Usage + +```hcl +resource "oci_identity_domains_my_user_db_credential" "test_my_user_db_credential" { + #Required + db_password = var.my_user_db_credential_db_password + idcs_endpoint = data.oci_identity_domain.test_domain.url + schemas = ["urn:ietf:params:scim:schemas:oracle:idcs:UserDbCredentials"] + + #Optional + authorization = var.my_user_db_credential_authorization + description = var.my_user_db_credential_description + expires_on = var.my_user_db_credential_expires_on + id = var.my_user_db_credential_id + ocid = var.my_user_db_credential_ocid + resource_type_schema_version = var.my_user_db_credential_resource_type_schema_version + status = var.my_user_db_credential_status + tags { + #Required + key = var.my_user_db_credential_tags_key + value = var.my_user_db_credential_tags_value + } + user { + #Required + value = var.my_user_db_credential_user_value + + #Optional + ocid = var.my_user_db_credential_user_ocid + } +} +``` + +## Argument Reference + +The following arguments are supported: + +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `compartment_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `db_password` - (Required) The db password of the user + + **SCIM++ Properties:** + * type: string + * mutability: immutable + * returned: default + * required: true +* `delete_in_progress` - (Optional) (Updatable) A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - (Optional) Description + + **Added In:** 2109020413 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `domain_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `expired` - (Optional) (Updatable) Indicates that the db password has expired + + **SCIM++ Properties:** + * type: boolean + * mutability: readOnly + * returned: default +* `expires_on` - (Optional) User credential expires on + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: dateTime + * uniqueness: none +* `id` - (Optional) Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - (Optional) (Updatable) The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - (Optional) The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - (Optional) The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `idcs_last_modified_by` - (Optional) (Updatable) The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - (Optional) The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - (Optional) The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - (Optional) (Updatable) The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - (Optional) (Updatable) Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `last_set_date` - (Optional) (Updatable) A DateTime that specifies the date and time when the current db password was set + + **SCIM++ Properties:** + * type: dateTime + * mutability: readOnly + * returned: default +* `meta` - (Optional) (Updatable) A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - (Optional) The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - (Optional) The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - (Optional) The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - (Optional) Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - (Optional) The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `mixed_db_password` - (Optional) (Updatable) The db password of the user with mixed salt + + **SCIM++ Properties:** + * type: string + * mutability: readOnly + * returned: default + * required: false +* `mixed_salt` - (Optional) (Updatable) The mixed salt of the password + + **SCIM++ Properties:** + * type: string + * mutability: readOnly + * returned: default + * required: false +* `name` - (Optional) (Updatable) Name + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readOnly + * required: false + * returned: default +* `ocid` - (Optional) Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. +* `salt` - (Optional) (Updatable) The salt of the password + + **SCIM++ Properties:** + * type: string + * mutability: readOnly + * returned: default + * required: false +* `schemas` - (Required) REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `status` - (Optional) User credential status + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: never + * type: string + * uniqueness: none +* `tags` - (Optional) A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - (Required) Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `user` - (Optional) User linked to db credential + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - (Optional) (Updatable) User display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - (Optional) (Updatable) User name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) User's ocid + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI that corresponds to the user linked to this credential + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - (Required) User's id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: true + * returned: always + * type: string + * uniqueness: none + + +** IMPORTANT ** +Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values + +## Attributes Reference + +The following attributes are exported: + +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `db_password` - The db password of the user + + **SCIM++ Properties:** + * type: string + * mutability: immutable + * returned: default + * required: true +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - Description + + **Added In:** 2109020413 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `expired` - Indicates that the db password has expired + + **SCIM++ Properties:** + * type: boolean + * mutability: readOnly + * returned: default +* `expires_on` - User credential expires on + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: dateTime + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `last_set_date` - A DateTime that specifies the date and time when the current db password was set + + **SCIM++ Properties:** + * type: dateTime + * mutability: readOnly + * returned: default +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `mixed_db_password` - The db password of the user with mixed salt + + **SCIM++ Properties:** + * type: string + * mutability: readOnly + * returned: default + * required: false +* `mixed_salt` - The mixed salt of the password + + **SCIM++ Properties:** + * type: string + * mutability: readOnly + * returned: default + * required: false +* `name` - Name + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readOnly + * required: false + * returned: default +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `salt` - The salt of the password + + **SCIM++ Properties:** + * type: string + * mutability: readOnly + * returned: default + * required: false +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `status` - User credential status + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: never + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `user` - User linked to db credential + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - User display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - User name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - User's ocid + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the user linked to this credential + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - User's id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: true + * returned: always + * type: string + * uniqueness: none + +## Timeouts + +The `timeouts` block allows you to specify [timeouts](https://registry.terraform.io/providers/oracle/oci/latest/docs/guides/changing_timeouts) for certain operations: + * `create` - (Defaults to 20 minutes), when creating the My User Db Credential + * `update` - (Defaults to 20 minutes), when updating the My User Db Credential + * `delete` - (Defaults to 20 minutes), when destroying the My User Db Credential + + +## Import + +MyUserDbCredentials can be imported using the `id`, e.g. + +``` +$ terraform import oci_identity_domains_my_user_db_credential.test_my_user_db_credential "idcsEndpoint/{idcsEndpoint}/myUserDbCredentials/{myUserDbCredentialId}" +``` + diff --git a/website/docs/r/identity_domains_oauth2client_credential.html.markdown b/website/docs/r/identity_domains_oauth2client_credential.html.markdown new file mode 100644 index 00000000000..0174afaa88e --- /dev/null +++ b/website/docs/r/identity_domains_oauth2client_credential.html.markdown @@ -0,0 +1,1067 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_oauth2client_credential" +sidebar_current: "docs-oci-resource-identity_domains-oauth2client_credential" +description: |- + Provides the O Auth2 Client Credential resource in Oracle Cloud Infrastructure Identity Domains service +--- + +# oci_identity_domains_oauth2client_credential +This resource provides the O Auth2 Client Credential resource in Oracle Cloud Infrastructure Identity Domains service. + +Add a user's oauth2 client credential + +## Example Usage + +```hcl +resource "oci_identity_domains_oauth2client_credential" "test_oauth2client_credential" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + name = var.oauth2client_credential_name + schemas = ["urn:ietf:params:scim:schemas:oracle:idcs:oauth2ClientCredential"] + scopes { + #Required + audience = var.oauth2client_credential_scopes_audience + scope = var.oauth2client_credential_scopes_scope + } + + #Optional + attribute_sets = [] + attributes = "" + authorization = var.oauth2client_credential_authorization + description = var.oauth2client_credential_description + expires_on = var.oauth2client_credential_expires_on + id = var.oauth2client_credential_id + is_reset_secret = var.oauth2client_credential_is_reset_secret + ocid = var.oauth2client_credential_ocid + resource_type_schema_version = var.oauth2client_credential_resource_type_schema_version + status = var.oauth2client_credential_status + tags { + #Required + key = var.oauth2client_credential_tags_key + value = var.oauth2client_credential_tags_value + } + urnietfparamsscimschemasoracleidcsextensionself_change_user { + + #Optional + allow_self_change = var.oauth2client_credential_urnietfparamsscimschemasoracleidcsextensionself_change_user_allow_self_change + } + user { + + #Optional + ocid = oci_identity_domains_user.test_user.ocid + value = oci_identity_domains_user.test_user.id + } +} +``` + +## Argument Reference + +The following arguments are supported: + +* `attribute_sets` - (Optional) A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. +* `attributes` - (Optional) A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `compartment_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - (Optional) (Updatable) A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - (Optional) Description + + **Added In:** 2101262133 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `domain_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `expires_on` - (Optional) User credential expires on + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: dateTime + * uniqueness: none +* `id` - (Optional) Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - (Optional) (Updatable) The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - (Optional) The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - (Optional) The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `idcs_last_modified_by` - (Optional) (Updatable) The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - (Optional) The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - (Optional) The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - (Optional) (Updatable) The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - (Optional) (Updatable) Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `is_reset_secret` - (Optional) Specifies if secret need to be reset + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: writeOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `meta` - (Optional) (Updatable) A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - (Optional) The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - (Optional) The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - (Optional) The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - (Optional) Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - (Optional) The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `name` - (Required) Name + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: true + * returned: default +* `ocid` - (Optional) Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. +* `schemas` - (Required) REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `scopes` - (Required) Scopes + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [audience, scope] + * type: complex + * mutability: readWrite + * multiValued: true + * required: true + * returned: default + * `audience` - (Required) Audience + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: true + * returned: default + * `scope` - (Required) Scope + + **SCIM++ Properties:** + * caseExact: false + * idcsScimCompliant: false + * type: string + * mutability: readWrite + * multiValued: false + * required: true + * returned: default +* `status` - (Optional) User credential status + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: never + * type: string + * uniqueness: none +* `tags` - (Optional) A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - (Required) Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionself_change_user` - (Optional) Controls whether a user can update themselves or not via User related APIs + * `allow_self_change` - (Optional) If true, allows requesting user to update themselves. If false, requesting user can't update themself (default). + + **Added In:** 2205182039 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: writeOnly + * required: false + * returned: never + * type: boolean + * uniqueness: none +* `user` - (Optional) User linked to oauth2 client credential + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - (Optional) (Updatable) User display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - (Optional) (Updatable) User name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) User's ocid + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI that corresponds to the user linked to this credential + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - (Optional) User's id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + + +** IMPORTANT ** +Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values + +## Attributes Reference + +The following attributes are exported: + +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - Description + + **Added In:** 2101262133 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `expires_on` - User credential expires on + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: dateTime + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `is_reset_secret` - Specifies if secret need to be reset + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: writeOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `name` - Name + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: true + * returned: default +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `scopes` - Scopes + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [audience, scope] + * type: complex + * mutability: readWrite + * multiValued: true + * required: true + * returned: default + * `audience` - Audience + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: true + * returned: default + * `scope` - Scope + + **SCIM++ Properties:** + * caseExact: false + * idcsScimCompliant: false + * type: string + * mutability: readWrite + * multiValued: false + * required: true + * returned: default +* `status` - User credential status + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: never + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionself_change_user` - Controls whether a user can update themselves or not via User related APIs + * `allow_self_change` - If true, allows requesting user to update themselves. If false, requesting user can't update themself (default). + + **Added In:** 2205182039 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: writeOnly + * required: false + * returned: never + * type: boolean + * uniqueness: none +* `user` - User linked to oauth2 client credential + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - User display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - User name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - User's ocid + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the user linked to this credential + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - User's id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + +## Timeouts + +The `timeouts` block allows you to specify [timeouts](https://registry.terraform.io/providers/oracle/oci/latest/docs/guides/changing_timeouts) for certain operations: + * `create` - (Defaults to 20 minutes), when creating the O Auth2 Client Credential + * `update` - (Defaults to 20 minutes), when updating the O Auth2 Client Credential + * `delete` - (Defaults to 20 minutes), when destroying the O Auth2 Client Credential + + +## Import + +OAuth2ClientCredentials can be imported using the `id`, e.g. + +``` +$ terraform import oci_identity_domains_oauth2client_credential.test_oauth2client_credential "idcsEndpoint/{idcsEndpoint}/oAuth2ClientCredentials/{oAuth2ClientCredentialId}" +``` + diff --git a/website/docs/r/identity_domains_password_policy.html.markdown b/website/docs/r/identity_domains_password_policy.html.markdown new file mode 100644 index 00000000000..91b7b17be18 --- /dev/null +++ b/website/docs/r/identity_domains_password_policy.html.markdown @@ -0,0 +1,1610 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_password_policy" +sidebar_current: "docs-oci-resource-identity_domains-password_policy" +description: |- + Provides the Password Policy resource in Oracle Cloud Infrastructure Identity Domains service +--- + +# oci_identity_domains_password_policy +This resource provides the Password Policy resource in Oracle Cloud Infrastructure Identity Domains service. + +Create a Password Policy + +## Example Usage + +```hcl +resource "oci_identity_domains_password_policy" "test_password_policy" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + name = var.password_policy_name + schemas = ["urn:ietf:params:scim:schemas:oracle:idcs:PasswordPolicy"] + + #Optional + allowed_chars = var.password_policy_allowed_chars + attribute_sets = [] + attributes = "" + authorization = var.password_policy_authorization + description = var.password_policy_description + dictionary_delimiter = var.password_policy_dictionary_delimiter + dictionary_location = var.password_policy_dictionary_location + dictionary_word_disallowed = var.password_policy_dictionary_word_disallowed + disallowed_chars = var.password_policy_disallowed_chars + disallowed_substrings = var.password_policy_disallowed_substrings + external_id = "externalId" + first_name_disallowed = var.password_policy_first_name_disallowed + force_password_reset = var.password_policy_force_password_reset + groups { + #Required + value = oci_identity_domains_group.test_group.id + } + id = var.password_policy_id + last_name_disallowed = var.password_policy_last_name_disallowed + lockout_duration = var.password_policy_lockout_duration + max_incorrect_attempts = var.password_policy_max_incorrect_attempts + max_length = var.password_policy_max_length + max_repeated_chars = var.password_policy_max_repeated_chars + max_special_chars = var.password_policy_max_special_chars + min_alpha_numerals = var.password_policy_min_alpha_numerals + min_alphas = var.password_policy_min_alphas + min_length = var.password_policy_min_length + min_lower_case = var.password_policy_min_lower_case + min_numerals = var.password_policy_min_numerals + min_password_age = var.password_policy_min_password_age + min_special_chars = var.password_policy_min_special_chars + min_unique_chars = var.password_policy_min_unique_chars + min_upper_case = var.password_policy_min_upper_case + num_passwords_in_history = var.password_policy_num_passwords_in_history + ocid = var.password_policy_ocid + password_expire_warning = var.password_policy_password_expire_warning + password_expires_after = var.password_policy_password_expires_after + password_strength = var.password_policy_password_strength + priority = var.password_policy_priority + required_chars = var.password_policy_required_chars + resource_type_schema_version = var.password_policy_resource_type_schema_version + starts_with_alphabet = var.password_policy_starts_with_alphabet + tags { + #Required + key = var.password_policy_tags_key + value = var.password_policy_tags_value + } + user_name_disallowed = var.password_policy_user_name_disallowed +} +``` + +## Argument Reference + +The following arguments are supported: + +* `allowed_chars` - (Optional) (Updatable) A String value whose contents indicate a set of characters that can appear, in any sequence, in a password value + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `attribute_sets` - (Optional) (Updatable) A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. +* `attributes` - (Optional) (Updatable) A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. +* `authorization` - (Optional) (Updatable) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `compartment_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `configured_password_policy_rules` - (Optional) (Updatable) List of password policy rules that have values set. This map of stringKey:stringValue pairs can be used to aid users while setting/resetting password + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [key] + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - (Required) (Updatable) The specific password policy rule + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readOnly + * required: true + * returned: always + * type: string + * uniqueness: none + * `value` - (Required) (Updatable) User-friendly text that describes a specific password policy rule + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readOnly + * required: true + * returned: always + * type: string + * uniqueness: none +* `delete_in_progress` - (Optional) (Updatable) A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - (Optional) (Updatable) A String that describes the password policy + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `dictionary_delimiter` - (Optional) (Updatable) A delimiter used to separate characters in the dictionary file + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `dictionary_location` - (Optional) (Updatable) A Reference value that contains the URI of a dictionary of words not allowed to appear within a password value + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `dictionary_word_disallowed` - (Optional) (Updatable) Indicates whether the password can match a dictionary word + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `disallowed_chars` - (Optional) (Updatable) A String value whose contents indicate a set of characters that cannot appear, in any sequence, in a password value + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `disallowed_substrings` - (Optional) (Updatable) A String value whose contents indicate a set of substrings that cannot appear, in any sequence, in a password value + + **SCIM++ Properties:** + * caseExact: false + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `domain_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `external_id` - (Optional) (Updatable) An identifier for the Resource as defined by the Service Consumer. The externalId may simplify identification of the Resource between Service Consumer and Service Provider by allowing the Consumer to refer to the Resource with its own identifier, obviating the need to store a local mapping between the local identifier of the Resource and the identifier used by the Service Provider. Each Resource MAY include a non-empty externalId value. The value of the externalId attribute is always issued by the Service Consumer and can never be specified by the Service Provider. The Service Provider MUST always interpret the externalId as scoped to the Service Consumer's tenant. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `first_name_disallowed` - (Optional) (Updatable) Indicates a sequence of characters that match the user's first name of given name cannot be the password. Password validation against policy will be ignored if length of first name is less than or equal to 3 characters. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `force_password_reset` - (Optional) (Updatable) Indicates whether all of the users should be forced to reset their password on the next login (to comply with new password policy changes) + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: writeOnly + * required: false + * returned: never + * type: boolean + * uniqueness: none +* `groups` - (Optional) (Updatable) A list of groups that the password policy belongs to. + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - (Optional) (Updatable) Group Display Name + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the corresponding Group resource to which the password policy belongs + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - (Required) (Updatable) The identifier of the group. + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: string + * uniqueness: none +* `id` - (Optional) (Updatable) Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - (Optional) (Updatable) The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - (Optional) (Updatable) The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) (Updatable) The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - (Optional) (Updatable) The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) (Updatable) The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `idcs_last_modified_by` - (Optional) (Updatable) The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - (Optional) (Updatable) The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) (Updatable) The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - (Optional) (Updatable) The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) (Updatable) The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - (Optional) (Updatable) The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - (Optional) (Updatable) Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `last_name_disallowed` - (Optional) (Updatable) Indicates a sequence of characters that match the user's last name of given name cannot be the password. Password validation against policy will be ignored if length of last name is less than or equal to 3 characters. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `lockout_duration` - (Optional) (Updatable) The time period in minutes to lock out a user account when the threshold of invalid login attempts is reached. The available range is from 5 through 1440 minutes (24 hours). + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `max_incorrect_attempts` - (Optional) (Updatable) An integer that represents the maximum number of failed logins before an account is locked + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `max_length` - (Optional) (Updatable) The maximum password length (in characters). A value of 0 or no value indicates no maximum length restriction. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `max_repeated_chars` - (Optional) (Updatable) The maximum number of repeated characters allowed in a password. A value of 0 or no value indicates no such restriction. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `max_special_chars` - (Optional) (Updatable) The maximum number of special characters in a password. A value of 0 or no value indicates no maximum special characters restriction. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `meta` - (Optional) (Updatable) A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - (Optional) (Updatable) The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - (Optional) (Updatable) The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - (Optional) (Updatable) The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - (Optional) (Updatable) Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - (Optional) (Updatable) The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `min_alpha_numerals` - (Optional) (Updatable) The minimum number of a combination of alphabetic and numeric characters in a password. A value of 0 or no value indicates no minimum alphanumeric character restriction. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `min_alphas` - (Optional) (Updatable) The minimum number of alphabetic characters in a password. A value of 0 or no value indicates no minimum alphas restriction. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `min_length` - (Optional) (Updatable) The minimum password length (in characters). A value of 0 or no value indicates no minimum length restriction. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `min_lower_case` - (Optional) (Updatable) The minimum number of lowercase alphabetic characters in a password. A value of 0 or no value indicates no minimum lowercase restriction. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `min_numerals` - (Optional) (Updatable) The minimum number of numeric characters in a password. A value of 0 or no value indicates no minimum numeric character restriction. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `min_password_age` - (Optional) (Updatable) Minimum time after which the user can resubmit the reset password request + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `min_special_chars` - (Optional) (Updatable) The minimum number of special characters in a password. A value of 0 or no value indicates no minimum special characters restriction. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `min_unique_chars` - (Optional) (Updatable) The minimum number of unique characters in a password. A value of 0 or no value indicates no minimum unique characters restriction. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `min_upper_case` - (Optional) (Updatable) The minimum number of uppercase alphabetic characters in a password. A value of 0 or no value indicates no minimum uppercase restriction. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `name` - (Required) (Updatable) A String that is the name of the policy to display to the user. This is the only mandatory attribute for a password policy. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: true + * returned: always + * type: string + * uniqueness: server +* `num_passwords_in_history` - (Optional) (Updatable) The number of passwords that will be kept in history that may not be used as a password + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `ocid` - (Optional) (Updatable) Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `password_expire_warning` - (Optional) (Updatable) An integer indicating the number of days before which the user should be warned about password expiry. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `password_expires_after` - (Optional) (Updatable) The number of days after which the password expires automatically + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `password_strength` - (Optional) (Updatable) Indicates whether the password policy is configured as Simple, Standard, or Custom. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `priority` - (Optional) (Updatable) Password policy priority + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * idcsMinValue: 1 + * uniqueness: server +* `required_chars` - (Optional) (Updatable) A String value whose contents indicate a set of characters that must appear, in any sequence, in a password value + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `resource_type_schema_version` - (Optional) (Updatable) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. +* `schemas` - (Required) (Updatable) REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `starts_with_alphabet` - (Optional) (Updatable) Indicates that the password must begin with an alphabetic character + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `tags` - (Optional) (Updatable) A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - (Required) (Updatable) Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) (Updatable) Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `user_name_disallowed` - (Optional) (Updatable) Indicates a sequence of characters that match the username cannot be the password. Password validation against policy will be ignored if length of user name is less than or equal to 3 characters. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + + +** IMPORTANT ** +Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values + +## Attributes Reference + +The following attributes are exported: + +* `allowed_chars` - A String value whose contents indicate a set of characters that can appear, in any sequence, in a password value + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `configured_password_policy_rules` - List of password policy rules that have values set. This map of stringKey:stringValue pairs can be used to aid users while setting/resetting password + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [key] + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - The specific password policy rule + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readOnly + * required: true + * returned: always + * type: string + * uniqueness: none + * `value` - User-friendly text that describes a specific password policy rule + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readOnly + * required: true + * returned: always + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - A String that describes the password policy + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `dictionary_delimiter` - A delimiter used to separate characters in the dictionary file + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `dictionary_location` - A Reference value that contains the URI of a dictionary of words not allowed to appear within a password value + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `dictionary_word_disallowed` - Indicates whether the password can match a dictionary word + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `disallowed_chars` - A String value whose contents indicate a set of characters that cannot appear, in any sequence, in a password value + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `disallowed_substrings` - A String value whose contents indicate a set of substrings that cannot appear, in any sequence, in a password value + + **SCIM++ Properties:** + * caseExact: false + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `external_id` - An identifier for the Resource as defined by the Service Consumer. The externalId may simplify identification of the Resource between Service Consumer and Service Provider by allowing the Consumer to refer to the Resource with its own identifier, obviating the need to store a local mapping between the local identifier of the Resource and the identifier used by the Service Provider. Each Resource MAY include a non-empty externalId value. The value of the externalId attribute is always issued by the Service Consumer and can never be specified by the Service Provider. The Service Provider MUST always interpret the externalId as scoped to the Service Consumer's tenant. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `first_name_disallowed` - Indicates a sequence of characters that match the user's first name of given name cannot be the password. Password validation against policy will be ignored if length of first name is less than or equal to 3 characters. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `force_password_reset` - Indicates whether all of the users should be forced to reset their password on the next login (to comply with new password policy changes) + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: writeOnly + * required: false + * returned: never + * type: boolean + * uniqueness: none +* `groups` - A list of groups that the password policy belongs to. + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - Group Display Name + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the corresponding Group resource to which the password policy belongs + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The identifier of the group. + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: string + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `last_name_disallowed` - Indicates a sequence of characters that match the user's last name of given name cannot be the password. Password validation against policy will be ignored if length of last name is less than or equal to 3 characters. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `lockout_duration` - The time period in minutes to lock out a user account when the threshold of invalid login attempts is reached. The available range is from 5 through 1440 minutes (24 hours). + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `max_incorrect_attempts` - An integer that represents the maximum number of failed logins before an account is locked + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `max_length` - The maximum password length (in characters). A value of 0 or no value indicates no maximum length restriction. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `max_repeated_chars` - The maximum number of repeated characters allowed in a password. A value of 0 or no value indicates no such restriction. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `max_special_chars` - The maximum number of special characters in a password. A value of 0 or no value indicates no maximum special characters restriction. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `min_alpha_numerals` - The minimum number of a combination of alphabetic and numeric characters in a password. A value of 0 or no value indicates no minimum alphanumeric character restriction. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `min_alphas` - The minimum number of alphabetic characters in a password. A value of 0 or no value indicates no minimum alphas restriction. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `min_length` - The minimum password length (in characters). A value of 0 or no value indicates no minimum length restriction. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `min_lower_case` - The minimum number of lowercase alphabetic characters in a password. A value of 0 or no value indicates no minimum lowercase restriction. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `min_numerals` - The minimum number of numeric characters in a password. A value of 0 or no value indicates no minimum numeric character restriction. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `min_password_age` - Minimum time after which the user can resubmit the reset password request + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `min_special_chars` - The minimum number of special characters in a password. A value of 0 or no value indicates no minimum special characters restriction. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `min_unique_chars` - The minimum number of unique characters in a password. A value of 0 or no value indicates no minimum unique characters restriction. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `min_upper_case` - The minimum number of uppercase alphabetic characters in a password. A value of 0 or no value indicates no minimum uppercase restriction. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `name` - A String that is the name of the policy to display to the user. This is the only mandatory attribute for a password policy. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: true + * returned: always + * type: string + * uniqueness: server +* `num_passwords_in_history` - The number of passwords that will be kept in history that may not be used as a password + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `password_expire_warning` - An integer indicating the number of days before which the user should be warned about password expiry. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `password_expires_after` - The number of days after which the password expires automatically + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none +* `password_strength` - Indicates whether the password policy is configured as Simple, Standard, or Custom. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `priority` - Password policy priority + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * idcsMinValue: 1 + * uniqueness: server +* `required_chars` - A String value whose contents indicate a set of characters that must appear, in any sequence, in a password value + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `starts_with_alphabet` - Indicates that the password must begin with an alphabetic character + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `user_name_disallowed` - Indicates a sequence of characters that match the username cannot be the password. Password validation against policy will be ignored if length of user name is less than or equal to 3 characters. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + +## Timeouts + +The `timeouts` block allows you to specify [timeouts](https://registry.terraform.io/providers/oracle/oci/latest/docs/guides/changing_timeouts) for certain operations: + * `create` - (Defaults to 20 minutes), when creating the Password Policy + * `update` - (Defaults to 20 minutes), when updating the Password Policy + * `delete` - (Defaults to 20 minutes), when destroying the Password Policy + + +## Import + +PasswordPolicies can be imported using the `id`, e.g. + +``` +$ terraform import oci_identity_domains_password_policy.test_password_policy "idcsEndpoint/{idcsEndpoint}/passwordPolicies/{passwordPolicyId}" +``` + diff --git a/website/docs/r/identity_domains_smtp_credential.html.markdown b/website/docs/r/identity_domains_smtp_credential.html.markdown new file mode 100644 index 00000000000..4f03068f3fe --- /dev/null +++ b/website/docs/r/identity_domains_smtp_credential.html.markdown @@ -0,0 +1,974 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_smtp_credential" +sidebar_current: "docs-oci-resource-identity_domains-smtp_credential" +description: |- + Provides the Smtp Credential resource in Oracle Cloud Infrastructure Identity Domains service +--- + +# oci_identity_domains_smtp_credential +This resource provides the Smtp Credential resource in Oracle Cloud Infrastructure Identity Domains service. + +Add a user's smtp credenials + +## Example Usage + +```hcl +resource "oci_identity_domains_smtp_credential" "test_smtp_credential" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + schemas = ["urn:ietf:params:scim:schemas:oracle:idcs:smtpCredential"] + + #Optional + attribute_sets = [] + attributes = "" + authorization = var.smtp_credential_authorization + description = var.smtp_credential_description + expires_on = var.smtp_credential_expires_on + id = var.smtp_credential_id + ocid = var.smtp_credential_ocid + resource_type_schema_version = var.smtp_credential_resource_type_schema_version + status = var.smtp_credential_status + tags { + #Required + key = var.smtp_credential_tags_key + value = var.smtp_credential_tags_value + } + urnietfparamsscimschemasoracleidcsextensionself_change_user { + + #Optional + allow_self_change = var.smtp_credential_urnietfparamsscimschemasoracleidcsextensionself_change_user_allow_self_change + } + user { + + #Optional + ocid = oci_identity_domains_user.test_user.ocid + value = oci_identity_domains_user.test_user.id + } +} +``` + +## Argument Reference + +The following arguments are supported: + +* `attribute_sets` - (Optional) A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. +* `attributes` - (Optional) A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `compartment_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - (Optional) (Updatable) A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - (Optional) Description + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `domain_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `expires_on` - (Optional) User credential expires on + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: dateTime + * uniqueness: none +* `id` - (Optional) Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - (Optional) (Updatable) The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - (Optional) The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - (Optional) The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `idcs_last_modified_by` - (Optional) (Updatable) The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - (Optional) The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - (Optional) The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - (Optional) (Updatable) The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - (Optional) (Updatable) Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `meta` - (Optional) (Updatable) A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - (Optional) The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - (Optional) The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - (Optional) The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - (Optional) Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - (Optional) The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `ocid` - (Optional) Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. +* `schemas` - (Required) REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `status` - (Optional) User credential status + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: never + * type: string + * uniqueness: none +* `tags` - (Optional) A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - (Required) Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionself_change_user` - (Optional) Controls whether a user can update themselves or not via User related APIs + * `allow_self_change` - (Optional) If true, allows requesting user to update themselves. If false, requesting user can't update themself (default). + + **Added In:** 2205182039 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: writeOnly + * required: false + * returned: never + * type: boolean + * uniqueness: none +* `user` - (Optional) User linked to smtp credential + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - (Optional) (Updatable) User display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - (Optional) (Updatable) User name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) User's ocid + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI that corresponds to the user linked to this credential + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - (Optional) User's id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none +* `user_name` - (Optional) (Updatable) User name + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readOnly + * required: true + * returned: default + + +** IMPORTANT ** +Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values + +## Attributes Reference + +The following attributes are exported: + +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - Description + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `expires_on` - User credential expires on + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: dateTime + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `status` - User credential status + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: never + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionself_change_user` - Controls whether a user can update themselves or not via User related APIs + * `allow_self_change` - If true, allows requesting user to update themselves. If false, requesting user can't update themself (default). + + **Added In:** 2205182039 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: writeOnly + * required: false + * returned: never + * type: boolean + * uniqueness: none +* `user` - User linked to smtp credential + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - User display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - User name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - User's ocid + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the user linked to this credential + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - User's id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none +* `user_name` - User name + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readOnly + * required: true + * returned: default + +## Timeouts + +The `timeouts` block allows you to specify [timeouts](https://registry.terraform.io/providers/oracle/oci/latest/docs/guides/changing_timeouts) for certain operations: + * `create` - (Defaults to 20 minutes), when creating the Smtp Credential + * `update` - (Defaults to 20 minutes), when updating the Smtp Credential + * `delete` - (Defaults to 20 minutes), when destroying the Smtp Credential + + +## Import + +SmtpCredentials can be imported using the `id`, e.g. + +``` +$ terraform import oci_identity_domains_smtp_credential.test_smtp_credential "idcsEndpoint/{idcsEndpoint}/smtpCredentials/{smtpCredentialId}" +``` + diff --git a/website/docs/r/identity_domains_user.html.markdown b/website/docs/r/identity_domains_user.html.markdown new file mode 100644 index 00000000000..2170077c8fe --- /dev/null +++ b/website/docs/r/identity_domains_user.html.markdown @@ -0,0 +1,8172 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_user" +sidebar_current: "docs-oci-resource-identity_domains-user" +description: |- + Provides the User resource in Oracle Cloud Infrastructure Identity Domains service +--- + +# oci_identity_domains_user +This resource provides the User resource in Oracle Cloud Infrastructure Identity Domains service. + +Create a User + +## Example Usage + +```hcl +resource "oci_identity_domains_user" "test_user" { + #Required + idcs_endpoint = data.oci_identity_domain.test_domain.url + name { + #Required + family_name = var.user_name_family_name + + #Optional + formatted = var.user_name_formatted + given_name = var.user_name_given_name + honorific_prefix = var.user_name_honorific_prefix + honorific_suffix = var.user_name_honorific_suffix + middle_name = var.user_name_middle_name + } + schemas = ["urn:ietf:params:scim:schemas:core:2.0:User"] + user_name = "userName" + + #Optional + active = var.user_active + addresses { + #Required + type = var.user_addresses_type + + #Optional + country = var.user_addresses_country + formatted = var.user_addresses_formatted + locality = var.user_addresses_locality + postal_code = var.user_addresses_postal_code + primary = var.user_addresses_primary + region = var.user_addresses_region + street_address = var.user_addresses_street_address + } + attribute_sets = [] + attributes = "" + authorization = var.user_authorization + description = var.user_description + display_name = var.user_display_name + emails { + #Required + type = var.user_emails_type + value = var.user_emails_value + + #Optional + primary = var.user_emails_primary + secondary = var.user_emails_secondary + verified = var.user_emails_verified + } + entitlements { + #Required + type = var.user_entitlements_type + value = var.user_entitlements_value + + #Optional + display = var.user_entitlements_display + primary = var.user_entitlements_primary + } + external_id = "externalId" + id = var.user_id + ims { + #Required + type = var.user_ims_type + value = var.user_ims_value + + #Optional + display = var.user_ims_display + primary = var.user_ims_primary + } + locale = var.user_locale + nick_name = var.user_nick_name + ocid = var.user_ocid + password = var.user_password + phone_numbers { + #Required + type = var.user_phone_numbers_type + value = var.user_phone_numbers_value + + #Optional + primary = var.user_phone_numbers_primary + } + photos { + #Required + type = var.user_photos_type + value = var.user_photos_value + + #Optional + display = var.user_photos_display + primary = var.user_photos_primary + } + preferred_language = var.user_preferred_language + profile_url = var.user_profile_url + resource_type_schema_version = var.user_resource_type_schema_version + roles { + #Required + type = var.user_roles_type + value = var.user_roles_value + + #Optional + display = var.user_roles_display + primary = var.user_roles_primary + } + tags { + #Required + key = var.user_tags_key + value = var.user_tags_value + } + timezone = var.user_timezone + title = var.user_title + urnietfparamsscimschemasextensionenterprise20user { + + #Optional + cost_center = var.user_urnietfparamsscimschemasextensionenterprise20user_cost_center + department = var.user_urnietfparamsscimschemasextensionenterprise20user_department + division = var.user_urnietfparamsscimschemasextensionenterprise20user_division + employee_number = var.user_urnietfparamsscimschemasextensionenterprise20user_employee_number + manager { + + #Optional + value = var.user_urnietfparamsscimschemasextensionenterprise20user_manager_value + } + organization = var.user_urnietfparamsscimschemasextensionenterprise20user_organization + } + urnietfparamsscimschemasoracleidcsextension_oci_tags { + + #Optional + defined_tags { + #Required + key = var.user_urnietfparamsscimschemasoracleidcsextension_oci_tags_defined_tags_key + namespace = var.user_urnietfparamsscimschemasoracleidcsextension_oci_tags_defined_tags_namespace + value = var.user_urnietfparamsscimschemasoracleidcsextension_oci_tags_defined_tags_value + } + freeform_tags { + #Required + key = var.user_urnietfparamsscimschemasoracleidcsextension_oci_tags_freeform_tags_key + value = var.user_urnietfparamsscimschemasoracleidcsextension_oci_tags_freeform_tags_value + } + } + urnietfparamsscimschemasoracleidcsextensionadaptive_user { + + #Optional + risk_level = var.user_urnietfparamsscimschemasoracleidcsextensionadaptive_user_risk_level + risk_scores { + #Required + last_update_timestamp = var.user_urnietfparamsscimschemasoracleidcsextensionadaptive_user_risk_scores_last_update_timestamp + risk_level = var.user_urnietfparamsscimschemasoracleidcsextensionadaptive_user_risk_scores_risk_level + score = var.user_urnietfparamsscimschemasoracleidcsextensionadaptive_user_risk_scores_score + value = var.user_urnietfparamsscimschemasoracleidcsextensionadaptive_user_risk_scores_value + + #Optional + source = var.user_urnietfparamsscimschemasoracleidcsextensionadaptive_user_risk_scores_source + status = var.user_urnietfparamsscimschemasoracleidcsextensionadaptive_user_risk_scores_status + } + } + urnietfparamsscimschemasoracleidcsextensioncapabilities_user { + + #Optional + can_use_api_keys = true + can_use_auth_tokens = true + can_use_console_password = true + can_use_customer_secret_keys = true + can_use_db_credentials = true + can_use_oauth2client_credentials = true + can_use_smtp_credentials = true + } + urnietfparamsscimschemasoracleidcsextensiondb_credentials_user { + + #Optional + db_user_name = "dbUserName" + } + urnietfparamsscimschemasoracleidcsextensionkerberos_user_user { + + #Optional + realm_users { + #Required + value = var.user_urnietfparamsscimschemasoracleidcsextensionkerberos_user_user_realm_users_value + + #Optional + principal_name = var.user_urnietfparamsscimschemasoracleidcsextensionkerberos_user_user_realm_users_principal_name + realm_name = var.user_urnietfparamsscimschemasoracleidcsextensionkerberos_user_user_realm_users_realm_name + } + } + urnietfparamsscimschemasoracleidcsextensionmfa_user { + + #Optional + bypass_codes { + #Required + value = var.user_urnietfparamsscimschemasoracleidcsextensionmfa_user_bypass_codes_value + } + devices { + #Required + value = var.user_urnietfparamsscimschemasoracleidcsextensionmfa_user_devices_value + + #Optional + authentication_method = var.user_urnietfparamsscimschemasoracleidcsextensionmfa_user_devices_authentication_method + display = var.user_urnietfparamsscimschemasoracleidcsextensionmfa_user_devices_display + factor_status = var.user_urnietfparamsscimschemasoracleidcsextensionmfa_user_devices_factor_status + factor_type = var.user_urnietfparamsscimschemasoracleidcsextensionmfa_user_devices_factor_type + last_sync_time = var.user_urnietfparamsscimschemasoracleidcsextensionmfa_user_devices_last_sync_time + status = var.user_urnietfparamsscimschemasoracleidcsextensionmfa_user_devices_status + third_party_vendor_name = var.user_urnietfparamsscimschemasoracleidcsextensionmfa_user_devices_third_party_vendor_name + } + login_attempts = var.user_urnietfparamsscimschemasoracleidcsextensionmfa_user_login_attempts + mfa_enabled_on = var.user_urnietfparamsscimschemasoracleidcsextensionmfa_user_mfa_enabled_on + mfa_ignored_apps = var.user_urnietfparamsscimschemasoracleidcsextensionmfa_user_mfa_ignored_apps + mfa_status = var.user_urnietfparamsscimschemasoracleidcsextensionmfa_user_mfa_status + preferred_authentication_factor = var.user_urnietfparamsscimschemasoracleidcsextensionmfa_user_preferred_authentication_factor + preferred_authentication_method = var.user_urnietfparamsscimschemasoracleidcsextensionmfa_user_preferred_authentication_method + preferred_device { + #Required + value = var.user_urnietfparamsscimschemasoracleidcsextensionmfa_user_preferred_device_value + + #Optional + display = var.user_urnietfparamsscimschemasoracleidcsextensionmfa_user_preferred_device_display + } + preferred_third_party_vendor = var.user_urnietfparamsscimschemasoracleidcsextensionmfa_user_preferred_third_party_vendor + trusted_user_agents { + #Required + value = var.user_urnietfparamsscimschemasoracleidcsextensionmfa_user_trusted_user_agents_value + + #Optional + display = var.user_urnietfparamsscimschemasoracleidcsextensionmfa_user_trusted_user_agents_display + } + } + urnietfparamsscimschemasoracleidcsextensionpasswordless_user { + + #Optional + factor_identifier { + #Required + value = var.user_urnietfparamsscimschemasoracleidcsextensionpasswordless_user_factor_identifier_value + + #Optional + display = var.user_urnietfparamsscimschemasoracleidcsextensionpasswordless_user_factor_identifier_display + } + factor_method = var.user_urnietfparamsscimschemasoracleidcsextensionpasswordless_user_factor_method + factor_type = var.user_urnietfparamsscimschemasoracleidcsextensionpasswordless_user_factor_type + } + urnietfparamsscimschemasoracleidcsextensionposix_user { + + #Optional + gecos = var.user_urnietfparamsscimschemasoracleidcsextensionposix_user_gecos + gid_number = var.user_urnietfparamsscimschemasoracleidcsextensionposix_user_gid_number + home_directory = var.user_urnietfparamsscimschemasoracleidcsextensionposix_user_home_directory + login_shell = var.user_urnietfparamsscimschemasoracleidcsextensionposix_user_login_shell + uid_number = var.user_urnietfparamsscimschemasoracleidcsextensionposix_user_uid_number + } + urnietfparamsscimschemasoracleidcsextensionsecurity_questions_user { + + #Optional + sec_questions { + #Required + answer = var.user_urnietfparamsscimschemasoracleidcsextensionsecurity_questions_user_sec_questions_answer + value = var.user_urnietfparamsscimschemasoracleidcsextensionsecurity_questions_user_sec_questions_value + + #Optional + hint_text = var.user_urnietfparamsscimschemasoracleidcsextensionsecurity_questions_user_sec_questions_hint_text + } + } + urnietfparamsscimschemasoracleidcsextensionself_change_user { + + #Optional + allow_self_change = var.user_urnietfparamsscimschemasoracleidcsextensionself_change_user_allow_self_change + } + urnietfparamsscimschemasoracleidcsextensionself_registration_user { + #Required + self_registration_profile { + #Required + value = var.user_urnietfparamsscimschemasoracleidcsextensionself_registration_user_self_registration_profile_value + + #Optional + display = var.user_urnietfparamsscimschemasoracleidcsextensionself_registration_user_self_registration_profile_display + } + + #Optional + consent_granted = var.user_urnietfparamsscimschemasoracleidcsextensionself_registration_user_consent_granted + user_token = var.user_urnietfparamsscimschemasoracleidcsextensionself_registration_user_user_token + } + urnietfparamsscimschemasoracleidcsextensionsff_user { + + #Optional + sff_auth_keys = var.user_urnietfparamsscimschemasoracleidcsextensionsff_user_sff_auth_keys + } + urnietfparamsscimschemasoracleidcsextensionsocial_account_user { + + #Optional + social_accounts { + #Required + value = var.user_urnietfparamsscimschemasoracleidcsextensionsocial_account_user_social_accounts_value + + #Optional + display = var.user_urnietfparamsscimschemasoracleidcsextensionsocial_account_user_social_accounts_display + } + } + urnietfparamsscimschemasoracleidcsextensionterms_of_use_user { + + #Optional + terms_of_use_consents { + #Required + value = var.user_urnietfparamsscimschemasoracleidcsextensionterms_of_use_user_terms_of_use_consents_value + } + } + urnietfparamsscimschemasoracleidcsextensionuser_state_user { + + #Optional + locked { + + #Optional + expired = var.user_urnietfparamsscimschemasoracleidcsextensionuser_state_user_locked_expired + lock_date = var.user_urnietfparamsscimschemasoracleidcsextensionuser_state_user_locked_lock_date + on = var.user_urnietfparamsscimschemasoracleidcsextensionuser_state_user_locked_on + reason = var.user_urnietfparamsscimschemasoracleidcsextensionuser_state_user_locked_reason + } + max_concurrent_sessions = var.user_urnietfparamsscimschemasoracleidcsextensionuser_state_user_max_concurrent_sessions + recovery_locked { + + #Optional + lock_date = var.user_urnietfparamsscimschemasoracleidcsextensionuser_state_user_recovery_locked_lock_date + on = var.user_urnietfparamsscimschemasoracleidcsextensionuser_state_user_recovery_locked_on + } + } + urnietfparamsscimschemasoracleidcsextensionuser_user { + + #Optional + user_provider = var.user_urnietfparamsscimschemasoracleidcsextensionuser_user_user_provider + account_recovery_required = var.user_urnietfparamsscimschemasoracleidcsextensionuser_user_account_recovery_required + bypass_notification = var.user_urnietfparamsscimschemasoracleidcsextensionuser_user_bypass_notification + creation_mechanism = var.user_urnietfparamsscimschemasoracleidcsextensionuser_user_creation_mechanism + delegated_authentication_target_app { + #Required + type = var.user_urnietfparamsscimschemasoracleidcsextensionuser_user_delegated_authentication_target_app_type + value = var.user_urnietfparamsscimschemasoracleidcsextensionuser_user_delegated_authentication_target_app_value + + #Optional + display = var.user_urnietfparamsscimschemasoracleidcsextensionuser_user_delegated_authentication_target_app_display + } + do_not_show_getting_started = var.user_urnietfparamsscimschemasoracleidcsextensionuser_user_do_not_show_getting_started + is_authentication_delegated = var.user_urnietfparamsscimschemasoracleidcsextensionuser_user_is_authentication_delegated + is_federated_user = var.user_urnietfparamsscimschemasoracleidcsextensionuser_user_is_federated_user + is_group_membership_normalized = var.user_urnietfparamsscimschemasoracleidcsextensionuser_user_is_group_membership_normalized + is_group_membership_synced_to_users_groups = var.user_urnietfparamsscimschemasoracleidcsextensionuser_user_is_group_membership_synced_to_users_groups + notification_email_template_id = oci_identity_domains_notification_email_template.test_notification_email_template.id + synced_from_app { + #Required + type = var.user_urnietfparamsscimschemasoracleidcsextensionuser_user_synced_from_app_type + value = var.user_urnietfparamsscimschemasoracleidcsextensionuser_user_synced_from_app_value + + #Optional + display = var.user_urnietfparamsscimschemasoracleidcsextensionuser_user_synced_from_app_display + } + user_flow_controlled_by_external_client = var.user_urnietfparamsscimschemasoracleidcsextensionuser_user_user_flow_controlled_by_external_client + } + user_type = var.user_user_type + x509certificates { + #Required + value = var.user_x509certificates_value + + #Optional + display = var.user_x509certificates_display + primary = var.user_x509certificates_primary + type = var.user_x509certificates_type + } +} +``` + +## Argument Reference + +The following arguments are supported: + +* `active` - (Optional) (Updatable) User status + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Active + * idcsCsvAttributeNameMappings: [[columnHeaderName:Active]] + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `addresses` - (Optional) (Updatable) A physical mailing address for this User, as described in (address Element). Canonical Type Values of work, home, and other. The value attribute is a complex type with the following sub-attributes. + + **SCIM++ Properties:** + * idcsCompositeKey: [type] + * idcsCsvAttributeNameMappings: [[columnHeaderName:Work Address Street, deprecatedColumnHeaderName:Work Street Address, mapsTo:addresses[work].streetAddress], [columnHeaderName:Work Address Locality, deprecatedColumnHeaderName:Work City, mapsTo:addresses[work].locality], [columnHeaderName:Work Address Region, deprecatedColumnHeaderName:Work State, mapsTo:addresses[work].region], [columnHeaderName:Work Address Postal Code, deprecatedColumnHeaderName:Work Postal Code, mapsTo:addresses[work].postalCode], [columnHeaderName:Work Address Country, deprecatedColumnHeaderName:Work Country, mapsTo:addresses[work].country], [columnHeaderName:Work Address Formatted, mapsTo:addresses[work].formatted], [columnHeaderName:Home Address Formatted, mapsTo:addresses[home].formatted], [columnHeaderName:Other Address Formatted, mapsTo:addresses[other].formatted], [columnHeaderName:Home Address Street, mapsTo:addresses[home].streetAddress], [columnHeaderName:Other Address Street, mapsTo:addresses[other].streetAddress], [columnHeaderName:Home Address Locality, mapsTo:addresses[home].locality], [columnHeaderName:Other Address Locality, mapsTo:addresses[other].locality], [columnHeaderName:Home Address Region, mapsTo:addresses[home].region], [columnHeaderName:Other Address Region, mapsTo:addresses[other].region], [columnHeaderName:Home Address Country, mapsTo:addresses[home].country], [columnHeaderName:Other Address Country, mapsTo:addresses[other].country], [columnHeaderName:Home Address Postal Code, mapsTo:addresses[home].postalCode], [columnHeaderName:Other Address Postal Code, mapsTo:addresses[other].postalCode], [columnHeaderName:Primary Address Type, mapsTo:addresses[$(type)].primary]] + * idcsPii: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `country` - (Optional) (Updatable) The country name component. + + **SCIM++ Properties:** + * caseExact: false + * idcsCanonicalValueSourceFilter: attrName eq "countries" and attrValues.value eq "upper($(country))" + * idcsCanonicalValueSourceResourceType: AllowedValue + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `formatted` - (Optional) (Updatable) The full mailing address, formatted for display or use with a mailing label. This attribute MAY contain newlines. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `locality` - (Optional) (Updatable) The city or locality component. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `postal_code` - (Optional) (Updatable) The zipcode or postal code component. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `primary` - (Optional) (Updatable) A Boolean value indicating the 'primary' or preferred attribute value for this attribute. The primary attribute value 'true' MUST appear no more than once. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `region` - (Optional) (Updatable) The state or region component. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `street_address` - (Optional) (Updatable) The full street address component, which may include house number, street name, PO BOX, and multi-line extended street address information. This attribute MAY contain newlines. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `type` - (Required) (Updatable) A label indicating the attribute's function; e.g., 'work' or 'home'. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `attribute_sets` - (Optional) (Updatable) A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. +* `attributes` - (Optional) (Updatable) A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. +* `authorization` - (Optional) (Updatable) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `compartment_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - (Optional) (Updatable) A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - (Optional) (Updatable) Description of the user + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: false + * idcsPii: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `display_name` - (Optional) (Updatable) Display name + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Display Name + * idcsCsvAttributeNameMappings: [[columnHeaderName:Display Name]] + * idcsPii: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `domain_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `emails` - (Optional) (Updatable) A complex attribute representing emails + + **SCIM++ Properties:** + * idcsCompositeKey: [value, type] + * idcsCsvAttributeNameMappings: [[columnHeaderName:Work Email, mapsTo:emails[work].value], [columnHeaderName:Home Email, mapsTo:emails[home].value], [columnHeaderName:Primary Email Type, mapsTo:emails[$(type)].primary], [columnHeaderName:Other Email, mapsTo:emails[other].value], [columnHeaderName:Recovery Email, mapsTo:emails[recovery].value], [columnHeaderName:Work Email Verified, mapsTo:emails[work].verified], [columnHeaderName:Home Email Verified, mapsTo:emails[home].verified], [columnHeaderName:Other Email Verified, mapsTo:emails[other].verified], [columnHeaderName:Recovery Email Verified, mapsTo:emails[recovery].verified]] + * idcsPii: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `pending_verification_data` - (Optional) (Updatable) Pending e-mail address verification + + **Added In:** 19.1.4 + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `primary` - (Optional) (Updatable) A Boolean value that indicates whether the email address is the primary email address. The primary attribute value 'true' MUST appear no more than once. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `secondary` - (Optional) (Updatable) A Boolean value that indicates whether the email address is the secondary email address. The secondary attribute value 'true' MUST appear no more than once. + + **Added In:** 18.2.6 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `type` - (Required) (Updatable) Type of email address + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) (Updatable) Email address + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `verified` - (Optional) (Updatable) A Boolean value that indicates whether or not the e-mail address is verified + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `entitlements` - (Optional) (Updatable) A list of entitlements for the User that represent a thing the User has. + + **SCIM++ Properties:** + * idcsCompositeKey: [value, type] + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - (Optional) (Updatable) A human readable name, primarily used for display purposes. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `primary` - (Optional) (Updatable) A Boolean value indicating the 'primary' or preferred attribute value for this attribute. The primary attribute value 'true' MUST appear no more than once. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `type` - (Required) (Updatable) A label indicating the attribute's function. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) (Updatable) The value of an entitlement. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `external_id` - (Optional) (Updatable) An identifier for the Resource as defined by the Service Consumer. The externalId may simplify identification of the Resource between Service Consumer and Service Provider by allowing the Consumer to refer to the Resource with its own identifier, obviating the need to store a local mapping between the local identifier of the Resource and the identifier used by the Service Provider. Each Resource MAY include a non-empty externalId value. The value of the externalId attribute is always issued by the Service Consumer and can never be specified by the Service Provider. The Service Provider MUST always interpret the externalId as scoped to the Service Consumer's tenant. + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeNameMappings: [[columnHeaderName:External Id]] + * idcsPii: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `groups` - (Optional) (Updatable) A list of groups that the user belongs to, either thorough direct membership, nested groups, or dynamically calculated + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `date_added` - (Optional) (Updatable) Date when the member is Added to the group + + **Added In:** 2105200541 + + **SCIM++ Properties:** + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `display` - (Optional) (Updatable) A human readable name, primarily used for display purposes. READ-ONLY. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `external_id` - (Optional) (Updatable) An identifier for the Resource as defined by the Service Consumer. READ-ONLY. + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `membership_ocid` - (Optional) (Updatable) Membership Ocid + + **Added In:** 2103141444 + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `non_unique_display` - (Optional) (Updatable) A human readable name for Group as defined by the Service Consumer. READ-ONLY. + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) (Updatable) Ocid of the User's group. + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the corresponding Group resource to which the user belongs + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - (Optional) (Updatable) A label indicating the attribute's function; e.g., 'direct' or 'indirect'. + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `value` - (Required) (Updatable) The identifier of the User's group. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: always + * type: string + * uniqueness: none +* `id` - (Optional) (Updatable) Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - (Optional) (Updatable) The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - (Optional) (Updatable) The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) (Updatable) The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - (Optional) (Updatable) The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) (Updatable) The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `idcs_last_modified_by` - (Optional) (Updatable) The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - (Optional) (Updatable) The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) (Updatable) The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - (Optional) (Updatable) The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) (Updatable) The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - (Optional) (Updatable) The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - (Optional) (Updatable) Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `ims` - (Optional) (Updatable) User's instant messaging addresses + + **SCIM++ Properties:** + * idcsCompositeKey: [value, type] + * idcsPii: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - (Optional) (Updatable) A human-readable name, primarily used for display purposes + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `primary` - (Optional) (Updatable) A Boolean value that indicates the 'primary' or preferred attribute value for this attribute--for example, the preferred messenger or primary messenger. The primary attribute value 'true' MUST appear no more than once. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `type` - (Required) (Updatable) A label that indicates the attribute's function--for example, 'aim', 'gtalk', or 'mobile' + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) (Updatable) User's instant messaging address + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `locale` - (Optional) (Updatable) Used to indicate the User's default location for purposes of localizing items such as currency, date and time format, numerical representations, and so on. + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Locale + * idcsCsvAttributeNameMappings: [[columnHeaderName:Locale]] + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `meta` - (Optional) (Updatable) A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - (Optional) (Updatable) The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - (Optional) (Updatable) The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - (Optional) (Updatable) The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - (Optional) (Updatable) Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - (Optional) (Updatable) The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `name` - (Required) (Updatable) A complex attribute that contains attributes representing the name + + **SCIM++ Properties:** + * idcsCsvAttributeNameMappings: [[columnHeaderName:Formatted Name, mapsTo:name.formatted], [columnHeaderName:Honorific Prefix, mapsTo:name.honorificPrefix], [columnHeaderName:First Name, mapsTo:name.givenName], [columnHeaderName:Middle Name, mapsTo:name.middleName], [columnHeaderName:Last Name, mapsTo:name.familyName], [columnHeaderName:Honorific Suffix, mapsTo:name.honorificSuffix]] + * idcsPii: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: complex + * uniqueness: none + * `family_name` - (Required) (Updatable) Last name + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Last Name + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `formatted` - (Optional) (Updatable) Full name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `given_name` - (Optional) (Updatable) First name + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: First Name + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `honorific_prefix` - (Optional) (Updatable) Prefix + + **SCIM++ Properties:** + * idcsCsvAttributeName: Honorific Prefix + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `honorific_suffix` - (Optional) (Updatable) Suffix + + **SCIM++ Properties:** + * idcsCsvAttributeName: Honorific Suffix + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `middle_name` - (Optional) (Updatable) Middle name + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Middle Name + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `nick_name` - (Optional) (Updatable) Nick name + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Nick Name + * idcsCsvAttributeNameMappings: [[columnHeaderName:Nick Name]] + * idcsPii: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `ocid` - (Optional) (Updatable) Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `password` - (Optional) (Updatable) Password attribute. Max length for password is controlled via Password Policy. + + **SCIM++ Properties:** + * idcsCsvAttributeName: Password + * idcsCsvAttributeNameMappings: [[columnHeaderName:Password]] + * idcsPii: true + * idcsSearchable: false + * idcsSensitive: hash + * multiValued: false + * mutability: writeOnly + * required: false + * returned: never + * type: string + * uniqueness: none +* `phone_numbers` - (Optional) (Updatable) Phone numbers + + **SCIM++ Properties:** + * idcsCompositeKey: [value, type] + * idcsCsvAttributeNameMappings: [[columnHeaderName:Work Phone, mapsTo:phoneNumbers[work].value], [columnHeaderName:Mobile No, mapsTo:phoneNumbers[mobile].value], [columnHeaderName:Home Phone, mapsTo:phoneNumbers[home].value], [columnHeaderName:Fax, mapsTo:phoneNumbers[fax].value], [columnHeaderName:Pager, mapsTo:phoneNumbers[pager].value], [columnHeaderName:Other Phone, mapsTo:phoneNumbers[other].value], [columnHeaderName:Recovery Phone, mapsTo:phoneNumbers[recovery].value], [columnHeaderName:Primary Phone Type, mapsTo:phoneNumbers[$(type)].primary]] + * idcsPii: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - (Optional) (Updatable) A human-readable name, primarily used for display purposes. READ ONLY + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `primary` - (Optional) (Updatable) A Boolean value that indicates the 'primary' or preferred attribute value for this attribute--for example, the preferred phone number or primary phone number. The primary attribute value 'true' MUST appear no more than once. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `type` - (Required) (Updatable) A label that indicates the attribute's function- for example, 'work', 'home', or 'mobile' + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) (Updatable) User's phone number + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `verified` - (Optional) (Updatable) A Boolean value that indicates if the phone number is verified. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `photos` - (Optional) (Updatable) URLs of photos for the User + + **SCIM++ Properties:** + * idcsCompositeKey: [value, type] + * idcsPii: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - (Optional) (Updatable) A human readable name, primarily used for display purposes. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `primary` - (Optional) (Updatable) A Boolean value indicating the 'primary' or preferred attribute value for this attribute, e.g., the preferred photo or thumbnail. The primary attribute value 'true' MUST appear no more than once. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `type` - (Required) (Updatable) A label indicating the attribute's function; e.g., 'photo' or 'thumbnail'. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) (Updatable) URL of a photo for the User + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: reference + * uniqueness: none +* `preferred_language` - (Optional) (Updatable) User's preferred written or spoken language used for localized user interfaces + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Preferred Language + * idcsCsvAttributeNameMappings: [[columnHeaderName:Preferred Language]] + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `profile_url` - (Optional) (Updatable) A fully-qualified URL to a page representing the User's online profile + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Profile URL + * idcsCsvAttributeNameMappings: [[columnHeaderName:Profile Url]] + * idcsPii: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: reference + * uniqueness: none +* `resource_type_schema_version` - (Optional) (Updatable) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. +* `roles` - (Optional) (Updatable) A list of roles for the User that collectively represent who the User is; e.g., 'Student', 'Faculty'. + + **SCIM++ Properties:** + * idcsCompositeKey: [value, type] + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - (Optional) (Updatable) A human readable name, primarily used for display purposes. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `primary` - (Optional) (Updatable) A Boolean value indicating the 'primary' or preferred attribute value for this attribute. The primary attribute value 'true' MUST appear no more than once. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `type` - (Required) (Updatable) A label indicating the attribute's function. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) (Updatable) The value of a role. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `schemas` - (Required) (Updatable) REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tags` - (Optional) (Updatable) A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - (Required) (Updatable) Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) (Updatable) Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `timezone` - (Optional) (Updatable) User's timezone + + **SCIM++ Properties:** + * caseExact: false + * idcsCanonicalValueSourceFilter: attrName eq "timezones" and attrValues.value eq "$(timezone)" + * idcsCanonicalValueSourceResourceType: AllowedValue + * idcsCsvAttributeName: TimeZone + * idcsCsvAttributeNameMappings: [[columnHeaderName:Time Zone, deprecatedColumnHeaderName:TimeZone]] + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `title` - (Optional) (Updatable) Title + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Title + * idcsCsvAttributeNameMappings: [[columnHeaderName:Title]] + * idcsPii: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasextensionenterprise20user` - (Optional) (Updatable) Enterprise User + * `cost_center` - (Optional) (Updatable) Identifies the name of a cost center. + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Cost Center + * idcsCsvAttributeNameMappings: [[columnHeaderName:Cost Center]] + * idcsPii: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `department` - (Optional) (Updatable) Identifies the name of a department. + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Department + * idcsCsvAttributeNameMappings: [[columnHeaderName:Department]] + * idcsPii: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `division` - (Optional) (Updatable) Identifies the name of a division. + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Division + * idcsCsvAttributeNameMappings: [[columnHeaderName:Division]] + * idcsPii: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `employee_number` - (Optional) (Updatable) Numeric or alphanumeric identifier assigned to a person, typically based on order of hire or association with an organization. + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Employee Number + * idcsCsvAttributeNameMappings: [[columnHeaderName:Employee Number]] + * idcsPii: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `manager` - (Optional) (Updatable) The User's manager. A complex type that optionally allows Service Providers to represent organizational hierarchy by referencing the 'id' attribute of another User. + + **SCIM++ Properties:** + * idcsCsvAttributeNameMappings: [[columnHeaderName:Manager, deprecatedColumnHeaderName:Manager Name, mapsTo:manager.value]] + * idcsPii: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display_name` - (Optional) (Updatable) The displayName of the User's manager. OPTIONAL and READ-ONLY. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the SCIM resource representing the User's manager. RECOMMENDED. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - (Optional) (Updatable) The id of the SCIM resource representing the User's manager. RECOMMENDED. + + **SCIM++ Properties:** + * idcsCsvAttributeName: Manager Name + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `organization` - (Optional) (Updatable) Identifies the name of an organization. + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Organization + * idcsCsvAttributeNameMappings: [[columnHeaderName:Organization Name, deprecatedColumnHeaderName:Organization]] + * idcsPii: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextension_oci_tags` - (Optional) (Updatable) Oracle Cloud Infrastructure Tags. + * `defined_tags` - (Optional) (Updatable) Oracle Cloud Infrastructure Defined Tags + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * idcsCompositeKey: [namespace, key, value] + * type: complex + * idcsSearchable: true + * required: false + * mutability: readWrite + * multiValued: true + * returned: default + * `key` - (Required) (Updatable) Oracle Cloud Infrastructure Tag key + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * required: true + * mutability: readWrite + * returned: default + * idcsSearchable: true + * uniqueness: none + * `namespace` - (Required) (Updatable) Oracle Cloud Infrastructure Tag namespace + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * required: true + * mutability: readWrite + * returned: default + * idcsSearchable: true + * uniqueness: none + * `value` - (Required) (Updatable) Oracle Cloud Infrastructure Tag value + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * required: true + * mutability: readWrite + * returned: default + * type: string + * idcsSearchable: true + * uniqueness: none + * `freeform_tags` - (Optional) (Updatable) Oracle Cloud Infrastructure Freeform Tags + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * type: complex + * required: false + * mutability: readWrite + * returned: default + * multiValued: true + * `key` - (Required) (Updatable) Oracle Cloud Infrastructure Tag key + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * required: true + * mutability: readWrite + * returned: default + * idcsSearchable: true + * uniqueness: none + * `value` - (Required) (Updatable) Oracle Cloud Infrastructure Tag value + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * required: true + * mutability: readWrite + * returned: default + * type: string + * idcsSearchable: true + * uniqueness: none + * `tag_slug` - (Optional) (Updatable) Oracle Cloud Infrastructure Tag slug + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * type: binary + * mutability: readOnly + * returned: request +* `urnietfparamsscimschemasoracleidcsextensionadaptive_user` - (Optional) (Updatable) This extension defines attributes to manage user's risk score. + * `risk_level` - (Optional) (Updatable) Risk Level + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: request + * type: string + * uniqueness: none + * `risk_scores` - (Optional) (Updatable) The risk score pertaining to the user. + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [value] + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `last_update_timestamp` - (Required) (Updatable) Last update timestamp for the risk score + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: dateTime + * uniqueness: none + * `ref` - (Optional) (Updatable) Risk Provider Profile URI: URI that corresponds to risk source identifier. + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: reference + * uniqueness: none + * `risk_level` - (Required) (Updatable) Risk Level + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: string + * uniqueness: none + * `score` - (Required) (Updatable) Risk Score value + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: integer + * uniqueness: none + * `source` - (Optional) (Updatable) Risk Provider Profile Source + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `status` - (Optional) (Updatable) Risk Provider Profile status + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `value` - (Required) (Updatable) Risk Provider Profile: Identifier for the provider service from which the risk score was received. + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensioncapabilities_user` - (Optional) (Updatable) User's Capabilities + * `can_use_api_keys` - (Optional) (Updatable) Indicates weather a user can use api keys + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `can_use_auth_tokens` - (Optional) (Updatable) Indicates weather a user can use auth tokens + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `can_use_console_password` - (Optional) (Updatable) Indicates weather a user can use console password + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `can_use_customer_secret_keys` - (Optional) (Updatable) Indicates weather a user can use customer secret keys + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `can_use_db_credentials` - (Optional) (Updatable) Indicates weather a user can use db credentials + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `can_use_oauth2client_credentials` - (Optional) (Updatable) Indicates weather a user can use oauth2 client credentials + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `can_use_smtp_credentials` - (Optional) (Updatable) Indicates weather a user can use smtp credentials + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensiondb_credentials_user` - (Optional) (Updatable) Db Credentials User extension + * `db_login_attempts` - (Optional) (Updatable) The number of failed login attempts. The value is reset to 0 after a successful login. + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: integer + * uniqueness: none + * `db_user_name` - (Optional) (Updatable) The Database User Name + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * multiValued: false + * mutability: readWrite + * required: false + * type: string + * returned: request + * caseExact: false + * uniqueness: none + * idcsSearchable: true +* `urnietfparamsscimschemasoracleidcsextensiondb_user_user` - (Optional) (Updatable) DB User extension + * `db_global_roles` - (Optional) (Updatable) DB global roles to which the user is granted access. + + **Added In:** 18.2.2 + + **SCIM++ Properties:** + * idcsSearchable: false + * idcsSensitive: none + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `domain_level_schema` - (Optional) (Updatable) DB domain level schema to which the user is granted access. + + **Added In:** 18.2.2 + + **SCIM++ Properties:** + * idcsSearchable: false + * idcsSensitive: none + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `instance_level_schema` - (Optional) (Updatable) DB instance level schema to which the user is granted access. + + **Added In:** 18.2.2 + + **SCIM++ Properties:** + * idcsSearchable: false + * idcsSensitive: none + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `is_db_user` - (Optional) (Updatable) If true, indicates this is a database user. + + **Added In:** 18.2.2 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: boolean + * uniqueness: none + * `password_verifiers` - (Optional) (Updatable) Password Verifiers for DB User. + + **Added In:** 18.2.2 + + **SCIM++ Properties:** + * idcsCompositeKey: [type] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `type` - (Required) (Updatable) Type of database password verifier (for example, MR-SHA512 or SSHA). + + **Added In:** 18.2.2 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) (Updatable) Hash value of database password verifier. + + **Added In:** 18.2.2 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * idcsSensitive: none + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionkerberos_user_user` - (Optional) (Updatable) Kerberos User extension + * `realm_users` - (Optional) (Updatable) A list of kerberos realm users for an Oracle Cloud Infrastructure IAM User + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `principal_name` - (Optional) (Updatable) Principal Name of the KerberosRealmUser associated with the Oracle Cloud Infrastructure IAM User. + + **SCIM++ Properties:** + * idcsPii: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `realm_name` - (Optional) (Updatable) Realm Name for the KerberosRealmUser associated with the Oracle Cloud Infrastructure IAM User. + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the corresponding KerberosRealmUser resource associated with the Oracle Cloud Infrastructure IAM User. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - (Required) (Updatable) id of the KerberosRealmUser associated with the Oracle Cloud Infrastructure IAM User. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionmfa_user` - (Optional) (Updatable) This extension defines attributes used to manage Multi-Factor Authentication within a service provider. The extension is typically applied to a User resource, but MAY be applied to other resources that use MFA. + * `bypass_codes` - (Optional) (Updatable) A list of bypass codes belongs to user + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the corresponding BypassCode resource which belongs to user + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - (Required) (Updatable) The identifier of the User's bypass code. + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: always + * type: string + * uniqueness: none + * `devices` - (Optional) (Updatable) A list of devices enrolled by the user. + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `authentication_method` - (Optional) (Updatable) Authentication method. + + **Added In:** 2009232244 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `display` - (Optional) (Updatable) A human readable name, primarily used for display purposes. READ-ONLY. + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `factor_status` - (Optional) (Updatable) Device authentication factor status. + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `factor_type` - (Optional) (Updatable) Device authentication factor type. + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `last_sync_time` - (Optional) (Updatable) Last Sync time for device. + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the corresponding Device resource which belongs to user + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `status` - (Optional) (Updatable) Device status. + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `third_party_vendor_name` - (Optional) (Updatable) Third party factor vendor name. + + **Added In:** 2009232244 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) (Updatable) The identifier of the User's device. + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: always + * type: string + * uniqueness: none + * `login_attempts` - (Optional) (Updatable) Number of incorrect Multi Factor Authentication login attempts made by this user. The user gets locked, if this reaches the threshold specified in the maxIncorrectAttempts attribute in AuthenticationFactorSettings + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: integer + * uniqueness: none + * `mfa_enabled_on` - (Optional) (Updatable) This represents the date when the user enrolled for multi factor authentication. This will be set to null, when the user resets his factors. + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: request + * type: dateTime + * uniqueness: none + * `mfa_ignored_apps` - (Optional) (Updatable) User MFA Ignored Apps Identifiers + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `mfa_status` - (Optional) (Updatable) User Opted for MFA + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `preferred_authentication_factor` - (Optional) (Updatable) Preferred Authentication Factor Type + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `preferred_authentication_method` - (Optional) (Updatable) Preferred Authentication method + + **Added In:** 2009232244 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `preferred_device` - (Optional) (Updatable) User preferred device + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - (Optional) (Updatable) Device display name + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI that corresponds to the device resource + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - (Required) (Updatable) The identifier of the User's preferred device + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `preferred_third_party_vendor` - (Optional) (Updatable) Preferred Third party vendor name + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `trusted_user_agents` - (Optional) (Updatable) A list of trusted User Agents owned by this user. Multi-Factored Authentication uses Trusted User Agents to authenticate users. A User Agent is software application that a user uses to issue requests. For example, a User Agent could be a particular browser (possibly one of several executing on a desktop or laptop) or a particular mobile application (again, oneof several executing on a particular mobile device). A User Agent is trusted once the Multi-Factor Authentication has verified it in some way. + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `display` - (Optional) (Updatable) A human-readable identifier for this trusted user agent, used primarily for display purposes. READ-ONLY. + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the corresponding trusted user agent resource. + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - (Required) (Updatable) The identifier of the User's trusted user agent. + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionpassword_state_user` - (Optional) (Updatable) This extension defines attributes used to manage account passwords within a Service Provider. The extension is typically applied to a User resource, but MAY be applied to other resources that use passwords. + * `applicable_password_policy` - (Optional) (Updatable) Applicable Password Policy + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `display` - (Optional) (Updatable) Password Policy Display Name + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `priority` - (Optional) (Updatable) PasswordPolicy priority + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: integer + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the corresponding PasswordPolicy resource. + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - (Required) (Updatable) The identifier of the password policy. + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: always + * type: string + * uniqueness: none + * `cant_change` - (Optional) (Updatable) Indicates that the current password MAY NOT be changed and all other password expiry settings SHALL be ignored + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: boolean + * uniqueness: none + * `cant_expire` - (Optional) (Updatable) Indicates that the password expiry policy will not be applied for the current Resource + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: boolean + * uniqueness: none + * `expired` - (Optional) (Updatable) Indicates that the password has expired + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: boolean + * uniqueness: none + * `last_failed_validation_date` - (Optional) (Updatable) A DateTime that specifies the date and time when last failed password validation was set + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: dateTime + * uniqueness: none + * `last_successful_set_date` - (Optional) (Updatable) A DateTime that specifies the date and time when the current password was set + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: dateTime + * uniqueness: none + * `last_successful_validation_date` - (Optional) (Updatable) A DateTime that specifies the date and time when last successful password validation was set + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: dateTime + * uniqueness: none + * `must_change` - (Optional) (Updatable) Indicates that the subject password value MUST change on next login. If not changed, typically the account is locked. The value may be set indirectly when the subject's current password expires or directly set by an administrator. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: boolean + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionpasswordless_user` - (Optional) (Updatable) This extension defines attributes used to manage Passwordless-Factor Authentication within a service provider. The extension is typically applied to a User resource, but MAY be applied to other resources that use MFA. + * `factor_identifier` - (Optional) (Updatable) Factor Identifier ID + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - (Optional) (Updatable) Factor Identifier display name + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI that corresponds to the device resource + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - (Required) (Updatable) The identifier of the User's preferred device + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `factor_method` - (Optional) (Updatable) Authentication Factor Method + + **Added In:** 2009232244 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `factor_type` - (Optional) (Updatable) Authentication Factor Type + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionposix_user` - (Optional) (Updatable) POSIX User extension + * `gecos` - (Optional) (Updatable) General information about the POSIX account such as their real name and phone number + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: request + * type: string + * uniqueness: none + * `gid_number` - (Optional) (Updatable) Primary Group identifier of the POSIX user + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: request + * type: integer + * uniqueness: none + * `home_directory` - (Optional) (Updatable) The absolute path to the home directory of the POSIX account + + **SCIM++ Properties:** + * caseExact: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: request + * type: string + * uniqueness: none + * `login_shell` - (Optional) (Updatable) The path to the login shell of the POSIX account + + **SCIM++ Properties:** + * caseExact: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: request + * type: string + * uniqueness: none + * `uid_number` - (Optional) (Updatable) Integer uniquely identifying a user in a POSIX administrative domain + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: request + * type: integer + * uniqueness: server +* `urnietfparamsscimschemasoracleidcsextensionsecurity_questions_user` - (Optional) (Updatable) This extension defines attributes used to store Security Questions of User. + * `sec_questions` - (Optional) (Updatable) Security question and answers provided by end-user for Account recovery and/or MFA. While setting up security questions, end-user can also provide hint along with answer. + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `answer` - (Required) (Updatable) Answer provided by an user for a security question. + + **SCIM++ Properties:** + * idcsCsvAttributeName: Answer + * idcsSearchable: false + * idcsSensitive: hash + * multiValued: false + * mutability: writeOnly + * required: true + * returned: never + * type: string + * uniqueness: none + * idcsPii: true + * `hint_text` - (Optional) (Updatable) Hint for an answer given by user while setting up Security Question. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the corresponding SecurityQuestion resource + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - (Required) (Updatable) Id of the question selected by user while setting up Security Question. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionself_change_user` - (Optional) (Updatable) Controls whether a user can update themselves or not via User related APIs + * `allow_self_change` - (Optional) (Updatable) If true, allows requesting user to update themselves. If false, requesting user can't update themself (default). + + **Added In:** 2205182039 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: writeOnly + * required: false + * returned: never + * type: boolean + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionself_registration_user` - (Optional) (Updatable) This extension defines attributes used to manage self registration profile linked to the user. + * `consent_granted` - (Optional) (Updatable) A boolean value that indicates whether the consent is granted. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `self_registration_profile` - (Required) (Updatable) Self registration profile used when user is self registered. + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: true + * returned: request + * type: complex + * uniqueness: none + * `display` - (Optional) (Updatable) A human readable name, primarily used for display purposes. READ-ONLY. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) URI of the profile. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - (Required) (Updatable) Self Registration Profile Id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: true + * returned: always + * type: string + * uniqueness: none + * `user_token` - (Optional) (Updatable) User token used for auto-login. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionsff_user` - (Optional) (Updatable) SFF Auth Keys User extension + * `sff_auth_keys` - (Optional) (Updatable) SFF auth keys clob + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: request + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionsocial_account_user` - (Optional) (Updatable) Social User extension + * `social_accounts` - (Optional) (Updatable) Description: + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * idcsPii: true + * type: complex + * uniqueness: none + * `display` - (Optional) (Updatable) A human readable name, primarily used for display purposes. READ-ONLY. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the corresponding SocialAccount resource linked with the user + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - (Required) (Updatable) +* `urnietfparamsscimschemasoracleidcsextensionterms_of_use_user` - (Optional) (Updatable) Terms Of Use extension + * `terms_of_use_consents` - (Optional) (Updatable) Description: + + **Added In:** 18.2.6 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the corresponding TermsOfUseConsent resource linked with the user + + **Added In:** 18.2.6 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - (Required) (Updatable) +* `urnietfparamsscimschemasoracleidcsextensionuser_credentials_user` - (Optional) (Updatable) User's credentials + * `api_keys` - (Optional) (Updatable) A list of api keys corresponding to user. + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - (Optional) (Updatable) The value of of the User's api key. + + **Added In:** 2106240046 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `ocid` - (Optional) (Updatable) Ocid of the User's api key. + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the corresponding ApiKey resource to which the user belongs + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - (Optional) (Updatable) The identifier of the User's api key. + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `auth_tokens` - (Optional) (Updatable) A list of auth tokens corresponding to user. + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `ocid` - (Optional) (Updatable) Ocid of the User's auth token. + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the corresponding AuthToken resource to which the user belongs + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - (Optional) (Updatable) The identifier of the User's auth token. + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `customer_secret_keys` - (Optional) (Updatable) A list of customer secret keys corresponding to user. + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `ocid` - (Optional) (Updatable) Ocid of the User's customer secret key. + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the corresponding CustomerSecretKey resource to which the user belongs + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - (Optional) (Updatable) The identifier of the User's customer secret key. + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `db_credentials` - (Optional) (Updatable) A list of db credentials corresponding to user. + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `ocid` - (Optional) (Updatable) Ocid of the User's db credential. + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the corresponding UserDbCredential resource to which the user belongs + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - (Optional) (Updatable) The identifier of the User's db credential. + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `o_auth2client_credentials` - (Optional) (Updatable) A list of oauth2 client credentials corresponding to user. + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `ocid` - (Optional) (Updatable) Ocid of the User's oAuth2 client credential. + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the corresponding OAuth2ClientCredential resource to which the user belongs + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - (Optional) (Updatable) The identifier of the User's oAuth2 client credential. + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `smtp_credentials` - (Optional) (Updatable) A list of smtp credentials corresponding to user. + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `ocid` - (Optional) (Updatable) Ocid of the User's auth token. + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the corresponding SmtpCredential resource to which the user belongs + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - (Optional) (Updatable) The identifier of the User's smtp credential. + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionuser_state_user` - (Optional) (Updatable) This extension defines attributes used to manage account passwords within a service provider. The extension is typically applied to a User resource, but MAY be applied to other resources that use passwords. + * `last_failed_login_date` - (Optional) (Updatable) The last failed login date + + **SCIM++ Properties:** + * idcsSearchable: false + * idcsAllowUpdatesInReadOnlyMode: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: dateTime + * uniqueness: none + * `last_successful_login_date` - (Optional) (Updatable) The last successful login date + + **SCIM++ Properties:** + * idcsSearchable: true + * idcsAllowUpdatesInReadOnlyMode: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: dateTime + * uniqueness: none + * `locked` - (Optional) (Updatable) A complex attribute that indicates an account is locked (blocking new sessions) + + **SCIM++ Properties:** + * idcsCsvAttributeNameMappings: [[columnHeaderName:Locked, mapsTo:locked.on], [columnHeaderName:Locked Reason, mapsTo:locked.reason], [columnHeaderName:Locked Date, mapsTo:locked.lockDate]] + * idcsSearchable: false + * idcsAllowUpdatesInReadOnlyMode: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `expired` - (Optional) (Updatable) Indicates whether user password is expired. If this value is false, password expiry will still be evaluated during user login. + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: request + * type: boolean + * uniqueness: none + * `lock_date` - (Optional) (Updatable) The date and time that the current resource was locked + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `on` - (Optional) (Updatable) Indicates tat the account is locked + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `reason` - (Optional) (Updatable) Indicates the reason for locking. Valid values are: 0 - failed password login attempts, 1 - admin lock, 2 - failed reset password attempts, 3 - failed MFA login attempts, 4 - failed MFA login attempts for federated user, 5 - failed Database login attempts + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none + * `login_attempts` - (Optional) (Updatable) The number of failed login attempts. The value is reset to 0 after a successful login. + + **SCIM++ Properties:** + * idcsSearchable: false + * idcsAllowUpdatesInReadOnlyMode: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: integer + * uniqueness: none + * `max_concurrent_sessions` - (Optional) (Updatable) Maximum number of concurrent sessions for a User + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsMaxValue: 999 + * idcsMinValue: 1 + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none + * `previous_successful_login_date` - (Optional) (Updatable) The previous successful login date + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: dateTime + * uniqueness: none + * `recovery_attempts` - (Optional) (Updatable) The number of failed recovery attempts. The value is reset to 0 after a successful login. + + **Added In:** 19.1.4 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: integer + * uniqueness: none + * `recovery_enroll_attempts` - (Optional) (Updatable) The number of failed account recovery enrollment attempts. + + **Added In:** 19.1.4 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: integer + * uniqueness: none + * `recovery_locked` - (Optional) (Updatable) A complex attribute that indicates an password recovery is locked (blocking new sessions) + + **Added In:** 19.1.4 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `lock_date` - (Optional) (Updatable) The date and time that the current resource was locked + + **Added In:** 19.1.4 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `on` - (Optional) (Updatable) Indicates that the rev is locked + + **Added In:** 19.1.4 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionuser_user` - (Optional) (Updatable) Oracle Cloud Infrastructure IAM User + * `user_provider` - (Optional) (Updatable) Registration provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: none + * `account_recovery_required` - (Optional) (Updatable) Boolean value to prompt user to setup account recovery during login. + + **Added In:** 19.1.4 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: request + * type: boolean + * uniqueness: none + * `accounts` - (Optional) (Updatable) Accounts assigned to this User. Each value of this attribute refers to an app-specific identity that is owned by this User. Therefore, this attribute is a convenience that allows one to see on each User the Apps to which that User has access. + + **SCIM++ Properties:** + * idcsPii: true + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `active` - (Optional) (Updatable) Status of the account + + **Added In:** 17.4.6 + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `app_id` - (Optional) (Updatable) The ID of the App to which this Account gives access. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - (Optional) (Updatable) Name of the account assigned to the User. + + **Added In:** 17.4.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the Account assigned to the User. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - (Optional) (Updatable) The Id of the Account assigned to the User. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `app_roles` - (Optional) (Updatable) A list of all AppRoles to which this User belongs directly, indirectly or implicitly. The User could belong directly because the User is a member of the AppRole, could belong indirectly because the User is a member of a Group that is a member of the AppRole, or could belong implicitly because the AppRole is public. + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `admin_role` - (Optional) (Updatable) If true, then the role provides administrative access privileges. READ-ONLY. + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `app_id` - (Optional) (Updatable) The ID of the App that defines this AppRole. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `app_name` - (Optional) (Updatable) The name (Client ID) of the App that defines this AppRole. + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `display` - (Optional) (Updatable) The display name of the AppRole assigned to the User. + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `legacy_group_name` - (Optional) (Updatable) The name (if any) under which this AppRole should appear in this User's group-memberships for reasons of backward compatibility. Oracle Cloud Infrastructure IAM distinguishes between Groups and AppRoles, but some services still expect AppRoles appear as if they were service-instance-specific Groups. + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the AppRole assigned to the User. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - (Optional) (Updatable) The kind of membership this User has in the AppRole. A value of 'direct' indicates that the User is a member of the AppRole. A value of 'indirect' indicates that the User is a member of a Group that is a member of the AppRole. A value of 'implicit' indicates that the AppRole is public. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `value` - (Required) (Updatable) The Id of the AppRole assigned to the User. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: always + * type: string + * uniqueness: none + * `applicable_authentication_target_app` - (Optional) (Updatable) The app against which the user will authenticate. The value is not persisted but rather calculated. If the user's delegatedAuthenticationTargetApp is set, that value is returned. Otherwise, the app returned by evaluating the user's applicable Delegated Authentication Policy is returned. + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `display` - (Optional) (Updatable) App Display Name + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) App URI + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `target_request_timeout` - (Optional) (Updatable) Timeout interval for Synchronization TargetAction in milliseconds + + **Added In:** 18.2.6 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: integer + * uniqueness: none + * `type` - (Required) (Updatable) A label that indicates whether this is an App or IdentitySource. + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - (Optional) (Updatable) App identifier + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * caseExact: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `bypass_notification` - (Optional) (Updatable) A Boolean value indicating whether or not to send email notification after creating the user. This attribute is not used in update/replace operations. + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeNameMappings: [[columnHeaderName:ByPass Notification]] + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: never + * type: boolean + * uniqueness: none + * `creation_mechanism` - (Optional) (Updatable) User creation mechanism + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeNameMappings: [[defaultValue:import]] + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: request + * type: string + * uniqueness: none + * `delegated_authentication_target_app` - (Optional) (Updatable) If set, indicates the user's preferred authentication target app. If not set and the user's \"syncedFromApp\" is set and is enabled for delegated authentication, it is used. Otherwise, the user authenticates locally to Oracle Cloud Infrastructure IAM. + + **Added In:** 17.4.6 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - (Optional) (Updatable) App Display Name + + **Added In:** 17.4.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) App URI + + **Added In:** 17.4.6 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - (Required) (Updatable) A label that indicates whether this is an App or IdentitySource. + + **Added In:** 17.4.6 + + **SCIM++ Properties:** + * idcsDefaultValue: IdentitySource + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) (Updatable) App identifier + + **Added In:** 17.4.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `do_not_show_getting_started` - (Optional) (Updatable) A Boolean value indicating whether or not to hide the getting started page + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `grants` - (Optional) (Updatable) Grants to this User. Each value of this attribute refers to a Grant to this User of some App (and optionally of some entitlement). Therefore, this attribute is a convenience that allows one to see on each User all of the Grants to that User. + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `app_id` - (Optional) (Updatable) The ID of the App in this Grant. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `grant_mechanism` - (Optional) (Updatable) Each value of grantMechanism indicates how (or by what component) some App (or App-Entitlement) was granted.\nA customer or the UI should use only grantMechanism values that start with 'ADMINISTRATOR':\n - 'ADMINISTRATOR_TO_USER' is for a direct grant to a specific User.\n - 'ADMINISTRATOR_TO_GROUP' is for a grant to a specific Group, which results in indirect grants to Users who are members of that Group.\n - 'ADMINISTRATOR_TO_APP' is for a grant to a specific App. The grantee (client) App gains access to the granted (server) App. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `grantor_id` - (Optional) (Updatable) Grantor identifier + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of this Grant to this User. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - (Optional) (Updatable) The ID of this Grant to this User. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `idcs_app_roles_limited_to_groups` - (Optional) (Updatable) Description: + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsCompositeKey: [value, idcsAppRoleId] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * `display` - (Optional) (Updatable) Group display name + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `idcs_app_role_id` - (Required) (Updatable) The id of the Oracle Cloud Infrastructure IAM AppRole grant limited to one or more Groups. + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsCsvAttributeName: IDCS AppRole Name + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) (Updatable) The ocid of a Group the AppRole Grant is limited to + + **Added In:** 2202230830 + + **SCIM++ Properties:** + * idcsCsvAttributeName: Group Ocid + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the SCIM resource representing the Group manager. RECOMMENDED. + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - (Required) (Updatable) The id of a Group the AppRole Grant is limited to + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsCsvAttributeName: Group Name + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `is_account_recovery_enrolled` - (Optional) (Updatable) A Boolean value indicating whether or not a user is enrolled for account recovery + + **Added In:** 19.1.4 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: boolean + * uniqueness: none + * `is_authentication_delegated` - (Optional) (Updatable) A Boolean value indicating whether or not authentication request by this user should be delegated to a remote app. This value should be true only when the User was originally synced from an app which is enabled for delegated authentication + + **Added In:** 17.4.6 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: never + * type: boolean + * uniqueness: none + * `is_federated_user` - (Optional) (Updatable) A Boolean value indicating whether or not the user is federated. + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Federated + * idcsCsvAttributeNameMappings: [[columnHeaderName:Federated]] + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `is_group_membership_normalized` - (Optional) (Updatable) A Boolean value indicating whether or not group membership is normalized for this user. + + **Deprecated Since: 19.3.3** + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: never + * type: boolean + * uniqueness: none + * `is_group_membership_synced_to_users_groups` - (Optional) (Updatable) A Boolean value Indicates whether this User's group membership has been sync'ed from Group.members to UsersGroups. + + **Added In:** 19.3.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: never + * type: boolean + * uniqueness: none + * `notification_email_template_id` - (Optional) (Updatable) Specifies the EmailTemplate to be used when sending notification to the user this request is for. If specified, it overrides the default EmailTemplate for this event. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: writeOnly + * required: false + * returned: never + * type: string + * uniqueness: none + * `status` - (Optional) (Updatable) A supplemental status indicating the reason why a user is disabled + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `support_accounts` - (Optional) (Updatable) A list of Support Accounts corresponding to user. + + **Added In:** 2103141444 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `user_provider` - (Optional) (Updatable) User Support Account Provider + + **Added In:** 2103141444 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `ocid` - (Optional) (Updatable) Ocid of the User's Support Account. + + **Added In:** 2103141444 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the corresponding Support Account resource to which the user belongs + + **Added In:** 2103141444 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `user_id` - (Optional) (Updatable) User Support User Id + + **Added In:** 2103141444 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `value` - (Optional) (Updatable) The identifier of the User's support Account. + + **Added In:** 2103141444 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `synced_from_app` - (Optional) (Updatable) Managed App or an Identity Source from where the user is synced. If enabled, this Managed App or Identity Source can be used for performing delegated authentication. + + **Added In:** 18.2.6 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - (Optional) (Updatable) App Display Name + + **Added In:** 18.2.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) App URI + + **Added In:** 18.2.6 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - (Required) (Updatable) A label that indicates whether this is an App or IdentitySource. + + **Added In:** 18.2.6 + + **SCIM++ Properties:** + * idcsDefaultValue: IdentitySource + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) (Updatable) App identifier + + **Added In:** 18.2.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `user_flow_controlled_by_external_client` - (Optional) (Updatable) A Boolean value indicating whether to bypass notification and return user token to be used by an external client to control the user flow. + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: never + * type: boolean + * uniqueness: none + * `user_token` - (Optional) (Updatable) User token returned if userFlowControlledByExternalClient is true + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * uniqueness: none + * `ref` - (Optional) (Updatable) User Token URI + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - (Optional) (Updatable) User Token identifier + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `user_name` - (Required) (Updatable) User name + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: User ID + * idcsCsvAttributeNameMappings: [[columnHeaderName:User Name, deprecatedColumnHeaderName:User ID]] + * idcsPii: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: string + * uniqueness: global +* `user_type` - (Optional) (Updatable) Used to identify the organization-to-user relationship + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: User Type + * idcsCsvAttributeNameMappings: [[columnHeaderName:User Type]] + * idcsPii: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `x509certificates` - (Optional) (Updatable) A list of certificates issued to the User. + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - (Optional) (Updatable) A human readable name, primarily used for display purposes. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `primary` - (Optional) (Updatable) A Boolean value indicating the 'primary' or preferred attribute value for this attribute. The primary attribute value 'true' MUST appear no more than once. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `type` - (Optional) (Updatable) A label indicating the attribute's function. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) (Updatable) The value of a X509 certificate. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: binary + * uniqueness: none + + +** IMPORTANT ** +Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values + +## Attributes Reference + +The following attributes are exported: + +* `active` - User status + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Active + * idcsCsvAttributeNameMappings: [[columnHeaderName:Active]] + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `addresses` - A physical mailing address for this User, as described in (address Element). Canonical Type Values of work, home, and other. The value attribute is a complex type with the following sub-attributes. + + **SCIM++ Properties:** + * idcsCompositeKey: [type] + * idcsCsvAttributeNameMappings: [[columnHeaderName:Work Address Street, deprecatedColumnHeaderName:Work Street Address, mapsTo:addresses[work].streetAddress], [columnHeaderName:Work Address Locality, deprecatedColumnHeaderName:Work City, mapsTo:addresses[work].locality], [columnHeaderName:Work Address Region, deprecatedColumnHeaderName:Work State, mapsTo:addresses[work].region], [columnHeaderName:Work Address Postal Code, deprecatedColumnHeaderName:Work Postal Code, mapsTo:addresses[work].postalCode], [columnHeaderName:Work Address Country, deprecatedColumnHeaderName:Work Country, mapsTo:addresses[work].country], [columnHeaderName:Work Address Formatted, mapsTo:addresses[work].formatted], [columnHeaderName:Home Address Formatted, mapsTo:addresses[home].formatted], [columnHeaderName:Other Address Formatted, mapsTo:addresses[other].formatted], [columnHeaderName:Home Address Street, mapsTo:addresses[home].streetAddress], [columnHeaderName:Other Address Street, mapsTo:addresses[other].streetAddress], [columnHeaderName:Home Address Locality, mapsTo:addresses[home].locality], [columnHeaderName:Other Address Locality, mapsTo:addresses[other].locality], [columnHeaderName:Home Address Region, mapsTo:addresses[home].region], [columnHeaderName:Other Address Region, mapsTo:addresses[other].region], [columnHeaderName:Home Address Country, mapsTo:addresses[home].country], [columnHeaderName:Other Address Country, mapsTo:addresses[other].country], [columnHeaderName:Home Address Postal Code, mapsTo:addresses[home].postalCode], [columnHeaderName:Other Address Postal Code, mapsTo:addresses[other].postalCode], [columnHeaderName:Primary Address Type, mapsTo:addresses[$(type)].primary]] + * idcsPii: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `country` - The country name component. + + **SCIM++ Properties:** + * caseExact: false + * idcsCanonicalValueSourceFilter: attrName eq "countries" and attrValues.value eq "upper($(country))" + * idcsCanonicalValueSourceResourceType: AllowedValue + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `formatted` - The full mailing address, formatted for display or use with a mailing label. This attribute MAY contain newlines. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `locality` - The city or locality component. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `postal_code` - The zipcode or postal code component. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `primary` - A Boolean value indicating the 'primary' or preferred attribute value for this attribute. The primary attribute value 'true' MUST appear no more than once. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `region` - The state or region component. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `street_address` - The full street address component, which may include house number, street name, PO BOX, and multi-line extended street address information. This attribute MAY contain newlines. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `type` - A label indicating the attribute's function; e.g., 'work' or 'home'. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - Description of the user + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: false + * idcsPii: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `display_name` - Display name + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Display Name + * idcsCsvAttributeNameMappings: [[columnHeaderName:Display Name]] + * idcsPii: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `emails` - A complex attribute representing emails + + **SCIM++ Properties:** + * idcsCompositeKey: [value, type] + * idcsCsvAttributeNameMappings: [[columnHeaderName:Work Email, mapsTo:emails[work].value], [columnHeaderName:Home Email, mapsTo:emails[home].value], [columnHeaderName:Primary Email Type, mapsTo:emails[$(type)].primary], [columnHeaderName:Other Email, mapsTo:emails[other].value], [columnHeaderName:Recovery Email, mapsTo:emails[recovery].value], [columnHeaderName:Work Email Verified, mapsTo:emails[work].verified], [columnHeaderName:Home Email Verified, mapsTo:emails[home].verified], [columnHeaderName:Other Email Verified, mapsTo:emails[other].verified], [columnHeaderName:Recovery Email Verified, mapsTo:emails[recovery].verified]] + * idcsPii: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `pending_verification_data` - Pending e-mail address verification + + **Added In:** 19.1.4 + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `primary` - A Boolean value that indicates whether the email address is the primary email address. The primary attribute value 'true' MUST appear no more than once. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `secondary` - A Boolean value that indicates whether the email address is the secondary email address. The secondary attribute value 'true' MUST appear no more than once. + + **Added In:** 18.2.6 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `type` - Type of email address + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Email address + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `verified` - A Boolean value that indicates whether or not the e-mail address is verified + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `entitlements` - A list of entitlements for the User that represent a thing the User has. + + **SCIM++ Properties:** + * idcsCompositeKey: [value, type] + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - A human readable name, primarily used for display purposes. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `primary` - A Boolean value indicating the 'primary' or preferred attribute value for this attribute. The primary attribute value 'true' MUST appear no more than once. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `type` - A label indicating the attribute's function. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - The value of an entitlement. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `external_id` - An identifier for the Resource as defined by the Service Consumer. The externalId may simplify identification of the Resource between Service Consumer and Service Provider by allowing the Consumer to refer to the Resource with its own identifier, obviating the need to store a local mapping between the local identifier of the Resource and the identifier used by the Service Provider. Each Resource MAY include a non-empty externalId value. The value of the externalId attribute is always issued by the Service Consumer and can never be specified by the Service Provider. The Service Provider MUST always interpret the externalId as scoped to the Service Consumer's tenant. + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeNameMappings: [[columnHeaderName:External Id]] + * idcsPii: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `groups` - A list of groups that the user belongs to, either thorough direct membership, nested groups, or dynamically calculated + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `date_added` - Date when the member is Added to the group + + **Added In:** 2105200541 + + **SCIM++ Properties:** + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `display` - A human readable name, primarily used for display purposes. READ-ONLY. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `external_id` - An identifier for the Resource as defined by the Service Consumer. READ-ONLY. + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `membership_ocid` - Membership Ocid + + **Added In:** 2103141444 + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `non_unique_display` - A human readable name for Group as defined by the Service Consumer. READ-ONLY. + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - Ocid of the User's group. + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the corresponding Group resource to which the user belongs + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - A label indicating the attribute's function; e.g., 'direct' or 'indirect'. + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `value` - The identifier of the User's group. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: always + * type: string + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `ims` - User's instant messaging addresses + + **SCIM++ Properties:** + * idcsCompositeKey: [value, type] + * idcsPii: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - A human-readable name, primarily used for display purposes + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `primary` - A Boolean value that indicates the 'primary' or preferred attribute value for this attribute--for example, the preferred messenger or primary messenger. The primary attribute value 'true' MUST appear no more than once. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `type` - A label that indicates the attribute's function--for example, 'aim', 'gtalk', or 'mobile' + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - User's instant messaging address + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `locale` - Used to indicate the User's default location for purposes of localizing items such as currency, date and time format, numerical representations, and so on. + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Locale + * idcsCsvAttributeNameMappings: [[columnHeaderName:Locale]] + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `name` - A complex attribute that contains attributes representing the name + + **SCIM++ Properties:** + * idcsCsvAttributeNameMappings: [[columnHeaderName:Formatted Name, mapsTo:name.formatted], [columnHeaderName:Honorific Prefix, mapsTo:name.honorificPrefix], [columnHeaderName:First Name, mapsTo:name.givenName], [columnHeaderName:Middle Name, mapsTo:name.middleName], [columnHeaderName:Last Name, mapsTo:name.familyName], [columnHeaderName:Honorific Suffix, mapsTo:name.honorificSuffix]] + * idcsPii: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: complex + * uniqueness: none + * `family_name` - Last name + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Last Name + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `formatted` - Full name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `given_name` - First name + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: First Name + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `honorific_prefix` - Prefix + + **SCIM++ Properties:** + * idcsCsvAttributeName: Honorific Prefix + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `honorific_suffix` - Suffix + + **SCIM++ Properties:** + * idcsCsvAttributeName: Honorific Suffix + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `middle_name` - Middle name + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Middle Name + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `nick_name` - Nick name + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Nick Name + * idcsCsvAttributeNameMappings: [[columnHeaderName:Nick Name]] + * idcsPii: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `password` - Password attribute. Max length for password is controlled via Password Policy. + + **SCIM++ Properties:** + * idcsCsvAttributeName: Password + * idcsCsvAttributeNameMappings: [[columnHeaderName:Password]] + * idcsPii: true + * idcsSearchable: false + * idcsSensitive: hash + * multiValued: false + * mutability: writeOnly + * required: false + * returned: never + * type: string + * uniqueness: none +* `phone_numbers` - Phone numbers + + **SCIM++ Properties:** + * idcsCompositeKey: [value, type] + * idcsCsvAttributeNameMappings: [[columnHeaderName:Work Phone, mapsTo:phoneNumbers[work].value], [columnHeaderName:Mobile No, mapsTo:phoneNumbers[mobile].value], [columnHeaderName:Home Phone, mapsTo:phoneNumbers[home].value], [columnHeaderName:Fax, mapsTo:phoneNumbers[fax].value], [columnHeaderName:Pager, mapsTo:phoneNumbers[pager].value], [columnHeaderName:Other Phone, mapsTo:phoneNumbers[other].value], [columnHeaderName:Recovery Phone, mapsTo:phoneNumbers[recovery].value], [columnHeaderName:Primary Phone Type, mapsTo:phoneNumbers[$(type)].primary]] + * idcsPii: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - A human-readable name, primarily used for display purposes. READ ONLY + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `primary` - A Boolean value that indicates the 'primary' or preferred attribute value for this attribute--for example, the preferred phone number or primary phone number. The primary attribute value 'true' MUST appear no more than once. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `type` - A label that indicates the attribute's function- for example, 'work', 'home', or 'mobile' + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - User's phone number + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `verified` - A Boolean value that indicates if the phone number is verified. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `photos` - URLs of photos for the User + + **SCIM++ Properties:** + * idcsCompositeKey: [value, type] + * idcsPii: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - A human readable name, primarily used for display purposes. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `primary` - A Boolean value indicating the 'primary' or preferred attribute value for this attribute, e.g., the preferred photo or thumbnail. The primary attribute value 'true' MUST appear no more than once. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `type` - A label indicating the attribute's function; e.g., 'photo' or 'thumbnail'. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - URL of a photo for the User + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: reference + * uniqueness: none +* `preferred_language` - User's preferred written or spoken language used for localized user interfaces + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Preferred Language + * idcsCsvAttributeNameMappings: [[columnHeaderName:Preferred Language]] + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `profile_url` - A fully-qualified URL to a page representing the User's online profile + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Profile URL + * idcsCsvAttributeNameMappings: [[columnHeaderName:Profile Url]] + * idcsPii: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: reference + * uniqueness: none +* `roles` - A list of roles for the User that collectively represent who the User is; e.g., 'Student', 'Faculty'. + + **SCIM++ Properties:** + * idcsCompositeKey: [value, type] + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - A human readable name, primarily used for display purposes. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `primary` - A Boolean value indicating the 'primary' or preferred attribute value for this attribute. The primary attribute value 'true' MUST appear no more than once. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `type` - A label indicating the attribute's function. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - The value of a role. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `timezone` - User's timezone + + **SCIM++ Properties:** + * caseExact: false + * idcsCanonicalValueSourceFilter: attrName eq "timezones" and attrValues.value eq "$(timezone)" + * idcsCanonicalValueSourceResourceType: AllowedValue + * idcsCsvAttributeName: TimeZone + * idcsCsvAttributeNameMappings: [[columnHeaderName:Time Zone, deprecatedColumnHeaderName:TimeZone]] + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `title` - Title + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Title + * idcsCsvAttributeNameMappings: [[columnHeaderName:Title]] + * idcsPii: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasextensionenterprise20user` - Enterprise User + * `cost_center` - Identifies the name of a cost center. + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Cost Center + * idcsCsvAttributeNameMappings: [[columnHeaderName:Cost Center]] + * idcsPii: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `department` - Identifies the name of a department. + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Department + * idcsCsvAttributeNameMappings: [[columnHeaderName:Department]] + * idcsPii: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `division` - Identifies the name of a division. + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Division + * idcsCsvAttributeNameMappings: [[columnHeaderName:Division]] + * idcsPii: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `employee_number` - Numeric or alphanumeric identifier assigned to a person, typically based on order of hire or association with an organization. + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Employee Number + * idcsCsvAttributeNameMappings: [[columnHeaderName:Employee Number]] + * idcsPii: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `manager` - The User's manager. A complex type that optionally allows Service Providers to represent organizational hierarchy by referencing the 'id' attribute of another User. + + **SCIM++ Properties:** + * idcsCsvAttributeNameMappings: [[columnHeaderName:Manager, deprecatedColumnHeaderName:Manager Name, mapsTo:manager.value]] + * idcsPii: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display_name` - The displayName of the User's manager. OPTIONAL and READ-ONLY. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource representing the User's manager. RECOMMENDED. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The id of the SCIM resource representing the User's manager. RECOMMENDED. + + **SCIM++ Properties:** + * idcsCsvAttributeName: Manager Name + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `organization` - Identifies the name of an organization. + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Organization + * idcsCsvAttributeNameMappings: [[columnHeaderName:Organization Name, deprecatedColumnHeaderName:Organization]] + * idcsPii: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextension_oci_tags` - Oracle Cloud Infrastructure Tags. + * `defined_tags` - Oracle Cloud Infrastructure Defined Tags + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * idcsCompositeKey: [namespace, key, value] + * type: complex + * idcsSearchable: true + * required: false + * mutability: readWrite + * multiValued: true + * returned: default + * `key` - Oracle Cloud Infrastructure Tag key + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * required: true + * mutability: readWrite + * returned: default + * idcsSearchable: true + * uniqueness: none + * `namespace` - Oracle Cloud Infrastructure Tag namespace + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * required: true + * mutability: readWrite + * returned: default + * idcsSearchable: true + * uniqueness: none + * `value` - Oracle Cloud Infrastructure Tag value + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * required: true + * mutability: readWrite + * returned: default + * type: string + * idcsSearchable: true + * uniqueness: none + * `freeform_tags` - Oracle Cloud Infrastructure Freeform Tags + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * type: complex + * required: false + * mutability: readWrite + * returned: default + * multiValued: true + * `key` - Oracle Cloud Infrastructure Tag key + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * required: true + * mutability: readWrite + * returned: default + * idcsSearchable: true + * uniqueness: none + * `value` - Oracle Cloud Infrastructure Tag value + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * caseExact: false + * required: true + * mutability: readWrite + * returned: default + * type: string + * idcsSearchable: true + * uniqueness: none + * `tag_slug` - Oracle Cloud Infrastructure Tag slug + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * type: binary + * mutability: readOnly + * returned: request +* `urnietfparamsscimschemasoracleidcsextensionadaptive_user` - This extension defines attributes to manage user's risk score. + * `risk_level` - Risk Level + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: request + * type: string + * uniqueness: none + * `risk_scores` - The risk score pertaining to the user. + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [value] + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `last_update_timestamp` - Last update timestamp for the risk score + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: dateTime + * uniqueness: none + * `ref` - Risk Provider Profile URI: URI that corresponds to risk source identifier. + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: reference + * uniqueness: none + * `risk_level` - Risk Level + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: string + * uniqueness: none + * `score` - Risk Score value + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: integer + * uniqueness: none + * `source` - Risk Provider Profile Source + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `status` - Risk Provider Profile status + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `value` - Risk Provider Profile: Identifier for the provider service from which the risk score was received. + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensioncapabilities_user` - User's Capabilities + * `can_use_api_keys` - Indicates weather a user can use api keys + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `can_use_auth_tokens` - Indicates weather a user can use auth tokens + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `can_use_console_password` - Indicates weather a user can use console password + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `can_use_customer_secret_keys` - Indicates weather a user can use customer secret keys + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `can_use_db_credentials` - Indicates weather a user can use db credentials + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `can_use_oauth2client_credentials` - Indicates weather a user can use oauth2 client credentials + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `can_use_smtp_credentials` - Indicates weather a user can use smtp credentials + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensiondb_credentials_user` - Db Credentials User extension + * `db_login_attempts` - The number of failed login attempts. The value is reset to 0 after a successful login. + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: integer + * uniqueness: none + * `db_user_name` - The Database User Name + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * multiValued: false + * mutability: readWrite + * required: false + * type: string + * returned: request + * caseExact: false + * uniqueness: none + * idcsSearchable: true +* `urnietfparamsscimschemasoracleidcsextensiondb_user_user` - DB User extension + * `db_global_roles` - DB global roles to which the user is granted access. + + **Added In:** 18.2.2 + + **SCIM++ Properties:** + * idcsSearchable: false + * idcsSensitive: none + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `domain_level_schema` - DB domain level schema to which the user is granted access. + + **Added In:** 18.2.2 + + **SCIM++ Properties:** + * idcsSearchable: false + * idcsSensitive: none + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `instance_level_schema` - DB instance level schema to which the user is granted access. + + **Added In:** 18.2.2 + + **SCIM++ Properties:** + * idcsSearchable: false + * idcsSensitive: none + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `is_db_user` - If true, indicates this is a database user. + + **Added In:** 18.2.2 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: boolean + * uniqueness: none + * `password_verifiers` - Password Verifiers for DB User. + + **Added In:** 18.2.2 + + **SCIM++ Properties:** + * idcsCompositeKey: [type] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `type` - Type of database password verifier (for example, MR-SHA512 or SSHA). + + **Added In:** 18.2.2 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Hash value of database password verifier. + + **Added In:** 18.2.2 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * idcsSensitive: none + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionkerberos_user_user` - Kerberos User extension + * `realm_users` - A list of kerberos realm users for an Oracle Cloud Infrastructure IAM User + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `principal_name` - Principal Name of the KerberosRealmUser associated with the Oracle Cloud Infrastructure IAM User. + + **SCIM++ Properties:** + * idcsPii: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `realm_name` - Realm Name for the KerberosRealmUser associated with the Oracle Cloud Infrastructure IAM User. + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the corresponding KerberosRealmUser resource associated with the Oracle Cloud Infrastructure IAM User. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - id of the KerberosRealmUser associated with the Oracle Cloud Infrastructure IAM User. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionmfa_user` - This extension defines attributes used to manage Multi-Factor Authentication within a service provider. The extension is typically applied to a User resource, but MAY be applied to other resources that use MFA. + * `bypass_codes` - A list of bypass codes belongs to user + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `ref` - The URI of the corresponding BypassCode resource which belongs to user + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The identifier of the User's bypass code. + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: always + * type: string + * uniqueness: none + * `devices` - A list of devices enrolled by the user. + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `authentication_method` - Authentication method. + + **Added In:** 2009232244 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `display` - A human readable name, primarily used for display purposes. READ-ONLY. + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `factor_status` - Device authentication factor status. + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `factor_type` - Device authentication factor type. + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `last_sync_time` - Last Sync time for device. + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `ref` - The URI of the corresponding Device resource which belongs to user + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `status` - Device status. + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `third_party_vendor_name` - Third party factor vendor name. + + **Added In:** 2009232244 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The identifier of the User's device. + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: always + * type: string + * uniqueness: none + * `login_attempts` - Number of incorrect Multi Factor Authentication login attempts made by this user. The user gets locked, if this reaches the threshold specified in the maxIncorrectAttempts attribute in AuthenticationFactorSettings + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: integer + * uniqueness: none + * `mfa_enabled_on` - This represents the date when the user enrolled for multi factor authentication. This will be set to null, when the user resets his factors. + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: request + * type: dateTime + * uniqueness: none + * `mfa_ignored_apps` - User MFA Ignored Apps Identifiers + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `mfa_status` - User Opted for MFA + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `preferred_authentication_factor` - Preferred Authentication Factor Type + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `preferred_authentication_method` - Preferred Authentication method + + **Added In:** 2009232244 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `preferred_device` - User preferred device + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - Device display name + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the device resource + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The identifier of the User's preferred device + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `preferred_third_party_vendor` - Preferred Third party vendor name + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `trusted_user_agents` - A list of trusted User Agents owned by this user. Multi-Factored Authentication uses Trusted User Agents to authenticate users. A User Agent is software application that a user uses to issue requests. For example, a User Agent could be a particular browser (possibly one of several executing on a desktop or laptop) or a particular mobile application (again, oneof several executing on a particular mobile device). A User Agent is trusted once the Multi-Factor Authentication has verified it in some way. + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `display` - A human-readable identifier for this trusted user agent, used primarily for display purposes. READ-ONLY. + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the corresponding trusted user agent resource. + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The identifier of the User's trusted user agent. + + **Added In:** 18.3.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionpassword_state_user` - This extension defines attributes used to manage account passwords within a Service Provider. The extension is typically applied to a User resource, but MAY be applied to other resources that use passwords. + * `applicable_password_policy` - Applicable Password Policy + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `display` - Password Policy Display Name + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `priority` - PasswordPolicy priority + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: integer + * uniqueness: none + * `ref` - The URI of the corresponding PasswordPolicy resource. + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The identifier of the password policy. + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: always + * type: string + * uniqueness: none + * `cant_change` - Indicates that the current password MAY NOT be changed and all other password expiry settings SHALL be ignored + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: boolean + * uniqueness: none + * `cant_expire` - Indicates that the password expiry policy will not be applied for the current Resource + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: boolean + * uniqueness: none + * `expired` - Indicates that the password has expired + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: boolean + * uniqueness: none + * `last_failed_validation_date` - A DateTime that specifies the date and time when last failed password validation was set + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: dateTime + * uniqueness: none + * `last_successful_set_date` - A DateTime that specifies the date and time when the current password was set + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: dateTime + * uniqueness: none + * `last_successful_validation_date` - A DateTime that specifies the date and time when last successful password validation was set + + **Added In:** 2011192329 + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: dateTime + * uniqueness: none + * `must_change` - Indicates that the subject password value MUST change on next login. If not changed, typically the account is locked. The value may be set indirectly when the subject's current password expires or directly set by an administrator. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: boolean + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionpasswordless_user` - This extension defines attributes used to manage Passwordless-Factor Authentication within a service provider. The extension is typically applied to a User resource, but MAY be applied to other resources that use MFA. + * `factor_identifier` - Factor Identifier ID + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - Factor Identifier display name + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the device resource + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The identifier of the User's preferred device + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `factor_method` - Authentication Factor Method + + **Added In:** 2009232244 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `factor_type` - Authentication Factor Type + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionposix_user` - POSIX User extension + * `gecos` - General information about the POSIX account such as their real name and phone number + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: request + * type: string + * uniqueness: none + * `gid_number` - Primary Group identifier of the POSIX user + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: request + * type: integer + * uniqueness: none + * `home_directory` - The absolute path to the home directory of the POSIX account + + **SCIM++ Properties:** + * caseExact: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: request + * type: string + * uniqueness: none + * `login_shell` - The path to the login shell of the POSIX account + + **SCIM++ Properties:** + * caseExact: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: request + * type: string + * uniqueness: none + * `uid_number` - Integer uniquely identifying a user in a POSIX administrative domain + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: request + * type: integer + * uniqueness: server +* `urnietfparamsscimschemasoracleidcsextensionsecurity_questions_user` - This extension defines attributes used to store Security Questions of User. + * `sec_questions` - Security question and answers provided by end-user for Account recovery and/or MFA. While setting up security questions, end-user can also provide hint along with answer. + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `answer` - Answer provided by an user for a security question. + + **SCIM++ Properties:** + * idcsCsvAttributeName: Answer + * idcsSearchable: false + * idcsSensitive: hash + * multiValued: false + * mutability: writeOnly + * required: true + * returned: never + * type: string + * uniqueness: none + * idcsPii: true + * `hint_text` - Hint for an answer given by user while setting up Security Question. + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the corresponding SecurityQuestion resource + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - Id of the question selected by user while setting up Security Question. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionself_change_user` - Controls whether a user can update themselves or not via User related APIs + * `allow_self_change` - If true, allows requesting user to update themselves. If false, requesting user can't update themself (default). + + **Added In:** 2205182039 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: writeOnly + * required: false + * returned: never + * type: boolean + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionself_registration_user` - This extension defines attributes used to manage self registration profile linked to the user. + * `consent_granted` - A boolean value that indicates whether the consent is granted. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `self_registration_profile` - Self registration profile used when user is self registered. + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: true + * returned: request + * type: complex + * uniqueness: none + * `display` - A human readable name, primarily used for display purposes. READ-ONLY. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `ref` - URI of the profile. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - Self Registration Profile Id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: true + * returned: always + * type: string + * uniqueness: none + * `user_token` - User token used for auto-login. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionsff_user` - SFF Auth Keys User extension + * `sff_auth_keys` - SFF auth keys clob + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: request + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionsocial_account_user` - Social User extension + * `social_accounts` - Description: + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * idcsPii: true + * type: complex + * uniqueness: none + * `display` - A human readable name, primarily used for display purposes. READ-ONLY. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the corresponding SocialAccount resource linked with the user + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - +* `urnietfparamsscimschemasoracleidcsextensionterms_of_use_user` - Terms Of Use extension + * `terms_of_use_consents` - Description: + + **Added In:** 18.2.6 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `ref` - The URI of the corresponding TermsOfUseConsent resource linked with the user + + **Added In:** 18.2.6 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - +* `urnietfparamsscimschemasoracleidcsextensionuser_credentials_user` - User's credentials + * `api_keys` - A list of api keys corresponding to user. + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - The value of of the User's api key. + + **Added In:** 2106240046 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `ocid` - Ocid of the User's api key. + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI of the corresponding ApiKey resource to which the user belongs + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The identifier of the User's api key. + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `auth_tokens` - A list of auth tokens corresponding to user. + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `ocid` - Ocid of the User's auth token. + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI of the corresponding AuthToken resource to which the user belongs + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The identifier of the User's auth token. + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `customer_secret_keys` - A list of customer secret keys corresponding to user. + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `ocid` - Ocid of the User's customer secret key. + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI of the corresponding CustomerSecretKey resource to which the user belongs + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The identifier of the User's customer secret key. + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `db_credentials` - A list of db credentials corresponding to user. + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `ocid` - Ocid of the User's db credential. + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI of the corresponding UserDbCredential resource to which the user belongs + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The identifier of the User's db credential. + + **Added In:** 2102181953 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `o_auth2client_credentials` - A list of oauth2 client credentials corresponding to user. + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `ocid` - Ocid of the User's oAuth2 client credential. + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI of the corresponding OAuth2ClientCredential resource to which the user belongs + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The identifier of the User's oAuth2 client credential. + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `smtp_credentials` - A list of smtp credentials corresponding to user. + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `ocid` - Ocid of the User's auth token. + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI of the corresponding SmtpCredential resource to which the user belongs + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The identifier of the User's smtp credential. + + **Added In:** 2012271618 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionuser_state_user` - This extension defines attributes used to manage account passwords within a service provider. The extension is typically applied to a User resource, but MAY be applied to other resources that use passwords. + * `last_failed_login_date` - The last failed login date + + **SCIM++ Properties:** + * idcsSearchable: false + * idcsAllowUpdatesInReadOnlyMode: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: dateTime + * uniqueness: none + * `last_successful_login_date` - The last successful login date + + **SCIM++ Properties:** + * idcsSearchable: true + * idcsAllowUpdatesInReadOnlyMode: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: dateTime + * uniqueness: none + * `locked` - A complex attribute that indicates an account is locked (blocking new sessions) + + **SCIM++ Properties:** + * idcsCsvAttributeNameMappings: [[columnHeaderName:Locked, mapsTo:locked.on], [columnHeaderName:Locked Reason, mapsTo:locked.reason], [columnHeaderName:Locked Date, mapsTo:locked.lockDate]] + * idcsSearchable: false + * idcsAllowUpdatesInReadOnlyMode: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `expired` - Indicates whether user password is expired. If this value is false, password expiry will still be evaluated during user login. + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: request + * type: boolean + * uniqueness: none + * `lock_date` - The date and time that the current resource was locked + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `on` - Indicates tat the account is locked + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `reason` - Indicates the reason for locking. Valid values are: 0 - failed password login attempts, 1 - admin lock, 2 - failed reset password attempts, 3 - failed MFA login attempts, 4 - failed MFA login attempts for federated user, 5 - failed Database login attempts + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none + * `login_attempts` - The number of failed login attempts. The value is reset to 0 after a successful login. + + **SCIM++ Properties:** + * idcsSearchable: false + * idcsAllowUpdatesInReadOnlyMode: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: integer + * uniqueness: none + * `max_concurrent_sessions` - Maximum number of concurrent sessions for a User + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsMaxValue: 999 + * idcsMinValue: 1 + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: integer + * uniqueness: none + * `previous_successful_login_date` - The previous successful login date + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: dateTime + * uniqueness: none + * `recovery_attempts` - The number of failed recovery attempts. The value is reset to 0 after a successful login. + + **Added In:** 19.1.4 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: integer + * uniqueness: none + * `recovery_enroll_attempts` - The number of failed account recovery enrollment attempts. + + **Added In:** 19.1.4 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: integer + * uniqueness: none + * `recovery_locked` - A complex attribute that indicates an password recovery is locked (blocking new sessions) + + **Added In:** 19.1.4 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `lock_date` - The date and time that the current resource was locked + + **Added In:** 19.1.4 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `on` - Indicates that the rev is locked + + **Added In:** 19.1.4 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionuser_user` - Oracle Cloud Infrastructure IAM User + * `user_provider` - Registration provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: none + * `account_recovery_required` - Boolean value to prompt user to setup account recovery during login. + + **Added In:** 19.1.4 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: request + * type: boolean + * uniqueness: none + * `accounts` - Accounts assigned to this User. Each value of this attribute refers to an app-specific identity that is owned by this User. Therefore, this attribute is a convenience that allows one to see on each User the Apps to which that User has access. + + **SCIM++ Properties:** + * idcsPii: true + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `active` - Status of the account + + **Added In:** 17.4.6 + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `app_id` - The ID of the App to which this Account gives access. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - Name of the account assigned to the User. + + **Added In:** 17.4.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the Account assigned to the User. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The Id of the Account assigned to the User. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `app_roles` - A list of all AppRoles to which this User belongs directly, indirectly or implicitly. The User could belong directly because the User is a member of the AppRole, could belong indirectly because the User is a member of a Group that is a member of the AppRole, or could belong implicitly because the AppRole is public. + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `admin_role` - If true, then the role provides administrative access privileges. READ-ONLY. + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `app_id` - The ID of the App that defines this AppRole. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `app_name` - The name (Client ID) of the App that defines this AppRole. + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `display` - The display name of the AppRole assigned to the User. + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `legacy_group_name` - The name (if any) under which this AppRole should appear in this User's group-memberships for reasons of backward compatibility. Oracle Cloud Infrastructure IAM distinguishes between Groups and AppRoles, but some services still expect AppRoles appear as if they were service-instance-specific Groups. + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the AppRole assigned to the User. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The kind of membership this User has in the AppRole. A value of 'direct' indicates that the User is a member of the AppRole. A value of 'indirect' indicates that the User is a member of a Group that is a member of the AppRole. A value of 'implicit' indicates that the AppRole is public. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `value` - The Id of the AppRole assigned to the User. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: always + * type: string + * uniqueness: none + * `applicable_authentication_target_app` - The app against which the user will authenticate. The value is not persisted but rather calculated. If the user's delegatedAuthenticationTargetApp is set, that value is returned. Otherwise, the app returned by evaluating the user's applicable Delegated Authentication Policy is returned. + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `display` - App Display Name + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - App URI + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `target_request_timeout` - Timeout interval for Synchronization TargetAction in milliseconds + + **Added In:** 18.2.6 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: integer + * uniqueness: none + * `type` - A label that indicates whether this is an App or IdentitySource. + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - App identifier + + **Added In:** 18.1.6 + + **SCIM++ Properties:** + * caseExact: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `bypass_notification` - A Boolean value indicating whether or not to send email notification after creating the user. This attribute is not used in update/replace operations. + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeNameMappings: [[columnHeaderName:ByPass Notification]] + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: never + * type: boolean + * uniqueness: none + * `creation_mechanism` - User creation mechanism + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeNameMappings: [[defaultValue:import]] + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: request + * type: string + * uniqueness: none + * `delegated_authentication_target_app` - If set, indicates the user's preferred authentication target app. If not set and the user's \"syncedFromApp\" is set and is enabled for delegated authentication, it is used. Otherwise, the user authenticates locally to Oracle Cloud Infrastructure IAM. + + **Added In:** 17.4.6 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - App Display Name + + **Added In:** 17.4.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - App URI + + **Added In:** 17.4.6 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - A label that indicates whether this is an App or IdentitySource. + + **Added In:** 17.4.6 + + **SCIM++ Properties:** + * idcsDefaultValue: IdentitySource + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - App identifier + + **Added In:** 17.4.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `do_not_show_getting_started` - A Boolean value indicating whether or not to hide the getting started page + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `grants` - Grants to this User. Each value of this attribute refers to a Grant to this User of some App (and optionally of some entitlement). Therefore, this attribute is a convenience that allows one to see on each User all of the Grants to that User. + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `app_id` - The ID of the App in this Grant. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `grant_mechanism` - Each value of grantMechanism indicates how (or by what component) some App (or App-Entitlement) was granted.\nA customer or the UI should use only grantMechanism values that start with 'ADMINISTRATOR':\n - 'ADMINISTRATOR_TO_USER' is for a direct grant to a specific User.\n - 'ADMINISTRATOR_TO_GROUP' is for a grant to a specific Group, which results in indirect grants to Users who are members of that Group.\n - 'ADMINISTRATOR_TO_APP' is for a grant to a specific App. The grantee (client) App gains access to the granted (server) App. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `grantor_id` - Grantor identifier + + **Added In:** 20.1.3 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of this Grant to this User. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The ID of this Grant to this User. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `idcs_app_roles_limited_to_groups` - Description: + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsCompositeKey: [value, idcsAppRoleId] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * `display` - Group display name + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `idcs_app_role_id` - The id of the Oracle Cloud Infrastructure IAM AppRole grant limited to one or more Groups. + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsCsvAttributeName: IDCS AppRole Name + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `ocid` - The ocid of a Group the AppRole Grant is limited to + + **Added In:** 2202230830 + + **SCIM++ Properties:** + * idcsCsvAttributeName: Group Ocid + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource representing the Group manager. RECOMMENDED. + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - The id of a Group the AppRole Grant is limited to + + **Added In:** 19.2.1 + + **SCIM++ Properties:** + * idcsCsvAttributeName: Group Name + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `is_account_recovery_enrolled` - A Boolean value indicating whether or not a user is enrolled for account recovery + + **Added In:** 19.1.4 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: boolean + * uniqueness: none + * `is_authentication_delegated` - A Boolean value indicating whether or not authentication request by this user should be delegated to a remote app. This value should be true only when the User was originally synced from an app which is enabled for delegated authentication + + **Added In:** 17.4.6 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: never + * type: boolean + * uniqueness: none + * `is_federated_user` - A Boolean value indicating whether or not the user is federated. + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: Federated + * idcsCsvAttributeNameMappings: [[columnHeaderName:Federated]] + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `is_group_membership_normalized` - A Boolean value indicating whether or not group membership is normalized for this user. + + **Deprecated Since: 19.3.3** + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: never + * type: boolean + * uniqueness: none + * `is_group_membership_synced_to_users_groups` - A Boolean value Indicates whether this User's group membership has been sync'ed from Group.members to UsersGroups. + + **Added In:** 19.3.3 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: never + * type: boolean + * uniqueness: none + * `notification_email_template_id` - Specifies the EmailTemplate to be used when sending notification to the user this request is for. If specified, it overrides the default EmailTemplate for this event. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: writeOnly + * required: false + * returned: never + * type: string + * uniqueness: none + * `status` - A supplemental status indicating the reason why a user is disabled + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none + * `support_accounts` - A list of Support Accounts corresponding to user. + + **Added In:** 2103141444 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: complex + * uniqueness: none + * `user_provider` - User Support Account Provider + + **Added In:** 2103141444 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `ocid` - Ocid of the User's Support Account. + + **Added In:** 2103141444 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI of the corresponding Support Account resource to which the user belongs + + **Added In:** 2103141444 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `user_id` - User Support User Id + + **Added In:** 2103141444 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `value` - The identifier of the User's support Account. + + **Added In:** 2103141444 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: none + * `synced_from_app` - Managed App or an Identity Source from where the user is synced. If enabled, this Managed App or Identity Source can be used for performing delegated authentication. + + **Added In:** 18.2.6 + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - App Display Name + + **Added In:** 18.2.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ref` - App URI + + **Added In:** 18.2.6 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - A label that indicates whether this is an App or IdentitySource. + + **Added In:** 18.2.6 + + **SCIM++ Properties:** + * idcsDefaultValue: IdentitySource + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - App identifier + + **Added In:** 18.2.6 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `user_flow_controlled_by_external_client` - A Boolean value indicating whether to bypass notification and return user token to be used by an external client to control the user flow. + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: never + * type: boolean + * uniqueness: none + * `user_token` - User token returned if userFlowControlledByExternalClient is true + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * caseExact: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * uniqueness: none + * `ref` - User Token URI + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - User Token identifier + + **Added In:** 18.4.2 + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `user_name` - User name + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: User ID + * idcsCsvAttributeNameMappings: [[columnHeaderName:User Name, deprecatedColumnHeaderName:User ID]] + * idcsPii: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: always + * type: string + * uniqueness: global +* `user_type` - Used to identify the organization-to-user relationship + + **SCIM++ Properties:** + * caseExact: false + * idcsCsvAttributeName: User Type + * idcsCsvAttributeNameMappings: [[columnHeaderName:User Type]] + * idcsPii: true + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none +* `x509certificates` - A list of certificates issued to the User. + + **SCIM++ Properties:** + * idcsCompositeKey: [value] + * multiValued: true + * mutability: readWrite + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - A human readable name, primarily used for display purposes. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `primary` - A Boolean value indicating the 'primary' or preferred attribute value for this attribute. The primary attribute value 'true' MUST appear no more than once. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: boolean + * uniqueness: none + * `type` - A label indicating the attribute's function. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The value of a X509 certificate. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: binary + * uniqueness: none + +## Timeouts + +The `timeouts` block allows you to specify [timeouts](https://registry.terraform.io/providers/oracle/oci/latest/docs/guides/changing_timeouts) for certain operations: + * `create` - (Defaults to 20 minutes), when creating the User + * `update` - (Defaults to 20 minutes), when updating the User + * `delete` - (Defaults to 20 minutes), when destroying the User + + +## Import + +Users can be imported using the `id`, e.g. + +``` +$ terraform import oci_identity_domains_user.test_user "idcsEndpoint/{idcsEndpoint}/users/{userId}" +``` + diff --git a/website/docs/r/identity_domains_user_db_credential.html.markdown b/website/docs/r/identity_domains_user_db_credential.html.markdown new file mode 100644 index 00000000000..bc173acf7fa --- /dev/null +++ b/website/docs/r/identity_domains_user_db_credential.html.markdown @@ -0,0 +1,1066 @@ +--- +subcategory: "Identity Domains" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_identity_domains_user_db_credential" +sidebar_current: "docs-oci-resource-identity_domains-user_db_credential" +description: |- + Provides the User Db Credential resource in Oracle Cloud Infrastructure Identity Domains service +--- + +# oci_identity_domains_user_db_credential +This resource provides the User Db Credential resource in Oracle Cloud Infrastructure Identity Domains service. + +Set a User's DbCredential + +## Example Usage + +```hcl +resource "oci_identity_domains_user_db_credential" "test_user_db_credential" { + #Required + db_password = var.user_db_credential_db_password + idcs_endpoint = data.oci_identity_domain.test_domain.url + schemas = ["urn:ietf:params:scim:schemas:oracle:idcs:UserDbCredentials"] + + #Optional + attribute_sets = [] + attributes = "" + authorization = var.user_db_credential_authorization + description = var.user_db_credential_description + expires_on = var.user_db_credential_expires_on + id = var.user_db_credential_id + ocid = var.user_db_credential_ocid + resource_type_schema_version = var.user_db_credential_resource_type_schema_version + status = var.user_db_credential_status + tags { + #Required + key = var.user_db_credential_tags_key + value = var.user_db_credential_tags_value + } + urnietfparamsscimschemasoracleidcsextensionself_change_user { + + #Optional + allow_self_change = var.user_db_credential_urnietfparamsscimschemasoracleidcsextensionself_change_user_allow_self_change + } + user { + #Required + value = oci_identity_domains_user.test_user.id + + #Optional + ocid = oci_identity_domains_user.test_user.ocid + } +} +``` + +## Argument Reference + +The following arguments are supported: + +* `attribute_sets` - (Optional) A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. +* `attributes` - (Optional) A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. +* `authorization` - (Optional) The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. +* `compartment_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `db_password` - (Required) The db password of the user + + **SCIM++ Properties:** + * type: string + * mutability: immutable + * returned: default + * required: true +* `delete_in_progress` - (Optional) (Updatable) A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - (Optional) Description + + **Added In:** 2109020413 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `domain_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `expired` - (Optional) (Updatable) Indicates that the db password has expired + + **SCIM++ Properties:** + * type: boolean + * mutability: readOnly + * returned: default +* `expires_on` - (Optional) User credential expires on + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: dateTime + * uniqueness: none +* `id` - (Optional) Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - (Optional) (Updatable) The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - (Optional) The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - (Optional) The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_endpoint` - (Required) The basic endpoint for the identity domain +* `idcs_last_modified_by` - (Optional) (Updatable) The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - (Optional) The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - (Optional) The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - (Optional) (Updatable) The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - (Optional) (Updatable) Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `last_set_date` - (Optional) (Updatable) A DateTime that specifies the date and time when the current db password was set + + **SCIM++ Properties:** + * type: dateTime + * mutability: readOnly + * returned: default +* `meta` - (Optional) (Updatable) A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - (Optional) The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - (Optional) The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - (Optional) The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - (Optional) Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - (Optional) The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `mixed_db_password` - (Optional) (Updatable) The db password of the user with mixed salt + + **SCIM++ Properties:** + * type: string + * mutability: readOnly + * returned: default + * required: false +* `mixed_salt` - (Optional) (Updatable) The mixed salt of the password + + **SCIM++ Properties:** + * type: string + * mutability: readOnly + * returned: default + * required: false +* `name` - (Optional) (Updatable) Name + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readOnly + * required: false + * returned: default +* `ocid` - (Optional) Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `resource_type_schema_version` - (Optional) An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. +* `salt` - (Optional) (Updatable) The salt of the password + + **SCIM++ Properties:** + * type: string + * mutability: readOnly + * returned: default + * required: false +* `schemas` - (Required) REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `status` - (Optional) User credential status + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: never + * type: string + * uniqueness: none +* `tags` - (Optional) A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - (Required) Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - (Required) Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - (Optional) (Updatable) Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionself_change_user` - (Optional) Controls whether a user can update themselves or not via User related APIs + * `allow_self_change` - (Optional) If true, allows requesting user to update themselves. If false, requesting user can't update themself (default). + + **Added In:** 2205182039 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: writeOnly + * required: false + * returned: never + * type: boolean + * uniqueness: none +* `user` - (Optional) User linked to db credential + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - (Optional) (Updatable) User display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - (Optional) (Updatable) User name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - (Optional) User's ocid + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - (Optional) (Updatable) The URI that corresponds to the user linked to this credential + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - (Required) User's id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: true + * returned: always + * type: string + * uniqueness: none + + +** IMPORTANT ** +Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values + +## Attributes Reference + +The following attributes are exported: + +* `compartment_ocid` - Oracle Cloud Infrastructure Compartment Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `db_password` - The db password of the user + + **SCIM++ Properties:** + * type: string + * mutability: immutable + * returned: default + * required: true +* `delete_in_progress` - A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: boolean + * uniqueness: none +* `description` - Description + + **Added In:** 2109020413 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readWrite + * required: false + * returned: default +* `domain_ocid` - Oracle Cloud Infrastructure Domain Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `expired` - Indicates that the db password has expired + + **SCIM++ Properties:** + * type: boolean + * mutability: readOnly + * returned: default +* `expires_on` - User credential expires on + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: dateTime + * uniqueness: none +* `id` - Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: always + * type: string + * uniqueness: global +* `idcs_created_by` - The User or App who created the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: complex + * `display` - The displayName of the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that created this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who created this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_modified_by` - The User or App who modified the Resource + + **SCIM++ Properties:** + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: complex + * `display` - The displayName of the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - The OCID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * returned: default + * type: string + * uniqueness: none + * `ref` - The URI of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `type` - The type of resource, User or App, that modified this Resource + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `value` - The ID of the SCIM resource that represents the User or App who modified this Resource + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: true + * returned: default + * type: string + * uniqueness: none +* `idcs_last_upgraded_in_release` - The release number when the resource was upgraded. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `idcs_prevented_operations` - Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: true + * mutability: readOnly + * required: false + * returned: request + * type: string + * uniqueness: none +* `last_set_date` - A DateTime that specifies the date and time when the current db password was set + + **SCIM++ Properties:** + * type: dateTime + * mutability: readOnly + * returned: default +* `meta` - A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] + * type: complex + * `created` - The DateTime the Resource was added to the Service Provider + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `last_modified` - The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: dateTime + * uniqueness: none + * `location` - The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `resource_type` - Name of the resource type of the resource--for example, Users or Groups + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `version` - The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `mixed_db_password` - The db password of the user with mixed salt + + **SCIM++ Properties:** + * type: string + * mutability: readOnly + * returned: default + * required: false +* `mixed_salt` - The mixed salt of the password + + **SCIM++ Properties:** + * type: string + * mutability: readOnly + * returned: default + * required: false +* `name` - Name + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * type: string + * mutability: readOnly + * required: false + * returned: default +* `ocid` - Unique Oracle Cloud Infrastructure identifier for the SCIM Resource. + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: string + * uniqueness: global +* `salt` - The salt of the password + + **SCIM++ Properties:** + * type: string + * mutability: readOnly + * returned: default + * required: false +* `schemas` - REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: true + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `status` - User credential status + + **Added In:** 2109090424 + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readWrite + * required: false + * returned: never + * type: string + * uniqueness: none +* `tags` - A list of tags on this resource. + + **SCIM++ Properties:** + * idcsCompositeKey: [key, value] + * idcsSearchable: true + * multiValued: true + * mutability: readWrite + * required: false + * returned: request + * type: complex + * uniqueness: none + * `key` - Key or name of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none + * `value` - Value of the tag. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readWrite + * required: true + * returned: default + * type: string + * uniqueness: none +* `tenancy_ocid` - Oracle Cloud Infrastructure Tenant Id (ocid) in which the resource lives. + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none +* `urnietfparamsscimschemasoracleidcsextensionself_change_user` - Controls whether a user can update themselves or not via User related APIs + * `allow_self_change` - If true, allows requesting user to update themselves. If false, requesting user can't update themself (default). + + **Added In:** 2205182039 + + **SCIM++ Properties:** + * idcsSearchable: false + * multiValued: false + * mutability: writeOnly + * required: false + * returned: never + * type: boolean + * uniqueness: none +* `user` - User linked to db credential + + **SCIM++ Properties:** + * caseExact: false + * idcsCompositeKey: [value] + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: default + * type: complex + * uniqueness: none + * `display` - User display name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: true + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `name` - User name + + **SCIM++ Properties:** + * caseExact: false + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: string + * uniqueness: none + * `ocid` - User's ocid + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: false + * returned: always + * type: string + * uniqueness: none + * `ref` - The URI that corresponds to the user linked to this credential + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: false + * multiValued: false + * mutability: readOnly + * required: false + * returned: default + * type: reference + * uniqueness: none + * `value` - User's id + + **SCIM++ Properties:** + * caseExact: true + * idcsSearchable: true + * multiValued: false + * mutability: immutable + * required: true + * returned: always + * type: string + * uniqueness: none + +## Timeouts + +The `timeouts` block allows you to specify [timeouts](https://registry.terraform.io/providers/oracle/oci/latest/docs/guides/changing_timeouts) for certain operations: + * `create` - (Defaults to 20 minutes), when creating the User Db Credential + * `update` - (Defaults to 20 minutes), when updating the User Db Credential + * `delete` - (Defaults to 20 minutes), when destroying the User Db Credential + + +## Import + +UserDbCredentials can be imported using the `id`, e.g. + +``` +$ terraform import oci_identity_domains_user_db_credential.test_user_db_credential "idcsEndpoint/{idcsEndpoint}/userDbCredentials/{userDbCredentialId}" +``` + From 48506a26f8f3aa87c33c52cc15b2e82d944cbcd9 Mon Sep 17 00:00:00 2001 From: Terraform Team Automation Date: Fri, 10 Mar 2023 02:15:08 +0000 Subject: [PATCH 05/12] Added - Platform Config support for AMD Milan GPU --- .../core_instance_resource_test.go | 16 ++-- .../integrationtest/core_instance_test.go | 4 +- .../core_instance_configuration_resource.go | 61 ++++++++++++++- .../service/core/core_instance_resource.go | 75 +++++++++++++++++++ .../docs/d/core_cluster_network.html.markdown | 4 +- .../d/core_cluster_networks.html.markdown | 4 +- website/docs/d/core_instance.html.markdown | 2 +- .../core_instance_configuration.html.markdown | 6 +- ...core_instance_configurations.html.markdown | 6 +- .../docs/d/core_instance_pool.html.markdown | 2 +- .../docs/d/core_instance_pools.html.markdown | 2 +- website/docs/d/core_instances.html.markdown | 2 +- .../docs/d/core_route_tables.html.markdown | 2 +- .../docs/d/core_virtual_circuit.html.markdown | 2 +- .../docs/r/core_cluster_network.html.markdown | 6 +- website/docs/r/core_instance.html.markdown | 25 ++++--- .../core_instance_configuration.html.markdown | 28 ++++--- .../docs/r/core_instance_pool.html.markdown | 7 +- website/docs/r/core_route_table.html.markdown | 2 +- .../docs/r/core_virtual_circuit.html.markdown | 2 +- 20 files changed, 201 insertions(+), 57 deletions(-) diff --git a/internal/integrationtest/core_instance_resource_test.go b/internal/integrationtest/core_instance_resource_test.go index acb1f4fe09d..f42094c5653 100644 --- a/internal/integrationtest/core_instance_resource_test.go +++ b/internal/integrationtest/core_instance_resource_test.go @@ -38,8 +38,8 @@ var ( "is_secure_boot_enabled": acctest.Representation{RepType: acctest.Required, Create: `true`}, "is_symmetric_multi_threading_enabled": acctest.Representation{RepType: acctest.Required, Create: `false`}, "is_trusted_platform_module_enabled": acctest.Representation{RepType: acctest.Required, Create: `true`}, - "numa_nodes_per_socket": acctest.Representation{RepType: acctest.Required, Create: `NPS1`}, - "percentage_of_cores_enabled": acctest.Representation{RepType: acctest.Required, Create: `25`}, + "numa_nodes_per_socket": acctest.Representation{RepType: acctest.Required, Create: `NPS4`}, + "percentage_of_cores_enabled": acctest.Representation{RepType: acctest.Required, Create: `50`}, } instanceBMRomeShieldedPlatformConfigRepresentation = map[string]interface{}{ "type": acctest.Representation{RepType: acctest.Required, Create: `AMD_ROME_BM`}, @@ -1689,8 +1689,8 @@ func TestAccResourceCoreInstance_BM_Milan_instance_resource(t *testing.T) { resource.TestCheckResourceAttr(resourceName, "platform_config.0.is_secure_boot_enabled", "true"), resource.TestCheckResourceAttr(resourceName, "platform_config.0.is_symmetric_multi_threading_enabled", "false"), resource.TestCheckResourceAttr(resourceName, "platform_config.0.is_trusted_platform_module_enabled", "true"), - resource.TestCheckResourceAttr(resourceName, "platform_config.0.numa_nodes_per_socket", "NPS1"), - resource.TestCheckResourceAttr(resourceName, "platform_config.0.percentage_of_cores_enabled", "25"), + resource.TestCheckResourceAttr(resourceName, "platform_config.0.numa_nodes_per_socket", "NPS4"), + resource.TestCheckResourceAttr(resourceName, "platform_config.0.percentage_of_cores_enabled", "50"), func(ts *terraform.State) (err error) { return err @@ -1715,8 +1715,8 @@ func TestAccResourceCoreInstance_BM_Milan_instance_resource(t *testing.T) { resource.TestCheckResourceAttr(datasourceName, "instances.0.platform_config.0.is_secure_boot_enabled", "true"), resource.TestCheckResourceAttr(datasourceName, "instances.0.platform_config.0.is_symmetric_multi_threading_enabled", "false"), resource.TestCheckResourceAttr(datasourceName, "instances.0.platform_config.0.is_trusted_platform_module_enabled", "true"), - resource.TestCheckResourceAttr(datasourceName, "instances.0.platform_config.0.numa_nodes_per_socket", "NPS1"), - resource.TestCheckResourceAttr(datasourceName, "instances.0.platform_config.0.percentage_of_cores_enabled", "25"), + resource.TestCheckResourceAttr(datasourceName, "instances.0.platform_config.0.numa_nodes_per_socket", "NPS4"), + resource.TestCheckResourceAttr(datasourceName, "instances.0.platform_config.0.percentage_of_cores_enabled", "50"), ), }, // verify singular datasource @@ -1763,8 +1763,8 @@ func TestAccResourceCoreInstance_BM_Milan_instance_resource(t *testing.T) { resource.TestCheckResourceAttr(singularDatasourceName, "platform_config.0.is_secure_boot_enabled", "true"), resource.TestCheckResourceAttr(singularDatasourceName, "platform_config.0.is_symmetric_multi_threading_enabled", "false"), resource.TestCheckResourceAttr(singularDatasourceName, "platform_config.0.is_trusted_platform_module_enabled", "true"), - resource.TestCheckResourceAttr(singularDatasourceName, "platform_config.0.numa_nodes_per_socket", "NPS1"), - resource.TestCheckResourceAttr(singularDatasourceName, "platform_config.0.percentage_of_cores_enabled", "25"), + resource.TestCheckResourceAttr(singularDatasourceName, "platform_config.0.numa_nodes_per_socket", "NPS4"), + resource.TestCheckResourceAttr(singularDatasourceName, "platform_config.0.percentage_of_cores_enabled", "50"), resource.TestCheckResourceAttr(singularDatasourceName, "platform_config.0.type", "AMD_MILAN_BM"), ), }, diff --git a/internal/integrationtest/core_instance_test.go b/internal/integrationtest/core_instance_test.go index 547ed88ae8f..00c092f8739 100644 --- a/internal/integrationtest/core_instance_test.go +++ b/internal/integrationtest/core_instance_test.go @@ -149,7 +149,7 @@ resource "oci_core_instance" "test_instance" { data "oci_kms_keys" "test_keys_dependency" { #Required compartment_id = "${var.tenancy_ocid}" - management_endpoint = "${var.management_endpoint}" + management_endpoint = "${data.oci_kms_vault.test_vault.management_endpoint}" algorithm = "AES" filter { @@ -160,7 +160,7 @@ data "oci_kms_keys" "test_keys_dependency" { data "oci_kms_keys" "test_keys_dependency_RSA" { #Required compartment_id = "${var.tenancy_ocid}" - management_endpoint = "${var.management_endpoint}" + management_endpoint = "${data.oci_kms_vault.test_vault.management_endpoint}" algorithm = "RSA" filter { diff --git a/internal/service/core/core_instance_configuration_resource.go b/internal/service/core/core_instance_configuration_resource.go index f6f1caec5db..3a7a5c49eec 100644 --- a/internal/service/core/core_instance_configuration_resource.go +++ b/internal/service/core/core_instance_configuration_resource.go @@ -661,6 +661,7 @@ func CoreInstanceConfigurationResource() *schema.Resource { DiffSuppressFunc: tfresource.EqualIgnoreCaseSuppressDiff, ValidateFunc: validation.StringInSlice([]string{ "AMD_MILAN_BM", + "AMD_MILAN_BM_GPU", "AMD_ROME_BM", "AMD_ROME_BM_GPU", "AMD_VM", @@ -1797,7 +1798,7 @@ func (s *CoreInstanceConfigurationResourceCrud) mapToInstanceConfigurationInstan if ok { instanceType = instanceTypeRaw.(string) } else { - instanceType = "" // default value + instanceType = "compute" // default value } switch strings.ToLower(instanceType) { case strings.ToLower("compute"): @@ -2385,6 +2386,44 @@ func (s *CoreInstanceConfigurationResourceCrud) mapToInstanceConfigurationLaunch details.IsTrustedPlatformModuleEnabled = &tmp } baseObject = details + case strings.ToLower("AMD_MILAN_BM_GPU"): + details := oci_core.InstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfig{} + if areVirtualInstructionsEnabled, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "are_virtual_instructions_enabled")); ok { + tmp := areVirtualInstructionsEnabled.(bool) + details.AreVirtualInstructionsEnabled = &tmp + } + if isAccessControlServiceEnabled, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "is_access_control_service_enabled")); ok { + tmp := isAccessControlServiceEnabled.(bool) + details.IsAccessControlServiceEnabled = &tmp + } + if isInputOutputMemoryManagementUnitEnabled, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "is_input_output_memory_management_unit_enabled")); ok { + tmp := isInputOutputMemoryManagementUnitEnabled.(bool) + details.IsInputOutputMemoryManagementUnitEnabled = &tmp + } + if isSymmetricMultiThreadingEnabled, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "is_symmetric_multi_threading_enabled")); ok { + tmp := isSymmetricMultiThreadingEnabled.(bool) + details.IsSymmetricMultiThreadingEnabled = &tmp + } + if numaNodesPerSocket, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "numa_nodes_per_socket")); ok { + details.NumaNodesPerSocket = oci_core.InstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnum(numaNodesPerSocket.(string)) + } + if isMeasuredBootEnabled, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "is_measured_boot_enabled")); ok { + tmp := isMeasuredBootEnabled.(bool) + details.IsMeasuredBootEnabled = &tmp + } + if isMemoryEncryptionEnabled, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "is_memory_encryption_enabled")); ok { + tmp := isMemoryEncryptionEnabled.(bool) + details.IsMemoryEncryptionEnabled = &tmp + } + if isSecureBootEnabled, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "is_secure_boot_enabled")); ok { + tmp := isSecureBootEnabled.(bool) + details.IsSecureBootEnabled = &tmp + } + if isTrustedPlatformModuleEnabled, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "is_trusted_platform_module_enabled")); ok { + tmp := isTrustedPlatformModuleEnabled.(bool) + details.IsTrustedPlatformModuleEnabled = &tmp + } + baseObject = details case strings.ToLower("AMD_ROME_BM"): details := oci_core.InstanceConfigurationAmdRomeBmLaunchInstancePlatformConfig{} if areVirtualInstructionsEnabled, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "are_virtual_instructions_enabled")); ok { @@ -2589,6 +2628,26 @@ func InstanceConfigurationLaunchInstancePlatformConfigToMap(obj *oci_core.Instan if v.PercentageOfCoresEnabled != nil { result["percentage_of_cores_enabled"] = int(*v.PercentageOfCoresEnabled) } + case oci_core.InstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfig: + result["type"] = "AMD_MILAN_BM_GPU" + + if v.AreVirtualInstructionsEnabled != nil { + result["are_virtual_instructions_enabled"] = bool(*v.AreVirtualInstructionsEnabled) + } + + if v.IsAccessControlServiceEnabled != nil { + result["is_access_control_service_enabled"] = bool(*v.IsAccessControlServiceEnabled) + } + + if v.IsInputOutputMemoryManagementUnitEnabled != nil { + result["is_input_output_memory_management_unit_enabled"] = bool(*v.IsInputOutputMemoryManagementUnitEnabled) + } + + if v.IsSymmetricMultiThreadingEnabled != nil { + result["is_symmetric_multi_threading_enabled"] = bool(*v.IsSymmetricMultiThreadingEnabled) + } + + result["numa_nodes_per_socket"] = string(v.NumaNodesPerSocket) case oci_core.InstanceConfigurationAmdRomeBmLaunchInstancePlatformConfig: result["type"] = "AMD_ROME_BM" diff --git a/internal/service/core/core_instance_resource.go b/internal/service/core/core_instance_resource.go index 8ed7f3d7cf0..9e694df8907 100644 --- a/internal/service/core/core_instance_resource.go +++ b/internal/service/core/core_instance_resource.go @@ -398,6 +398,7 @@ func CoreInstanceResource() *schema.Resource { DiffSuppressFunc: tfresource.EqualIgnoreCaseSuppressDiff, ValidateFunc: validation.StringInSlice([]string{ "AMD_MILAN_BM", + "AMD_MILAN_BM_GPU", "AMD_ROME_BM", "AMD_ROME_BM_GPU", "AMD_VM", @@ -2051,6 +2052,44 @@ func (s *CoreInstanceResourceCrud) mapToLaunchInstancePlatformConfig(fieldKeyFor details.IsTrustedPlatformModuleEnabled = &tmp } baseObject = details + case strings.ToLower("AMD_MILAN_BM_GPU"): + details := oci_core.AmdMilanBmGpuLaunchInstancePlatformConfig{} + if areVirtualInstructionsEnabled, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "are_virtual_instructions_enabled")); ok { + tmp := areVirtualInstructionsEnabled.(bool) + details.AreVirtualInstructionsEnabled = &tmp + } + if isAccessControlServiceEnabled, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "is_access_control_service_enabled")); ok { + tmp := isAccessControlServiceEnabled.(bool) + details.IsAccessControlServiceEnabled = &tmp + } + if isInputOutputMemoryManagementUnitEnabled, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "is_input_output_memory_management_unit_enabled")); ok { + tmp := isInputOutputMemoryManagementUnitEnabled.(bool) + details.IsInputOutputMemoryManagementUnitEnabled = &tmp + } + if isSymmetricMultiThreadingEnabled, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "is_symmetric_multi_threading_enabled")); ok { + tmp := isSymmetricMultiThreadingEnabled.(bool) + details.IsSymmetricMultiThreadingEnabled = &tmp + } + if numaNodesPerSocket, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "numa_nodes_per_socket")); ok { + details.NumaNodesPerSocket = oci_core.AmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnum(numaNodesPerSocket.(string)) + } + if isMeasuredBootEnabled, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "is_measured_boot_enabled")); ok { + tmp := isMeasuredBootEnabled.(bool) + details.IsMeasuredBootEnabled = &tmp + } + if isMemoryEncryptionEnabled, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "is_memory_encryption_enabled")); ok { + tmp := isMemoryEncryptionEnabled.(bool) + details.IsMemoryEncryptionEnabled = &tmp + } + if isSecureBootEnabled, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "is_secure_boot_enabled")); ok { + tmp := isSecureBootEnabled.(bool) + details.IsSecureBootEnabled = &tmp + } + if isTrustedPlatformModuleEnabled, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "is_trusted_platform_module_enabled")); ok { + tmp := isTrustedPlatformModuleEnabled.(bool) + details.IsTrustedPlatformModuleEnabled = &tmp + } + baseObject = details case strings.ToLower("AMD_ROME_BM"): details := oci_core.AmdRomeBmLaunchInstancePlatformConfig{} if areVirtualInstructionsEnabled, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "are_virtual_instructions_enabled")); ok { @@ -2268,6 +2307,42 @@ func PlatformConfigToMap(obj *oci_core.PlatformConfig) map[string]interface{} { result["is_secure_boot_enabled"] = bool(*v.IsSecureBootEnabled) } + if v.IsTrustedPlatformModuleEnabled != nil { + result["is_trusted_platform_module_enabled"] = bool(*v.IsTrustedPlatformModuleEnabled) + } + case oci_core.AmdMilanBmGpuPlatformConfig: + result["type"] = "AMD_MILAN_BM_GPU" + + if v.AreVirtualInstructionsEnabled != nil { + result["are_virtual_instructions_enabled"] = bool(*v.AreVirtualInstructionsEnabled) + } + + if v.IsAccessControlServiceEnabled != nil { + result["is_access_control_service_enabled"] = bool(*v.IsAccessControlServiceEnabled) + } + + if v.IsInputOutputMemoryManagementUnitEnabled != nil { + result["is_input_output_memory_management_unit_enabled"] = bool(*v.IsInputOutputMemoryManagementUnitEnabled) + } + + if v.IsSymmetricMultiThreadingEnabled != nil { + result["is_symmetric_multi_threading_enabled"] = bool(*v.IsSymmetricMultiThreadingEnabled) + } + + result["numa_nodes_per_socket"] = string(v.NumaNodesPerSocket) + + if v.IsMeasuredBootEnabled != nil { + result["is_measured_boot_enabled"] = bool(*v.IsMeasuredBootEnabled) + } + + if v.IsMemoryEncryptionEnabled != nil { + result["is_memory_encryption_enabled"] = bool(*v.IsMemoryEncryptionEnabled) + } + + if v.IsSecureBootEnabled != nil { + result["is_secure_boot_enabled"] = bool(*v.IsSecureBootEnabled) + } + if v.IsTrustedPlatformModuleEnabled != nil { result["is_trusted_platform_module_enabled"] = bool(*v.IsTrustedPlatformModuleEnabled) } diff --git a/website/docs/d/core_cluster_network.html.markdown b/website/docs/d/core_cluster_network.html.markdown index 5a8d51aac0d..6e7ad4fa50d 100644 --- a/website/docs/d/core_cluster_network.html.markdown +++ b/website/docs/d/core_cluster_network.html.markdown @@ -67,7 +67,7 @@ The following attributes are exported: Example: `[FAULT-DOMAIN-1, FAULT-DOMAIN-2, FAULT-DOMAIN-3]` * `primary_subnet_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the primary subnet to place instances. * `secondary_vnic_subnets` - The set of secondary VNIC data for instances in the pool. - * `display_name` - The display name of the VNIC. This is also use to match against the instance configuration defined secondary VNIC. + * `display_name` - The display name of the VNIC. This is also used to match against the instance configuration defined secondary VNIC. * `subnet_id` - The subnet [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) for the secondary VNIC. * `size` - The number of instances that should be in the instance pool. * `state` - The current state of the instance pool. @@ -76,7 +76,7 @@ The following attributes are exported: * `availability_domain` - The availability domain to place instances. Example: `Uocm:PHX-AD-1` * `primary_subnet_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the primary subnet to place instances. * `secondary_vnic_subnets` - The set of secondary VNIC data for instances in the pool. - * `display_name` - The display name of the VNIC. This is also use to match against the instance configuration defined secondary VNIC. + * `display_name` - The display name of the VNIC. This is also used to match against the instance configuration defined secondary VNIC. * `subnet_id` - The subnet [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) for the secondary VNIC. * `state` - The current state of the cluster network. * `time_created` - The date and time the resource was created, in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). Example: `2016-08-25T21:10:29.600Z` diff --git a/website/docs/d/core_cluster_networks.html.markdown b/website/docs/d/core_cluster_networks.html.markdown index 4422753d58a..d5b54ec372f 100644 --- a/website/docs/d/core_cluster_networks.html.markdown +++ b/website/docs/d/core_cluster_networks.html.markdown @@ -79,7 +79,7 @@ The following attributes are exported: Example: `[FAULT-DOMAIN-1, FAULT-DOMAIN-2, FAULT-DOMAIN-3]` * `primary_subnet_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the primary subnet to place instances. * `secondary_vnic_subnets` - The set of secondary VNIC data for instances in the pool. - * `display_name` - The display name of the VNIC. This is also use to match against the instance configuration defined secondary VNIC. + * `display_name` - The display name of the VNIC. This is also used to match against the instance configuration defined secondary VNIC. * `subnet_id` - The subnet [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) for the secondary VNIC. * `size` - The number of instances that should be in the instance pool. * `state` - The current state of the instance pool. @@ -88,7 +88,7 @@ The following attributes are exported: * `availability_domain` - The availability domain to place instances. Example: `Uocm:PHX-AD-1` * `primary_subnet_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the primary subnet to place instances. * `secondary_vnic_subnets` - The set of secondary VNIC data for instances in the pool. - * `display_name` - The display name of the VNIC. This is also use to match against the instance configuration defined secondary VNIC. + * `display_name` - The display name of the VNIC. This is also used to match against the instance configuration defined secondary VNIC. * `subnet_id` - The subnet [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) for the secondary VNIC. * `state` - The current state of the cluster network. * `time_created` - The date and time the resource was created, in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). Example: `2016-08-25T21:10:29.600Z` diff --git a/website/docs/d/core_instance.html.markdown b/website/docs/d/core_instance.html.markdown index 36660fcc75f..a52fa058847 100644 --- a/website/docs/d/core_instance.html.markdown +++ b/website/docs/d/core_instance.html.markdown @@ -68,7 +68,7 @@ The following attributes are exported: * `boot_volume_id` - The OCID of the attached boot volume. If the `source_type` is `bootVolume`, this will be the same OCID as the `source_id`. * `capacity_reservation_id` - The OCID of the compute capacity reservation this instance is launched under. When this field contains an empty string or is null, the instance is not currently in a capacity reservation. For more information, see [Capacity Reservations](https://docs.cloud.oracle.com/iaas/Content/Compute/Tasks/reserve-capacity.htm#default). * `compartment_id` - The OCID of the compartment that contains the instance. -* `dedicated_vm_host_id` - The OCID of dedicated VM host. +* `dedicated_vm_host_id` - The OCID of the dedicated virtual machine host that the instance is placed on. * `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"}` * `display_name` - A user-friendly name. Does not have to be unique, and it's changeable. Avoid entering confidential information. * `extended_metadata` - Additional metadata key/value pairs that you provide. They serve the same purpose and functionality as fields in the `metadata` object. diff --git a/website/docs/d/core_instance_configuration.html.markdown b/website/docs/d/core_instance_configuration.html.markdown index 3e0a10639c6..4a49ea80ab8 100644 --- a/website/docs/d/core_instance_configuration.html.markdown +++ b/website/docs/d/core_instance_configuration.html.markdown @@ -39,7 +39,7 @@ The following attributes are exported: * `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"}` * `id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the instance configuration. * `instance_details` - - * `block_volumes` - + * `block_volumes` - Block volume parameters. * `attach_details` - Volume attachmentDetails. Please see [AttachVolumeDetails](https://docs.cloud.oracle.com/iaas/api/#/en/iaas/latest/AttachVolumeDetails/) * `device` - The device name. * `display_name` - A user-friendly name. Does not have to be unique, and it's changeable. Avoid entering confidential information. @@ -118,7 +118,7 @@ The following attributes are exported: * `private_ip` - A private IP address of your choice to assign to the VNIC. See the `privateIp` attribute of [CreateVnicDetails](https://docs.cloud.oracle.com/iaas/api/#/en/iaas/latest/CreateVnicDetails/) for more information. * `skip_source_dest_check` - Whether the source/destination check is disabled on the VNIC. See the `skipSourceDestCheck` attribute of [CreateVnicDetails](https://docs.cloud.oracle.com/iaas/api/#/en/iaas/latest/CreateVnicDetails/) for more information. * `subnet_id` - The OCID of the subnet to create the VNIC in. See the `subnetId` attribute of [CreateVnicDetails](https://docs.cloud.oracle.com/iaas/api/#/en/iaas/latest/CreateVnicDetails/) for more information. - * `dedicated_vm_host_id` - The OCID of dedicated VM host. + * `dedicated_vm_host_id` - The OCID of the dedicated virtual machine host to place the instance on. Dedicated VM hosts can be used when launching individual instances from an instance configuration. They cannot be used to launch instance pools. * `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"}` @@ -253,7 +253,7 @@ The following attributes are exported: * `30`-`120`: Represents the Ultra High Performance option. * `image_id` - The OCID of the image used to boot the instance. * `source_type` - The source type for the instance. Use `image` when specifying the image OCID. Use `bootVolume` when specifying the boot volume OCID. - * `secondary_vnics` - + * `secondary_vnics` - Secondary VNIC parameters. * `create_vnic_details` - Contains the properties of the VNIC for an instance configuration. See [CreateVnicDetails](https://docs.cloud.oracle.com/iaas/api/#/en/iaas/latest/CreateVnicDetails/) and [Instance Configurations](https://docs.cloud.oracle.com/iaas/Content/Compute/Concepts/instancemanagement.htm#config) for more information. * `assign_private_dns_record` - Whether the VNIC should be assigned a private DNS record. See the `assignPrivateDnsRecord` attribute of [CreateVnicDetails](https://docs.cloud.oracle.com/iaas/api/#/en/iaas/20160918/CreateVnicDetails/) for more information. * `assign_public_ip` - Whether the VNIC should be assigned a public IP address. See the `assignPublicIp` attribute of [CreateVnicDetails](https://docs.cloud.oracle.com/iaas/api/#/en/iaas/latest/CreateVnicDetails/) for more information. diff --git a/website/docs/d/core_instance_configurations.html.markdown b/website/docs/d/core_instance_configurations.html.markdown index 4742ee1adbb..66e17b56ac0 100644 --- a/website/docs/d/core_instance_configurations.html.markdown +++ b/website/docs/d/core_instance_configurations.html.markdown @@ -46,7 +46,7 @@ The following attributes are exported: * `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"}` * `id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the instance configuration. * `instance_details` - - * `block_volumes` - + * `block_volumes` - Block volume parameters. * `attach_details` - Volume attachmentDetails. Please see [AttachVolumeDetails](https://docs.cloud.oracle.com/iaas/api/#/en/iaas/latest/AttachVolumeDetails/) * `device` - The device name. * `display_name` - A user-friendly name. Does not have to be unique, and it's changeable. Avoid entering confidential information. @@ -125,7 +125,7 @@ The following attributes are exported: * `private_ip` - A private IP address of your choice to assign to the VNIC. See the `privateIp` attribute of [CreateVnicDetails](https://docs.cloud.oracle.com/iaas/api/#/en/iaas/latest/CreateVnicDetails/) for more information. * `skip_source_dest_check` - Whether the source/destination check is disabled on the VNIC. See the `skipSourceDestCheck` attribute of [CreateVnicDetails](https://docs.cloud.oracle.com/iaas/api/#/en/iaas/latest/CreateVnicDetails/) for more information. * `subnet_id` - The OCID of the subnet to create the VNIC in. See the `subnetId` attribute of [CreateVnicDetails](https://docs.cloud.oracle.com/iaas/api/#/en/iaas/latest/CreateVnicDetails/) for more information. - * `dedicated_vm_host_id` - The OCID of dedicated VM host. + * `dedicated_vm_host_id` - The OCID of the dedicated virtual machine host to place the instance on. Dedicated VM hosts can be used when launching individual instances from an instance configuration. They cannot be used to launch instance pools. * `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"}` @@ -260,7 +260,7 @@ The following attributes are exported: * `30`-`120`: Represents the Ultra High Performance option. * `image_id` - The OCID of the image used to boot the instance. * `source_type` - The source type for the instance. Use `image` when specifying the image OCID. Use `bootVolume` when specifying the boot volume OCID. - * `secondary_vnics` - + * `secondary_vnics` - Secondary VNIC parameters. * `create_vnic_details` - Contains the properties of the VNIC for an instance configuration. See [CreateVnicDetails](https://docs.cloud.oracle.com/iaas/api/#/en/iaas/latest/CreateVnicDetails/) and [Instance Configurations](https://docs.cloud.oracle.com/iaas/Content/Compute/Concepts/instancemanagement.htm#config) for more information. * `assign_private_dns_record` - Whether the VNIC should be assigned a private DNS record. See the `assignPrivateDnsRecord` attribute of [CreateVnicDetails](https://docs.cloud.oracle.com/iaas/api/#/en/iaas/20160918/CreateVnicDetails/) for more information. * `assign_public_ip` - Whether the VNIC should be assigned a public IP address. See the `assignPublicIp` attribute of [CreateVnicDetails](https://docs.cloud.oracle.com/iaas/api/#/en/iaas/latest/CreateVnicDetails/) for more information. diff --git a/website/docs/d/core_instance_pool.html.markdown b/website/docs/d/core_instance_pool.html.markdown index 8d2e8d14ab1..32f7cb5dcd6 100644 --- a/website/docs/d/core_instance_pool.html.markdown +++ b/website/docs/d/core_instance_pool.html.markdown @@ -59,7 +59,7 @@ The following attributes are exported: Example: `[FAULT-DOMAIN-1, FAULT-DOMAIN-2, FAULT-DOMAIN-3]` * `primary_subnet_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the primary subnet to place instances. * `secondary_vnic_subnets` - The set of secondary VNIC data for instances in the pool. - * `display_name` - The display name of the VNIC. This is also use to match against the instance configuration defined secondary VNIC. + * `display_name` - The display name of the VNIC. This is also used to match against the instance configuration defined secondary VNIC. * `subnet_id` - The subnet [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) for the secondary VNIC. * `size` - The number of actual instances in the instance pool on the cloud. This attribute will be different when instance pool is used along with autoScaling Configuration. * `state` - The current state of the instance pool. diff --git a/website/docs/d/core_instance_pools.html.markdown b/website/docs/d/core_instance_pools.html.markdown index ca6704a06e0..248ba555890 100644 --- a/website/docs/d/core_instance_pools.html.markdown +++ b/website/docs/d/core_instance_pools.html.markdown @@ -71,7 +71,7 @@ The following attributes are exported: Example: `[FAULT-DOMAIN-1, FAULT-DOMAIN-2, FAULT-DOMAIN-3]` * `primary_subnet_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the primary subnet to place instances. * `secondary_vnic_subnets` - The set of secondary VNIC data for instances in the pool. - * `display_name` - The display name of the VNIC. This is also use to match against the instance configuration defined secondary VNIC. + * `display_name` - The display name of the VNIC. This is also used to match against the instance configuration defined secondary VNIC. * `subnet_id` - The subnet [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) for the secondary VNIC. * `size` - The number of actual instances in the instance pool on the cloud. This attribute will be different when instance pool is used along with autoScaling Configuration. * `state` - The current state of the instance pool. diff --git a/website/docs/d/core_instances.html.markdown b/website/docs/d/core_instances.html.markdown index bbe9ca7d9b9..b8cadd69bc7 100644 --- a/website/docs/d/core_instances.html.markdown +++ b/website/docs/d/core_instances.html.markdown @@ -86,7 +86,7 @@ The following attributes are exported: * `boot_volume_id` - The OCID of the attached boot volume. If the `source_type` is `bootVolume`, this will be the same OCID as the `source_id`. * `capacity_reservation_id` - The OCID of the compute capacity reservation this instance is launched under. When this field contains an empty string or is null, the instance is not currently in a capacity reservation. For more information, see [Capacity Reservations](https://docs.cloud.oracle.com/iaas/Content/Compute/Tasks/reserve-capacity.htm#default). * `compartment_id` - The OCID of the compartment that contains the instance. -* `dedicated_vm_host_id` - The OCID of dedicated VM host. +* `dedicated_vm_host_id` - The OCID of the dedicated virtual machine host that the instance is placed on. * `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"}` * `display_name` - A user-friendly name. Does not have to be unique, and it's changeable. Avoid entering confidential information. * `extended_metadata` - Additional metadata key/value pairs that you provide. They serve the same purpose and functionality as fields in the `metadata` object. diff --git a/website/docs/d/core_route_tables.html.markdown b/website/docs/d/core_route_tables.html.markdown index 3d478aedb01..727badd410f 100644 --- a/website/docs/d/core_route_tables.html.markdown +++ b/website/docs/d/core_route_tables.html.markdown @@ -71,7 +71,7 @@ The following attributes are exported: * The `cidrBlock` value for a [Service](https://docs.cloud.oracle.com/iaas/api/#/en/iaas/latest/Service/), if you're setting up a route rule for traffic destined for a particular `Service` through a service gateway. For example: `oci-phx-objectstorage`. * `destination_type` - Type of destination for the rule. Required if you provide a `destination`. * `CIDR_BLOCK`: If the rule's `destination` is an IP address range in CIDR notation. - * `SERVICE_CIDR_BLOCK`: If the rule's `destination` is the `cidrBlock` value for a [Service](https://docs.cloud.oracle.com/iaas/api/#/en/iaas/latest/Service/) (the rule is for traffic destined for a particular `Service` through a service gateway). + * `SERVICE_CIDR_BLOCK`: If the rule's `destination` is the `cidrBlock` value for a [Service](https://docs.cloud.oracle.com/iaas/api/#/en/iaas/latest/Service/) (the rule is for traffic destined for a particular `Service` through a service gateway). * `network_entity_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) for the route rule's target. For information about the type of targets you can specify, see [Route Tables](https://docs.cloud.oracle.com/iaas/Content/Network/Tasks/managingroutetables.htm). * `route_type` - A route rule can be STATIC if manually added to the route table, LOCAL if added by Oracle Cloud Infrastructure to the route table. * `state` - The route table's current state. diff --git a/website/docs/d/core_virtual_circuit.html.markdown b/website/docs/d/core_virtual_circuit.html.markdown index b6c52c7ad8b..6f76fa9c17a 100644 --- a/website/docs/d/core_virtual_circuit.html.markdown +++ b/website/docs/d/core_virtual_circuit.html.markdown @@ -38,7 +38,7 @@ The following attributes are exported: * `bgp_management` - Deprecated. Instead use the information in [FastConnectProviderService](https://docs.cloud.oracle.com/iaas/api/#/en/iaas/latest/FastConnectProviderService/). * `bgp_session_state` - The state of the Ipv4 BGP session associated with the virtual circuit. * `compartment_id` - The OCID of the compartment containing the virtual circuit. -* `cross_connect_mappings` - An array of mappings, each containing properties for a cross-connect or cross-connect group that is associated with this virtual circuit. +* `cross_connect_mappings` - An array of mappings, each containing properties for a cross-connect or cross-connect group that is associated with this virtual circuit. * `bgp_md5auth_key` - The key for BGP MD5 authentication. Only applicable if your system requires MD5 authentication. If empty or not set (null), that means you don't use BGP MD5 authentication. * `cross_connect_or_cross_connect_group_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the cross-connect or cross-connect group for this mapping. Specified by the owner of the cross-connect or cross-connect group (the customer if the customer is colocated with Oracle, or the provider if the customer is connecting via provider). * `customer_bgp_peering_ip` - The BGP IPv4 address for the router on the other end of the BGP session from Oracle. Specified by the owner of that router. If the session goes from Oracle to a customer, this is the BGP IPv4 address of the customer's edge router. If the session goes from Oracle to a provider, this is the BGP IPv4 address of the provider's edge router. Must use a subnet mask from /28 to /31. diff --git a/website/docs/r/core_cluster_network.html.markdown b/website/docs/r/core_cluster_network.html.markdown index 26dc374a449..06ca2bff766 100644 --- a/website/docs/r/core_cluster_network.html.markdown +++ b/website/docs/r/core_cluster_network.html.markdown @@ -73,7 +73,7 @@ The following arguments are supported: * `availability_domain` - (Required) The availability domain to place instances. Example: `Uocm:PHX-AD-1` * `primary_subnet_id` - (Required) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the primary subnet to place instances. * `secondary_vnic_subnets` - (Optional) The set of secondary VNIC data for instances in the pool. - * `display_name` - (Optional) The display name of the VNIC. This is also use to match against the instance configuration defined secondary VNIC. + * `display_name` - (Optional) The display name of the VNIC. This is also used to match against the instance configuration defined secondary VNIC. * `subnet_id` - (Required) The subnet [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) for the secondary VNIC. @@ -119,7 +119,7 @@ The following attributes are exported: Example: `[FAULT-DOMAIN-1, FAULT-DOMAIN-2, FAULT-DOMAIN-3]` * `primary_subnet_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the primary subnet to place instances. * `secondary_vnic_subnets` - The set of secondary VNIC data for instances in the pool. - * `display_name` - The display name of the VNIC. This is also use to match against the instance configuration defined secondary VNIC. + * `display_name` - The display name of the VNIC. This is also used to match against the instance configuration defined secondary VNIC. * `subnet_id` - The subnet [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) for the secondary VNIC. * `size` - The number of instances that should be in the instance pool. * `state` - The current state of the instance pool. @@ -128,7 +128,7 @@ The following attributes are exported: * `availability_domain` - The availability domain to place instances. Example: `Uocm:PHX-AD-1` * `primary_subnet_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the primary subnet to place instances. * `secondary_vnic_subnets` - The set of secondary VNIC data for instances in the pool. - * `display_name` - The display name of the VNIC. This is also use to match against the instance configuration defined secondary VNIC. + * `display_name` - The display name of the VNIC. This is also used to match against the instance configuration defined secondary VNIC. * `subnet_id` - The subnet [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) for the secondary VNIC. * `state` - The current state of the cluster network. * `time_created` - The date and time the resource was created, in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). Example: `2016-08-25T21:10:29.600Z` diff --git a/website/docs/r/core_instance.html.markdown b/website/docs/r/core_instance.html.markdown index caaa1068921..59ed0c114ea 100644 --- a/website/docs/r/core_instance.html.markdown +++ b/website/docs/r/core_instance.html.markdown @@ -255,7 +255,7 @@ The following arguments are supported: * `vlan_id` - (Optional) Provide this attribute only if you are an Oracle Cloud VMware Solution customer and creating a secondary VNIC in a VLAN. The value is the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN. See [Vlan](https://docs.cloud.oracle.com/iaas/api/#/en/iaas/latest/Vlan). Provide a `vlanId` instead of a `subnetId`. If you provide both a `vlanId` and `subnetId`, the request fails. -* `dedicated_vm_host_id` - (Optional) The OCID of dedicated VM host. +* `dedicated_vm_host_id` - (Optional) The OCID of the dedicated virtual machine host to place the instance on. * `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"}` * `display_name` - (Optional) (Updatable) A user-friendly name. Does not have to be unique, and it's changeable. Avoid entering confidential information. * `extended_metadata` - (Optional) (Updatable) Additional metadata key/value pairs that you provide. They serve the same purpose and functionality as fields in the `metadata` object. @@ -356,17 +356,22 @@ The following arguments are supported: For more information about shielded instances, see [Shielded Instances](https://docs.cloud.oracle. com/iaas/Content/Compute/References/shielded-instances.htm). - * `are_virtual_instructions_enabled` - (Applicable when type=AMD_MILAN_BM | AMD_ROME_BM | AMD_ROME_BM_GPU) Whether virtualization instructions are available. - * `is_access_control_service_enabled` - (Applicable when type=AMD_MILAN_BM | AMD_ROME_BM | AMD_ROME_BM_GPU) Whether the Access Control Service is enabled on the instance. When enabled, the platform can enforce PCIe device isolation, required for VFIO device passthrough. - * `is_input_output_memory_management_unit_enabled` - (Applicable when type=AMD_MILAN_BM | AMD_ROME_BM | AMD_ROME_BM_GPU | INTEL_ICELAKE_BM) Whether the input-output memory management unit is enabled. + For more information about BIOS settings for bare metal instances, see [BIOS Settings for Bare Metal Instances](https://docs.cloud.oracle.com/iaas/Content/Compute/References/bios-settings.htm). + * `are_virtual_instructions_enabled` - (Applicable when type=AMD_MILAN_BM | AMD_MILAN_BM_GPU | AMD_ROME_BM | AMD_ROME_BM_GPU) Whether virtualization instructions are available. For example, Secure Virtual Machine for AMD shapes or VT-x for Intel shapes. + * `is_access_control_service_enabled` - (Applicable when type=AMD_MILAN_BM | AMD_MILAN_BM_GPU | AMD_ROME_BM | AMD_ROME_BM_GPU) Whether the Access Control Service is enabled on the instance. When enabled, the platform can enforce PCIe device isolation, required for VFIO device pass-through. + * `is_input_output_memory_management_unit_enabled` - (Applicable when type=AMD_MILAN_BM | AMD_MILAN_BM_GPU | AMD_ROME_BM | AMD_ROME_BM_GPU | INTEL_ICELAKE_BM) Whether the input-output memory management unit is enabled. * `is_measured_boot_enabled` - (Optional) Whether the Measured Boot feature is enabled on the instance. * `is_memory_encryption_enabled` - (Optional) Whether the instance is a confidential instance. If this value is `true`, the instance is a confidential instance. The default value is `false`. * `is_secure_boot_enabled` - (Optional) Whether Secure Boot is enabled on the instance. - * `is_symmetric_multi_threading_enabled` - (Applicable when type=AMD_MILAN_BM | AMD_ROME_BM | AMD_ROME_BM_GPU | INTEL_ICELAKE_BM) Whether symmetric multi-threading is enabled on the instance. - * `is_trusted_platform_module_enabled` - (Optional) Whether the Trusted Platform Module (TPM) is enabled on the instance. - * `numa_nodes_per_socket` - (Applicable when type=AMD_MILAN_BM | AMD_ROME_BM | AMD_ROME_BM_GPU | INTEL_ICELAKE_BM) The number of NUMA nodes per socket (NPS). - * `percentage_of_cores_enabled` - (Applicable when type=AMD_MILAN_BM | AMD_ROME_BM | INTEL_ICELAKE_BM) The percentage of cores enabled. - * `type` - (Required) The type of platform being configured. (Supported types=[INTEL_VM, AMD_MILAN_BM, AMD_ROME_BM, AMD_ROME_BM_GPU, INTEL_ICELAKE_BM, INTEL_SKYLAKE_BM]) + * `is_symmetric_multi_threading_enabled` - (Applicable when type=AMD_MILAN_BM | AMD_MILAN_BM_GPU | AMD_ROME_BM | AMD_ROME_BM_GPU | INTEL_ICELAKE_BM) Whether symmetric multithreading is enabled on the instance. Symmetric multithreading is also called simultaneous multithreading (SMT) or Intel Hyper-Threading. + + Intel and AMD processors have two hardware execution threads per core (OCPU). SMT permits multiple independent threads of execution, to better use the resources and increase the efficiency of the CPU. When multithreading is disabled, only one thread is permitted to run on each core, which can provide higher or more predictable performance for some workloads. + * `is_trusted_platform_module_enabled` - (Optional) Whether the Trusted Platform Module (TPM) is enabled on the instance. + * `numa_nodes_per_socket` - (Applicable when type=AMD_MILAN_BM | AMD_MILAN_BM_GPU | AMD_ROME_BM | AMD_ROME_BM_GPU | INTEL_ICELAKE_BM) The number of NUMA nodes per socket (NPS). + * `percentage_of_cores_enabled` - (Applicable when type=AMD_MILAN_BM | AMD_ROME_BM | INTEL_ICELAKE_BM) The percentage of cores enabled. Value must be a multiple of 25%. If the requested percentage results in a fractional number of cores, the system rounds up the number of cores across processors and provisions an instance with a whole number of cores. + + If the applications that you run on the instance use a core-based licensing model and need fewer cores than the full size of the shape, you can disable cores to reduce your licensing costs. The instance itself is billed for the full shape, regardless of whether all cores are enabled. + * `type` - (Required) The type of platform being configured. * `preemptible_instance_config` - (Optional) Configuration options for preemptible instances. * `preemption_action` - (Required) The action to run when the preemptible instance is interrupted for eviction. * `preserve_boot_volume` - (Optional) Whether to preserve the boot volume that was used to launch the preemptible instance when the instance is terminated. Defaults to false if not specified. @@ -444,7 +449,7 @@ The following attributes are exported: * `boot_volume_id` - The OCID of the attached boot volume. If the `source_type` is `bootVolume`, this will be the same OCID as the `source_id`. * `capacity_reservation_id` - The OCID of the compute capacity reservation this instance is launched under. When this field contains an empty string or is null, the instance is not currently in a capacity reservation. For more information, see [Capacity Reservations](https://docs.cloud.oracle.com/iaas/Content/Compute/Tasks/reserve-capacity.htm#default). * `compartment_id` - The OCID of the compartment that contains the instance. -* `dedicated_vm_host_id` - The OCID of dedicated VM host. +* `dedicated_vm_host_id` - The OCID of the dedicated virtual machine host that the instance is placed on. * `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"}` * `display_name` - A user-friendly name. Does not have to be unique, and it's changeable. Avoid entering confidential information. * `extended_metadata` - Additional metadata key/value pairs that you provide. They serve the same purpose and functionality as fields in the `metadata` object. diff --git a/website/docs/r/core_instance_configuration.html.markdown b/website/docs/r/core_instance_configuration.html.markdown index 425623f06b3..a8ae8be9d37 100644 --- a/website/docs/r/core_instance_configuration.html.markdown +++ b/website/docs/r/core_instance_configuration.html.markdown @@ -218,7 +218,7 @@ The following arguments are supported: * `display_name` - (Optional) (Updatable) A user-friendly name. Does not have to be unique, and it's changeable. Avoid entering confidential information. * `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"}` * `instance_details` - (Required when source=NONE) - * `block_volumes` - (Optional) + * `block_volumes` - (Optional) Block volume parameters. * `attach_details` - (Optional) Volume attachmentDetails. Please see [AttachVolumeDetails](https://docs.cloud.oracle.com/iaas/api/#/en/iaas/latest/AttachVolumeDetails/) * `device` - (Applicable when instance_type=compute) The device name. * `display_name` - (Applicable when instance_type=compute) A user-friendly name. Does not have to be unique, and it's changeable. Avoid entering confidential information. @@ -297,7 +297,7 @@ The following arguments are supported: * `private_ip` - (Optional) A private IP address of your choice to assign to the VNIC. See the `privateIp` attribute of [CreateVnicDetails](https://docs.cloud.oracle.com/iaas/api/#/en/iaas/latest/CreateVnicDetails/) for more information. * `skip_source_dest_check` - (Optional) Whether the source/destination check is disabled on the VNIC. See the `skipSourceDestCheck` attribute of [CreateVnicDetails](https://docs.cloud.oracle.com/iaas/api/#/en/iaas/latest/CreateVnicDetails/) for more information. * `subnet_id` - (Optional) The OCID of the subnet to create the VNIC in. See the `subnetId` attribute of [CreateVnicDetails](https://docs.cloud.oracle.com/iaas/api/#/en/iaas/latest/CreateVnicDetails/) for more information. - * `dedicated_vm_host_id` - (Optional) The OCID of dedicated VM host. + * `dedicated_vm_host_id` - (Optional) The OCID of the dedicated virtual machine host to place the instance on. Dedicated VM hosts can be used when launching individual instances from an instance configuration. They cannot be used to launch instance pools. * `defined_tags` - (Optional) 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"}` @@ -386,16 +386,20 @@ The following arguments are supported: If you provide the parameter, the instance is created with the platform configuration that you specify. For any values that you omit, the instance uses the default configuration values for the `shape` that you specify. If you don't provide the parameter, the default values for the `shape` are used. Each shape only supports certain configurable values. If the values that you provide are not valid for the specified `shape`, an error is returned. - * `are_virtual_instructions_enabled` - (Applicable when type=AMD_MILAN_BM | AMD_ROME_BM | AMD_ROME_BM_GPU) Whether virtualization instructions are available. - * `is_access_control_service_enabled` - (Applicable when type=AMD_MILAN_BM | AMD_ROME_BM | AMD_ROME_BM_GPU) Whether the Access Control Service is enabled on the instance. When enabled, the platform can enforce PCIe device isolation, required for VFIO device passthrough. - * `is_input_output_memory_management_unit_enabled` - (Applicable when type=AMD_MILAN_BM | AMD_ROME_BM | AMD_ROME_BM_GPU | INTEL_ICELAKE_BM) Whether the input-output memory management unit is enabled. + * `are_virtual_instructions_enabled` - (Applicable when type=AMD_MILAN_BM | AMD_MILAN_BM_GPU | AMD_ROME_BM | AMD_ROME_BM_GPU) Whether virtualization instructions are available. For example, Secure Virtual Machine for AMD shapes or VT-x for Intel shapes. + * `is_access_control_service_enabled` - (Applicable when type=AMD_MILAN_BM | AMD_MILAN_BM_GPU | AMD_ROME_BM | AMD_ROME_BM_GPU) Whether the Access Control Service is enabled on the instance. When enabled, the platform can enforce PCIe device isolation, required for VFIO device pass-through. + * `is_input_output_memory_management_unit_enabled` - (Applicable when type=AMD_MILAN_BM | AMD_MILAN_BM_GPU | AMD_ROME_BM | AMD_ROME_BM_GPU | INTEL_ICELAKE_BM) Whether the input-output memory management unit is enabled. * `is_measured_boot_enabled` - (Applicable when instance_type=compute) Whether the Measured Boot feature is enabled on the instance. * `is_memory_encryption_enabled` - (Applicable when instance_type=compute) Whether the instance is a confidential instance. If this value is `true`, the instance is a confidential instance. The default value is `false`. * `is_secure_boot_enabled` - (Applicable when instance_type=compute) Whether Secure Boot is enabled on the instance. - * `is_symmetric_multi_threading_enabled` - (Applicable when type=AMD_MILAN_BM | AMD_ROME_BM | AMD_ROME_BM_GPU | INTEL_ICELAKE_BM) Whether symmetric multi-threading is enabled on the instance. + * `is_symmetric_multi_threading_enabled` - (Applicable when type=AMD_MILAN_BM | AMD_MILAN_BM_GPU | AMD_ROME_BM | AMD_ROME_BM_GPU | INTEL_ICELAKE_BM) Whether symmetric multithreading is enabled on the instance. Symmetric multithreading is also called simultaneous multithreading (SMT) or Intel Hyper-Threading. + + Intel and AMD processors have two hardware execution threads per core (OCPU). SMT permits multiple independent threads of execution, to better use the resources and increase the efficiency of the CPU. When multithreading is disabled, only one thread is permitted to run on each core, which can provide higher or more predictable performance for some workloads. * `is_trusted_platform_module_enabled` - (Applicable when instance_type=compute) Whether the Trusted Platform Module (TPM) is enabled on the instance. - * `numa_nodes_per_socket` - (Applicable when type=AMD_MILAN_BM | AMD_ROME_BM | AMD_ROME_BM_GPU | INTEL_ICELAKE_BM) The number of NUMA nodes per socket (NPS). - * `percentage_of_cores_enabled` - (Applicable when type=AMD_MILAN_BM | AMD_ROME_BM | INTEL_ICELAKE_BM) The percentage of cores enabled. + * `numa_nodes_per_socket` - (Applicable when type=AMD_MILAN_BM | AMD_MILAN_BM_GPU | AMD_ROME_BM | AMD_ROME_BM_GPU | INTEL_ICELAKE_BM) The number of NUMA nodes per socket (NPS). + * `percentage_of_cores_enabled` - (Applicable when type=AMD_MILAN_BM | AMD_ROME_BM | INTEL_ICELAKE_BM) The percentage of cores enabled. Value must be a multiple of 25%. If the requested percentage results in a fractional number of cores, the system rounds up the number of cores across processors and provisions an instance with a whole number of cores. + + If the applications that you run on the instance use a core-based licensing model and need fewer cores than the full size of the shape, you can disable cores to reduce your licensing costs. The instance itself is billed for the full shape, regardless of whether all cores are enabled. * `type` - (Required) The type of platform being configured. * `preemptible_instance_config` - (Optional) Configuration options for preemptible instances. * `preemption_action` - (Required) The action to run when the preemptible instance is interrupted for eviction. @@ -432,7 +436,7 @@ The following arguments are supported: * `30`-`120`: Represents the Ultra High Performance option. * `image_id` - (Applicable when source_type=image) The OCID of the image used to boot the instance. * `source_type` - (Required) The source type for the instance. Use `image` when specifying the image OCID. Use `bootVolume` when specifying the boot volume OCID. - * `secondary_vnics` - (Optional) + * `secondary_vnics` - (Optional) Secondary VNIC parameters. * `create_vnic_details` - (Optional) Contains the properties of the VNIC for an instance configuration. See [CreateVnicDetails](https://docs.cloud.oracle.com/iaas/api/#/en/iaas/latest/CreateVnicDetails/) and [Instance Configurations](https://docs.cloud.oracle.com/iaas/Content/Compute/Concepts/instancemanagement.htm#config) for more information. * `assign_private_dns_record` - (Optional) Whether the VNIC should be assigned a private DNS record. See the `assignPrivateDnsRecord` attribute of [CreateVnicDetails](https://docs.cloud.oracle.com/iaas/api/#/en/iaas/20160918/CreateVnicDetails/) for more information. * `assign_public_ip` - (Optional) Whether the VNIC should be assigned a public IP address. See the `assignPublicIp` attribute of [CreateVnicDetails](https://docs.cloud.oracle.com/iaas/api/#/en/iaas/latest/CreateVnicDetails/) for more information. @@ -474,7 +478,7 @@ The following attributes are exported: * `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"}` * `id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the instance configuration. * `instance_details` - - * `block_volumes` - + * `block_volumes` - Block volume parameters. * `attach_details` - Volume attachmentDetails. Please see [AttachVolumeDetails](https://docs.cloud.oracle.com/iaas/api/#/en/iaas/latest/AttachVolumeDetails/) * `device` - The device name. * `display_name` - A user-friendly name. Does not have to be unique, and it's changeable. Avoid entering confidential information. @@ -553,7 +557,7 @@ The following attributes are exported: * `private_ip` - A private IP address of your choice to assign to the VNIC. See the `privateIp` attribute of [CreateVnicDetails](https://docs.cloud.oracle.com/iaas/api/#/en/iaas/latest/CreateVnicDetails/) for more information. * `skip_source_dest_check` - Whether the source/destination check is disabled on the VNIC. See the `skipSourceDestCheck` attribute of [CreateVnicDetails](https://docs.cloud.oracle.com/iaas/api/#/en/iaas/latest/CreateVnicDetails/) for more information. * `subnet_id` - The OCID of the subnet to create the VNIC in. See the `subnetId` attribute of [CreateVnicDetails](https://docs.cloud.oracle.com/iaas/api/#/en/iaas/latest/CreateVnicDetails/) for more information. - * `dedicated_vm_host_id` - The OCID of dedicated VM host. + * `dedicated_vm_host_id` - The OCID of the dedicated virtual machine host to place the instance on. Dedicated VM hosts can be used when launching individual instances from an instance configuration. They cannot be used to launch instance pools. * `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"}` @@ -688,7 +692,7 @@ The following attributes are exported: * `30`-`120`: Represents the Ultra High Performance option. * `image_id` - The OCID of the image used to boot the instance. * `source_type` - The source type for the instance. Use `image` when specifying the image OCID. Use `bootVolume` when specifying the boot volume OCID. - * `secondary_vnics` - + * `secondary_vnics` - Secondary VNIC parameters. * `create_vnic_details` - Contains the properties of the VNIC for an instance configuration. See [CreateVnicDetails](https://docs.cloud.oracle.com/iaas/api/#/en/iaas/latest/CreateVnicDetails/) and [Instance Configurations](https://docs.cloud.oracle.com/iaas/Content/Compute/Concepts/instancemanagement.htm#config) for more information. * `assign_private_dns_record` - Whether the VNIC should be assigned a private DNS record. Defaults to true. See the `assignPrivateDnsRecord` attribute of [CreateVnicDetails](https://docs.cloud.oracle.com/iaas/api/#/en/iaas/20160918/CreateVnicDetails/) for more information. * `assign_public_ip` - Whether the VNIC should be assigned a public IP address. See the `assignPublicIp` attribute of [CreateVnicDetails](https://docs.cloud.oracle.com/iaas/api/#/en/iaas/latest/CreateVnicDetails/) for more information. diff --git a/website/docs/r/core_instance_pool.html.markdown b/website/docs/r/core_instance_pool.html.markdown index bcec6fd4ce6..92bb44f79ba 100644 --- a/website/docs/r/core_instance_pool.html.markdown +++ b/website/docs/r/core_instance_pool.html.markdown @@ -10,7 +10,8 @@ description: |- # oci_core_instance_pool This resource provides the Instance Pool resource in Oracle Cloud Infrastructure Core service. -Create an instance pool. +Creates an instance pool. + ## Example Usage @@ -79,7 +80,7 @@ The following arguments are supported: Example: `[FAULT-DOMAIN-1, FAULT-DOMAIN-2, FAULT-DOMAIN-3]` * `primary_subnet_id` - (Required) (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the primary subnet to place instances. * `secondary_vnic_subnets` - (Optional) (Updatable) The set of secondary VNIC data for instances in the pool. - * `display_name` - (Optional) (Updatable) The display name of the VNIC. This is also use to match against the instance configuration defined secondary VNIC. + * `display_name` - (Optional) (Updatable) The display name of the VNIC. This is also used to match against the instance configuration defined secondary VNIC. * `subnet_id` - (Required) (Updatable) The subnet [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) for the secondary VNIC. * `size` - (Required) (Updatable) The number of instances that should be in the instance pool. Modifying this value will override the size of the instance pool. If the instance pool is linked with autoscaling configuration, autoscaling configuration could resize the instance pool at a later point. The instance pool's actual size may differ from the configured size if it is associated with an autoscaling configuration, instance pool's actual size will be reflected in this size attribute. * `state` - (Optional) (Updatable) The target state for the instance pool update operation (ignored at create time and should not be set). Could be set to RUNNING or STOPPED. @@ -119,7 +120,7 @@ The following attributes are exported: Example: `[FAULT-DOMAIN-1, FAULT-DOMAIN-2, FAULT-DOMAIN-3]` * `primary_subnet_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the primary subnet to place instances. * `secondary_vnic_subnets` - The set of secondary VNIC data for instances in the pool. - * `display_name` - The display name of the VNIC. This is also use to match against the instance configuration defined secondary VNIC. + * `display_name` - The display name of the VNIC. This is also used to match against the instance configuration defined secondary VNIC. * `subnet_id` - The subnet [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) for the secondary VNIC. * `size` - The number of instances that should be in the instance pool. * `actual_size` - The number of actual instances in the instance pool on the cloud. This attribute will be different when instance pool is used along with autoScaling Configuration. diff --git a/website/docs/r/core_route_table.html.markdown b/website/docs/r/core_route_table.html.markdown index 2e89f6f096f..0104cb655e0 100644 --- a/website/docs/r/core_route_table.html.markdown +++ b/website/docs/r/core_route_table.html.markdown @@ -111,7 +111,7 @@ The following attributes are exported: * The `cidrBlock` value for a [Service](https://docs.cloud.oracle.com/iaas/api/#/en/iaas/latest/Service/), if you're setting up a route rule for traffic destined for a particular `Service` through a service gateway. For example: `oci-phx-objectstorage`. * `destination_type` - Type of destination for the rule. Required if you provide a `destination`. * `CIDR_BLOCK`: If the rule's `destination` is an IP address range in CIDR notation. - * `SERVICE_CIDR_BLOCK`: If the rule's `destination` is the `cidrBlock` value for a [Service](https://docs.cloud.oracle.com/iaas/api/#/en/iaas/latest/Service/) (the rule is for traffic destined for a particular `Service` through a service gateway). + * `SERVICE_CIDR_BLOCK`: If the rule's `destination` is the `cidrBlock` value for a [Service](https://docs.cloud.oracle.com/iaas/api/#/en/iaas/latest/Service/) (the rule is for traffic destined for a particular `Service` through a service gateway). * `network_entity_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) for the route rule's target. For information about the type of targets you can specify, see [Route Tables](https://docs.cloud.oracle.com/iaas/Content/Network/Tasks/managingroutetables.htm). * `route_type` - A route rule can be STATIC if manually added to the route table, LOCAL if added by Oracle Cloud Infrastructure to the route table. * `state` - The route table's current state. diff --git a/website/docs/r/core_virtual_circuit.html.markdown b/website/docs/r/core_virtual_circuit.html.markdown index 376e3f80c44..5fd0bc9374f 100644 --- a/website/docs/r/core_virtual_circuit.html.markdown +++ b/website/docs/r/core_virtual_circuit.html.markdown @@ -139,7 +139,7 @@ The following attributes are exported: * `bgp_management` - Deprecated. Instead use the information in [FastConnectProviderService](https://docs.cloud.oracle.com/iaas/api/#/en/iaas/latest/FastConnectProviderService/). * `bgp_session_state` - The state of the Ipv4 BGP session associated with the virtual circuit. * `compartment_id` - The OCID of the compartment containing the virtual circuit. -* `cross_connect_mappings` - An array of mappings, each containing properties for a cross-connect or cross-connect group that is associated with this virtual circuit. +* `cross_connect_mappings` - An array of mappings, each containing properties for a cross-connect or cross-connect group that is associated with this virtual circuit. * `bgp_md5auth_key` - The key for BGP MD5 authentication. Only applicable if your system requires MD5 authentication. If empty or not set (null), that means you don't use BGP MD5 authentication. * `cross_connect_or_cross_connect_group_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the cross-connect or cross-connect group for this mapping. Specified by the owner of the cross-connect or cross-connect group (the customer if the customer is colocated with Oracle, or the provider if the customer is connecting via provider). * `customer_bgp_peering_ip` - The BGP IPv4 address for the router on the other end of the BGP session from Oracle. Specified by the owner of that router. If the session goes from Oracle to a customer, this is the BGP IPv4 address of the customer's edge router. If the session goes from Oracle to a provider, this is the BGP IPv4 address of the provider's edge router. Must use a subnet mask from /28 to /31. From 8c24fffb7fe19c72125a387275bea5be60c49ee3 Mon Sep 17 00:00:00 2001 From: Terraform Team Automation Date: Fri, 10 Mar 2023 02:44:44 +0000 Subject: [PATCH 06/12] Added - Support for GoldenGate Maintenance --- examples/goldengate/Deployment/main.tf | 2 +- internal/client/provider_clients.go | 3 +- .../golden_gate_deployment_test.go | 188 ++++++++-- .../golden_gate_deployment_type_test.go | 41 +-- .../golden_gate_deployment_upgrade_test.go | 87 +++-- .../golden_gate_deployment_version_test.go | 62 ++++ .../golden_gate_deployment_data_source.go | 16 + .../golden_gate_deployment_resource.go | 342 +++++++++++++++++- ...olden_gate_deployment_types_data_source.go | 29 +- ...den_gate_deployment_upgrade_data_source.go | 62 ++++ ...en_gate_deployment_upgrades_data_source.go | 62 ++++ ...en_gate_deployment_versions_data_source.go | 189 ++++++++++ .../golden_gate/register_datasource.go | 1 + .../d/golden_gate_deployment.html.markdown | 8 +- ...golden_gate_deployment_types.html.markdown | 5 + ...lden_gate_deployment_upgrade.html.markdown | 10 + ...den_gate_deployment_upgrades.html.markdown | 10 + ...den_gate_deployment_versions.html.markdown | 54 +++ .../d/golden_gate_deployments.html.markdown | 8 +- .../r/golden_gate_deployment.html.markdown | 22 +- 20 files changed, 1114 insertions(+), 87 deletions(-) create mode 100644 internal/integrationtest/golden_gate_deployment_version_test.go create mode 100644 internal/service/golden_gate/golden_gate_deployment_versions_data_source.go create mode 100644 website/docs/d/golden_gate_deployment_versions.html.markdown diff --git a/examples/goldengate/Deployment/main.tf b/examples/goldengate/Deployment/main.tf index 7b3f92edf59..73294b1e9b7 100644 --- a/examples/goldengate/Deployment/main.tf +++ b/examples/goldengate/Deployment/main.tf @@ -21,7 +21,7 @@ variable "deployment_description" { } variable "deployment_display_name" { - default = "displayName" + default = "TERRAFORM_backward_compatibility_test" } variable "deployment_fqdn" { diff --git a/internal/client/provider_clients.go b/internal/client/provider_clients.go index 549ecc60ff4..4624a79add6 100644 --- a/internal/client/provider_clients.go +++ b/internal/client/provider_clients.go @@ -5,9 +5,10 @@ package client import ( "fmt" - oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" "strings" + oci_identity_domains "github.com/oracle/oci-go-sdk/v65/identitydomains" + oci_functions "github.com/oracle/oci-go-sdk/v65/functions" oci_kms "github.com/oracle/oci-go-sdk/v65/keymanagement" diff --git a/internal/integrationtest/golden_gate_deployment_test.go b/internal/integrationtest/golden_gate_deployment_test.go index dbdc65d056c..38c93db34c1 100644 --- a/internal/integrationtest/golden_gate_deployment_test.go +++ b/internal/integrationtest/golden_gate_deployment_test.go @@ -10,12 +10,6 @@ import ( "testing" "time" - "github.com/oracle/terraform-provider-oci/internal/acctest" - tf_client "github.com/oracle/terraform-provider-oci/internal/client" - "github.com/oracle/terraform-provider-oci/internal/resourcediscovery" - "github.com/oracle/terraform-provider-oci/internal/tfresource" - "github.com/oracle/terraform-provider-oci/internal/utils" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" @@ -23,6 +17,11 @@ import ( oci_golden_gate "github.com/oracle/oci-go-sdk/v65/goldengate" "github.com/oracle/terraform-provider-oci/httpreplay" + "github.com/oracle/terraform-provider-oci/internal/acctest" + tf_client "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/resourcediscovery" + "github.com/oracle/terraform-provider-oci/internal/tfresource" + "github.com/oracle/terraform-provider-oci/internal/utils" ) // issue-routing-tag: golden_gate/default @@ -35,6 +34,8 @@ func TestGoldenGateDeploymentResource_basic(t *testing.T) { COMPARTMENT_ID_FOR_MOVE = "compartment_id_for_move" TEST_SUBNET_ID = "test_subnet_id" DEPLOYMENT_OGG_KEY = "golden_gate_deployment_ogg_key" + BASE_OGG_VERSION = "base_ogg_version" + UPGRADED_OGG_VERSION = "upgraded_ogg_version" ) var ( @@ -50,7 +51,7 @@ func TestGoldenGateDeploymentResource_basic(t *testing.T) { "compartment_id": acctest.Representation{RepType: acctest.Required, Create: `${var.compartment_id}`}, "assignable_connection_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_golden_gate_connection.test_connection.id}`}, "assigned_connection_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_golden_gate_connection.test_connection.id}`}, - "display_name": acctest.Representation{RepType: acctest.Required, Create: `displayName`, Update: `displayName2`}, + "display_name": acctest.Representation{RepType: acctest.Required, Create: `Terraform_integration_test`, Update: `Terraform_integration_test2`}, "fqdn": acctest.Representation{RepType: acctest.Required, Create: `fqdn1.ggs.com`, Update: `fqdn2.ggs.com`}, "lifecycle_sub_state": acctest.Representation{RepType: acctest.Required, Create: `RECOVERING`}, "state": acctest.Representation{RepType: acctest.Required, Create: `ACTIVE`}, @@ -59,6 +60,8 @@ func TestGoldenGateDeploymentResource_basic(t *testing.T) { compartmentId = utils.GetEnvSettingWithBlankDefault(COMPARTMENT_ID) compartmentIdForMove = utils.GetEnvSettingWithBlankDefault(COMPARTMENT_ID_FOR_MOVE) + baseOggVersion = utils.GetEnvSettingWithBlankDefault(BASE_OGG_VERSION) + upgradedOggVersion = utils.GetEnvSettingWithBlankDefault(UPGRADED_OGG_VERSION) resId string resId2 string @@ -76,13 +79,23 @@ func TestGoldenGateDeploymentResource_basic(t *testing.T) { "deployment_name": acctest.Representation{RepType: acctest.Required, Create: `depl_test_ggs_deployment_name`}, "certificate": acctest.Representation{RepType: acctest.Optional, Create: ``, Update: `-----BEGIN CERTIFICATE-----\nMIICljCCAX4CCQCEpaMjTCJ8WzANBgkqhkiG9w0BAQsFADANMQswCQYDVQQGEwJV\nUzAeFw0yMTAxMTkyMTI2MjRaFw0yNDAxMTkyMTI2MjRaMA0xCzAJBgNVBAYTAlVT\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAo83kaUQXpCcSoEuRVFX3\njztWDNKtWpjNG240f0RpERI1NnZtHH0qnZqfaWAQQa8kx3+W1LOeFbkkRnkJz19g\neIXR6TeavT+W5iRh4goK+N7gubYkSMa2shVf+XsoHKERSbhdhrtX+GqvKzAvplCt\nCgd4MDlsvLv/YHCLvJL4JgRxKyevjlnE1rqrICJMCLbbZMrIKTzwb/K13hGrm6Bc\n+Je9EC3MWWxd5jBwXu3vgIYRuGR4DPg/yfMKPZr2xFDLpBsv5jaqULS9t6GwoEBJ\nKN0NXp5obaQToYqMsvAZyHoEyfCBDka16Bm5hGF60FwqgUT3p/+qlBn61cAJe9t5\n8QIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQAX1rxV2hai02Pb4Cf8U44zj+1aY6wV\nLvOMWiL3zl53up4/X7PDcmWcPM9UMVCGTISZD6A6IPvNlkvbtvYCzgjhtGxDmrj7\nwTRV5gO9j3bAhxBO7XgTmwmD/9hpykM58nbhLFnkGf+Taja8qsy0U8H74Tr9w1M8\n8E5kghgGzBElNquM8AUuDakC1JL4aLO/VDMxe/1BLtmBHLZy3XTzVycjP9ZFPh6h\nT+cWJcVOjQSYY2U75sDnKD2Sg1cmK54HauA6SPh4kAkpmxyLyDZZjPBQe2sLFmmS\naZSE+g16yMR9TVHo3pTpRkxJwDEH0LePwYXA4vUIK3HHS6zgLe0ody8g\n-----END CERTIFICATE-----`}, "key": acctest.Representation{RepType: acctest.Optional, Create: ``, Update: `${var.golden_gate_deployment_ogg_key}`}, + "ogg_version": acctest.Representation{RepType: acctest.Optional, Create: ``}, + } + + oggDataForUpgradeRepresentation = acctest.RepresentationCopyWithNewProperties(goldenGateDeploymentOggDataRepresentation, map[string]interface{}{ + "ogg_version": acctest.Representation{RepType: acctest.Optional, Create: `${var.base_ogg_version}`, Update: `${var.upgraded_ogg_version}`}, + }) + + deploymentMaintenanceWindowRepresentation = map[string]interface{}{ + "day": acctest.Representation{RepType: acctest.Required, Create: `MONDAY`, Update: `TUESDAY`}, + "start_hour": acctest.Representation{RepType: acctest.Required, Create: `10`, Update: `11`}, } goldenGateDeploymentRepresentation = map[string]interface{}{ "compartment_id": acctest.Representation{RepType: acctest.Required, Create: `${var.compartment_id}`}, "cpu_core_count": acctest.Representation{RepType: acctest.Required, Create: `1`}, - "deployment_type": acctest.Representation{RepType: acctest.Required, Create: `OGG`}, - "display_name": acctest.Representation{RepType: acctest.Required, Create: `displayName`, Update: `displayName2`}, + "deployment_type": acctest.Representation{RepType: acctest.Required, Create: `DATABASE_ORACLE`}, + "display_name": acctest.Representation{RepType: acctest.Required, Create: `Terraform_integration_test`, Update: `Terraform_integration_test2`}, "is_auto_scaling_enabled": acctest.Representation{RepType: acctest.Required, Create: `false`}, "subnet_id": acctest.Representation{RepType: acctest.Required, Create: `${var.test_subnet_id}`}, "license_model": acctest.Representation{RepType: acctest.Required, Create: `LICENSE_INCLUDED`}, @@ -92,6 +105,7 @@ func TestGoldenGateDeploymentResource_basic(t *testing.T) { "is_public": acctest.Representation{RepType: acctest.Optional, Create: `false`}, "ogg_data": acctest.RepresentationGroup{RepType: acctest.Required, Group: goldenGateDeploymentOggDataRepresentation}, "lifecycle": acctest.RepresentationGroup{RepType: acctest.Required, Group: ignoreDefinedTagsChangesRepresentation}, + "maintenance_window": acctest.RepresentationGroup{RepType: acctest.Required, Group: deploymentMaintenanceWindowRepresentation}, } goldenGateDeploymentSingularDataSourceRepresentation = map[string]interface{}{ @@ -109,6 +123,8 @@ func TestGoldenGateDeploymentResource_basic(t *testing.T) { makeVariableStr(COMPARTMENT_ID_FOR_MOVE, t) + makeVariableStr(TEST_SUBNET_ID, t) + makeVariableStr(DEPLOYMENT_OGG_KEY, t) + + makeVariableStr(BASE_OGG_VERSION, t) + + makeVariableStr(UPGRADED_OGG_VERSION, t) + GoldenGateDeploymentResourceDependencies // Save TF content to Create resource with optional properties. This has to be exactly the same as the config part in the "Create with optionals" step in the test. @@ -123,14 +139,15 @@ func TestGoldenGateDeploymentResource_basic(t *testing.T) { Check: acctest.ComposeAggregateTestCheckFuncWrapper( resource.TestCheckResourceAttr(resourceName, "compartment_id", compartmentId), resource.TestCheckResourceAttr(resourceName, "cpu_core_count", "1"), - resource.TestCheckResourceAttr(resourceName, "deployment_type", "OGG"), - resource.TestCheckResourceAttr(resourceName, "display_name", "displayName"), + resource.TestCheckResourceAttr(resourceName, "deployment_type", "DATABASE_ORACLE"), + resource.TestCheckResourceAttr(resourceName, "display_name", "Terraform_integration_test"), resource.TestCheckResourceAttr(resourceName, "is_auto_scaling_enabled", "false"), resource.TestCheckResourceAttrSet(resourceName, "subnet_id"), resource.TestCheckResourceAttr(resourceName, "license_model", "LICENSE_INCLUDED"), resource.TestCheckResourceAttr(resourceName, "ogg_data.#", "1"), resource.TestCheckResourceAttr(resourceName, "ogg_data.0.admin_username", "adminUsername"), resource.TestCheckResourceAttrSet(resourceName, "ogg_data.0.deployment_name"), + resource.TestCheckResourceAttrSet(resourceName, "ogg_data.0.ogg_version"), func(s *terraform.State) (err error) { resId, err = acctest.FromInstanceState(s, resourceName, "id") @@ -151,18 +168,22 @@ func TestGoldenGateDeploymentResource_basic(t *testing.T) { Check: acctest.ComposeAggregateTestCheckFuncWrapper( resource.TestCheckResourceAttr(resourceName, "compartment_id", compartmentId), resource.TestCheckResourceAttr(resourceName, "cpu_core_count", "1"), - resource.TestCheckResourceAttr(resourceName, "deployment_type", "OGG"), + resource.TestCheckResourceAttr(resourceName, "deployment_type", "DATABASE_ORACLE"), resource.TestCheckResourceAttr(resourceName, "description", "description"), - resource.TestCheckResourceAttr(resourceName, "display_name", "displayName"), + resource.TestCheckResourceAttr(resourceName, "display_name", "Terraform_integration_test"), resource.TestCheckResourceAttrSet(resourceName, "fqdn"), resource.TestCheckResourceAttr(resourceName, "freeform_tags.%", "1"), resource.TestCheckResourceAttrSet(resourceName, "id"), resource.TestCheckResourceAttr(resourceName, "is_auto_scaling_enabled", "false"), resource.TestCheckResourceAttr(resourceName, "is_public", "false"), resource.TestCheckResourceAttr(resourceName, "license_model", "LICENSE_INCLUDED"), + resource.TestCheckResourceAttr(resourceName, "maintenance_window.#", "1"), + resource.TestCheckResourceAttr(resourceName, "maintenance_window.0.day", "MONDAY"), + resource.TestCheckResourceAttr(resourceName, "maintenance_window.0.start_hour", "10"), resource.TestCheckResourceAttr(resourceName, "ogg_data.#", "1"), resource.TestCheckResourceAttr(resourceName, "ogg_data.0.admin_username", "adminUsername"), resource.TestCheckResourceAttrSet(resourceName, "ogg_data.0.deployment_name"), + resource.TestCheckResourceAttrSet(resourceName, "ogg_data.0.ogg_version"), resource.TestCheckResourceAttrSet(resourceName, "subnet_id"), func(s *terraform.State) (err error) { @@ -187,18 +208,22 @@ func TestGoldenGateDeploymentResource_basic(t *testing.T) { Check: acctest.ComposeAggregateTestCheckFuncWrapper( resource.TestCheckResourceAttr(resourceName, "compartment_id", compartmentIdForMove), resource.TestCheckResourceAttr(resourceName, "cpu_core_count", "1"), - resource.TestCheckResourceAttr(resourceName, "deployment_type", "OGG"), + resource.TestCheckResourceAttr(resourceName, "deployment_type", "DATABASE_ORACLE"), resource.TestCheckResourceAttr(resourceName, "description", "description"), - resource.TestCheckResourceAttr(resourceName, "display_name", "displayName"), + resource.TestCheckResourceAttr(resourceName, "display_name", "Terraform_integration_test"), resource.TestCheckResourceAttrSet(resourceName, "fqdn"), resource.TestCheckResourceAttr(resourceName, "freeform_tags.%", "1"), resource.TestCheckResourceAttrSet(resourceName, "id"), resource.TestCheckResourceAttr(resourceName, "is_auto_scaling_enabled", "false"), resource.TestCheckResourceAttr(resourceName, "is_public", "false"), resource.TestCheckResourceAttr(resourceName, "license_model", "LICENSE_INCLUDED"), + resource.TestCheckResourceAttr(resourceName, "maintenance_window.#", "1"), + resource.TestCheckResourceAttr(resourceName, "maintenance_window.0.day", "MONDAY"), + resource.TestCheckResourceAttr(resourceName, "maintenance_window.0.start_hour", "10"), resource.TestCheckResourceAttr(resourceName, "ogg_data.#", "1"), resource.TestCheckResourceAttr(resourceName, "ogg_data.0.admin_username", "adminUsername"), resource.TestCheckResourceAttrSet(resourceName, "ogg_data.0.deployment_name"), + resource.TestCheckResourceAttrSet(resourceName, "ogg_data.0.ogg_version"), resource.TestCheckResourceAttrSet(resourceName, "subnet_id"), func(s *terraform.State) (err error) { @@ -217,19 +242,23 @@ func TestGoldenGateDeploymentResource_basic(t *testing.T) { Check: acctest.ComposeAggregateTestCheckFuncWrapper( resource.TestCheckResourceAttr(resourceName, "compartment_id", compartmentId), resource.TestCheckResourceAttr(resourceName, "cpu_core_count", "1"), - resource.TestCheckResourceAttr(resourceName, "deployment_type", "OGG"), + resource.TestCheckResourceAttr(resourceName, "deployment_type", "DATABASE_ORACLE"), resource.TestCheckResourceAttr(resourceName, "description", "description2"), - resource.TestCheckResourceAttr(resourceName, "display_name", "displayName2"), + resource.TestCheckResourceAttr(resourceName, "display_name", "Terraform_integration_test2"), resource.TestCheckResourceAttrSet(resourceName, "fqdn"), resource.TestCheckResourceAttr(resourceName, "freeform_tags.%", "1"), resource.TestCheckResourceAttrSet(resourceName, "id"), resource.TestCheckResourceAttr(resourceName, "is_auto_scaling_enabled", "false"), resource.TestCheckResourceAttr(resourceName, "is_public", "false"), resource.TestCheckResourceAttr(resourceName, "license_model", "LICENSE_INCLUDED"), + resource.TestCheckResourceAttr(resourceName, "maintenance_window.#", "1"), + resource.TestCheckResourceAttr(resourceName, "maintenance_window.0.day", "TUESDAY"), + resource.TestCheckResourceAttr(resourceName, "maintenance_window.0.start_hour", "11"), resource.TestCheckResourceAttr(resourceName, "ogg_data.#", "1"), resource.TestCheckResourceAttr(resourceName, "ogg_data.0.admin_username", "adminUsername2"), resource.TestCheckResourceAttrSet(resourceName, "ogg_data.0.certificate"), resource.TestCheckResourceAttrSet(resourceName, "ogg_data.0.deployment_name"), + resource.TestCheckResourceAttrSet(resourceName, "ogg_data.0.ogg_version"), resource.TestCheckResourceAttrSet(resourceName, "subnet_id"), func(s *terraform.State) (err error) { @@ -244,7 +273,11 @@ func TestGoldenGateDeploymentResource_basic(t *testing.T) { // verify datasource { Config: config + DeploymentResourceConfig + testDeploymentIdVariableStr + - acctest.GenerateResourceFromRepresentationMap("oci_golden_gate_deployment", "test_deployment", acctest.Required, acctest.Create, goldenGateDeploymentRepresentation) + + acctest.GenerateResourceFromRepresentationMap("oci_golden_gate_deployment", "test_deployment", acctest.Required, acctest.Create, + acctest.RepresentationCopyWithNewProperties(goldenGateDeploymentRepresentation, map[string]interface{}{ + "fqdn": acctest.Representation{RepType: acctest.Required, Create: `fqdn100.ggs.com`}, + "display_name": acctest.Representation{RepType: acctest.Required, Create: `Terraform_integration_test - DataSource test`}, + })) + acctest.GenerateResourceFromRepresentationMap("oci_golden_gate_connection", "test_connection", acctest.Required, acctest.Create, acctest.RepresentationCopyWithNewProperties(GoldenGateConnectionRepresentation, map[string]interface{}{ "host": acctest.Representation{RepType: acctest.Required, Create: `10.0.0.127`, Update: `10.0.0.128`}, "port": acctest.Representation{RepType: acctest.Required, Create: `12`, Update: `13`}, @@ -254,7 +287,7 @@ func TestGoldenGateDeploymentResource_basic(t *testing.T) { resource.TestCheckResourceAttrSet(datasourceName, "assignable_connection_id"), resource.TestCheckResourceAttrSet(datasourceName, "assigned_connection_id"), resource.TestCheckResourceAttr(datasourceName, "compartment_id", compartmentId), - resource.TestCheckResourceAttr(datasourceName, "display_name", "displayName2"), + resource.TestCheckResourceAttr(datasourceName, "display_name", "Terraform_integration_test2"), resource.TestCheckResourceAttr(datasourceName, "fqdn", "fqdn2.ggs.com"), resource.TestCheckResourceAttr(datasourceName, "lifecycle_sub_state", "RECOVERING"), resource.TestCheckResourceAttr(datasourceName, "state", "ACTIVE"), @@ -273,10 +306,10 @@ func TestGoldenGateDeploymentResource_basic(t *testing.T) { resource.TestCheckResourceAttrSet(singularDatasourceName, "deployment_id"), resource.TestCheckResourceAttr(singularDatasourceName, "compartment_id", compartmentId), resource.TestCheckResourceAttr(singularDatasourceName, "cpu_core_count", "1"), - resource.TestCheckResourceAttr(singularDatasourceName, "deployment_type", "OGG"), + resource.TestCheckResourceAttr(singularDatasourceName, "deployment_type", "DATABASE_ORACLE"), resource.TestCheckResourceAttrSet(singularDatasourceName, "deployment_url"), resource.TestCheckResourceAttr(singularDatasourceName, "description", "description2"), - resource.TestCheckResourceAttr(singularDatasourceName, "display_name", "displayName2"), + resource.TestCheckResourceAttr(singularDatasourceName, "display_name", "Terraform_integration_test2"), resource.TestCheckResourceAttrSet(singularDatasourceName, "fqdn"), resource.TestCheckResourceAttr(singularDatasourceName, "freeform_tags.%", "1"), resource.TestCheckResourceAttrSet(singularDatasourceName, "id"), @@ -286,9 +319,13 @@ func TestGoldenGateDeploymentResource_basic(t *testing.T) { resource.TestCheckResourceAttrSet(singularDatasourceName, "is_public"), resource.TestCheckResourceAttrSet(singularDatasourceName, "is_storage_utilization_limit_exceeded"), resource.TestCheckResourceAttr(singularDatasourceName, "license_model", "LICENSE_INCLUDED"), + resource.TestCheckResourceAttr(singularDatasourceName, "maintenance_window.#", "1"), + resource.TestCheckResourceAttr(singularDatasourceName, "maintenance_window.0.day", "TUESDAY"), + resource.TestCheckResourceAttr(singularDatasourceName, "maintenance_window.0.start_hour", "11"), resource.TestCheckResourceAttr(singularDatasourceName, "ogg_data.#", "1"), resource.TestCheckResourceAttr(singularDatasourceName, "ogg_data.0.admin_username", "adminUsername2"), resource.TestCheckResourceAttrSet(singularDatasourceName, "ogg_data.0.certificate"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "ogg_data.0.ogg_version"), resource.TestCheckResourceAttrSet(singularDatasourceName, "private_ip_address"), resource.TestCheckResourceAttrSet(singularDatasourceName, "state"), resource.TestCheckResourceAttrSet(singularDatasourceName, "storage_utilization_in_bytes"), @@ -307,6 +344,115 @@ func TestGoldenGateDeploymentResource_basic(t *testing.T) { }, ResourceName: resourceName, }, + { + Config: config, + }, + /* Start/stop/upgrade test*/ + // 0. create a new deployment and stop it right after the creation + { + Config: config + + acctest.GenerateResourceFromRepresentationMap("oci_golden_gate_deployment", "depl_test_ggs_deployment", acctest.Optional, acctest.Create, + acctest.RepresentationCopyWithNewProperties(goldenGateDeploymentRepresentation, map[string]interface{}{ + "state": acctest.Representation{RepType: acctest.Optional, Create: string(oci_golden_gate.LifecycleStateInactive)}, + "ogg_data": acctest.RepresentationGroup{RepType: acctest.Required, Group: oggDataForUpgradeRepresentation}, + })), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(resourceName, "compartment_id", compartmentId), + resource.TestCheckResourceAttr(resourceName, "state", string(oci_golden_gate.LifecycleStateInactive)), + resource.TestCheckResourceAttr(resourceName, "ogg_data.0.ogg_version", baseOggVersion), + func(s *terraform.State) (err error) { + resId, err = acctest.FromInstanceState(s, resourceName, "id") + return err + }, + ), + }, + // 1. start the deployment and upgrade it at the same time + { + Config: config + + acctest.GenerateResourceFromRepresentationMap("oci_golden_gate_deployment", "depl_test_ggs_deployment", acctest.Optional, acctest.Update, + acctest.RepresentationCopyWithNewProperties(goldenGateDeploymentRepresentation, map[string]interface{}{ + "state": acctest.Representation{RepType: acctest.Optional, Create: string(oci_golden_gate.LifecycleStateActive)}, + "ogg_data": acctest.RepresentationGroup{RepType: acctest.Required, Group: oggDataForUpgradeRepresentation}, + })), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(resourceName, "compartment_id", compartmentId), + resource.TestCheckResourceAttr(resourceName, "state", string(oci_golden_gate.LifecycleStateActive)), + resource.TestCheckResourceAttr(resourceName, "ogg_data.0.ogg_version", upgradedOggVersion), + func(s *terraform.State) (err error) { + resId2, err = acctest.FromInstanceState(s, resourceName, "id") + if resId != resId2 { + return fmt.Errorf("Resource recreated when it was supposed to be upgraded.") + } + return err + }, + ), + }, + // 2. step clear + { + Config: config, + }, + // 3. create a new deployment on an older version + { + Config: config + + acctest.GenerateResourceFromRepresentationMap("oci_golden_gate_deployment", "depl_test_ggs_deployment", acctest.Optional, acctest.Create, + acctest.RepresentationCopyWithNewProperties(goldenGateDeploymentRepresentation, map[string]interface{}{ + "ogg_data": acctest.RepresentationGroup{RepType: acctest.Required, Group: oggDataForUpgradeRepresentation}, + })), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(resourceName, "compartment_id", compartmentId), + resource.TestCheckResourceAttr(resourceName, "state", string(oci_golden_gate.LifecycleStateActive)), + resource.TestCheckResourceAttr(resourceName, "ogg_data.0.ogg_version", baseOggVersion), + func(s *terraform.State) (err error) { + resId, err = acctest.FromInstanceState(s, resourceName, "id") + return err + }, + ), + }, + // 4. upgrade deployment based on var.upgraded_ogg_version and stop it + { + Config: config + + acctest.GenerateResourceFromRepresentationMap("oci_golden_gate_deployment", "depl_test_ggs_deployment", acctest.Optional, acctest.Update, + acctest.RepresentationCopyWithNewProperties(goldenGateDeploymentRepresentation, map[string]interface{}{ + "ogg_data": acctest.RepresentationGroup{RepType: acctest.Required, Group: oggDataForUpgradeRepresentation}, + "state": acctest.Representation{RepType: acctest.Optional, Create: string(oci_golden_gate.LifecycleStateInactive)}, + })), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(resourceName, "compartment_id", compartmentId), + resource.TestCheckResourceAttr(resourceName, "ogg_data.0.ogg_version", upgradedOggVersion), + resource.TestCheckResourceAttr(resourceName, "state", string(oci_golden_gate.LifecycleStateInactive)), + func(s *terraform.State) (err error) { + resId2, err = acctest.FromInstanceState(s, resourceName, "id") + if resId != resId2 { + return fmt.Errorf("Resource recreated when it was supposed to be upgraded.") + } + return err + }, + ), + }, + // 5. No upgraded is required, no start/stop is required, nothing should happen here. + { + Config: config + + acctest.GenerateResourceFromRepresentationMap("oci_golden_gate_deployment", "depl_test_ggs_deployment", acctest.Optional, acctest.Update, + acctest.RepresentationCopyWithNewProperties(goldenGateDeploymentRepresentation, map[string]interface{}{ + "ogg_data": acctest.RepresentationGroup{RepType: acctest.Required, Group: oggDataForUpgradeRepresentation}, + "state": acctest.Representation{RepType: acctest.Optional, Create: string(oci_golden_gate.LifecycleStateInactive)}, + })), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(resourceName, "compartment_id", compartmentId), + resource.TestCheckResourceAttr(resourceName, "ogg_data.0.ogg_version", upgradedOggVersion), + resource.TestCheckResourceAttr(resourceName, "state", string(oci_golden_gate.LifecycleStateInactive)), + func(s *terraform.State) (err error) { + resId2, err = acctest.FromInstanceState(s, resourceName, "id") + if resId != resId2 { + return fmt.Errorf("Resource recreated when it was supposed to be upgraded.") + } + return err + }, + ), + }, + { + Config: config, + }, }) } diff --git a/internal/integrationtest/golden_gate_deployment_type_test.go b/internal/integrationtest/golden_gate_deployment_type_test.go index 3efe1005a7d..8612671de61 100644 --- a/internal/integrationtest/golden_gate_deployment_type_test.go +++ b/internal/integrationtest/golden_gate_deployment_type_test.go @@ -4,7 +4,6 @@ package integrationtest import ( - "fmt" "testing" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" @@ -22,25 +21,30 @@ var ( } GoldenGateGoldenGateDeploymentTypeDataSourceRepresentation = map[string]interface{}{ - "compartment_id": acctest.Representation{RepType: acctest.Required, Create: `${var.compartment_id}`}, - "display_name": acctest.Representation{RepType: acctest.Required, Create: `displayName`}, + "compartment_id": acctest.Representation{RepType: acctest.Required, Create: `${var.compartment_id}`}, + "deployment_type": acctest.Representation{RepType: acctest.Optional, Create: `DATABASE_ORACLE`}, } GoldenGateDeploymentTypeResourceConfig = "" ) +/* + Note: + Set the following environmentVariables in order to make it work: + TF_VAR_compartment_id=com +*/ // issue-routing-tag: golden_gate/default func TestGoldenGateDeploymentTypeResource_basic(t *testing.T) { httpreplay.SetScenario("TestGoldenGateDeploymentTypeResource_basic") defer httpreplay.SaveScenario() - config := acctest.ProviderTestConfig() + const CompartmentId = "compartment_id" + + config := acctest.ProviderTestConfig() + makeVariableStr(CompartmentId, t) - compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid") - compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId) + var compartmentId = utils.GetEnvSettingWithBlankDefault(CompartmentId) datasourceName := "data.oci_golden_gate_deployment_types.test_deployment_types" - singularDatasourceName := "data.oci_golden_gate_deployment_type.test_deployment_type" acctest.SaveConfigContent("", "", "", t) @@ -48,26 +52,15 @@ func TestGoldenGateDeploymentTypeResource_basic(t *testing.T) { // verify datasource { Config: config + - acctest.GenerateDataSourceFromRepresentationMap("oci_golden_gate_deployment_types", "test_deployment_types", acctest.Required, acctest.Create, GoldenGateGoldenGateDeploymentTypeDataSourceRepresentation) + - compartmentIdVariableStr + GoldenGateDeploymentTypeResourceConfig, + acctest.GenerateDataSourceFromRepresentationMap("oci_golden_gate_deployment_types", "test_deployment_types", acctest.Optional, acctest.Create, GoldenGateGoldenGateDeploymentTypeDataSourceRepresentation) + + GoldenGateDeploymentTypeResourceConfig, Check: acctest.ComposeAggregateTestCheckFuncWrapper( resource.TestCheckResourceAttr(datasourceName, "compartment_id", compartmentId), - resource.TestCheckResourceAttr(datasourceName, "display_name", "displayName"), - + resource.TestCheckResourceAttr(datasourceName, "deployment_type", "DATABASE_ORACLE"), + resource.TestCheckResourceAttrSet(datasourceName, "deployment_type_collection.0.items.0.ogg_version"), + resource.TestCheckResourceAttr(datasourceName, "deployment_type_collection.0.items.0.deployment_type", "DATABASE_ORACLE"), + resource.TestCheckResourceAttr(datasourceName, "deployment_type_collection.0.items.0.category", "DATA_REPLICATION"), resource.TestCheckResourceAttrSet(datasourceName, "deployment_type_collection.#"), - resource.TestCheckResourceAttr(datasourceName, "deployment_type_collection.0.items.#", "3"), - ), - }, - // verify singular datasource - { - Config: config + - acctest.GenerateDataSourceFromRepresentationMap("oci_golden_gate_deployment_type", "test_deployment_type", acctest.Required, acctest.Create, GoldenGateGoldenGateDeploymentTypeSingularDataSourceRepresentation) + - compartmentIdVariableStr + GoldenGateDeploymentTypeResourceConfig, - Check: acctest.ComposeAggregateTestCheckFuncWrapper( - resource.TestCheckResourceAttr(singularDatasourceName, "compartment_id", compartmentId), - resource.TestCheckResourceAttr(singularDatasourceName, "display_name", "displayName"), - - resource.TestCheckResourceAttr(singularDatasourceName, "items.#", "3"), ), }, }) diff --git a/internal/integrationtest/golden_gate_deployment_upgrade_test.go b/internal/integrationtest/golden_gate_deployment_upgrade_test.go index a1516f434ca..8072ef582d3 100644 --- a/internal/integrationtest/golden_gate_deployment_upgrade_test.go +++ b/internal/integrationtest/golden_gate_deployment_upgrade_test.go @@ -6,6 +6,8 @@ package integrationtest import ( "testing" + "github.com/oracle/terraform-provider-oci/internal/utils" + "github.com/oracle/terraform-provider-oci/internal/acctest" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" @@ -14,6 +16,13 @@ import ( "github.com/oracle/terraform-provider-oci/httpreplay" ) +/* + Note: + this test requires an existing deployment, with at least 1 upgrade record. + Set the following environmentVariables in order to make it work: + TF_VAR_compartment_id=compartment_id_of_the_deployment +TF_VAR_test_deployment_id=ocid_of_deployment +*/ // issue-routing-tag: golden_gate/default func TestGoldenGateDeploymentUpgradeResource_basic(t *testing.T) { httpreplay.SetScenario("TestGoldenGateDeploymentUpgradeResource_basic") @@ -25,14 +34,20 @@ func TestGoldenGateDeploymentUpgradeResource_basic(t *testing.T) { ) var ( - datasourceName = "data.oci_golden_gate_deployment_upgrades.test_deployment_upgrades" + datasourceName = "data.oci_golden_gate_deployment_upgrades.test_deployment_upgrades" + singularDatasourceName = "data.oci_golden_gate_deployment_upgrade.test_deployment_upgrade" ) var ( GoldenGateDeploymentUpgradeResourceDependencies = "" goldenGatedeploymentUpgradeDataSourceRepresentation = map[string]interface{}{ "compartment_id": acctest.Representation{RepType: acctest.Required, Create: `${var.compartment_id}`}, - "deployment_id": acctest.Representation{RepType: acctest.Optional, Create: `${var.test_deployment_id}`}, + "deployment_id": acctest.Representation{RepType: acctest.Required, Create: `${var.test_deployment_id}`}, + } + + goldenGateDeploymentUpgradeSingularDataSourceRepresentation = map[string]interface{}{ + "deployment_upgrade_id": acctest.Representation{RepType: acctest.Required, + Create: `${data.oci_golden_gate_deployment_upgrades.test_deployment_upgrades.deployment_upgrade_collection[0].items[0].id}`}, } ) @@ -41,6 +56,10 @@ func TestGoldenGateDeploymentUpgradeResource_basic(t *testing.T) { makeVariableStr(TEST_DEPLOYMENT_ID, t) + GoldenGateDeploymentUpgradeResourceDependencies + var ( + compartmentId = utils.GetEnvSettingWithBlankDefault(COMPARTMENT_ID) + deploymentId = utils.GetEnvSettingWithBlankDefault(TEST_DEPLOYMENT_ID) + ) acctest.SaveConfigContent("", "", "", t) acctest.ResourceTest(t, testAccCheckGoldenGateDeploymentUpgradeDestroy, []resource.TestStep{ @@ -49,7 +68,7 @@ func TestGoldenGateDeploymentUpgradeResource_basic(t *testing.T) { Config: config + acctest.GenerateDataSourceFromRepresentationMap("oci_golden_gate_deployment_upgrades", "test_deployment_upgrades", acctest.Required, acctest.Create, goldenGatedeploymentUpgradeDataSourceRepresentation), Check: acctest.ComposeAggregateTestCheckFuncWrapper( - resource.TestCheckResourceAttr(datasourceName, "deployment_upgrade_collection.0.items.#", "0"), + resource.TestCheckResourceAttr(datasourceName, "deployment_upgrade_collection.0.items.#", "1"), ), }, @@ -58,32 +77,48 @@ func TestGoldenGateDeploymentUpgradeResource_basic(t *testing.T) { Config: config + acctest.GenerateDataSourceFromRepresentationMap("oci_golden_gate_deployment_upgrades", "test_deployment_upgrades", acctest.Required, acctest.Create, goldenGatedeploymentUpgradeDataSourceRepresentation), Check: acctest.ComposeAggregateTestCheckFuncWrapper( - resource.TestCheckResourceAttr(datasourceName, "deployment_upgrade_collection.0.items.#", "0"), + resource.TestCheckResourceAttrSet(datasourceName, "deployment_upgrade_collection.#"), + resource.TestCheckResourceAttr(datasourceName, "deployment_upgrade_collection.0.items.#", "1"), + resource.TestCheckResourceAttr(datasourceName, "deployment_id", deploymentId), + resource.TestCheckResourceAttr(datasourceName, "compartment_id", compartmentId), + resource.TestCheckResourceAttrSet(datasourceName, "deployment_upgrade_collection.0.items.0.deployment_upgrade_type"), + resource.TestCheckResourceAttrSet(datasourceName, "deployment_upgrade_collection.0.items.0.is_rollback_allowed"), + resource.TestCheckResourceAttrSet(datasourceName, "deployment_upgrade_collection.0.items.0.is_security_fix"), + resource.TestCheckResourceAttrSet(datasourceName, "deployment_upgrade_collection.0.items.0.is_snoozed"), + resource.TestCheckResourceAttrSet(datasourceName, "deployment_upgrade_collection.0.items.0.ogg_version"), + resource.TestCheckResourceAttrSet(datasourceName, "deployment_upgrade_collection.0.items.0.previous_ogg_version"), + resource.TestCheckResourceAttrSet(datasourceName, "deployment_upgrade_collection.0.items.0.release_type"), + resource.TestCheckResourceAttrSet(datasourceName, "deployment_upgrade_collection.0.items.0.time_created"), + resource.TestCheckResourceAttrSet(datasourceName, "deployment_upgrade_collection.0.items.0.time_finished"), + resource.TestCheckResourceAttrSet(datasourceName, "deployment_upgrade_collection.0.items.0.time_released"), + resource.TestCheckResourceAttrSet(datasourceName, "deployment_upgrade_collection.0.items.0.time_started"), + resource.TestCheckResourceAttrSet(datasourceName, "deployment_upgrade_collection.0.items.0.time_updated"), ), }, - // // verify singular datasource - // { - // Config: config + - // generateDataSourceFromRepresentationMap("oci_golden_gate_deployment_upgrade", "test_deployment_upgrade", acctest.Required, acctest.Create, goldenGateDeploymentUpgradeSingularDataSourceRepresentation) + - // compartmentIdVariableStr + DeploymentUpgradeResourceConfig, - // Check: acctest.ComposeAggregateTestCheckFuncWrapper( - // resource.TestCheckResourceAttrSet(singularDatasourceName, "deployment_upgrade_id"), - // - // resource.TestCheckResourceAttrSet(singularDatasourceName, "compartment_id"), - // resource.TestCheckResourceAttrSet(singularDatasourceName, "deployment_upgrade_type"), - // resource.TestCheckResourceAttrSet(singularDatasourceName, "description"), - // resource.TestCheckResourceAttrSet(singularDatasourceName, "display_name"), - // resource.TestCheckResourceAttrSet(singularDatasourceName, "id"), - // resource.TestCheckResourceAttrSet(singularDatasourceName, "lifecycle_sub_state"), - // resource.TestCheckResourceAttrSet(singularDatasourceName, "ogg_version"), - // resource.TestCheckResourceAttrSet(singularDatasourceName, "state"), - // resource.TestCheckResourceAttrSet(singularDatasourceName, "time_created"), - // resource.TestCheckResourceAttrSet(singularDatasourceName, "time_finished"), - // resource.TestCheckResourceAttrSet(singularDatasourceName, "time_started"), - // resource.TestCheckResourceAttrSet(singularDatasourceName, "time_updated"), - // ), - // }, + // verify singular datasource + { + Config: config + + acctest.GenerateDataSourceFromRepresentationMap("oci_golden_gate_deployment_upgrades", "test_deployment_upgrades", acctest.Required, acctest.Create, goldenGatedeploymentUpgradeDataSourceRepresentation) + + acctest.GenerateDataSourceFromRepresentationMap("oci_golden_gate_deployment_upgrade", "test_deployment_upgrade", acctest.Required, acctest.Create, goldenGateDeploymentUpgradeSingularDataSourceRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttrSet(singularDatasourceName, "id"), + resource.TestCheckResourceAttr(singularDatasourceName, "deployment_id", deploymentId), + resource.TestCheckResourceAttr(singularDatasourceName, "compartment_id", compartmentId), + resource.TestCheckResourceAttrSet(singularDatasourceName, "deployment_upgrade_type"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "is_rollback_allowed"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "is_security_fix"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "is_snoozed"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "ogg_version"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "previous_ogg_version"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "release_type"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "time_created"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "time_finished"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "time_released"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "time_started"), + resource.TestCheckResourceAttrSet(singularDatasourceName, "time_updated"), + ), + }, }) } diff --git a/internal/integrationtest/golden_gate_deployment_version_test.go b/internal/integrationtest/golden_gate_deployment_version_test.go new file mode 100644 index 00000000000..dfa625929df --- /dev/null +++ b/internal/integrationtest/golden_gate_deployment_version_test.go @@ -0,0 +1,62 @@ +// Copyright (c) 2017, 2021, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package integrationtest + +import ( + "testing" + + "github.com/oracle/terraform-provider-oci/internal/utils" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + + "github.com/oracle/terraform-provider-oci/httpreplay" + "github.com/oracle/terraform-provider-oci/internal/acctest" +) + +var ( + GoldenGateDeploymentVersionDataSourceRepresentation = map[string]interface{}{ + "compartment_id": acctest.Representation{RepType: acctest.Required, Create: `${var.compartment_id}`}, + "deployment_id": acctest.Representation{RepType: acctest.Optional, Create: `${var.test_deployment.id}`}, + "deployment_type": acctest.Representation{RepType: acctest.Required, Create: `DATABASE_ORACLE`}, + } +) + +/* + Note: + Set the following environmentVariables in order to make it work: + TF_VAR_compartment_id=compartment - use any compartmentId what you have rights for +*/ +// issue-routing-tag: golden_gate/default +func TestGoldenGateDeploymentVersionResource_basic(t *testing.T) { + httpreplay.SetScenario("TestGoldenGateDeploymentVersionResource_basic") + defer httpreplay.SaveScenario() + + const ( + COMPARTMENT_ID = "compartment_id" + ) + + config := acctest.ProviderTestConfig() + + makeVariableStr(COMPARTMENT_ID, t) + + var ( + compartmentId = utils.GetEnvSettingWithBlankDefault(COMPARTMENT_ID) + ) + + datasourceName := "data.oci_golden_gate_deployment_versions.test_deployment_versions" + + acctest.SaveConfigContent("", "", "", t) + + acctest.ResourceTest(t, nil, []resource.TestStep{ + // verify datasource + { + Config: config + + acctest.GenerateDataSourceFromRepresentationMap("oci_golden_gate_deployment_versions", "test_deployment_versions", acctest.Required, acctest.Create, GoldenGateDeploymentVersionDataSourceRepresentation), + Check: acctest.ComposeAggregateTestCheckFuncWrapper( + resource.TestCheckResourceAttr(datasourceName, "compartment_id", compartmentId), + resource.TestCheckResourceAttr(datasourceName, "deployment_type", "DATABASE_ORACLE"), + resource.TestCheckResourceAttrSet(datasourceName, "deployment_version_collection.#"), + ), + }, + }) +} diff --git a/internal/service/golden_gate/golden_gate_deployment_data_source.go b/internal/service/golden_gate/golden_gate_deployment_data_source.go index 0026baa15b9..f46e1538f51 100644 --- a/internal/service/golden_gate/golden_gate_deployment_data_source.go +++ b/internal/service/golden_gate/golden_gate_deployment_data_source.go @@ -137,6 +137,18 @@ func (s *GoldenGateDeploymentDataSourceCrud) SetData() error { s.D.Set("lifecycle_sub_state", s.Res.LifecycleSubState) + if s.Res.MaintenanceWindow != nil { + s.D.Set("maintenance_window", []interface{}{MaintenanceWindowToMap(s.Res.MaintenanceWindow)}) + } else { + s.D.Set("maintenance_window", nil) + } + + s.D.Set("next_maintenance_action_type", s.Res.NextMaintenanceActionType) + + if s.Res.NextMaintenanceDescription != nil { + s.D.Set("next_maintenance_description", *s.Res.NextMaintenanceDescription) + } + s.D.Set("nsg_ids", s.Res.NsgIds) if s.Res.OggData != nil { @@ -171,6 +183,10 @@ func (s *GoldenGateDeploymentDataSourceCrud) SetData() error { s.D.Set("time_created", s.Res.TimeCreated.String()) } + if s.Res.TimeOfNextMaintenance != nil { + s.D.Set("time_of_next_maintenance", s.Res.TimeOfNextMaintenance.String()) + } + if s.Res.TimeUpdated != nil { s.D.Set("time_updated", s.Res.TimeUpdated.String()) } diff --git a/internal/service/golden_gate/golden_gate_deployment_resource.go b/internal/service/golden_gate/golden_gate_deployment_resource.go index 14109dfb5ad..1c0a8bd4bcd 100644 --- a/internal/service/golden_gate/golden_gate_deployment_resource.go +++ b/internal/service/golden_gate/golden_gate_deployment_resource.go @@ -11,6 +11,8 @@ import ( "strings" "time" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" + "github.com/oracle/terraform-provider-oci/internal/client" "github.com/oracle/terraform-provider-oci/internal/tfresource" @@ -102,6 +104,30 @@ func GoldenGateDeploymentResource() *schema.Resource { Optional: true, Computed: true, }, + "maintenance_window": { + Type: schema.TypeList, + Optional: true, + Computed: true, + MaxItems: 1, + MinItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + "day": { + Type: schema.TypeString, + Required: true, + }, + "start_hour": { + Type: schema.TypeInt, + Required: true, + }, + + // Optional + + // Computed + }, + }, + }, "nsg_ids": { Type: schema.TypeSet, Optional: true, @@ -146,12 +172,13 @@ func GoldenGateDeploymentResource() *schema.Resource { Optional: true, Computed: true, }, - - // Computed "ogg_version": { Type: schema.TypeString, + Optional: true, Computed: true, }, + + // Computed }, }, }, @@ -218,6 +245,14 @@ func GoldenGateDeploymentResource() *schema.Resource { Type: schema.TypeString, Computed: true, }, + "next_maintenance_action_type": { + Type: schema.TypeString, + Computed: true, + }, + "next_maintenance_description": { + Type: schema.TypeString, + Computed: true, + }, "private_ip_address": { Type: schema.TypeString, Computed: true, @@ -227,8 +262,14 @@ func GoldenGateDeploymentResource() *schema.Resource { Computed: true, }, "state": { - Type: schema.TypeString, - Computed: true, + Type: schema.TypeString, + Computed: true, + Optional: true, + DiffSuppressFunc: tfresource.EqualIgnoreCaseSuppressDiff, + ValidateFunc: validation.StringInSlice([]string{ + string(oci_golden_gate.LifecycleStateInactive), + string(oci_golden_gate.LifecycleStateActive), + }, true), }, "storage_utilization_in_bytes": { Type: schema.TypeString, @@ -243,6 +284,10 @@ func GoldenGateDeploymentResource() *schema.Resource { Type: schema.TypeString, Computed: true, }, + "time_of_next_maintenance": { + Type: schema.TypeString, + Computed: true, + }, "time_updated": { Type: schema.TypeString, Computed: true, @@ -260,7 +305,22 @@ func createGoldenGateDeployment(d *schema.ResourceData, m interface{}) error { sync.D = d sync.Client = m.(*client.OracleClients).GoldenGateClient() - return tfresource.CreateResource(d, sync) + var stopDeployment = false + if state, ok := sync.D.GetOkExists("state"); ok { + if oci_golden_gate.LifecycleStateEnum(strings.ToUpper(state.(string))) == oci_golden_gate.LifecycleStateInactive { + stopDeployment = true + } + } + + if e := tfresource.CreateResource(d, sync); e != nil { + return e + } + + if stopDeployment { + return sync.stopDeployment() + } + + return nil } func readGoldenGateDeployment(d *schema.ResourceData, m interface{}) error { @@ -276,7 +336,83 @@ func updateGoldenGateDeployment(d *schema.ResourceData, m interface{}) error { sync.D = d sync.Client = m.(*client.OracleClients).GoldenGateClient() - return tfresource.UpdateResource(d, sync) + var stopDeployment = false + var startDeployment = false + + if _, ok := sync.D.GetOkExists("state"); ok && sync.D.HasChange("state") { + oldStateStr, newStateStr := sync.D.GetChange("state") + oldState := oci_golden_gate.LifecycleStateEnum(strings.ToUpper(oldStateStr.(string))) + newState := oci_golden_gate.LifecycleStateEnum(strings.ToUpper(newStateStr.(string))) + + if newState == oci_golden_gate.LifecycleStateInactive { + stopDeployment = true + } else if oldState != oci_golden_gate.LifecycleStateFailed && oldState != oci_golden_gate.LifecycleStateNeedsAttention && + newState == oci_golden_gate.LifecycleStateActive { + startDeployment = true + } + } + + /* Note, that "update" allowed only on running deployment, so if there is a "start", we need to start first, then update. + If there is a "stop", we need to update first, then stop the deployment. + Upgrade is much faster if the deployment is not running, therefore + if we need to stop/start the deployment and upgrade it at the same time it worth to change the execution order. + + Here are the possible cases: + a. Deployment has to be started (current state is Inactive): + 1. let's do the upgrade first (if needed) + 2. then start + 3. then update + b. Deployment has to be stopped (current state is Active): + 1. update first + 2. then stop + 3. then upgrade (if needed) + c. No stop/start needed: + 1. upgrade first (if needed) + 2. then update + */ + + if startDeployment { + if err := upgradeGoldenGateDeploymentIfNeeded(d, m); err != nil { + return err + } + if err := sync.startDeployment(); err != nil { + return err + } + return tfresource.UpdateResource(d, sync) + + } else if stopDeployment { + if err := tfresource.UpdateResource(d, sync); err != nil { + return err + } + if err := sync.stopDeployment(); err != nil { + return err + } + return upgradeGoldenGateDeploymentIfNeeded(d, m) + + } else { + if err := upgradeGoldenGateDeploymentIfNeeded(d, m); err != nil { + return err + } + return tfresource.UpdateResource(d, sync) + } +} + +func upgradeGoldenGateDeploymentIfNeeded(d *schema.ResourceData, m interface{}) error { + sync := &GoldenGateDeploymentResourceCrud{} + sync.D = d + sync.Client = m.(*client.OracleClients).GoldenGateClient() + + // add support to upgrade + oggVersionKeyFormat := fmt.Sprintf("%s.%d.%s", "ogg_data", 0, "ogg_version") + if _, ok := sync.D.GetOkExists(oggVersionKeyFormat); ok && sync.D.HasChange(oggVersionKeyFormat) { + oldVersion, newVersion := sync.D.GetChange(oggVersionKeyFormat) + if newVersion != "" && oldVersion != newVersion { + if err := sync.upgradeToSpecificVersion(newVersion); err != nil { + return err + } + } + } + return nil } func deleteGoldenGateDeployment(d *schema.ResourceData, m interface{}) error { @@ -389,6 +525,17 @@ func (s *GoldenGateDeploymentResourceCrud) Create() error { request.LicenseModel = oci_golden_gate.LicenseModelEnum(licenseModel.(string)) } + if maintenanceWindow, ok := s.D.GetOkExists("maintenance_window"); ok { + if tmpList := maintenanceWindow.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "maintenance_window", 0) + tmp, err := s.mapToCreateMaintenanceWindowDetails(fieldKeyFormat) + if err != nil { + return err + } + request.MaintenanceWindow = &tmp + } + } + if nsgIds, ok := s.D.GetOkExists("nsg_ids"); ok { set := nsgIds.(*schema.Set) interfaces := set.List() @@ -624,6 +771,17 @@ func (s *GoldenGateDeploymentResourceCrud) Update() error { request.LicenseModel = oci_golden_gate.LicenseModelEnum(licenseModel.(string)) } + if maintenanceWindow, ok := s.D.GetOkExists("maintenance_window"); ok { + if tmpList := maintenanceWindow.([]interface{}); len(tmpList) > 0 { + fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "maintenance_window", 0) + tmp, err := s.mapToUpdateMaintenanceWindowDetails(fieldKeyFormat) + if err != nil { + return err + } + request.MaintenanceWindow = &tmp + } + } + if nsgIds, ok := s.D.GetOkExists("nsg_ids"); ok { set := nsgIds.(*schema.Set) interfaces := set.List() @@ -756,6 +914,18 @@ func (s *GoldenGateDeploymentResourceCrud) SetData() error { s.D.Set("lifecycle_sub_state", s.Res.LifecycleSubState) + if s.Res.MaintenanceWindow != nil { + s.D.Set("maintenance_window", []interface{}{MaintenanceWindowToMap(s.Res.MaintenanceWindow)}) + } else { + s.D.Set("maintenance_window", nil) + } + + s.D.Set("next_maintenance_action_type", s.Res.NextMaintenanceActionType) + + if s.Res.NextMaintenanceDescription != nil { + s.D.Set("next_maintenance_description", *s.Res.NextMaintenanceDescription) + } + nsgIds := []interface{}{} for _, item := range s.Res.NsgIds { nsgIds = append(nsgIds, item) @@ -794,6 +964,10 @@ func (s *GoldenGateDeploymentResourceCrud) SetData() error { s.D.Set("time_created", s.Res.TimeCreated.String()) } + if s.Res.TimeOfNextMaintenance != nil { + s.D.Set("time_of_next_maintenance", s.Res.TimeOfNextMaintenance.String()) + } + if s.Res.TimeUpdated != nil { s.D.Set("time_updated", s.Res.TimeUpdated.String()) } @@ -805,6 +979,48 @@ func (s *GoldenGateDeploymentResourceCrud) SetData() error { return nil } +func (s *GoldenGateDeploymentResourceCrud) mapToUpdateMaintenanceWindowDetails(fieldKeyFormat string) (oci_golden_gate.UpdateMaintenanceWindowDetails, error) { + result := oci_golden_gate.UpdateMaintenanceWindowDetails{} + + if day, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "day")); ok { + result.Day = oci_golden_gate.DayEnum(day.(string)) + } + + if startHour, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "start_hour")); ok { + tmp := startHour.(int) + result.StartHour = &tmp + } + + return result, nil +} + +func (s *GoldenGateDeploymentResourceCrud) mapToCreateMaintenanceWindowDetails(fieldKeyFormat string) (oci_golden_gate.CreateMaintenanceWindowDetails, error) { + result := oci_golden_gate.CreateMaintenanceWindowDetails{} + + if day, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "day")); ok { + result.Day = oci_golden_gate.DayEnum(day.(string)) + } + + if startHour, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "start_hour")); ok { + tmp := startHour.(int) + result.StartHour = &tmp + } + + return result, nil +} + +func MaintenanceWindowToMap(obj *oci_golden_gate.MaintenanceWindow) map[string]interface{} { + result := map[string]interface{}{} + + result["day"] = string(obj.Day) + + if obj.StartHour != nil { + result["start_hour"] = int(*obj.StartHour) + } + + return result +} + func (s *GoldenGateDeploymentResourceCrud) mapToCreateOggDeploymentDetails(fieldKeyFormat string) (oci_golden_gate.CreateOggDeploymentDetails, error) { result := oci_golden_gate.CreateOggDeploymentDetails{} @@ -833,6 +1049,11 @@ func (s *GoldenGateDeploymentResourceCrud) mapToCreateOggDeploymentDetails(field result.Key = &tmp } + if oggVersion, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "ogg_version")); ok { + tmp := oggVersion.(string) + result.OggVersion = &tmp + } + return result, nil } @@ -1049,3 +1270,112 @@ func (s *GoldenGateDeploymentResourceCrud) updateCompartment(compartment interfa oci_golden_gate.ActionTypeUpdated, s.D.Timeout(schema.TimeoutUpdate), s.DisableNotFoundRetries, s.Client) return changeWorkRequestErr } + +func (s *GoldenGateDeploymentResourceCrud) upgradeToSpecificVersion(oggVersion interface{}) error { + upgradeDeploymentRequest := oci_golden_gate.UpgradeDeploymentRequest{} + upgradeDetails := oci_golden_gate.UpgradeDeploymentSpecificReleaseDetails{} + + oggVersionTmp := oggVersion.(string) + upgradeDetails.OggVersion = &oggVersionTmp + + idTmp := s.D.Id() + upgradeDeploymentRequest.DeploymentId = &idTmp + upgradeDeploymentRequest.UpgradeDeploymentDetails = upgradeDetails + + upgradeDeploymentRequest.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "golden_gate") + + response, err := s.Client.UpgradeDeployment(context.Background(), upgradeDeploymentRequest) + if err != nil { + return err + } + + workId := response.OpcWorkRequestId + // Wait until it finishes + _, upgradeWorkRequestErr := goldenGateDeploymentWaitForWorkRequest(workId, "deployment", + oci_golden_gate.ActionTypeUpdated, s.D.Timeout(schema.TimeoutUpdate), s.DisableNotFoundRetries, s.Client) + if upgradeWorkRequestErr != nil { + return upgradeWorkRequestErr + } + + // set changed parameters + if err := s.getAndSaveStateChanges(); err != nil { + return err + } + + if s.Res.OggData != nil { + if oggData, ok := s.D.GetOkExists("ogg_data"); ok { + oggDataMap := oggData.([]interface{})[0].(map[string]interface{}) + oggDataMap["ogg_version"] = *s.Res.OggData.OggVersion + s.D.Set("ogg_data", []interface{}{oggDataMap}) + } + } + + if s.Res.IsLatestVersion != nil { + s.D.Set("is_latest_version", *s.Res.IsLatestVersion) + } + + return nil +} + +func (s *GoldenGateDeploymentResourceCrud) startDeployment() error { + startDeploymentRequest := oci_golden_gate.StartDeploymentRequest{} + + idTmp := s.D.Id() + startDeploymentRequest.DeploymentId = &idTmp + startDeploymentRequest.StartDeploymentDetails = oci_golden_gate.DefaultStartDeploymentDetails{} + startDeploymentRequest.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "golden_gate") + + response, err := s.Client.StartDeployment(context.Background(), startDeploymentRequest) + if err != nil { + return err + } + + workId := response.OpcWorkRequestId + // Wait until it finishes + _, startWorkRequestErr := goldenGateDeploymentWaitForWorkRequest(workId, "deployment", + oci_golden_gate.ActionTypeUpdated, s.D.Timeout(schema.TimeoutUpdate), s.DisableNotFoundRetries, s.Client) + if startWorkRequestErr != nil { + return startWorkRequestErr + } + // set changed parameters + return s.getAndSaveStateChanges() +} + +func (s *GoldenGateDeploymentResourceCrud) stopDeployment() error { + stopDeploymentRequest := oci_golden_gate.StopDeploymentRequest{} + + idTmp := s.D.Id() + stopDeploymentRequest.DeploymentId = &idTmp + stopDeploymentRequest.StopDeploymentDetails = oci_golden_gate.DefaultStopDeploymentDetails{} + stopDeploymentRequest.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "golden_gate") + + response, err := s.Client.StopDeployment(context.Background(), stopDeploymentRequest) + if err != nil { + return err + } + + workId := response.OpcWorkRequestId + // Wait until it finishes + _, stopWorkRequestErr := goldenGateDeploymentWaitForWorkRequest(workId, "deployment", + oci_golden_gate.ActionTypeUpdated, s.D.Timeout(schema.TimeoutUpdate), s.DisableNotFoundRetries, s.Client) + if stopWorkRequestErr != nil { + return stopWorkRequestErr + } + + // set changed parameters + return s.getAndSaveStateChanges() +} + +func (s *GoldenGateDeploymentResourceCrud) getAndSaveStateChanges() error { + if e := s.Get(); e != nil { + return e + } + s.D.Set("state", s.Res.LifecycleState) + + if s.Res.LifecycleDetails != nil { + s.D.Set("lifecycle_details", *s.Res.LifecycleDetails) + } + + s.D.Set("lifecycle_sub_state", s.Res.LifecycleSubState) + return nil +} diff --git a/internal/service/golden_gate/golden_gate_deployment_types_data_source.go b/internal/service/golden_gate/golden_gate_deployment_types_data_source.go index 69393901663..432cf4d271b 100644 --- a/internal/service/golden_gate/golden_gate_deployment_types_data_source.go +++ b/internal/service/golden_gate/golden_gate_deployment_types_data_source.go @@ -22,10 +22,18 @@ func GoldenGateDeploymentTypesDataSource() *schema.Resource { Type: schema.TypeString, Required: true, }, + "deployment_type": { + Type: schema.TypeString, + Optional: true, + }, "display_name": { Type: schema.TypeString, Optional: true, }, + "ogg_version": { + Type: schema.TypeString, + Optional: true, + }, "deployment_type_collection": { Type: schema.TypeList, Computed: true, @@ -60,6 +68,10 @@ func GoldenGateDeploymentTypesDataSource() *schema.Resource { Type: schema.TypeString, Computed: true, }, + "ogg_version": { + Type: schema.TypeString, + Computed: true, + }, "source_technologies": { Type: schema.TypeList, Computed: true, @@ -110,11 +122,20 @@ func (s *GoldenGateDeploymentTypesDataSourceCrud) Get() error { request.CompartmentId = &tmp } + if deploymentType, ok := s.D.GetOkExists("deployment_type"); ok { + request.DeploymentType = oci_golden_gate.ListDeploymentTypesDeploymentTypeEnum(deploymentType.(string)) + } + if displayName, ok := s.D.GetOkExists("display_name"); ok { tmp := displayName.(string) request.DisplayName = &tmp } + if oggVersion, ok := s.D.GetOkExists("ogg_version"); ok { + tmp := oggVersion.(string) + request.OggVersion = &tmp + } + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "golden_gate") response, err := s.Client.ListDeploymentTypes(context.Background(), request) @@ -171,7 +192,6 @@ func DeploymentTypeSummaryToMap(obj oci_golden_gate.DeploymentTypeSummary) map[s result["category"] = string(obj.Category) - result["connection_types"] = obj.ConnectionTypes result["connection_types"] = obj.ConnectionTypes result["deployment_type"] = string(obj.DeploymentType) @@ -180,10 +200,11 @@ func DeploymentTypeSummaryToMap(obj oci_golden_gate.DeploymentTypeSummary) map[s result["display_name"] = string(*obj.DisplayName) } - result["source_technologies"] = obj.SourceTechnologies - result["source_technologies"] = obj.SourceTechnologies + if obj.OggVersion != nil { + result["ogg_version"] = string(*obj.OggVersion) + } - result["target_technologies"] = obj.TargetTechnologies + result["source_technologies"] = obj.SourceTechnologies result["target_technologies"] = obj.TargetTechnologies return result diff --git a/internal/service/golden_gate/golden_gate_deployment_upgrade_data_source.go b/internal/service/golden_gate/golden_gate_deployment_upgrade_data_source.go index bde29b8c677..7a90b853aab 100644 --- a/internal/service/golden_gate/golden_gate_deployment_upgrade_data_source.go +++ b/internal/service/golden_gate/golden_gate_deployment_upgrade_data_source.go @@ -52,6 +52,18 @@ func GoldenGateDeploymentUpgradeDataSource() *schema.Resource { Computed: true, Elem: schema.TypeString, }, + "is_rollback_allowed": { + Type: schema.TypeBool, + Computed: true, + }, + "is_security_fix": { + Type: schema.TypeBool, + Computed: true, + }, + "is_snoozed": { + Type: schema.TypeBool, + Computed: true, + }, "lifecycle_details": { Type: schema.TypeString, Computed: true, @@ -64,6 +76,14 @@ func GoldenGateDeploymentUpgradeDataSource() *schema.Resource { Type: schema.TypeString, Computed: true, }, + "previous_ogg_version": { + Type: schema.TypeString, + Computed: true, + }, + "release_type": { + Type: schema.TypeString, + Computed: true, + }, "state": { Type: schema.TypeString, Computed: true, @@ -81,6 +101,18 @@ func GoldenGateDeploymentUpgradeDataSource() *schema.Resource { Type: schema.TypeString, Computed: true, }, + "time_released": { + Type: schema.TypeString, + Computed: true, + }, + "time_schedule": { + Type: schema.TypeString, + Computed: true, + }, + "time_snoozed_until": { + Type: schema.TypeString, + Computed: true, + }, "time_started": { Type: schema.TypeString, Computed: true, @@ -161,6 +193,18 @@ func (s *GoldenGateDeploymentUpgradeDataSourceCrud) SetData() error { s.D.Set("freeform_tags", s.Res.FreeformTags) + if s.Res.IsRollbackAllowed != nil { + s.D.Set("is_rollback_allowed", *s.Res.IsRollbackAllowed) + } + + if s.Res.IsSecurityFix != nil { + s.D.Set("is_security_fix", *s.Res.IsSecurityFix) + } + + if s.Res.IsSnoozed != nil { + s.D.Set("is_snoozed", *s.Res.IsSnoozed) + } + if s.Res.LifecycleDetails != nil { s.D.Set("lifecycle_details", *s.Res.LifecycleDetails) } @@ -171,6 +215,12 @@ func (s *GoldenGateDeploymentUpgradeDataSourceCrud) SetData() error { s.D.Set("ogg_version", *s.Res.OggVersion) } + if s.Res.PreviousOggVersion != nil { + s.D.Set("previous_ogg_version", *s.Res.PreviousOggVersion) + } + + s.D.Set("release_type", s.Res.ReleaseType) + s.D.Set("state", s.Res.LifecycleState) if s.Res.SystemTags != nil { @@ -185,6 +235,18 @@ func (s *GoldenGateDeploymentUpgradeDataSourceCrud) SetData() error { s.D.Set("time_finished", s.Res.TimeFinished.String()) } + if s.Res.TimeReleased != nil { + s.D.Set("time_released", s.Res.TimeReleased.String()) + } + + if s.Res.TimeSchedule != nil { + s.D.Set("time_schedule", s.Res.TimeSchedule.String()) + } + + if s.Res.TimeSnoozedUntil != nil { + s.D.Set("time_snoozed_until", s.Res.TimeSnoozedUntil.String()) + } + if s.Res.TimeStarted != nil { s.D.Set("time_started", s.Res.TimeStarted.String()) } diff --git a/internal/service/golden_gate/golden_gate_deployment_upgrades_data_source.go b/internal/service/golden_gate/golden_gate_deployment_upgrades_data_source.go index 1683b8000c6..e635ce3907d 100644 --- a/internal/service/golden_gate/golden_gate_deployment_upgrades_data_source.go +++ b/internal/service/golden_gate/golden_gate_deployment_upgrades_data_source.go @@ -83,6 +83,18 @@ func GoldenGateDeploymentUpgradesDataSource() *schema.Resource { Type: schema.TypeString, Computed: true, }, + "is_rollback_allowed": { + Type: schema.TypeBool, + Computed: true, + }, + "is_security_fix": { + Type: schema.TypeBool, + Computed: true, + }, + "is_snoozed": { + Type: schema.TypeBool, + Computed: true, + }, "lifecycle_details": { Type: schema.TypeString, Computed: true, @@ -95,6 +107,14 @@ func GoldenGateDeploymentUpgradesDataSource() *schema.Resource { Type: schema.TypeString, Computed: true, }, + "previous_ogg_version": { + Type: schema.TypeString, + Computed: true, + }, + "release_type": { + Type: schema.TypeString, + Computed: true, + }, "state": { Type: schema.TypeString, Computed: true, @@ -112,6 +132,18 @@ func GoldenGateDeploymentUpgradesDataSource() *schema.Resource { Type: schema.TypeString, Computed: true, }, + "time_released": { + Type: schema.TypeString, + Computed: true, + }, + "time_schedule": { + Type: schema.TypeString, + Computed: true, + }, + "time_snoozed_until": { + Type: schema.TypeString, + Computed: true, + }, "time_started": { Type: schema.TypeString, Computed: true, @@ -252,6 +284,18 @@ func DeploymentUpgradeSummaryToMap(obj oci_golden_gate.DeploymentUpgradeSummary) result["id"] = string(*obj.Id) } + if obj.IsRollbackAllowed != nil { + result["is_rollback_allowed"] = bool(*obj.IsRollbackAllowed) + } + + if obj.IsSecurityFix != nil { + result["is_security_fix"] = bool(*obj.IsSecurityFix) + } + + if obj.IsSnoozed != nil { + result["is_snoozed"] = bool(*obj.IsSnoozed) + } + if obj.LifecycleDetails != nil { result["lifecycle_details"] = string(*obj.LifecycleDetails) } @@ -262,6 +306,12 @@ func DeploymentUpgradeSummaryToMap(obj oci_golden_gate.DeploymentUpgradeSummary) result["ogg_version"] = string(*obj.OggVersion) } + if obj.PreviousOggVersion != nil { + result["previous_ogg_version"] = string(*obj.PreviousOggVersion) + } + + result["release_type"] = string(obj.ReleaseType) + result["state"] = string(obj.LifecycleState) if obj.SystemTags != nil { @@ -276,6 +326,18 @@ func DeploymentUpgradeSummaryToMap(obj oci_golden_gate.DeploymentUpgradeSummary) result["time_finished"] = obj.TimeFinished.String() } + if obj.TimeReleased != nil { + result["time_released"] = obj.TimeReleased.String() + } + + if obj.TimeSchedule != nil { + result["time_schedule"] = obj.TimeSchedule.String() + } + + if obj.TimeSnoozedUntil != nil { + result["time_snoozed_until"] = obj.TimeSnoozedUntil.String() + } + if obj.TimeStarted != nil { result["time_started"] = obj.TimeStarted.String() } diff --git a/internal/service/golden_gate/golden_gate_deployment_versions_data_source.go b/internal/service/golden_gate/golden_gate_deployment_versions_data_source.go new file mode 100644 index 00000000000..81f55406d80 --- /dev/null +++ b/internal/service/golden_gate/golden_gate_deployment_versions_data_source.go @@ -0,0 +1,189 @@ +// Copyright (c) 2017, 2021, Oracle and/or its affiliates. All rights reserved. +// Licensed under the Mozilla Public License v2.0 + +package golden_gate + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + oci_golden_gate "github.com/oracle/oci-go-sdk/v65/goldengate" + + "github.com/oracle/terraform-provider-oci/internal/client" + "github.com/oracle/terraform-provider-oci/internal/tfresource" +) + +func GoldenGateDeploymentVersionsDataSource() *schema.Resource { + return &schema.Resource{ + Read: readGoldenGateDeploymentVersions, + Schema: map[string]*schema.Schema{ + "filter": tfresource.DataSourceFiltersSchema(), + "compartment_id": { + Type: schema.TypeString, + Required: true, + }, + "deployment_id": { + Type: schema.TypeString, + Optional: true, + }, + "deployment_type": { + Type: schema.TypeString, + Optional: true, + }, + "deployment_version_collection": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + + // Computed + "items": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + // Required + + // Optional + + // Computed + "deployment_type": { + Type: schema.TypeString, + Computed: true, + }, + "is_security_fix": { + Type: schema.TypeBool, + Computed: true, + }, + "ogg_version": { + Type: schema.TypeString, + Computed: true, + }, + "release_type": { + Type: schema.TypeString, + Computed: true, + }, + "time_released": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + }, + }, + }, + }, + } +} + +func readGoldenGateDeploymentVersions(d *schema.ResourceData, m interface{}) error { + sync := &GoldenGateDeploymentVersionsDataSourceCrud{} + sync.D = d + sync.Client = m.(*client.OracleClients).GoldenGateClient() + + return tfresource.ReadResource(sync) +} + +type GoldenGateDeploymentVersionsDataSourceCrud struct { + D *schema.ResourceData + Client *oci_golden_gate.GoldenGateClient + Res *oci_golden_gate.ListDeploymentVersionsResponse +} + +func (s *GoldenGateDeploymentVersionsDataSourceCrud) VoidState() { + s.D.SetId("") +} + +func (s *GoldenGateDeploymentVersionsDataSourceCrud) Get() error { + request := oci_golden_gate.ListDeploymentVersionsRequest{} + + if compartmentId, ok := s.D.GetOkExists("compartment_id"); ok { + tmp := compartmentId.(string) + request.CompartmentId = &tmp + } + + if deploymentId, ok := s.D.GetOkExists("deployment_id"); ok { + tmp := deploymentId.(string) + request.DeploymentId = &tmp + } + + if deploymentType, ok := s.D.GetOkExists("deployment_type"); ok { + request.DeploymentType = oci_golden_gate.ListDeploymentVersionsDeploymentTypeEnum(deploymentType.(string)) + } + + request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "golden_gate") + + response, err := s.Client.ListDeploymentVersions(context.Background(), request) + if err != nil { + return err + } + + s.Res = &response + request.Page = s.Res.OpcNextPage + + for request.Page != nil { + listResponse, err := s.Client.ListDeploymentVersions(context.Background(), request) + if err != nil { + return err + } + + s.Res.Items = append(s.Res.Items, listResponse.Items...) + request.Page = listResponse.OpcNextPage + } + + return nil +} + +func (s *GoldenGateDeploymentVersionsDataSourceCrud) SetData() error { + if s.Res == nil { + return nil + } + + s.D.SetId(tfresource.GenerateDataSourceHashID("GoldenGateDeploymentVersionsDataSource-", GoldenGateDeploymentVersionsDataSource(), s.D)) + resources := []map[string]interface{}{} + deploymentVersion := map[string]interface{}{} + + items := []interface{}{} + for _, item := range s.Res.Items { + items = append(items, DeploymentVersionSummaryToMap(item)) + } + deploymentVersion["items"] = items + + if f, fOk := s.D.GetOkExists("filter"); fOk { + items = tfresource.ApplyFiltersInCollection(f.(*schema.Set), items, GoldenGateDeploymentVersionsDataSource().Schema["deployment_version_collection"].Elem.(*schema.Resource).Schema) + deploymentVersion["items"] = items + } + + resources = append(resources, deploymentVersion) + if err := s.D.Set("deployment_version_collection", resources); err != nil { + return err + } + + return nil +} + +func DeploymentVersionSummaryToMap(obj oci_golden_gate.DeploymentVersionSummary) map[string]interface{} { + result := map[string]interface{}{} + + result["deployment_type"] = string(obj.DeploymentType) + + if obj.IsSecurityFix != nil { + result["is_security_fix"] = bool(*obj.IsSecurityFix) + } + + if obj.OggVersion != nil { + result["ogg_version"] = string(*obj.OggVersion) + } + + result["release_type"] = string(obj.ReleaseType) + + if obj.TimeReleased != nil { + result["time_released"] = obj.TimeReleased.String() + } + + return result +} diff --git a/internal/service/golden_gate/register_datasource.go b/internal/service/golden_gate/register_datasource.go index da999b79d23..0a12a5f8e24 100644 --- a/internal/service/golden_gate/register_datasource.go +++ b/internal/service/golden_gate/register_datasource.go @@ -19,6 +19,7 @@ func RegisterDatasource() { tfresource.RegisterDatasource("oci_golden_gate_deployment_types", GoldenGateDeploymentTypesDataSource()) tfresource.RegisterDatasource("oci_golden_gate_deployment_upgrade", GoldenGateDeploymentUpgradeDataSource()) tfresource.RegisterDatasource("oci_golden_gate_deployment_upgrades", GoldenGateDeploymentUpgradesDataSource()) + tfresource.RegisterDatasource("oci_golden_gate_deployment_versions", GoldenGateDeploymentVersionsDataSource()) tfresource.RegisterDatasource("oci_golden_gate_deployments", GoldenGateDeploymentsDataSource()) tfresource.RegisterDatasource("oci_golden_gate_message", GoldenGateMessageDataSource()) tfresource.RegisterDatasource("oci_golden_gate_messages", GoldenGateMessagesDataSource()) diff --git a/website/docs/d/golden_gate_deployment.html.markdown b/website/docs/d/golden_gate_deployment.html.markdown index 8a3dc68793b..fbe128d8e37 100644 --- a/website/docs/d/golden_gate_deployment.html.markdown +++ b/website/docs/d/golden_gate_deployment.html.markdown @@ -59,6 +59,11 @@ The following attributes are exported: * `license_model` - The Oracle license model that applies to a Deployment. * `lifecycle_details` - Describes the object's current state in detail. For example, it can be used to provide actionable information for a resource in a Failed state. * `lifecycle_sub_state` - Possible GGS lifecycle sub-states. +* `maintenance_window` - Defines the maintenance window, when automatic actions can be performed. + * `day` - Days of the week. + * `start_hour` - Start hour for maintenance period. Hour is in UTC. +* `next_maintenance_action_type` - Type of the next maintenance. +* `next_maintenance_description` - Description of the next maintenance. * `nsg_ids` - An array of Network Security Group OCIDs used to define network access for either Deployments or Connections. * `ogg_data` - Deployment Data for an OggDeployment * `admin_username` - The GoldenGate deployment console username. @@ -72,6 +77,7 @@ The following attributes are exported: * `subnet_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the subnet being referenced. * `system_tags` - The system tags associated with this resource, if any. The system tags are set by Oracle Cloud Infrastructure services. Each key is predefined and scoped to namespaces. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{orcl-cloud: {free-tier-retain: true}}` * `time_created` - The time the resource was created. The format is defined by [RFC3339](https://tools.ietf.org/html/rfc3339), such as `2016-08-25T21:10:29.600Z`. +* `time_of_next_maintenance` - The time of next maintenance schedule. The format is defined by [RFC3339](https://tools.ietf.org/html/rfc3339), such as `2016-08-25T21:10:29.600Z`. * `time_updated` - The time the resource was last updated. The format is defined by [RFC3339](https://tools.ietf.org/html/rfc3339), such as `2016-08-25T21:10:29.600Z`. -* `time_upgrade_required` - The date the existing version in use will no longer be considered as usable and an upgrade will be required. This date is typically 6 months after the version was released for use by GGS. The format is defined by [RFC3339](https://tools.ietf.org/html/rfc3339), such as `2016-08-25T21:10:29.600Z`. +* `time_upgrade_required` - Note: Deprecated: Use timeOfNextMaintenance instead, or related upgrade records to check, when deployment will be forced to upgrade to a newer version. Old description: The date the existing version in use will no longer be considered as usable and an upgrade will be required. This date is typically 6 months after the version was released for use by GGS. The format is defined by [RFC3339](https://tools.ietf.org/html/rfc3339), such as `2016-08-25T21:10:29.600Z`. diff --git a/website/docs/d/golden_gate_deployment_types.html.markdown b/website/docs/d/golden_gate_deployment_types.html.markdown index cfd093b5ccb..0f2598d0919 100644 --- a/website/docs/d/golden_gate_deployment_types.html.markdown +++ b/website/docs/d/golden_gate_deployment_types.html.markdown @@ -21,7 +21,9 @@ data "oci_golden_gate_deployment_types" "test_deployment_types" { compartment_id = var.compartment_id #Optional + deployment_type = var.deployment_type_deployment_type display_name = var.deployment_type_display_name + ogg_version = var.deployment_type_ogg_version } ``` @@ -30,7 +32,9 @@ data "oci_golden_gate_deployment_types" "test_deployment_types" { The following arguments are supported: * `compartment_id` - (Required) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment in which to list resources. +* `deployment_type` - (Optional) The type of deployment, the value determines the exact 'type' of the service executed in the deployment. Default value is DATABASE_ORACLE. * `display_name` - (Optional) A filter to return only the resources that match the entire 'displayName' given. +* `ogg_version` - (Optional) Allows to query by a specific GoldenGate version. ## Attributes Reference @@ -48,6 +52,7 @@ The following attributes are exported: * `connection_types` - An array of connectionTypes. * `deployment_type` - The type of deployment, the value determines the exact 'type' of service executed in the Deployment. NOTE: Use of the value 'OGG' is maintained for backward compatibility purposes. Its use is discouraged in favor of the equivalent 'DATABASE_ORACLE' value. * `display_name` - An object's Display Name. + * `ogg_version` - Version of OGG * `source_technologies` - List of the supported technologies generally. The value is a freeform text string generally consisting of a description of the technology and optionally the speific version(s) support. For example, [ "Oracle Database 19c", "Oracle Exadata", "OCI Streaming" ] * `target_technologies` - List of the supported technologies generally. The value is a freeform text string generally consisting of a description of the technology and optionally the speific version(s) support. For example, [ "Oracle Database 19c", "Oracle Exadata", "OCI Streaming" ] diff --git a/website/docs/d/golden_gate_deployment_upgrade.html.markdown b/website/docs/d/golden_gate_deployment_upgrade.html.markdown index 2b534df2afc..e684b77b863 100644 --- a/website/docs/d/golden_gate_deployment_upgrade.html.markdown +++ b/website/docs/d/golden_gate_deployment_upgrade.html.markdown @@ -41,13 +41,23 @@ The following attributes are exported: * `display_name` - An object's Display Name. * `freeform_tags` - A simple key-value pair that is applied without any predefined name, type, or scope. Exists for cross-compatibility only. Example: `{"bar-key": "value"}` * `id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the deployment upgrade being referenced. +* `is_rollback_allowed` - Indicates if rollback is allowed. In practice only the last upgrade can be rolled back. + * Manual upgrade is allowed to rollback only until the old version isn't deprecated yet. + * Automatic upgrade by default is not allowed, unless a serious issue does not justify. +* `is_security_fix` - Indicates if OGG release contains security fix. +* `is_snoozed` - Indicates if upgrade notifications are snoozed or not. * `lifecycle_details` - Describes the object's current state in detail. For example, it can be used to provide actionable information for a resource in a Failed state. * `lifecycle_sub_state` - Possible GGS lifecycle sub-states. * `ogg_version` - Version of OGG +* `previous_ogg_version` - Version of OGG +* `release_type` - The type of release. * `state` - Possible lifecycle states. * `system_tags` - The system tags associated with this resource, if any. The system tags are set by Oracle Cloud Infrastructure services. Each key is predefined and scoped to namespaces. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{orcl-cloud: {free-tier-retain: true}}` * `time_created` - The time the resource was created. The format is defined by [RFC3339](https://tools.ietf.org/html/rfc3339), such as `2016-08-25T21:10:29.600Z`. * `time_finished` - The date and time the request was finished. The format is defined by [RFC3339](https://tools.ietf.org/html/rfc3339), such as `2016-08-25T21:10:29.600Z`. +* `time_released` - The time the resource was released. The format is defined by [RFC3339](https://tools.ietf.org/html/rfc3339), such as `2016-08-25T21:10:29.600Z`. +* `time_schedule` - The time of upgrade schedule. The format is defined by [RFC3339](https://tools.ietf.org/html/rfc3339), such as `2016-08-25T21:10:29.600Z`. +* `time_snoozed_until` - The time the upgrade notifications are snoozed until. The format is defined by [RFC3339](https://tools.ietf.org/html/rfc3339), such as `2016-08-25T21:10:29.600Z`. * `time_started` - The date and time the request was started. The format is defined by [RFC3339](https://tools.ietf.org/html/rfc3339), such as `2016-08-25T21:10:29.600Z`. * `time_updated` - The time the resource was last updated. The format is defined by [RFC3339](https://tools.ietf.org/html/rfc3339), such as `2016-08-25T21:10:29.600Z`. diff --git a/website/docs/d/golden_gate_deployment_upgrades.html.markdown b/website/docs/d/golden_gate_deployment_upgrades.html.markdown index 2351b85199c..24a34549f88 100644 --- a/website/docs/d/golden_gate_deployment_upgrades.html.markdown +++ b/website/docs/d/golden_gate_deployment_upgrades.html.markdown @@ -55,13 +55,23 @@ The following attributes are exported: * `display_name` - An object's Display Name. * `freeform_tags` - A simple key-value pair that is applied without any predefined name, type, or scope. Exists for cross-compatibility only. Example: `{"bar-key": "value"}` * `id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the deployment upgrade being referenced. +* `is_rollback_allowed` - Indicates if rollback is allowed. In practice only the last upgrade can be rolled back. + * Manual upgrade is allowed to rollback only until the old version isn't deprecated yet. + * Automatic upgrade by default is not allowed, unless a serious issue does not justify. +* `is_security_fix` - Indicates if OGG release contains security fix. +* `is_snoozed` - Indicates if upgrade notifications are snoozed or not. * `lifecycle_details` - Describes the object's current state in detail. For example, it can be used to provide actionable information for a resource in a Failed state. * `lifecycle_sub_state` - Possible GGS lifecycle sub-states. * `ogg_version` - Version of OGG +* `previous_ogg_version` - Version of OGG +* `release_type` - The type of release. * `state` - Possible lifecycle states. * `system_tags` - The system tags associated with this resource, if any. The system tags are set by Oracle Cloud Infrastructure services. Each key is predefined and scoped to namespaces. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{orcl-cloud: {free-tier-retain: true}}` * `time_created` - The time the resource was created. The format is defined by [RFC3339](https://tools.ietf.org/html/rfc3339), such as `2016-08-25T21:10:29.600Z`. * `time_finished` - The date and time the request was finished. The format is defined by [RFC3339](https://tools.ietf.org/html/rfc3339), such as `2016-08-25T21:10:29.600Z`. +* `time_released` - The time the resource was released. The format is defined by [RFC3339](https://tools.ietf.org/html/rfc3339), such as `2016-08-25T21:10:29.600Z`. +* `time_schedule` - The time of upgrade schedule. The format is defined by [RFC3339](https://tools.ietf.org/html/rfc3339), such as `2016-08-25T21:10:29.600Z`. +* `time_snoozed_until` - The time the upgrade notifications are snoozed until. The format is defined by [RFC3339](https://tools.ietf.org/html/rfc3339), such as `2016-08-25T21:10:29.600Z`. * `time_started` - The date and time the request was started. The format is defined by [RFC3339](https://tools.ietf.org/html/rfc3339), such as `2016-08-25T21:10:29.600Z`. * `time_updated` - The time the resource was last updated. The format is defined by [RFC3339](https://tools.ietf.org/html/rfc3339), such as `2016-08-25T21:10:29.600Z`. diff --git a/website/docs/d/golden_gate_deployment_versions.html.markdown b/website/docs/d/golden_gate_deployment_versions.html.markdown new file mode 100644 index 00000000000..d837bcd4b5b --- /dev/null +++ b/website/docs/d/golden_gate_deployment_versions.html.markdown @@ -0,0 +1,54 @@ +--- +subcategory: "Golden Gate" +layout: "oci" +page_title: "Oracle Cloud Infrastructure: oci_golden_gate_deployment_versions" +sidebar_current: "docs-oci-datasource-golden_gate-deployment_versions" +description: |- + Provides the list of Deployment Versions in Oracle Cloud Infrastructure Golden Gate service +--- + +# Data Source: oci_golden_gate_deployment_versions +This data source provides the list of Deployment Versions in Oracle Cloud Infrastructure Golden Gate service. + +Returns the list of available deployment versions. + + +## Example Usage + +```hcl +data "oci_golden_gate_deployment_versions" "test_deployment_versions" { + #Required + compartment_id = var.compartment_id + + #Optional + deployment_id = oci_golden_gate_deployment.test_deployment.id + deployment_type = var.deployment_version_deployment_type +} +``` + +## Argument Reference + +The following arguments are supported: + +* `compartment_id` - (Required) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment in which to list resources. +* `deployment_id` - (Optional) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the deployment in which to list resources. +* `deployment_type` - (Optional) The type of deployment, the value determines the exact 'type' of the service executed in the deployment. Default value is DATABASE_ORACLE. + + +## Attributes Reference + +The following attributes are exported: + +* `deployment_version_collection` - The list of deployment_version_collection. + +### DeploymentVersion Reference + +The following attributes are exported: + +* `items` - Array of DeploymentVersionSummary. + * `deployment_type` - The type of deployment, the value determines the exact 'type' of service executed in the Deployment. NOTE: Use of the value 'OGG' is maintained for backward compatibility purposes. Its use is discouraged in favor of the equivalent 'DATABASE_ORACLE' value. + * `is_security_fix` - Indicates if OGG release contains security fix. + * `ogg_version` - Version of OGG + * `release_type` - The type of release. + * `time_released` - The time the resource was released. The format is defined by [RFC3339](https://tools.ietf.org/html/rfc3339), such as `2016-08-25T21:10:29.600Z`. + diff --git a/website/docs/d/golden_gate_deployments.html.markdown b/website/docs/d/golden_gate_deployments.html.markdown index 64552c0990e..6f19b25a71b 100644 --- a/website/docs/d/golden_gate_deployments.html.markdown +++ b/website/docs/d/golden_gate_deployments.html.markdown @@ -81,6 +81,11 @@ The following attributes are exported: * `license_model` - The Oracle license model that applies to a Deployment. * `lifecycle_details` - Describes the object's current state in detail. For example, it can be used to provide actionable information for a resource in a Failed state. * `lifecycle_sub_state` - Possible GGS lifecycle sub-states. +* `maintenance_window` - Defines the maintenance window, when automatic actions can be performed. + * `day` - Days of the week. + * `start_hour` - Start hour for maintenance period. Hour is in UTC. +* `next_maintenance_action_type` - Type of the next maintenance. +* `next_maintenance_description` - Description of the next maintenance. * `nsg_ids` - An array of Network Security Group OCIDs used to define network access for either Deployments or Connections. * `ogg_data` - Deployment Data for an OggDeployment * `admin_username` - The GoldenGate deployment console username. @@ -94,6 +99,7 @@ The following attributes are exported: * `subnet_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the subnet being referenced. * `system_tags` - The system tags associated with this resource, if any. The system tags are set by Oracle Cloud Infrastructure services. Each key is predefined and scoped to namespaces. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{orcl-cloud: {free-tier-retain: true}}` * `time_created` - The time the resource was created. The format is defined by [RFC3339](https://tools.ietf.org/html/rfc3339), such as `2016-08-25T21:10:29.600Z`. +* `time_of_next_maintenance` - The time of next maintenance schedule. The format is defined by [RFC3339](https://tools.ietf.org/html/rfc3339), such as `2016-08-25T21:10:29.600Z`. * `time_updated` - The time the resource was last updated. The format is defined by [RFC3339](https://tools.ietf.org/html/rfc3339), such as `2016-08-25T21:10:29.600Z`. -* `time_upgrade_required` - The date the existing version in use will no longer be considered as usable and an upgrade will be required. This date is typically 6 months after the version was released for use by GGS. The format is defined by [RFC3339](https://tools.ietf.org/html/rfc3339), such as `2016-08-25T21:10:29.600Z`. +* `time_upgrade_required` - Note: Deprecated: Use timeOfNextMaintenance instead, or related upgrade records to check, when deployment will be forced to upgrade to a newer version. Old description: The date the existing version in use will no longer be considered as usable and an upgrade will be required. This date is typically 6 months after the version was released for use by GGS. The format is defined by [RFC3339](https://tools.ietf.org/html/rfc3339), such as `2016-08-25T21:10:29.600Z`. diff --git a/website/docs/r/golden_gate_deployment.html.markdown b/website/docs/r/golden_gate_deployment.html.markdown index 91bb0bd0ef1..a7f520c58dd 100644 --- a/website/docs/r/golden_gate_deployment.html.markdown +++ b/website/docs/r/golden_gate_deployment.html.markdown @@ -33,6 +33,11 @@ resource "oci_golden_gate_deployment" "test_deployment" { fqdn = var.deployment_fqdn freeform_tags = {"bar-key"= "value"} is_public = var.deployment_is_public + maintenance_window { + #Required + day = var.deployment_maintenance_window_day + start_hour = var.deployment_maintenance_window_start_hour + } nsg_ids = var.deployment_nsg_ids ogg_data { #Required @@ -43,7 +48,9 @@ resource "oci_golden_gate_deployment" "test_deployment" { #Optional certificate = var.deployment_ogg_data_certificate key = var.deployment_ogg_data_key + ogg_version = var.deployment_ogg_data_ogg_version } + state = var.deployment_state } ``` @@ -63,6 +70,9 @@ The following arguments are supported: * `is_auto_scaling_enabled` - (Required) (Updatable) Indicates if auto scaling is enabled for the Deployment's CPU core count. * `is_public` - (Optional) (Updatable) True if this object is publicly available. * `license_model` - (Required) (Updatable) The Oracle license model that applies to a Deployment. +* `maintenance_window` - (Optional) (Updatable) Defines the maintenance window for create operation, when automatic actions can be performed. + * `day` - (Required) (Updatable) Days of the week. + * `start_hour` - (Required) (Updatable) Start hour for maintenance period. Hour is in UTC. * `nsg_ids` - (Optional) (Updatable) An array of Network Security Group OCIDs used to define network access for either Deployments or Connections. * `ogg_data` - (Optional) (Updatable) Deployment Data for creating an OggDeployment * `admin_password` - (Required) (Updatable) The password associated with the GoldenGate deployment console username. The password must be 8 to 30 characters long and must contain at least 1 uppercase, 1 lowercase, 1 numeric, and 1 special character. Special characters such as ‘$’, ‘^’, or ‘?’ are not allowed. This field will be deprecated and replaced by "passwordSecretId". @@ -70,7 +80,9 @@ The following arguments are supported: * `certificate` - (Optional) (Updatable) A PEM-encoded SSL certificate. * `deployment_name` - (Required) The name given to the GoldenGate service deployment. The name must be 1 to 32 characters long, must contain only alphanumeric characters and must start with a letter. * `key` - (Optional) (Updatable) A PEM-encoded private key. -* `subnet_id` - (Required) (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the subnet being referenced. + * `ogg_version` - (Optional) (Updatable) Version of ogg to use by deployment. By updating version you can upgrade your deployment to a newer version. Downgrade to older version is not supported. +* `subnet_id` - (Required) (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the subnet being referenced. +* `state` - (Optional) (Updatable) The target state for the deployment. Could be set to ACTIVE or INACTIVE. By setting this value to ACTIVE terraform will perform start operation, if your deployment is not ACTIVE already. Setting value to INACTIVE will stop your deployment. ** IMPORTANT ** @@ -106,6 +118,11 @@ The following attributes are exported: * `license_model` - The Oracle license model that applies to a Deployment. * `lifecycle_details` - Describes the object's current state in detail. For example, it can be used to provide actionable information for a resource in a Failed state. * `lifecycle_sub_state` - Possible GGS lifecycle sub-states. +* `maintenance_window` - Defines the maintenance window, when automatic actions can be performed. + * `day` - Days of the week. + * `start_hour` - Start hour for maintenance period. Hour is in UTC. +* `next_maintenance_action_type` - Type of the next maintenance. +* `next_maintenance_description` - Description of the next maintenance. * `nsg_ids` - An array of Network Security Group OCIDs used to define network access for either Deployments or Connections. * `ogg_data` - Deployment Data for an OggDeployment * `admin_username` - The GoldenGate deployment console username. @@ -119,8 +136,9 @@ The following attributes are exported: * `subnet_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the subnet being referenced. * `system_tags` - The system tags associated with this resource, if any. The system tags are set by Oracle Cloud Infrastructure services. Each key is predefined and scoped to namespaces. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{orcl-cloud: {free-tier-retain: true}}` * `time_created` - The time the resource was created. The format is defined by [RFC3339](https://tools.ietf.org/html/rfc3339), such as `2016-08-25T21:10:29.600Z`. +* `time_of_next_maintenance` - The time of next maintenance schedule. The format is defined by [RFC3339](https://tools.ietf.org/html/rfc3339), such as `2016-08-25T21:10:29.600Z`. * `time_updated` - The time the resource was last updated. The format is defined by [RFC3339](https://tools.ietf.org/html/rfc3339), such as `2016-08-25T21:10:29.600Z`. -* `time_upgrade_required` - The date the existing version in use will no longer be considered as usable and an upgrade will be required. This date is typically 6 months after the version was released for use by GGS. The format is defined by [RFC3339](https://tools.ietf.org/html/rfc3339), such as `2016-08-25T21:10:29.600Z`. +* `time_upgrade_required` - Note: Deprecated: Use timeOfNextMaintenance instead, or related upgrade records to check, when deployment will be forced to upgrade to a newer version. Old description: The date the existing version in use will no longer be considered as usable and an upgrade will be required. This date is typically 6 months after the version was released for use by GGS. The format is defined by [RFC3339](https://tools.ietf.org/html/rfc3339), such as `2016-08-25T21:10:29.600Z`. ## Timeouts From cfd8a8435c8b9c3c9f9ccc7a15f30846087f6044 Mon Sep 17 00:00:00 2001 From: rashik_bhasin Date: Fri, 10 Mar 2023 16:57:36 -0800 Subject: [PATCH 07/12] Vendored - oci-go-sdk v65.32.1 changes for existing & new services --- go.mod | 2 +- .../oci-go-sdk/v65/containerengine/addon.go | 62 + .../containerengine/addon_configuration.go | 44 + .../v65/containerengine/addon_error.go | 47 + .../containerengine/addon_lifecycle_state.go | 78 + .../containerengine/addon_option_summary.go | 121 + .../v65/containerengine/addon_summary.go | 59 + .../addon_version_configuration.go | 53 + .../v65/containerengine/addon_versions.go | 106 + .../oci-go-sdk/v65/containerengine/cluster.go | 9 + .../v65/containerengine/cluster_summary.go | 9 + .../v65/containerengine/cluster_type.go | 58 + .../containerengine/containerengine_client.go | 1076 ++- .../containerengine/create_cluster_details.go | 9 + .../create_virtual_node_pool_details.go | 77 + ...eate_virtual_node_pool_request_response.go | 94 + ...lete_virtual_node_pool_request_response.go | 102 + .../disable_addon_request_response.go | 101 + .../get_addon_request_response.go | 97 + .../get_virtual_node_pool_request_response.go | 94 + .../get_virtual_node_request_response.go | 97 + .../initial_virtual_node_label.go | 44 + .../containerengine/install_addon_details.go | 47 + .../install_addon_request_response.go | 102 + .../kubernetes_versions_filters.go | 47 + .../list_addon_options_request_response.go | 203 + .../list_addons_request_response.go | 200 + .../list_pod_shapes_request_response.go | 210 + ...ist_virtual_node_pools_request_response.go | 219 + .../list_virtual_nodes_request_response.go | 207 + .../placement_configuration.go | 48 + .../v65/containerengine/pod_configuration.go | 47 + .../v65/containerengine/pod_shape.go | 53 + .../v65/containerengine/pod_shape_summary.go | 53 + .../containerengine/shape_memory_options.go | 53 + .../shape_network_bandwidth_options.go | 47 + .../v65/containerengine/shape_ocpu_options.go | 44 + .../oci-go-sdk/v65/containerengine/taint.go | 47 + .../containerengine/update_addon_details.go | 44 + .../update_addon_request_response.go | 101 + .../containerengine/update_cluster_details.go | 6 + .../update_virtual_node_details.go | 44 + .../update_virtual_node_pool_details.go | 71 + ...date_virtual_node_pool_request_response.go | 98 + .../v65/containerengine/virtual_node.go | 94 + .../virtual_node_lifecycle_state.go | 78 + .../v65/containerengine/virtual_node_pool.go | 102 + .../virtual_node_pool_lifecycle_state.go | 78 + .../virtual_node_pool_summary.go | 102 + .../containerengine/virtual_node_summary.go | 94 + .../v65/containerengine/virtual_node_tags.go | 48 + .../work_request_operation_type.go | 80 +- .../containerengine/work_request_summary.go | 24 +- ..._bm_gpu_launch_instance_platform_config.go | 164 + .../core/amd_milan_bm_gpu_platform_config.go | 165 + ..._bm_gpu_launch_instance_platform_config.go | 164 + ...uration_launch_instance_platform_config.go | 8 + .../core/launch_instance_platform_config.go | 8 + .../oci-go-sdk/v65/core/platform_config.go | 8 + .../v65/core/shape_platform_config_options.go | 4 + .../database/autonomous_database_backup.go | 2 + .../autonomous_database_backup_summary.go | 2 + ...eate_autonomous_database_backup_details.go | 2 + .../oci-go-sdk/v65/database/db_system.go | 3 + .../v65/database/db_system_summary.go | 3 + ...omous_database_backups_request_response.go | 3 + .../v65/database/patch_history_entry.go | 52 + .../database/patch_history_entry_summary.go | 52 + .../copy_conflict_resolution.go | 94 + .../copy_object_metadata_summary.go | 119 + .../dataintegration/copy_object_request.go | 138 + .../copy_object_request_summary.go | 138 + .../copy_object_request_summary_collection.go | 39 + ...n_detailed_description_request_response.go | 104 + .../create_copy_object_request_details.go | 44 + ...te_copy_object_request_request_response.go | 104 + .../create_detailed_description_details.go | 42 + ...n_detailed_description_request_response.go | 104 + .../dataintegration/dataintegration_client.go | 924 +- ...n_detailed_description_request_response.go | 97 + ...te_copy_object_request_request_response.go | 97 + ...n_detailed_description_request_response.go | 97 + .../dataintegration/detailed_description.go | 108 + ...n_detailed_description_request_response.go | 98 + ...et_copy_object_request_request_response.go | 98 + ...n_detailed_description_request_response.go | 98 + .../get_template_request_response.go | 95 + ...t_copy_object_requests_request_response.go | 326 + .../list_task_runs_request_response.go | 3 + .../list_templates_request_response.go | 216 + .../v65/dataintegration/template.go | 169 + ...n_detailed_description_request_response.go | 106 + .../update_copy_object_request_details.go | 80 + ...te_copy_object_request_request_response.go | 106 + .../update_detailed_description_details.go | 42 + ...n_detailed_description_request_response.go | 106 + ...ancel_snooze_deployment_upgrade_details.go | 76 + ...oze_deployment_upgrade_request_response.go | 103 + .../cancel_snooze_deployment_upgrade_type.go | 52 + .../goldengate/create_deployment_details.go | 2 + .../create_maintenance_window_details.go | 45 + .../create_ogg_deployment_details.go | 3 + .../oracle/oci-go-sdk/v65/goldengate/day.go | 76 + ...ancel_snooze_deployment_upgrade_details.go | 51 + ...ult_rollback_deployment_upgrade_details.go | 51 + ...fault_snooze_deployment_upgrade_details.go | 51 + ...ault_upgrade_deployment_upgrade_details.go | 51 + .../oci-go-sdk/v65/goldengate/deployment.go | 18 + .../v65/goldengate/deployment_summary.go | 3 + .../v65/goldengate/deployment_type_summary.go | 3 + .../v65/goldengate/deployment_upgrade.go | 32 + .../goldengate/deployment_upgrade_summary.go | 32 + .../deployment_version_collection.go | 39 + .../goldengate/deployment_version_summary.go | 60 + .../v65/goldengate/goldengate_client.go | 310 + .../v65/goldengate/lifecycle_state.go | 4 + .../v65/goldengate/lifecycle_sub_state.go | 46 +- ...database_registrations_request_response.go | 4 + ...ist_deployment_backups_request_response.go | 4 + .../list_deployment_types_request_response.go | 63 + ...st_deployment_upgrades_request_response.go | 4 + ...st_deployment_versions_request_response.go | 263 + .../list_deployments_request_response.go | 50 +- .../v65/goldengate/maintenance_action_type.go | 52 + .../v65/goldengate/maintenance_window.go | 45 + .../v65/goldengate/operation_type.go | 16 +- .../oci-go-sdk/v65/goldengate/release_type.go | 60 + .../rollback_deployment_upgrade_details.go | 76 + ...ack_deployment_upgrade_request_response.go | 107 + .../rollback_deployment_upgrade_type.go | 52 + .../snooze_deployment_upgrade_details.go | 76 + ...oze_deployment_upgrade_request_response.go | 103 + .../snooze_deployment_upgrade_type.go | 52 + .../goldengate/update_deployment_details.go | 2 + .../update_maintenance_window_details.go | 45 + .../goldengate/upgrade_deployment_details.go | 4 + ...ade_deployment_specific_release_details.go | 54 + .../v65/goldengate/upgrade_deployment_type.go | 10 +- .../upgrade_deployment_upgrade_details.go | 76 + ...ade_deployment_upgrade_request_response.go | 107 + .../upgrade_deployment_upgrade_type.go | 52 + .../v65/identitydomains/addresses.go | 184 + .../oci-go-sdk/v65/identitydomains/api_key.go | 204 + .../identitydomains/api_key_search_request.go | 70 + .../v65/identitydomains/api_key_user.go | 106 + .../v65/identitydomains/api_keys.go | 52 + .../v65/identitydomains/attribute_sets.go | 69 + .../v65/identitydomains/auth_token.go | 253 + .../auth_token_search_request.go | 70 + .../v65/identitydomains/auth_token_user.go | 106 + .../v65/identitydomains/auth_tokens.go | 52 + .../authentication_factor_setting.go | 441 + .../authentication_factor_settings.go | 52 + ...on_factor_settings_bypass_code_settings.go | 119 + ...ion_factor_settings_client_app_settings.go | 324 + ...ation_factor_settings_compliance_policy.go | 123 + ...n_factor_settings_duo_security_settings.go | 155 + ...tication_factor_settings_email_settings.go | 70 + ...n_factor_settings_endpoint_restrictions.go | 108 + ...factor_settings_identity_store_settings.go | 67 + ...n_factor_settings_notification_settings.go | 58 + ...tication_factor_settings_search_request.go | 52 + ...tion_factor_settings_third_party_factor.go | 58 + ...ntication_factor_settings_totp_settings.go | 232 + .../authentication_factors_remover.go | 234 + .../authentication_factors_remover_user.go | 93 + .../create_api_key_request_response.go | 124 + .../create_auth_token_request_response.go | 124 + ...cation_factors_remover_request_response.go | 112 + ...te_customer_secret_key_request_response.go | 124 + ...dynamic_resource_group_request_response.go | 124 + .../create_group_request_response.go | 124 + ...eate_identity_provider_request_response.go | 124 + .../create_me_request_response.go | 124 + .../create_my_api_key_request_response.go | 112 + .../create_my_auth_token_request_response.go | 112 + ...ation_factor_initiator_request_response.go | 112 + ...ation_factor_validator_request_response.go | 112 + ...cation_factors_remover_request_response.go | 112 + ...my_customer_secret_key_request_response.go | 112 + ...uth2_client_credential_request_response.go | 112 + ...ate_my_smtp_credential_request_response.go | 112 + ...ate_my_support_account_request_response.go | 112 + ..._my_user_db_credential_request_response.go | 112 + ...uth2_client_credential_request_response.go | 124 + ...create_password_policy_request_response.go | 124 + ...create_smtp_credential_request_response.go | 124 + ...ate_user_db_credential_request_response.go | 124 + .../create_user_request_response.go | 124 + .../identitydomains/customer_secret_key.go | 270 + .../customer_secret_key_search_request.go | 70 + .../customer_secret_key_user.go | 106 + .../identitydomains/customer_secret_keys.go | 52 + .../v65/identitydomains/defined_tags.go | 82 + .../delete_api_key_request_response.go | 102 + .../delete_auth_token_request_response.go | 102 + ...te_customer_secret_key_request_response.go | 102 + ...dynamic_resource_group_request_response.go | 102 + .../delete_group_request_response.go | 102 + ...lete_identity_provider_request_response.go | 102 + .../delete_my_api_key_request_response.go | 102 + .../delete_my_auth_token_request_response.go | 102 + ...my_customer_secret_key_request_response.go | 102 + .../delete_my_device_request_response.go | 102 + ...uth2_client_credential_request_response.go | 102 + ...ete_my_smtp_credential_request_response.go | 102 + ...ete_my_support_account_request_response.go | 102 + ..._my_trusted_user_agent_request_response.go | 102 + ..._my_user_db_credential_request_response.go | 102 + ...uth2_client_credential_request_response.go | 102 + ...delete_password_policy_request_response.go | 102 + ...delete_smtp_credential_request_response.go | 102 + ...ete_user_db_credential_request_response.go | 102 + .../delete_user_request_response.go | 102 + .../identitydomains/dynamic_resource_group.go | 233 + ..._resource_group_dynamic_group_app_roles.go | 120 + .../dynamic_resource_group_grants.go | 161 + .../dynamic_resource_group_search_request.go | 70 + .../dynamic_resource_groups.go | 52 + .../extension_adaptive_user.go | 111 + .../extension_capabilities_user.go | 128 + .../extension_db_credentials_user.go | 62 + .../identitydomains/extension_db_user_user.go | 102 + .../identitydomains/extension_dbcs_group.go | 87 + .../extension_dynamic_group.go | 108 + .../extension_enterprise20_user.go | 114 + ...ion_fido_authentication_factor_settings.go | 400 + .../identitydomains/extension_group_group.go | 166 + .../extension_kerberos_user_user.go | 48 + .../v65/identitydomains/extension_me_user.go | 49 + .../extension_messages_error.go | 44 + .../v65/identitydomains/extension_mfa_user.go | 302 + .../v65/identitydomains/extension_oci_tags.go | 69 + .../extension_password_state_user.go | 118 + .../extension_passwordless_user.go | 146 + .../identitydomains/extension_posix_group.go | 48 + .../identitydomains/extension_posix_user.go | 92 + .../extension_requestable_group.go | 51 + .../extension_security_questions_user.go | 48 + .../extension_self_change_user.go | 49 + .../extension_self_registration_user.go | 61 + .../v65/identitydomains/extension_sff_user.go | 48 + .../extension_social_account_user.go | 50 + .../extension_social_identity_provider.go | 290 + .../extension_terms_of_use_user.go | 50 + ...rd_party_authentication_factor_settings.go | 38 + .../extension_user_credentials_user.go | 115 + .../extension_user_state_user.go | 127 + .../identitydomains/extension_user_user.go | 436 + .../extension_x509_identity_provider.go | 232 + .../v65/identitydomains/freeform_tags.go | 70 + .../get_api_key_request_response.go | 111 + .../get_auth_token_request_response.go | 111 + ...ication_factor_setting_request_response.go | 111 + ...et_customer_secret_key_request_response.go | 111 + ...dynamic_resource_group_request_response.go | 111 + .../get_group_request_response.go | 111 + .../get_identity_provider_request_response.go | 111 + .../get_kmsi_setting_request_response.go | 111 + .../get_me_request_response.go | 108 + .../get_my_api_key_request_response.go | 99 + .../get_my_auth_token_request_response.go | 99 + ...my_customer_secret_key_request_response.go | 99 + .../get_my_device_request_response.go | 111 + ...uth2_client_credential_request_response.go | 99 + ...get_my_smtp_credential_request_response.go | 99 + ...get_my_support_account_request_response.go | 99 + ..._my_trusted_user_agent_request_response.go | 111 + ..._my_user_db_credential_request_response.go | 99 + ...uth2_client_credential_request_response.go | 111 + .../get_password_policy_request_response.go | 111 + .../get_smtp_credential_request_response.go | 111 + ...get_user_db_credential_request_response.go | 111 + .../get_user_request_response.go | 111 + .../oci-go-sdk/v65/identitydomains/group.go | 234 + .../identitydomains/group_ext_app_roles.go | 187 + .../group_ext_domain_level_schema_names.go | 72 + .../v65/identitydomains/group_ext_grants.go | 161 + .../group_ext_instance_level_schema_names.go | 72 + .../v65/identitydomains/group_ext_owners.go | 141 + .../group_ext_password_policy.go | 97 + .../group_ext_synced_from_app.go | 138 + .../v65/identitydomains/group_members.go | 176 + .../identitydomains/group_search_request.go | 70 + .../oci-go-sdk/v65/identitydomains/groups.go | 52 + .../v65/identitydomains/idcs_created_by.go | 148 + .../identitydomains/idcs_last_modified_by.go | 148 + .../idcs_prevented_operations.go | 61 + .../v65/identitydomains/identity_provider.go | 1021 ++ .../identity_provider_correlation_policy.go | 138 + ..._provider_jit_user_prov_assigned_groups.go | 74 + ...ntity_provider_jit_user_prov_attributes.go | 70 + ...y_provider_jit_user_prov_group_mappings.go | 67 + .../identity_provider_search_request.go | 70 + .../v65/identitydomains/identity_providers.go | 52 + .../identitydomains/identitydomains_client.go | 8387 +++++++++++++++++ .../v65/identitydomains/kmsi_setting.go | 264 + .../v65/identitydomains/kmsi_settings.go | 52 + .../kmsi_settings_search_request.go | 52 + .../list_api_keys_request_response.go | 177 + .../list_auth_tokens_request_response.go | 177 + ...cation_factor_settings_request_response.go | 117 + ...t_customer_secret_keys_request_response.go | 177 + ...ynamic_resource_groups_request_response.go | 177 + .../list_groups_request_response.go | 177 + ...ist_identity_providers_request_response.go | 177 + .../list_kmsi_settings_request_response.go | 117 + .../list_my_api_keys_request_response.go | 165 + .../list_my_auth_tokens_request_response.go | 165 + ...y_customer_secret_keys_request_response.go | 165 + .../list_my_devices_request_response.go | 177 + .../list_my_groups_request_response.go | 177 + ...th2_client_credentials_request_response.go | 165 + ...st_my_smtp_credentials_request_response.go | 165 + ...st_my_support_accounts_request_response.go | 165 + ...my_trusted_user_agents_request_response.go | 177 + ...my_user_db_credentials_request_response.go | 165 + ...th2_client_credentials_request_response.go | 177 + ...list_password_policies_request_response.go | 177 + .../list_smtp_credentials_request_response.go | 177 + ...st_user_db_credentials_request_response.go | 177 + .../list_users_request_response.go | 177 + .../oci-go-sdk/v65/identitydomains/me.go | 562 ++ .../v65/identitydomains/me_emails.go | 163 + .../v65/identitydomains/me_entitlements.go | 82 + .../v65/identitydomains/me_groups.go | 187 + .../oci-go-sdk/v65/identitydomains/me_ims.go | 154 + .../oci-go-sdk/v65/identitydomains/me_name.go | 121 + .../identitydomains/me_password_changer.go | 205 + .../v65/identitydomains/me_phone_numbers.go | 162 + .../v65/identitydomains/me_photos.go | 126 + .../v65/identitydomains/me_roles.go | 82 + .../identitydomains/me_x509_certificates.go | 81 + .../oci-go-sdk/v65/identitydomains/meta.go | 106 + .../v65/identitydomains/my_api_key.go | 202 + .../v65/identitydomains/my_api_key_user.go | 106 + .../v65/identitydomains/my_api_keys.go | 52 + .../v65/identitydomains/my_auth_token.go | 251 + .../v65/identitydomains/my_auth_token_user.go | 106 + .../v65/identitydomains/my_auth_tokens.go | 52 + .../my_authentication_factor_initiator.go | 482 + ..._factor_initiator_additional_attributes.go | 59 + ...ion_factor_initiator_third_party_factor.go | 82 + .../my_authentication_factor_validator.go | 709 ++ ..._factor_validator_additional_attributes.go | 59 + ...ion_factor_validator_security_questions.go | 60 + ...ion_factor_validator_third_party_factor.go | 82 + .../my_authentication_factors_remover.go | 234 + .../my_authentication_factors_remover_user.go | 93 + .../identitydomains/my_customer_secret_key.go | 268 + .../my_customer_secret_key_user.go | 106 + .../my_customer_secret_keys.go | 52 + .../v65/identitydomains/my_device.go | 553 ++ .../my_device_additional_attributes.go | 59 + .../my_device_authentication_factors.go | 209 + .../my_device_non_compliances.go | 123 + .../my_device_push_notification_target.go | 68 + .../my_device_third_party_factor.go | 94 + .../v65/identitydomains/my_device_user.go | 98 + .../v65/identitydomains/my_devices.go | 52 + .../v65/identitydomains/my_group.go | 226 + .../v65/identitydomains/my_group_members.go | 176 + .../my_group_search_request.go | 70 + .../v65/identitydomains/my_groups.go | 52 + .../my_o_auth2_client_credential.go | 284 + .../my_o_auth2_client_credential_scopes.go | 57 + .../my_o_auth2_client_credential_user.go | 106 + .../my_o_auth2_client_credentials.go | 52 + .../v65/identitydomains/my_smtp_credential.go | 259 + .../my_smtp_credential_user.go | 106 + .../identitydomains/my_smtp_credentials.go | 52 + .../v65/identitydomains/my_support_account.go | 248 + .../my_support_account_user.go | 106 + .../identitydomains/my_support_accounts.go | 52 + .../identitydomains/my_trusted_user_agent.go | 315 + .../my_trusted_user_agent_trusted_factors.go | 133 + .../my_trusted_user_agent_user.go | 93 + .../identitydomains/my_trusted_user_agents.go | 52 + .../identitydomains/my_user_db_credential.go | 307 + .../identitydomains/my_user_db_credentials.go | 52 + .../my_user_db_credentials_user.go | 107 + .../o_auth2_client_credential.go | 286 + .../o_auth2_client_credential_scopes.go | 57 + ..._auth2_client_credential_search_request.go | 70 + .../o_auth2_client_credential_user.go | 106 + .../o_auth2_client_credentials.go | 52 + .../v65/identitydomains/operations.go | 95 + .../v65/identitydomains/password_policies.go | 52 + .../v65/identitydomains/password_policy.go | 621 ++ ...policy_configured_password_policy_rules.go | 59 + .../identitydomains/password_policy_groups.go | 74 + .../password_policy_search_request.go | 70 + .../patch_api_key_request_response.go | 130 + .../patch_auth_token_request_response.go | 130 + ...ch_customer_secret_key_request_response.go | 130 + ...dynamic_resource_group_request_response.go | 130 + .../patch_group_request_response.go | 130 + ...atch_identity_provider_request_response.go | 130 + .../patch_kmsi_setting_request_response.go | 130 + .../patch_me_request_response.go | 127 + .../patch_my_api_key_request_response.go | 118 + .../patch_my_auth_token_request_response.go | 118 + ...my_customer_secret_key_request_response.go | 118 + .../patch_my_device_request_response.go | 130 + ...uth2_client_credential_request_response.go | 118 + ...tch_my_smtp_credential_request_response.go | 118 + ...uth2_client_credential_request_response.go | 130 + .../v65/identitydomains/patch_op.go | 43 + .../patch_password_policy_request_response.go | 130 + .../patch_smtp_credential_request_response.go | 130 + .../patch_user_request_response.go | 130 + ...ication_factor_setting_request_response.go | 130 + ...dynamic_resource_group_request_response.go | 130 + .../put_group_request_response.go | 130 + .../put_identity_provider_request_response.go | 130 + .../put_kmsi_setting_request_response.go | 130 + ...ut_me_password_changer_request_response.go | 115 + .../put_me_request_response.go | 127 + .../put_password_policy_request_response.go | 130 + ...r_capabilities_changer_request_response.go | 118 + ..._user_password_changer_request_response.go | 118 + ...user_password_resetter_request_response.go | 118 + .../put_user_request_response.go | 130 + ...ut_user_status_changer_request_response.go | 130 + .../search_api_keys_request_response.go | 108 + .../search_auth_tokens_request_response.go | 108 + ...cation_factor_settings_request_response.go | 108 + ...h_customer_secret_keys_request_response.go | 108 + ...ynamic_resource_groups_request_response.go | 108 + .../search_groups_request_response.go | 108 + ...rch_identity_providers_request_response.go | 108 + .../search_kmsi_settings_request_response.go | 108 + .../search_my_groups_request_response.go | 108 + ...th2_client_credentials_request_response.go | 108 + ...arch_password_policies_request_response.go | 108 + ...earch_smtp_credentials_request_response.go | 108 + ...ch_user_db_credentials_request_response.go | 108 + .../search_users_request_response.go | 108 + .../v65/identitydomains/smtp_credential.go | 261 + .../smtp_credential_search_request.go | 70 + .../identitydomains/smtp_credential_user.go | 106 + .../v65/identitydomains/smtp_credentials.go | 52 + .../v65/identitydomains/sort_order.go | 57 + .../oci-go-sdk/v65/identitydomains/tags.go | 61 + .../oci-go-sdk/v65/identitydomains/user.go | 574 ++ .../user_capabilities_changer.go | 254 + .../v65/identitydomains/user_db_credential.go | 309 + .../identitydomains/user_db_credentials.go | 52 + .../user_db_credentials_search_request.go | 70 + .../user_db_credentials_user.go | 107 + .../v65/identitydomains/user_emails.go | 163 + .../v65/identitydomains/user_entitlements.go | 82 + .../v65/identitydomains/user_ext_accounts.go | 106 + .../v65/identitydomains/user_ext_api_keys.go | 98 + .../v65/identitydomains/user_ext_app_roles.go | 185 + ...xt_applicable_authentication_target_app.go | 107 + .../user_ext_applicable_password_policy.go | 97 + .../identitydomains/user_ext_auth_tokens.go | 85 + .../identitydomains/user_ext_bypass_codes.go | 71 + .../user_ext_customer_secret_keys.go | 85 + .../user_ext_db_credentials.go | 85 + ...ext_delegated_authentication_target_app.go | 143 + .../v65/identitydomains/user_ext_devices.go | 155 + .../user_ext_factor_identifier.go | 85 + .../v65/identitydomains/user_ext_grants.go | 174 + ...er_ext_idcs_app_roles_limited_to_groups.go | 110 + .../v65/identitydomains/user_ext_locked.go | 94 + .../v65/identitydomains/user_ext_manager.go | 80 + .../user_ext_o_auth2_client_credentials.go | 85 + .../user_ext_password_verifiers.go | 74 + .../user_ext_preferred_device.go | 85 + .../identitydomains/user_ext_realm_users.go | 91 + .../user_ext_recovery_locked.go | 71 + .../identitydomains/user_ext_risk_scores.go | 186 + .../identitydomains/user_ext_sec_questions.go | 93 + .../user_ext_self_registration_profile.go | 79 + .../user_ext_smtp_credentials.go | 85 + .../user_ext_social_accounts.go | 70 + .../user_ext_support_accounts.go | 111 + .../user_ext_synced_from_app.go | 147 + .../user_ext_terms_of_use_consents.go | 60 + .../user_ext_trusted_user_agents.go | 83 + .../identitydomains/user_ext_user_token.go | 71 + .../v65/identitydomains/user_groups.go | 187 + .../v65/identitydomains/user_ims.go | 154 + .../v65/identitydomains/user_name.go | 121 + .../identitydomains/user_password_changer.go | 215 + .../identitydomains/user_password_resetter.go | 230 + .../user_password_resetter_user_token.go | 68 + .../v65/identitydomains/user_phone_numbers.go | 162 + .../v65/identitydomains/user_photos.go | 126 + .../v65/identitydomains/user_roles.go | 82 + .../identitydomains/user_search_request.go | 70 + .../identitydomains/user_status_changer.go | 194 + .../identitydomains/user_x509_certificates.go | 81 + .../oci-go-sdk/v65/identitydomains/users.go | 52 + ..._pe_comanaged_exadata_vmcluster_details.go | 8 +- .../opsi/host_configuration_metric_group.go | 8 + .../v65/opsi/host_filesystem_configuration.go | 71 + .../v65/opsi/host_filesystem_usage.go | 69 + .../v65/opsi/host_network_activity_summary.go | 3 + .../v65/opsi/host_network_statistics.go | 89 + .../v65/opsi/host_performance_metric_group.go | 8 + .../v65/opsi/host_resource_statistics.go | 28 +- .../v65/opsi/host_storage_statistics.go | 87 + .../v65/opsi/network_usage_trend.go | 50 + .../opsi/network_usage_trend_aggregation.go | 50 + .../opsi/opsi_operationsinsights_client.go | 116 + .../v65/opsi/storage_usage_trend.go | 47 + .../opsi/storage_usage_trend_aggregation.go | 50 + ...ource_statistics_aggregation_collection.go | 2 +- ...work_usage_trend_aggregation_collection.go | 110 + ...ht_network_usage_trend_request_response.go | 181 + ...e_capacity_trend_aggregation_collection.go | 14 + ...esource_capacity_trend_request_response.go | 7 + ...ght_resource_forecast_trend_aggregation.go | 14 + ...esource_forecast_trend_request_response.go | 13 + ...ource_statistics_aggregation_collection.go | 14 + ...ht_resource_statistics_request_response.go | 7 + ...host_insight_resource_usage_aggregation.go | 8 + ...insight_resource_usage_request_response.go | 1 + ...urce_usage_trend_aggregation_collection.go | 8 + ...t_resource_usage_trend_request_response.go | 1 + ...esource_utilization_insight_aggregation.go | 14 + ...ce_utilization_insight_request_response.go | 7 + ...rage_usage_trend_aggregation_collection.go | 110 + ...ht_storage_usage_trend_request_response.go | 181 + ...ht_top_processes_usage_request_response.go | 48 + ..._processes_usage_trend_request_response.go | 48 + vendor/modules.txt | 3 +- 530 files changed, 68166 insertions(+), 248 deletions(-) create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/containerengine/addon.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/containerengine/addon_configuration.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/containerengine/addon_error.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/containerengine/addon_lifecycle_state.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/containerengine/addon_option_summary.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/containerengine/addon_summary.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/containerengine/addon_version_configuration.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/containerengine/addon_versions.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/containerengine/cluster_type.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/containerengine/create_virtual_node_pool_details.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/containerengine/create_virtual_node_pool_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/containerengine/delete_virtual_node_pool_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/containerengine/disable_addon_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/containerengine/get_addon_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/containerengine/get_virtual_node_pool_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/containerengine/get_virtual_node_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/containerengine/initial_virtual_node_label.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/containerengine/install_addon_details.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/containerengine/install_addon_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/containerengine/kubernetes_versions_filters.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/containerengine/list_addon_options_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/containerengine/list_addons_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/containerengine/list_pod_shapes_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/containerengine/list_virtual_node_pools_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/containerengine/list_virtual_nodes_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/containerengine/placement_configuration.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/containerengine/pod_configuration.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/containerengine/pod_shape.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/containerengine/pod_shape_summary.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/containerengine/shape_memory_options.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/containerengine/shape_network_bandwidth_options.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/containerengine/shape_ocpu_options.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/containerengine/taint.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/containerengine/update_addon_details.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/containerengine/update_addon_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/containerengine/update_virtual_node_details.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/containerengine/update_virtual_node_pool_details.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/containerengine/update_virtual_node_pool_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/containerengine/virtual_node.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/containerengine/virtual_node_lifecycle_state.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/containerengine/virtual_node_pool.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/containerengine/virtual_node_pool_lifecycle_state.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/containerengine/virtual_node_pool_summary.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/containerengine/virtual_node_summary.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/containerengine/virtual_node_tags.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/core/amd_milan_bm_gpu_launch_instance_platform_config.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/core/amd_milan_bm_gpu_platform_config.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/core/instance_configuration_amd_milan_bm_gpu_launch_instance_platform_config.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/copy_conflict_resolution.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/copy_object_metadata_summary.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/copy_object_request.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/copy_object_request_summary.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/copy_object_request_summary_collection.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/create_application_detailed_description_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/create_copy_object_request_details.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/create_copy_object_request_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/create_detailed_description_details.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/create_dis_application_detailed_description_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/delete_application_detailed_description_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/delete_copy_object_request_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/delete_dis_application_detailed_description_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/detailed_description.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/get_application_detailed_description_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/get_copy_object_request_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/get_dis_application_detailed_description_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/get_template_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/list_copy_object_requests_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/list_templates_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/template.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/update_application_detailed_description_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/update_copy_object_request_details.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/update_copy_object_request_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/update_detailed_description_details.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/update_dis_application_detailed_description_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/goldengate/cancel_snooze_deployment_upgrade_details.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/goldengate/cancel_snooze_deployment_upgrade_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/goldengate/cancel_snooze_deployment_upgrade_type.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/goldengate/create_maintenance_window_details.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/goldengate/day.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/goldengate/default_cancel_snooze_deployment_upgrade_details.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/goldengate/default_rollback_deployment_upgrade_details.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/goldengate/default_snooze_deployment_upgrade_details.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/goldengate/default_upgrade_deployment_upgrade_details.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/goldengate/deployment_version_collection.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/goldengate/deployment_version_summary.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/goldengate/list_deployment_versions_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/goldengate/maintenance_action_type.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/goldengate/maintenance_window.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/goldengate/release_type.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/goldengate/rollback_deployment_upgrade_details.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/goldengate/rollback_deployment_upgrade_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/goldengate/rollback_deployment_upgrade_type.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/goldengate/snooze_deployment_upgrade_details.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/goldengate/snooze_deployment_upgrade_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/goldengate/snooze_deployment_upgrade_type.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/goldengate/update_maintenance_window_details.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/goldengate/upgrade_deployment_specific_release_details.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/goldengate/upgrade_deployment_upgrade_details.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/goldengate/upgrade_deployment_upgrade_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/goldengate/upgrade_deployment_upgrade_type.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/addresses.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/api_key.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/api_key_search_request.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/api_key_user.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/api_keys.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/attribute_sets.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/auth_token.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/auth_token_search_request.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/auth_token_user.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/auth_tokens.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factor_setting.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factor_settings.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factor_settings_bypass_code_settings.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factor_settings_client_app_settings.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factor_settings_compliance_policy.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factor_settings_duo_security_settings.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factor_settings_email_settings.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factor_settings_endpoint_restrictions.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factor_settings_identity_store_settings.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factor_settings_notification_settings.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factor_settings_search_request.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factor_settings_third_party_factor.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factor_settings_totp_settings.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factors_remover.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factors_remover_user.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_api_key_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_auth_token_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_authentication_factors_remover_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_customer_secret_key_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_dynamic_resource_group_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_group_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_identity_provider_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_me_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_my_api_key_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_my_auth_token_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_my_authentication_factor_initiator_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_my_authentication_factor_validator_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_my_authentication_factors_remover_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_my_customer_secret_key_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_my_o_auth2_client_credential_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_my_smtp_credential_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_my_support_account_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_my_user_db_credential_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_o_auth2_client_credential_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_password_policy_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_smtp_credential_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_user_db_credential_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_user_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/customer_secret_key.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/customer_secret_key_search_request.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/customer_secret_key_user.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/customer_secret_keys.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/defined_tags.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_api_key_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_auth_token_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_customer_secret_key_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_dynamic_resource_group_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_group_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_identity_provider_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_my_api_key_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_my_auth_token_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_my_customer_secret_key_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_my_device_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_my_o_auth2_client_credential_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_my_smtp_credential_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_my_support_account_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_my_trusted_user_agent_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_my_user_db_credential_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_o_auth2_client_credential_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_password_policy_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_smtp_credential_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_user_db_credential_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_user_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/dynamic_resource_group.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/dynamic_resource_group_dynamic_group_app_roles.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/dynamic_resource_group_grants.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/dynamic_resource_group_search_request.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/dynamic_resource_groups.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_adaptive_user.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_capabilities_user.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_db_credentials_user.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_db_user_user.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_dbcs_group.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_dynamic_group.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_enterprise20_user.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_fido_authentication_factor_settings.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_group_group.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_kerberos_user_user.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_me_user.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_messages_error.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_mfa_user.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_oci_tags.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_password_state_user.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_passwordless_user.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_posix_group.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_posix_user.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_requestable_group.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_security_questions_user.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_self_change_user.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_self_registration_user.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_sff_user.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_social_account_user.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_social_identity_provider.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_terms_of_use_user.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_third_party_authentication_factor_settings.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_user_credentials_user.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_user_state_user.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_user_user.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_x509_identity_provider.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/freeform_tags.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_api_key_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_auth_token_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_authentication_factor_setting_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_customer_secret_key_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_dynamic_resource_group_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_group_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_identity_provider_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_kmsi_setting_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_me_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_my_api_key_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_my_auth_token_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_my_customer_secret_key_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_my_device_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_my_o_auth2_client_credential_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_my_smtp_credential_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_my_support_account_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_my_trusted_user_agent_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_my_user_db_credential_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_o_auth2_client_credential_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_password_policy_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_smtp_credential_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_user_db_credential_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_user_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/group.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/group_ext_app_roles.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/group_ext_domain_level_schema_names.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/group_ext_grants.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/group_ext_instance_level_schema_names.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/group_ext_owners.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/group_ext_password_policy.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/group_ext_synced_from_app.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/group_members.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/group_search_request.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/groups.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/idcs_created_by.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/idcs_last_modified_by.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/idcs_prevented_operations.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/identity_provider.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/identity_provider_correlation_policy.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/identity_provider_jit_user_prov_assigned_groups.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/identity_provider_jit_user_prov_attributes.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/identity_provider_jit_user_prov_group_mappings.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/identity_provider_search_request.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/identity_providers.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/identitydomains_client.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/kmsi_setting.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/kmsi_settings.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/kmsi_settings_search_request.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_api_keys_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_auth_tokens_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_authentication_factor_settings_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_customer_secret_keys_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_dynamic_resource_groups_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_groups_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_identity_providers_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_kmsi_settings_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_my_api_keys_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_my_auth_tokens_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_my_customer_secret_keys_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_my_devices_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_my_groups_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_my_o_auth2_client_credentials_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_my_smtp_credentials_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_my_support_accounts_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_my_trusted_user_agents_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_my_user_db_credentials_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_o_auth2_client_credentials_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_password_policies_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_smtp_credentials_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_user_db_credentials_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_users_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/me.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/me_emails.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/me_entitlements.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/me_groups.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/me_ims.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/me_name.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/me_password_changer.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/me_phone_numbers.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/me_photos.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/me_roles.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/me_x509_certificates.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/meta.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_api_key.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_api_key_user.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_api_keys.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_auth_token.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_auth_token_user.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_auth_tokens.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_authentication_factor_initiator.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_authentication_factor_initiator_additional_attributes.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_authentication_factor_initiator_third_party_factor.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_authentication_factor_validator.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_authentication_factor_validator_additional_attributes.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_authentication_factor_validator_security_questions.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_authentication_factor_validator_third_party_factor.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_authentication_factors_remover.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_authentication_factors_remover_user.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_customer_secret_key.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_customer_secret_key_user.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_customer_secret_keys.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_device.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_device_additional_attributes.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_device_authentication_factors.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_device_non_compliances.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_device_push_notification_target.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_device_third_party_factor.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_device_user.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_devices.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_group.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_group_members.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_group_search_request.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_groups.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_o_auth2_client_credential.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_o_auth2_client_credential_scopes.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_o_auth2_client_credential_user.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_o_auth2_client_credentials.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_smtp_credential.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_smtp_credential_user.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_smtp_credentials.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_support_account.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_support_account_user.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_support_accounts.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_trusted_user_agent.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_trusted_user_agent_trusted_factors.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_trusted_user_agent_user.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_trusted_user_agents.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_user_db_credential.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_user_db_credentials.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_user_db_credentials_user.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/o_auth2_client_credential.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/o_auth2_client_credential_scopes.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/o_auth2_client_credential_search_request.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/o_auth2_client_credential_user.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/o_auth2_client_credentials.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/operations.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/password_policies.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/password_policy.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/password_policy_configured_password_policy_rules.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/password_policy_groups.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/password_policy_search_request.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_api_key_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_auth_token_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_customer_secret_key_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_dynamic_resource_group_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_group_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_identity_provider_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_kmsi_setting_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_me_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_my_api_key_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_my_auth_token_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_my_customer_secret_key_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_my_device_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_my_o_auth2_client_credential_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_my_smtp_credential_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_o_auth2_client_credential_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_op.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_password_policy_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_smtp_credential_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_user_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/put_authentication_factor_setting_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/put_dynamic_resource_group_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/put_group_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/put_identity_provider_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/put_kmsi_setting_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/put_me_password_changer_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/put_me_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/put_password_policy_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/put_user_capabilities_changer_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/put_user_password_changer_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/put_user_password_resetter_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/put_user_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/put_user_status_changer_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_api_keys_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_auth_tokens_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_authentication_factor_settings_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_customer_secret_keys_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_dynamic_resource_groups_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_groups_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_identity_providers_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_kmsi_settings_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_my_groups_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_o_auth2_client_credentials_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_password_policies_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_smtp_credentials_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_user_db_credentials_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_users_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/smtp_credential.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/smtp_credential_search_request.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/smtp_credential_user.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/smtp_credentials.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/sort_order.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/tags.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_capabilities_changer.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_db_credential.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_db_credentials.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_db_credentials_search_request.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_db_credentials_user.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_emails.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_entitlements.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_accounts.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_api_keys.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_app_roles.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_applicable_authentication_target_app.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_applicable_password_policy.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_auth_tokens.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_bypass_codes.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_customer_secret_keys.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_db_credentials.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_delegated_authentication_target_app.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_devices.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_factor_identifier.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_grants.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_idcs_app_roles_limited_to_groups.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_locked.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_manager.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_o_auth2_client_credentials.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_password_verifiers.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_preferred_device.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_realm_users.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_recovery_locked.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_risk_scores.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_sec_questions.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_self_registration_profile.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_smtp_credentials.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_social_accounts.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_support_accounts.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_synced_from_app.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_terms_of_use_consents.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_trusted_user_agents.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_user_token.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_groups.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ims.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_name.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_password_changer.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_password_resetter.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_password_resetter_user_token.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_phone_numbers.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_photos.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_roles.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_search_request.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_status_changer.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_x509_certificates.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/users.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/opsi/host_filesystem_configuration.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/opsi/host_filesystem_usage.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/opsi/host_network_statistics.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/opsi/host_storage_statistics.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/opsi/network_usage_trend.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/opsi/network_usage_trend_aggregation.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/opsi/storage_usage_trend.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/opsi/storage_usage_trend_aggregation.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_network_usage_trend_aggregation_collection.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_network_usage_trend_request_response.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_storage_usage_trend_aggregation_collection.go create mode 100644 vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_storage_usage_trend_request_response.go diff --git a/go.mod b/go.mod index 667a665bda4..0911a62de40 100644 --- a/go.mod +++ b/go.mod @@ -76,6 +76,6 @@ require ( ) // Uncomment this line to get OCI Go SDK from local source instead of github -//replace github.com/oracle/oci-go-sdk => ../../oracle/oci-go-sdk +replace github.com/oracle/oci-go-sdk/v65 v65.32.0 => ./vendor/github.com/oracle/oci-go-sdk go 1.18 diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/addon.go b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/addon.go new file mode 100644 index 00000000000..3eee2227853 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/addon.go @@ -0,0 +1,62 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Container Engine for Kubernetes API +// +// API for the Container Engine for Kubernetes service. Use this API to build, deploy, +// and manage cloud-native applications. For more information, see +// Overview of Container Engine for Kubernetes (https://docs.cloud.oracle.com/iaas/Content/ContEng/Concepts/contengoverview.htm). +// + +package containerengine + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// Addon The properties that define an addon. +type Addon struct { + + // The name of the addon. + Name *string `mandatory:"true" json:"name"` + + // The state of the addon. + LifecycleState AddonLifecycleStateEnum `mandatory:"true" json:"lifecycleState"` + + // selected addon version, or null indicates autoUpdate + Version *string `mandatory:"false" json:"version"` + + // current installed version of the addon + CurrentInstalledVersion *string `mandatory:"false" json:"currentInstalledVersion"` + + // The time the cluster was created. + TimeCreated *common.SDKTime `mandatory:"false" json:"timeCreated"` + + // Addon configuration details. + Configurations []AddonConfiguration `mandatory:"false" json:"configurations"` + + // The error info of the addon. + AddonError *AddonError `mandatory:"false" json:"addonError"` +} + +func (m Addon) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m Addon) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingAddonLifecycleStateEnum(string(m.LifecycleState)); !ok && m.LifecycleState != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for LifecycleState: %s. Supported values are: %s.", m.LifecycleState, strings.Join(GetAddonLifecycleStateEnumStringValues(), ","))) + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/addon_configuration.go b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/addon_configuration.go new file mode 100644 index 00000000000..4616a667d4e --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/addon_configuration.go @@ -0,0 +1,44 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Container Engine for Kubernetes API +// +// API for the Container Engine for Kubernetes service. Use this API to build, deploy, +// and manage cloud-native applications. For more information, see +// Overview of Container Engine for Kubernetes (https://docs.cloud.oracle.com/iaas/Content/ContEng/Concepts/contengoverview.htm). +// + +package containerengine + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// AddonConfiguration Defines the configuration of available addons for a cluster +type AddonConfiguration struct { + + // configuration key name + Key *string `mandatory:"false" json:"key"` + + // configuration value name + Value *string `mandatory:"false" json:"value"` +} + +func (m AddonConfiguration) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m AddonConfiguration) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/addon_error.go b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/addon_error.go new file mode 100644 index 00000000000..9e09eac8240 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/addon_error.go @@ -0,0 +1,47 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Container Engine for Kubernetes API +// +// API for the Container Engine for Kubernetes service. Use this API to build, deploy, +// and manage cloud-native applications. For more information, see +// Overview of Container Engine for Kubernetes (https://docs.cloud.oracle.com/iaas/Content/ContEng/Concepts/contengoverview.htm). +// + +package containerengine + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// AddonError The error info of the addon. +type AddonError struct { + + // A short error code that defines the upstream error, meant for programmatic parsing. See API Errors (https://docs.cloud.oracle.com/Content/API/References/apierrors.htm). + Code *string `mandatory:"false" json:"code"` + + // A human-readable error string of the upstream error. + Message *string `mandatory:"false" json:"message"` + + // The status of the HTTP response encountered in the upstream error. + Status *string `mandatory:"false" json:"status"` +} + +func (m AddonError) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m AddonError) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/addon_lifecycle_state.go b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/addon_lifecycle_state.go new file mode 100644 index 00000000000..057382a2dde --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/addon_lifecycle_state.go @@ -0,0 +1,78 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Container Engine for Kubernetes API +// +// API for the Container Engine for Kubernetes service. Use this API to build, deploy, +// and manage cloud-native applications. For more information, see +// Overview of Container Engine for Kubernetes (https://docs.cloud.oracle.com/iaas/Content/ContEng/Concepts/contengoverview.htm). +// + +package containerengine + +import ( + "strings" +) + +// AddonLifecycleStateEnum Enum with underlying type: string +type AddonLifecycleStateEnum string + +// Set of constants representing the allowable values for AddonLifecycleStateEnum +const ( + AddonLifecycleStateCreating AddonLifecycleStateEnum = "CREATING" + AddonLifecycleStateActive AddonLifecycleStateEnum = "ACTIVE" + AddonLifecycleStateDeleting AddonLifecycleStateEnum = "DELETING" + AddonLifecycleStateDeleted AddonLifecycleStateEnum = "DELETED" + AddonLifecycleStateUpdating AddonLifecycleStateEnum = "UPDATING" + AddonLifecycleStateNeedsAttention AddonLifecycleStateEnum = "NEEDS_ATTENTION" + AddonLifecycleStateFailed AddonLifecycleStateEnum = "FAILED" +) + +var mappingAddonLifecycleStateEnum = map[string]AddonLifecycleStateEnum{ + "CREATING": AddonLifecycleStateCreating, + "ACTIVE": AddonLifecycleStateActive, + "DELETING": AddonLifecycleStateDeleting, + "DELETED": AddonLifecycleStateDeleted, + "UPDATING": AddonLifecycleStateUpdating, + "NEEDS_ATTENTION": AddonLifecycleStateNeedsAttention, + "FAILED": AddonLifecycleStateFailed, +} + +var mappingAddonLifecycleStateEnumLowerCase = map[string]AddonLifecycleStateEnum{ + "creating": AddonLifecycleStateCreating, + "active": AddonLifecycleStateActive, + "deleting": AddonLifecycleStateDeleting, + "deleted": AddonLifecycleStateDeleted, + "updating": AddonLifecycleStateUpdating, + "needs_attention": AddonLifecycleStateNeedsAttention, + "failed": AddonLifecycleStateFailed, +} + +// GetAddonLifecycleStateEnumValues Enumerates the set of values for AddonLifecycleStateEnum +func GetAddonLifecycleStateEnumValues() []AddonLifecycleStateEnum { + values := make([]AddonLifecycleStateEnum, 0) + for _, v := range mappingAddonLifecycleStateEnum { + values = append(values, v) + } + return values +} + +// GetAddonLifecycleStateEnumStringValues Enumerates the set of values in String for AddonLifecycleStateEnum +func GetAddonLifecycleStateEnumStringValues() []string { + return []string{ + "CREATING", + "ACTIVE", + "DELETING", + "DELETED", + "UPDATING", + "NEEDS_ATTENTION", + "FAILED", + } +} + +// GetMappingAddonLifecycleStateEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingAddonLifecycleStateEnum(val string) (AddonLifecycleStateEnum, bool) { + enum, ok := mappingAddonLifecycleStateEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/addon_option_summary.go b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/addon_option_summary.go new file mode 100644 index 00000000000..3ef484e45bc --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/addon_option_summary.go @@ -0,0 +1,121 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Container Engine for Kubernetes API +// +// API for the Container Engine for Kubernetes service. Use this API to build, deploy, +// and manage cloud-native applications. For more information, see +// Overview of Container Engine for Kubernetes (https://docs.cloud.oracle.com/iaas/Content/ContEng/Concepts/contengoverview.htm). +// + +package containerengine + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// AddonOptionSummary The properties that define addon summary. +type AddonOptionSummary struct { + + // Name of the addon and it would be unique. + Name *string `mandatory:"true" json:"name"` + + // The life cycle state of the addon. + LifecycleState AddonOptionSummaryLifecycleStateEnum `mandatory:"true" json:"lifecycleState"` + + // Is it an essential addon for cluster operation or not. + IsEssential *bool `mandatory:"true" json:"isEssential"` + + // The resources this work request affects. + Versions []AddonVersions `mandatory:"true" json:"versions"` + + // Addon definition schema version to validate addon. + AddonSchemaVersion *string `mandatory:"false" json:"addonSchemaVersion"` + + // Addon group info, a namespace concept that groups addons with similar functionalities. + AddonGroup *string `mandatory:"false" json:"addonGroup"` + + // Description on the addon. + Description *string `mandatory:"false" json:"description"` + + // 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/Content/General/Concepts/resourcetags.htm). + // Example: `{"Department": "Finance"}` + FreeformTags map[string]string `mandatory:"false" json:"freeformTags"` + + // 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/Content/General/Concepts/resourcetags.htm). + // Example: `{"Operations": {"CostCenter": "42"}}` + DefinedTags map[string]map[string]interface{} `mandatory:"false" json:"definedTags"` + + // Usage of system tag keys. These predefined keys are scoped to namespaces. + // Example: `{"orcl-cloud": {"free-tier-retained": "true"}}` + SystemTags map[string]map[string]interface{} `mandatory:"false" json:"systemTags"` + + // The time the work request was created. + TimeCreated *common.SDKTime `mandatory:"false" json:"timeCreated"` +} + +func (m AddonOptionSummary) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m AddonOptionSummary) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingAddonOptionSummaryLifecycleStateEnum(string(m.LifecycleState)); !ok && m.LifecycleState != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for LifecycleState: %s. Supported values are: %s.", m.LifecycleState, strings.Join(GetAddonOptionSummaryLifecycleStateEnumStringValues(), ","))) + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// AddonOptionSummaryLifecycleStateEnum Enum with underlying type: string +type AddonOptionSummaryLifecycleStateEnum string + +// Set of constants representing the allowable values for AddonOptionSummaryLifecycleStateEnum +const ( + AddonOptionSummaryLifecycleStateActive AddonOptionSummaryLifecycleStateEnum = "ACTIVE" + AddonOptionSummaryLifecycleStateInactive AddonOptionSummaryLifecycleStateEnum = "INACTIVE" +) + +var mappingAddonOptionSummaryLifecycleStateEnum = map[string]AddonOptionSummaryLifecycleStateEnum{ + "ACTIVE": AddonOptionSummaryLifecycleStateActive, + "INACTIVE": AddonOptionSummaryLifecycleStateInactive, +} + +var mappingAddonOptionSummaryLifecycleStateEnumLowerCase = map[string]AddonOptionSummaryLifecycleStateEnum{ + "active": AddonOptionSummaryLifecycleStateActive, + "inactive": AddonOptionSummaryLifecycleStateInactive, +} + +// GetAddonOptionSummaryLifecycleStateEnumValues Enumerates the set of values for AddonOptionSummaryLifecycleStateEnum +func GetAddonOptionSummaryLifecycleStateEnumValues() []AddonOptionSummaryLifecycleStateEnum { + values := make([]AddonOptionSummaryLifecycleStateEnum, 0) + for _, v := range mappingAddonOptionSummaryLifecycleStateEnum { + values = append(values, v) + } + return values +} + +// GetAddonOptionSummaryLifecycleStateEnumStringValues Enumerates the set of values in String for AddonOptionSummaryLifecycleStateEnum +func GetAddonOptionSummaryLifecycleStateEnumStringValues() []string { + return []string{ + "ACTIVE", + "INACTIVE", + } +} + +// GetMappingAddonOptionSummaryLifecycleStateEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingAddonOptionSummaryLifecycleStateEnum(val string) (AddonOptionSummaryLifecycleStateEnum, bool) { + enum, ok := mappingAddonOptionSummaryLifecycleStateEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/addon_summary.go b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/addon_summary.go new file mode 100644 index 00000000000..ed2446a0b34 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/addon_summary.go @@ -0,0 +1,59 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Container Engine for Kubernetes API +// +// API for the Container Engine for Kubernetes service. Use this API to build, deploy, +// and manage cloud-native applications. For more information, see +// Overview of Container Engine for Kubernetes (https://docs.cloud.oracle.com/iaas/Content/ContEng/Concepts/contengoverview.htm). +// + +package containerengine + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// AddonSummary The properties that define an addon summary. +type AddonSummary struct { + + // The name of the addon. + Name *string `mandatory:"true" json:"name"` + + // The state of the addon. + LifecycleState AddonLifecycleStateEnum `mandatory:"true" json:"lifecycleState"` + + // selected addon version, or null indicates autoUpdate + Version *string `mandatory:"false" json:"version"` + + // current installed version of the addon + CurrentInstalledVersion *string `mandatory:"false" json:"currentInstalledVersion"` + + // The time the cluster was created. + TimeCreated *common.SDKTime `mandatory:"false" json:"timeCreated"` + + // The error info of the addon. + AddonError *AddonError `mandatory:"false" json:"addonError"` +} + +func (m AddonSummary) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m AddonSummary) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingAddonLifecycleStateEnum(string(m.LifecycleState)); !ok && m.LifecycleState != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for LifecycleState: %s. Supported values are: %s.", m.LifecycleState, strings.Join(GetAddonLifecycleStateEnumStringValues(), ","))) + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/addon_version_configuration.go b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/addon_version_configuration.go new file mode 100644 index 00000000000..4d3807069ee --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/addon_version_configuration.go @@ -0,0 +1,53 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Container Engine for Kubernetes API +// +// API for the Container Engine for Kubernetes service. Use this API to build, deploy, +// and manage cloud-native applications. For more information, see +// Overview of Container Engine for Kubernetes (https://docs.cloud.oracle.com/iaas/Content/ContEng/Concepts/contengoverview.htm). +// + +package containerengine + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// AddonVersionConfiguration Addon version configuration details. +type AddonVersionConfiguration struct { + + // If the the configuration is required or not. + IsRequired *bool `mandatory:"false" json:"isRequired"` + + // Addon configuration key + Key *string `mandatory:"false" json:"key"` + + // Addon configuration value + Value *string `mandatory:"false" json:"value"` + + // Display name of addon version. + DisplayName *string `mandatory:"false" json:"displayName"` + + // Information about the addon version configuration. + Description *string `mandatory:"false" json:"description"` +} + +func (m AddonVersionConfiguration) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m AddonVersionConfiguration) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/addon_versions.go b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/addon_versions.go new file mode 100644 index 00000000000..da0f96c7103 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/addon_versions.go @@ -0,0 +1,106 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Container Engine for Kubernetes API +// +// API for the Container Engine for Kubernetes service. Use this API to build, deploy, +// and manage cloud-native applications. For more information, see +// Overview of Container Engine for Kubernetes (https://docs.cloud.oracle.com/iaas/Content/ContEng/Concepts/contengoverview.htm). +// + +package containerengine + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// AddonVersions The properties that define a work request resource. +type AddonVersions struct { + + // Current state of the addon, only active will be visible to customer, visibility of versions in other status will be filtered based on limits property. + Status AddonVersionsStatusEnum `mandatory:"false" json:"status,omitempty"` + + // Version number, need be comparable within an addon. + VersionNumber *string `mandatory:"false" json:"versionNumber"` + + // Information about the addon version. + Description *string `mandatory:"false" json:"description"` + + // The range of kubernetes versions an addon can be configured. + KubernetesVersionFilters *KubernetesVersionsFilters `mandatory:"false" json:"kubernetesVersionFilters"` + + // Addon version configuration details. + Configurations []AddonVersionConfiguration `mandatory:"false" json:"configurations"` +} + +func (m AddonVersions) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m AddonVersions) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if _, ok := GetMappingAddonVersionsStatusEnum(string(m.Status)); !ok && m.Status != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Status: %s. Supported values are: %s.", m.Status, strings.Join(GetAddonVersionsStatusEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// AddonVersionsStatusEnum Enum with underlying type: string +type AddonVersionsStatusEnum string + +// Set of constants representing the allowable values for AddonVersionsStatusEnum +const ( + AddonVersionsStatusActive AddonVersionsStatusEnum = "ACTIVE" + AddonVersionsStatusDeprecated AddonVersionsStatusEnum = "DEPRECATED" + AddonVersionsStatusPreview AddonVersionsStatusEnum = "PREVIEW" + AddonVersionsStatusRecalled AddonVersionsStatusEnum = "RECALLED" +) + +var mappingAddonVersionsStatusEnum = map[string]AddonVersionsStatusEnum{ + "ACTIVE": AddonVersionsStatusActive, + "DEPRECATED": AddonVersionsStatusDeprecated, + "PREVIEW": AddonVersionsStatusPreview, + "RECALLED": AddonVersionsStatusRecalled, +} + +var mappingAddonVersionsStatusEnumLowerCase = map[string]AddonVersionsStatusEnum{ + "active": AddonVersionsStatusActive, + "deprecated": AddonVersionsStatusDeprecated, + "preview": AddonVersionsStatusPreview, + "recalled": AddonVersionsStatusRecalled, +} + +// GetAddonVersionsStatusEnumValues Enumerates the set of values for AddonVersionsStatusEnum +func GetAddonVersionsStatusEnumValues() []AddonVersionsStatusEnum { + values := make([]AddonVersionsStatusEnum, 0) + for _, v := range mappingAddonVersionsStatusEnum { + values = append(values, v) + } + return values +} + +// GetAddonVersionsStatusEnumStringValues Enumerates the set of values in String for AddonVersionsStatusEnum +func GetAddonVersionsStatusEnumStringValues() []string { + return []string{ + "ACTIVE", + "DEPRECATED", + "PREVIEW", + "RECALLED", + } +} + +// GetMappingAddonVersionsStatusEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingAddonVersionsStatusEnum(val string) (AddonVersionsStatusEnum, bool) { + enum, ok := mappingAddonVersionsStatusEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/cluster.go b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/cluster.go index 08d8143e228..fd88409158d 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/cluster.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/cluster.go @@ -79,6 +79,9 @@ type Cluster struct { // Available CNIs and network options for existing and new node pools of the cluster ClusterPodNetworkOptions []ClusterPodNetworkOptionDetails `mandatory:"false" json:"clusterPodNetworkOptions"` + + // Type of cluster + Type ClusterTypeEnum `mandatory:"false" json:"type,omitempty"` } func (m Cluster) String() string { @@ -94,6 +97,9 @@ func (m Cluster) ValidateEnumValue() (bool, error) { if _, ok := GetMappingClusterLifecycleStateEnum(string(m.LifecycleState)); !ok && m.LifecycleState != "" { errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for LifecycleState: %s. Supported values are: %s.", m.LifecycleState, strings.Join(GetClusterLifecycleStateEnumStringValues(), ","))) } + if _, ok := GetMappingClusterTypeEnum(string(m.Type)); !ok && m.Type != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Type: %s. Supported values are: %s.", m.Type, strings.Join(GetClusterTypeEnumStringValues(), ","))) + } if len(errMessage) > 0 { return true, fmt.Errorf(strings.Join(errMessage, "\n")) } @@ -121,6 +127,7 @@ func (m *Cluster) UnmarshalJSON(data []byte) (e error) { AvailableKubernetesUpgrades []string `json:"availableKubernetesUpgrades"` ImagePolicyConfig *ImagePolicyConfig `json:"imagePolicyConfig"` ClusterPodNetworkOptions []clusterpodnetworkoptiondetails `json:"clusterPodNetworkOptions"` + Type ClusterTypeEnum `json:"type"` }{} e = json.Unmarshal(data, &model) @@ -178,5 +185,7 @@ func (m *Cluster) UnmarshalJSON(data []byte) (e error) { } } + m.Type = model.Type + return } diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/cluster_summary.go b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/cluster_summary.go index 01d843383c6..8ea05d3377b 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/cluster_summary.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/cluster_summary.go @@ -76,6 +76,9 @@ type ClusterSummary struct { // Available CNIs and network options for existing and new node pools of the cluster ClusterPodNetworkOptions []ClusterPodNetworkOptionDetails `mandatory:"false" json:"clusterPodNetworkOptions"` + + // Type of cluster + Type ClusterTypeEnum `mandatory:"false" json:"type,omitempty"` } func (m ClusterSummary) String() string { @@ -91,6 +94,9 @@ func (m ClusterSummary) ValidateEnumValue() (bool, error) { if _, ok := GetMappingClusterLifecycleStateEnum(string(m.LifecycleState)); !ok && m.LifecycleState != "" { errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for LifecycleState: %s. Supported values are: %s.", m.LifecycleState, strings.Join(GetClusterLifecycleStateEnumStringValues(), ","))) } + if _, ok := GetMappingClusterTypeEnum(string(m.Type)); !ok && m.Type != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Type: %s. Supported values are: %s.", m.Type, strings.Join(GetClusterTypeEnumStringValues(), ","))) + } if len(errMessage) > 0 { return true, fmt.Errorf(strings.Join(errMessage, "\n")) } @@ -117,6 +123,7 @@ func (m *ClusterSummary) UnmarshalJSON(data []byte) (e error) { AvailableKubernetesUpgrades []string `json:"availableKubernetesUpgrades"` ImagePolicyConfig *ImagePolicyConfig `json:"imagePolicyConfig"` ClusterPodNetworkOptions []clusterpodnetworkoptiondetails `json:"clusterPodNetworkOptions"` + Type ClusterTypeEnum `json:"type"` }{} e = json.Unmarshal(data, &model) @@ -172,6 +179,8 @@ func (m *ClusterSummary) UnmarshalJSON(data []byte) (e error) { } } + m.Type = model.Type + return } diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/cluster_type.go b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/cluster_type.go new file mode 100644 index 00000000000..58c6018d7cf --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/cluster_type.go @@ -0,0 +1,58 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Container Engine for Kubernetes API +// +// API for the Container Engine for Kubernetes service. Use this API to build, deploy, +// and manage cloud-native applications. For more information, see +// Overview of Container Engine for Kubernetes (https://docs.cloud.oracle.com/iaas/Content/ContEng/Concepts/contengoverview.htm). +// + +package containerengine + +import ( + "strings" +) + +// ClusterTypeEnum Enum with underlying type: string +type ClusterTypeEnum string + +// Set of constants representing the allowable values for ClusterTypeEnum +const ( + ClusterTypeBasicCluster ClusterTypeEnum = "BASIC_CLUSTER" + ClusterTypeEnhancedCluster ClusterTypeEnum = "ENHANCED_CLUSTER" +) + +var mappingClusterTypeEnum = map[string]ClusterTypeEnum{ + "BASIC_CLUSTER": ClusterTypeBasicCluster, + "ENHANCED_CLUSTER": ClusterTypeEnhancedCluster, +} + +var mappingClusterTypeEnumLowerCase = map[string]ClusterTypeEnum{ + "basic_cluster": ClusterTypeBasicCluster, + "enhanced_cluster": ClusterTypeEnhancedCluster, +} + +// GetClusterTypeEnumValues Enumerates the set of values for ClusterTypeEnum +func GetClusterTypeEnumValues() []ClusterTypeEnum { + values := make([]ClusterTypeEnum, 0) + for _, v := range mappingClusterTypeEnum { + values = append(values, v) + } + return values +} + +// GetClusterTypeEnumStringValues Enumerates the set of values in String for ClusterTypeEnum +func GetClusterTypeEnumStringValues() []string { + return []string{ + "BASIC_CLUSTER", + "ENHANCED_CLUSTER", + } +} + +// GetMappingClusterTypeEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingClusterTypeEnum(val string) (ClusterTypeEnum, bool) { + enum, ok := mappingClusterTypeEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/containerengine_client.go b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/containerengine_client.go index 8b2ebdbf622..7967df027c7 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/containerengine_client.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/containerengine_client.go @@ -330,6 +330,69 @@ func (client ContainerEngineClient) createNodePool(ctx context.Context, request return response, err } +// CreateVirtualNodePool Create a new virtual node pool. +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/containerengine/CreateVirtualNodePool.go.html to see an example of how to use CreateVirtualNodePool API. +// A default retry strategy applies to this operation CreateVirtualNodePool() +func (client ContainerEngineClient) CreateVirtualNodePool(ctx context.Context, request CreateVirtualNodePoolRequest) (response CreateVirtualNodePoolResponse, err error) { + var ociResponse common.OCIResponse + policy := common.DefaultRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.createVirtualNodePool, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = CreateVirtualNodePoolResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = CreateVirtualNodePoolResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(CreateVirtualNodePoolResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into CreateVirtualNodePoolResponse") + } + return +} + +// createVirtualNodePool implements the OCIOperation interface (enables retrying operations) +func (client ContainerEngineClient) createVirtualNodePool(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPost, "/virtualNodePools", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response CreateVirtualNodePoolResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/containerengine/20180222/VirtualNodePool/CreateVirtualNodePool" + err = common.PostProcessServiceError(err, "ContainerEngine", "CreateVirtualNodePool", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + // DeleteCluster Delete a cluster. // // See also @@ -504,6 +567,64 @@ func (client ContainerEngineClient) deleteNodePool(ctx context.Context, request return response, err } +// DeleteVirtualNodePool Delete a virtual node pool. +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/containerengine/DeleteVirtualNodePool.go.html to see an example of how to use DeleteVirtualNodePool API. +// A default retry strategy applies to this operation DeleteVirtualNodePool() +func (client ContainerEngineClient) DeleteVirtualNodePool(ctx context.Context, request DeleteVirtualNodePoolRequest) (response DeleteVirtualNodePoolResponse, err error) { + var ociResponse common.OCIResponse + policy := common.DefaultRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + ociResponse, err = common.Retry(ctx, request, client.deleteVirtualNodePool, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = DeleteVirtualNodePoolResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = DeleteVirtualNodePoolResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(DeleteVirtualNodePoolResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into DeleteVirtualNodePoolResponse") + } + return +} + +// deleteVirtualNodePool implements the OCIOperation interface (enables retrying operations) +func (client ContainerEngineClient) deleteVirtualNodePool(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodDelete, "/virtualNodePools/{virtualNodePoolId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response DeleteVirtualNodePoolResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/containerengine/20180222/VirtualNodePool/DeleteVirtualNodePool" + err = common.PostProcessServiceError(err, "ContainerEngine", "DeleteVirtualNodePool", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + // DeleteWorkRequest Cancel a work request that has not started. // // See also @@ -534,27 +655,607 @@ func (client ContainerEngineClient) DeleteWorkRequest(ctx context.Context, reque if convertedResponse, ok := ociResponse.(DeleteWorkRequestResponse); ok { response = convertedResponse } else { - err = fmt.Errorf("failed to convert OCIResponse into DeleteWorkRequestResponse") + err = fmt.Errorf("failed to convert OCIResponse into DeleteWorkRequestResponse") + } + return +} + +// deleteWorkRequest implements the OCIOperation interface (enables retrying operations) +func (client ContainerEngineClient) deleteWorkRequest(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodDelete, "/workRequests/{workRequestId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response DeleteWorkRequestResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/containerengine/20180222/WorkRequest/DeleteWorkRequest" + err = common.PostProcessServiceError(err, "ContainerEngine", "DeleteWorkRequest", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// DisableAddon Disable addon for a provisioned cluster. +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/containerengine/DisableAddon.go.html to see an example of how to use DisableAddon API. +// A default retry strategy applies to this operation DisableAddon() +func (client ContainerEngineClient) DisableAddon(ctx context.Context, request DisableAddonRequest) (response DisableAddonResponse, err error) { + var ociResponse common.OCIResponse + policy := common.DefaultRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + ociResponse, err = common.Retry(ctx, request, client.disableAddon, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = DisableAddonResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = DisableAddonResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(DisableAddonResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into DisableAddonResponse") + } + return +} + +// disableAddon implements the OCIOperation interface (enables retrying operations) +func (client ContainerEngineClient) disableAddon(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodDelete, "/clusters/{clusterId}/addons/{addonName}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response DisableAddonResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/containerengine/20180222/Cluster/DisableAddon" + err = common.PostProcessServiceError(err, "ContainerEngine", "DisableAddon", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// GetAddon Get the specified addon for a cluster. +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/containerengine/GetAddon.go.html to see an example of how to use GetAddon API. +// A default retry strategy applies to this operation GetAddon() +func (client ContainerEngineClient) GetAddon(ctx context.Context, request GetAddonRequest) (response GetAddonResponse, err error) { + var ociResponse common.OCIResponse + policy := common.DefaultRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + ociResponse, err = common.Retry(ctx, request, client.getAddon, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = GetAddonResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = GetAddonResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(GetAddonResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into GetAddonResponse") + } + return +} + +// getAddon implements the OCIOperation interface (enables retrying operations) +func (client ContainerEngineClient) getAddon(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/clusters/{clusterId}/addons/{addonName}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response GetAddonResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/containerengine/20180222/Cluster/GetAddon" + err = common.PostProcessServiceError(err, "ContainerEngine", "GetAddon", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// GetCluster Get the details of a cluster. +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/containerengine/GetCluster.go.html to see an example of how to use GetCluster API. +// A default retry strategy applies to this operation GetCluster() +func (client ContainerEngineClient) GetCluster(ctx context.Context, request GetClusterRequest) (response GetClusterResponse, err error) { + var ociResponse common.OCIResponse + policy := common.DefaultRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + ociResponse, err = common.Retry(ctx, request, client.getCluster, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = GetClusterResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = GetClusterResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(GetClusterResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into GetClusterResponse") + } + return +} + +// getCluster implements the OCIOperation interface (enables retrying operations) +func (client ContainerEngineClient) getCluster(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/clusters/{clusterId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response GetClusterResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/containerengine/20180222/Cluster/GetCluster" + err = common.PostProcessServiceError(err, "ContainerEngine", "GetCluster", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// GetClusterMigrateToNativeVcnStatus Get details on a cluster's migration to native VCN. +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/containerengine/GetClusterMigrateToNativeVcnStatus.go.html to see an example of how to use GetClusterMigrateToNativeVcnStatus API. +// A default retry strategy applies to this operation GetClusterMigrateToNativeVcnStatus() +func (client ContainerEngineClient) GetClusterMigrateToNativeVcnStatus(ctx context.Context, request GetClusterMigrateToNativeVcnStatusRequest) (response GetClusterMigrateToNativeVcnStatusResponse, err error) { + var ociResponse common.OCIResponse + policy := common.DefaultRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + ociResponse, err = common.Retry(ctx, request, client.getClusterMigrateToNativeVcnStatus, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = GetClusterMigrateToNativeVcnStatusResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = GetClusterMigrateToNativeVcnStatusResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(GetClusterMigrateToNativeVcnStatusResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into GetClusterMigrateToNativeVcnStatusResponse") + } + return +} + +// getClusterMigrateToNativeVcnStatus implements the OCIOperation interface (enables retrying operations) +func (client ContainerEngineClient) getClusterMigrateToNativeVcnStatus(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/clusters/{clusterId}/migrateToNativeVcnStatus", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response GetClusterMigrateToNativeVcnStatusResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/containerengine/20180222/ClusterMigrateToNativeVcnStatus/GetClusterMigrateToNativeVcnStatus" + err = common.PostProcessServiceError(err, "ContainerEngine", "GetClusterMigrateToNativeVcnStatus", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// GetClusterOptions Get options available for clusters. +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/containerengine/GetClusterOptions.go.html to see an example of how to use GetClusterOptions API. +// A default retry strategy applies to this operation GetClusterOptions() +func (client ContainerEngineClient) GetClusterOptions(ctx context.Context, request GetClusterOptionsRequest) (response GetClusterOptionsResponse, err error) { + var ociResponse common.OCIResponse + policy := common.DefaultRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + ociResponse, err = common.Retry(ctx, request, client.getClusterOptions, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = GetClusterOptionsResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = GetClusterOptionsResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(GetClusterOptionsResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into GetClusterOptionsResponse") + } + return +} + +// getClusterOptions implements the OCIOperation interface (enables retrying operations) +func (client ContainerEngineClient) getClusterOptions(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/clusterOptions/{clusterOptionId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response GetClusterOptionsResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/containerengine/20180222/ClusterOptions/GetClusterOptions" + err = common.PostProcessServiceError(err, "ContainerEngine", "GetClusterOptions", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// GetNodePool Get the details of a node pool. +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/containerengine/GetNodePool.go.html to see an example of how to use GetNodePool API. +// A default retry strategy applies to this operation GetNodePool() +func (client ContainerEngineClient) GetNodePool(ctx context.Context, request GetNodePoolRequest) (response GetNodePoolResponse, err error) { + var ociResponse common.OCIResponse + policy := common.DefaultRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + ociResponse, err = common.Retry(ctx, request, client.getNodePool, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = GetNodePoolResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = GetNodePoolResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(GetNodePoolResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into GetNodePoolResponse") + } + return +} + +// getNodePool implements the OCIOperation interface (enables retrying operations) +func (client ContainerEngineClient) getNodePool(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/nodePools/{nodePoolId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response GetNodePoolResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/containerengine/20180222/NodePool/GetNodePool" + err = common.PostProcessServiceError(err, "ContainerEngine", "GetNodePool", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// GetNodePoolOptions Get options available for node pools. +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/containerengine/GetNodePoolOptions.go.html to see an example of how to use GetNodePoolOptions API. +// A default retry strategy applies to this operation GetNodePoolOptions() +func (client ContainerEngineClient) GetNodePoolOptions(ctx context.Context, request GetNodePoolOptionsRequest) (response GetNodePoolOptionsResponse, err error) { + var ociResponse common.OCIResponse + policy := common.DefaultRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + ociResponse, err = common.Retry(ctx, request, client.getNodePoolOptions, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = GetNodePoolOptionsResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = GetNodePoolOptionsResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(GetNodePoolOptionsResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into GetNodePoolOptionsResponse") + } + return +} + +// getNodePoolOptions implements the OCIOperation interface (enables retrying operations) +func (client ContainerEngineClient) getNodePoolOptions(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/nodePoolOptions/{nodePoolOptionId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response GetNodePoolOptionsResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/containerengine/20180222/NodePoolOptions/GetNodePoolOptions" + err = common.PostProcessServiceError(err, "ContainerEngine", "GetNodePoolOptions", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// GetVirtualNode Get the details of a virtual node. +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/containerengine/GetVirtualNode.go.html to see an example of how to use GetVirtualNode API. +// A default retry strategy applies to this operation GetVirtualNode() +func (client ContainerEngineClient) GetVirtualNode(ctx context.Context, request GetVirtualNodeRequest) (response GetVirtualNodeResponse, err error) { + var ociResponse common.OCIResponse + policy := common.DefaultRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + ociResponse, err = common.Retry(ctx, request, client.getVirtualNode, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = GetVirtualNodeResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = GetVirtualNodeResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(GetVirtualNodeResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into GetVirtualNodeResponse") + } + return +} + +// getVirtualNode implements the OCIOperation interface (enables retrying operations) +func (client ContainerEngineClient) getVirtualNode(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/virtualNodePools/{virtualNodePoolId}/virtualNodes/{virtualNodeId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response GetVirtualNodeResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/containerengine/20180222/VirtualNodePool/GetVirtualNode" + err = common.PostProcessServiceError(err, "ContainerEngine", "GetVirtualNode", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// GetVirtualNodePool Get the details of a virtual node pool. +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/containerengine/GetVirtualNodePool.go.html to see an example of how to use GetVirtualNodePool API. +// A default retry strategy applies to this operation GetVirtualNodePool() +func (client ContainerEngineClient) GetVirtualNodePool(ctx context.Context, request GetVirtualNodePoolRequest) (response GetVirtualNodePoolResponse, err error) { + var ociResponse common.OCIResponse + policy := common.DefaultRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + ociResponse, err = common.Retry(ctx, request, client.getVirtualNodePool, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = GetVirtualNodePoolResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = GetVirtualNodePoolResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(GetVirtualNodePoolResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into GetVirtualNodePoolResponse") + } + return +} + +// getVirtualNodePool implements the OCIOperation interface (enables retrying operations) +func (client ContainerEngineClient) getVirtualNodePool(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/virtualNodePools/{virtualNodePoolId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response GetVirtualNodePoolResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/containerengine/20180222/VirtualNodePool/GetVirtualNodePool" + err = common.PostProcessServiceError(err, "ContainerEngine", "GetVirtualNodePool", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// GetWorkRequest Get the details of a work request. +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/containerengine/GetWorkRequest.go.html to see an example of how to use GetWorkRequest API. +// A default retry strategy applies to this operation GetWorkRequest() +func (client ContainerEngineClient) GetWorkRequest(ctx context.Context, request GetWorkRequestRequest) (response GetWorkRequestResponse, err error) { + var ociResponse common.OCIResponse + policy := common.DefaultRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + ociResponse, err = common.Retry(ctx, request, client.getWorkRequest, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = GetWorkRequestResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = GetWorkRequestResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(GetWorkRequestResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into GetWorkRequestResponse") } return } -// deleteWorkRequest implements the OCIOperation interface (enables retrying operations) -func (client ContainerEngineClient) deleteWorkRequest(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { +// getWorkRequest implements the OCIOperation interface (enables retrying operations) +func (client ContainerEngineClient) getWorkRequest(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { - httpRequest, err := request.HTTPRequest(http.MethodDelete, "/workRequests/{workRequestId}", binaryReqBody, extraHeaders) + httpRequest, err := request.HTTPRequest(http.MethodGet, "/workRequests/{workRequestId}", binaryReqBody, extraHeaders) if err != nil { return nil, err } - var response DeleteWorkRequestResponse + var response GetWorkRequestResponse var httpResponse *http.Response httpResponse, err = client.Call(ctx, &httpRequest) defer common.CloseBodyIfValid(httpResponse) response.RawResponse = httpResponse if err != nil { - apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/containerengine/20180222/WorkRequest/DeleteWorkRequest" - err = common.PostProcessServiceError(err, "ContainerEngine", "DeleteWorkRequest", apiReferenceLink) + apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/containerengine/20180222/WorkRequest/GetWorkRequest" + err = common.PostProcessServiceError(err, "ContainerEngine", "GetWorkRequest", apiReferenceLink) return response, err } @@ -562,13 +1263,13 @@ func (client ContainerEngineClient) deleteWorkRequest(ctx context.Context, reque return response, err } -// GetCluster Get the details of a cluster. +// InstallAddon Install the specified addon for a cluster. // // See also // -// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/containerengine/GetCluster.go.html to see an example of how to use GetCluster API. -// A default retry strategy applies to this operation GetCluster() -func (client ContainerEngineClient) GetCluster(ctx context.Context, request GetClusterRequest) (response GetClusterResponse, err error) { +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/containerengine/InstallAddon.go.html to see an example of how to use InstallAddon API. +// A default retry strategy applies to this operation InstallAddon() +func (client ContainerEngineClient) InstallAddon(ctx context.Context, request InstallAddonRequest) (response InstallAddonResponse, err error) { var ociResponse common.OCIResponse policy := common.DefaultRetryPolicy() if client.RetryPolicy() != nil { @@ -577,42 +1278,47 @@ func (client ContainerEngineClient) GetCluster(ctx context.Context, request GetC if request.RetryPolicy() != nil { policy = *request.RetryPolicy() } - ociResponse, err = common.Retry(ctx, request, client.getCluster, policy) + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.installAddon, policy) if err != nil { if ociResponse != nil { if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { opcRequestId := httpResponse.Header.Get("opc-request-id") - response = GetClusterResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + response = InstallAddonResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} } else { - response = GetClusterResponse{} + response = InstallAddonResponse{} } } return } - if convertedResponse, ok := ociResponse.(GetClusterResponse); ok { + if convertedResponse, ok := ociResponse.(InstallAddonResponse); ok { response = convertedResponse } else { - err = fmt.Errorf("failed to convert OCIResponse into GetClusterResponse") + err = fmt.Errorf("failed to convert OCIResponse into InstallAddonResponse") } return } -// getCluster implements the OCIOperation interface (enables retrying operations) -func (client ContainerEngineClient) getCluster(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { +// installAddon implements the OCIOperation interface (enables retrying operations) +func (client ContainerEngineClient) installAddon(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { - httpRequest, err := request.HTTPRequest(http.MethodGet, "/clusters/{clusterId}", binaryReqBody, extraHeaders) + httpRequest, err := request.HTTPRequest(http.MethodPost, "/clusters/{clusterId}/addons", binaryReqBody, extraHeaders) if err != nil { return nil, err } - var response GetClusterResponse + var response InstallAddonResponse var httpResponse *http.Response httpResponse, err = client.Call(ctx, &httpRequest) defer common.CloseBodyIfValid(httpResponse) response.RawResponse = httpResponse if err != nil { - apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/containerengine/20180222/Cluster/GetCluster" - err = common.PostProcessServiceError(err, "ContainerEngine", "GetCluster", apiReferenceLink) + apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/containerengine/20180222/Cluster/InstallAddon" + err = common.PostProcessServiceError(err, "ContainerEngine", "InstallAddon", apiReferenceLink) return response, err } @@ -620,13 +1326,13 @@ func (client ContainerEngineClient) getCluster(ctx context.Context, request comm return response, err } -// GetClusterMigrateToNativeVcnStatus Get details on a cluster's migration to native VCN. +// ListAddonOptions Get list of supported addons for a specific kubernetes version. // // See also // -// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/containerengine/GetClusterMigrateToNativeVcnStatus.go.html to see an example of how to use GetClusterMigrateToNativeVcnStatus API. -// A default retry strategy applies to this operation GetClusterMigrateToNativeVcnStatus() -func (client ContainerEngineClient) GetClusterMigrateToNativeVcnStatus(ctx context.Context, request GetClusterMigrateToNativeVcnStatusRequest) (response GetClusterMigrateToNativeVcnStatusResponse, err error) { +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/containerengine/ListAddonOptions.go.html to see an example of how to use ListAddonOptions API. +// A default retry strategy applies to this operation ListAddonOptions() +func (client ContainerEngineClient) ListAddonOptions(ctx context.Context, request ListAddonOptionsRequest) (response ListAddonOptionsResponse, err error) { var ociResponse common.OCIResponse policy := common.DefaultRetryPolicy() if client.RetryPolicy() != nil { @@ -635,42 +1341,42 @@ func (client ContainerEngineClient) GetClusterMigrateToNativeVcnStatus(ctx conte if request.RetryPolicy() != nil { policy = *request.RetryPolicy() } - ociResponse, err = common.Retry(ctx, request, client.getClusterMigrateToNativeVcnStatus, policy) + ociResponse, err = common.Retry(ctx, request, client.listAddonOptions, policy) if err != nil { if ociResponse != nil { if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { opcRequestId := httpResponse.Header.Get("opc-request-id") - response = GetClusterMigrateToNativeVcnStatusResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + response = ListAddonOptionsResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} } else { - response = GetClusterMigrateToNativeVcnStatusResponse{} + response = ListAddonOptionsResponse{} } } return } - if convertedResponse, ok := ociResponse.(GetClusterMigrateToNativeVcnStatusResponse); ok { + if convertedResponse, ok := ociResponse.(ListAddonOptionsResponse); ok { response = convertedResponse } else { - err = fmt.Errorf("failed to convert OCIResponse into GetClusterMigrateToNativeVcnStatusResponse") + err = fmt.Errorf("failed to convert OCIResponse into ListAddonOptionsResponse") } return } -// getClusterMigrateToNativeVcnStatus implements the OCIOperation interface (enables retrying operations) -func (client ContainerEngineClient) getClusterMigrateToNativeVcnStatus(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { +// listAddonOptions implements the OCIOperation interface (enables retrying operations) +func (client ContainerEngineClient) listAddonOptions(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { - httpRequest, err := request.HTTPRequest(http.MethodGet, "/clusters/{clusterId}/migrateToNativeVcnStatus", binaryReqBody, extraHeaders) + httpRequest, err := request.HTTPRequest(http.MethodGet, "/addonOptions", binaryReqBody, extraHeaders) if err != nil { return nil, err } - var response GetClusterMigrateToNativeVcnStatusResponse + var response ListAddonOptionsResponse var httpResponse *http.Response httpResponse, err = client.Call(ctx, &httpRequest) defer common.CloseBodyIfValid(httpResponse) response.RawResponse = httpResponse if err != nil { - apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/containerengine/20180222/ClusterMigrateToNativeVcnStatus/GetClusterMigrateToNativeVcnStatus" - err = common.PostProcessServiceError(err, "ContainerEngine", "GetClusterMigrateToNativeVcnStatus", apiReferenceLink) + apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/containerengine/20180222/AddonOptionSummary/ListAddonOptions" + err = common.PostProcessServiceError(err, "ContainerEngine", "ListAddonOptions", apiReferenceLink) return response, err } @@ -678,13 +1384,13 @@ func (client ContainerEngineClient) getClusterMigrateToNativeVcnStatus(ctx conte return response, err } -// GetClusterOptions Get options available for clusters. +// ListAddons List addon for a provisioned cluster. // // See also // -// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/containerengine/GetClusterOptions.go.html to see an example of how to use GetClusterOptions API. -// A default retry strategy applies to this operation GetClusterOptions() -func (client ContainerEngineClient) GetClusterOptions(ctx context.Context, request GetClusterOptionsRequest) (response GetClusterOptionsResponse, err error) { +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/containerengine/ListAddons.go.html to see an example of how to use ListAddons API. +// A default retry strategy applies to this operation ListAddons() +func (client ContainerEngineClient) ListAddons(ctx context.Context, request ListAddonsRequest) (response ListAddonsResponse, err error) { var ociResponse common.OCIResponse policy := common.DefaultRetryPolicy() if client.RetryPolicy() != nil { @@ -693,42 +1399,42 @@ func (client ContainerEngineClient) GetClusterOptions(ctx context.Context, reque if request.RetryPolicy() != nil { policy = *request.RetryPolicy() } - ociResponse, err = common.Retry(ctx, request, client.getClusterOptions, policy) + ociResponse, err = common.Retry(ctx, request, client.listAddons, policy) if err != nil { if ociResponse != nil { if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { opcRequestId := httpResponse.Header.Get("opc-request-id") - response = GetClusterOptionsResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + response = ListAddonsResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} } else { - response = GetClusterOptionsResponse{} + response = ListAddonsResponse{} } } return } - if convertedResponse, ok := ociResponse.(GetClusterOptionsResponse); ok { + if convertedResponse, ok := ociResponse.(ListAddonsResponse); ok { response = convertedResponse } else { - err = fmt.Errorf("failed to convert OCIResponse into GetClusterOptionsResponse") + err = fmt.Errorf("failed to convert OCIResponse into ListAddonsResponse") } return } -// getClusterOptions implements the OCIOperation interface (enables retrying operations) -func (client ContainerEngineClient) getClusterOptions(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { +// listAddons implements the OCIOperation interface (enables retrying operations) +func (client ContainerEngineClient) listAddons(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { - httpRequest, err := request.HTTPRequest(http.MethodGet, "/clusterOptions/{clusterOptionId}", binaryReqBody, extraHeaders) + httpRequest, err := request.HTTPRequest(http.MethodGet, "/clusters/{clusterId}/addons", binaryReqBody, extraHeaders) if err != nil { return nil, err } - var response GetClusterOptionsResponse + var response ListAddonsResponse var httpResponse *http.Response httpResponse, err = client.Call(ctx, &httpRequest) defer common.CloseBodyIfValid(httpResponse) response.RawResponse = httpResponse if err != nil { - apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/containerengine/20180222/ClusterOptions/GetClusterOptions" - err = common.PostProcessServiceError(err, "ContainerEngine", "GetClusterOptions", apiReferenceLink) + apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/containerengine/20180222/Cluster/ListAddons" + err = common.PostProcessServiceError(err, "ContainerEngine", "ListAddons", apiReferenceLink) return response, err } @@ -736,13 +1442,13 @@ func (client ContainerEngineClient) getClusterOptions(ctx context.Context, reque return response, err } -// GetNodePool Get the details of a node pool. +// ListClusters List all the cluster objects in a compartment. // // See also // -// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/containerengine/GetNodePool.go.html to see an example of how to use GetNodePool API. -// A default retry strategy applies to this operation GetNodePool() -func (client ContainerEngineClient) GetNodePool(ctx context.Context, request GetNodePoolRequest) (response GetNodePoolResponse, err error) { +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/containerengine/ListClusters.go.html to see an example of how to use ListClusters API. +// A default retry strategy applies to this operation ListClusters() +func (client ContainerEngineClient) ListClusters(ctx context.Context, request ListClustersRequest) (response ListClustersResponse, err error) { var ociResponse common.OCIResponse policy := common.DefaultRetryPolicy() if client.RetryPolicy() != nil { @@ -751,42 +1457,42 @@ func (client ContainerEngineClient) GetNodePool(ctx context.Context, request Get if request.RetryPolicy() != nil { policy = *request.RetryPolicy() } - ociResponse, err = common.Retry(ctx, request, client.getNodePool, policy) + ociResponse, err = common.Retry(ctx, request, client.listClusters, policy) if err != nil { if ociResponse != nil { if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { opcRequestId := httpResponse.Header.Get("opc-request-id") - response = GetNodePoolResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + response = ListClustersResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} } else { - response = GetNodePoolResponse{} + response = ListClustersResponse{} } } return } - if convertedResponse, ok := ociResponse.(GetNodePoolResponse); ok { + if convertedResponse, ok := ociResponse.(ListClustersResponse); ok { response = convertedResponse } else { - err = fmt.Errorf("failed to convert OCIResponse into GetNodePoolResponse") + err = fmt.Errorf("failed to convert OCIResponse into ListClustersResponse") } return } -// getNodePool implements the OCIOperation interface (enables retrying operations) -func (client ContainerEngineClient) getNodePool(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { +// listClusters implements the OCIOperation interface (enables retrying operations) +func (client ContainerEngineClient) listClusters(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { - httpRequest, err := request.HTTPRequest(http.MethodGet, "/nodePools/{nodePoolId}", binaryReqBody, extraHeaders) + httpRequest, err := request.HTTPRequest(http.MethodGet, "/clusters", binaryReqBody, extraHeaders) if err != nil { return nil, err } - var response GetNodePoolResponse + var response ListClustersResponse var httpResponse *http.Response httpResponse, err = client.Call(ctx, &httpRequest) defer common.CloseBodyIfValid(httpResponse) response.RawResponse = httpResponse if err != nil { - apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/containerengine/20180222/NodePool/GetNodePool" - err = common.PostProcessServiceError(err, "ContainerEngine", "GetNodePool", apiReferenceLink) + apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/containerengine/20180222/ClusterSummary/ListClusters" + err = common.PostProcessServiceError(err, "ContainerEngine", "ListClusters", apiReferenceLink) return response, err } @@ -794,13 +1500,13 @@ func (client ContainerEngineClient) getNodePool(ctx context.Context, request com return response, err } -// GetNodePoolOptions Get options available for node pools. +// ListNodePools List all the node pools in a compartment, and optionally filter by cluster. // // See also // -// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/containerengine/GetNodePoolOptions.go.html to see an example of how to use GetNodePoolOptions API. -// A default retry strategy applies to this operation GetNodePoolOptions() -func (client ContainerEngineClient) GetNodePoolOptions(ctx context.Context, request GetNodePoolOptionsRequest) (response GetNodePoolOptionsResponse, err error) { +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/containerengine/ListNodePools.go.html to see an example of how to use ListNodePools API. +// A default retry strategy applies to this operation ListNodePools() +func (client ContainerEngineClient) ListNodePools(ctx context.Context, request ListNodePoolsRequest) (response ListNodePoolsResponse, err error) { var ociResponse common.OCIResponse policy := common.DefaultRetryPolicy() if client.RetryPolicy() != nil { @@ -809,42 +1515,42 @@ func (client ContainerEngineClient) GetNodePoolOptions(ctx context.Context, requ if request.RetryPolicy() != nil { policy = *request.RetryPolicy() } - ociResponse, err = common.Retry(ctx, request, client.getNodePoolOptions, policy) + ociResponse, err = common.Retry(ctx, request, client.listNodePools, policy) if err != nil { if ociResponse != nil { if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { opcRequestId := httpResponse.Header.Get("opc-request-id") - response = GetNodePoolOptionsResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + response = ListNodePoolsResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} } else { - response = GetNodePoolOptionsResponse{} + response = ListNodePoolsResponse{} } } return } - if convertedResponse, ok := ociResponse.(GetNodePoolOptionsResponse); ok { + if convertedResponse, ok := ociResponse.(ListNodePoolsResponse); ok { response = convertedResponse } else { - err = fmt.Errorf("failed to convert OCIResponse into GetNodePoolOptionsResponse") + err = fmt.Errorf("failed to convert OCIResponse into ListNodePoolsResponse") } return } -// getNodePoolOptions implements the OCIOperation interface (enables retrying operations) -func (client ContainerEngineClient) getNodePoolOptions(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { +// listNodePools implements the OCIOperation interface (enables retrying operations) +func (client ContainerEngineClient) listNodePools(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { - httpRequest, err := request.HTTPRequest(http.MethodGet, "/nodePoolOptions/{nodePoolOptionId}", binaryReqBody, extraHeaders) + httpRequest, err := request.HTTPRequest(http.MethodGet, "/nodePools", binaryReqBody, extraHeaders) if err != nil { return nil, err } - var response GetNodePoolOptionsResponse + var response ListNodePoolsResponse var httpResponse *http.Response httpResponse, err = client.Call(ctx, &httpRequest) defer common.CloseBodyIfValid(httpResponse) response.RawResponse = httpResponse if err != nil { - apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/containerengine/20180222/NodePoolOptions/GetNodePoolOptions" - err = common.PostProcessServiceError(err, "ContainerEngine", "GetNodePoolOptions", apiReferenceLink) + apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/containerengine/20180222/NodePoolSummary/ListNodePools" + err = common.PostProcessServiceError(err, "ContainerEngine", "ListNodePools", apiReferenceLink) return response, err } @@ -852,13 +1558,13 @@ func (client ContainerEngineClient) getNodePoolOptions(ctx context.Context, requ return response, err } -// GetWorkRequest Get the details of a work request. +// ListPodShapes List all the Pod Shapes in a compartment. // // See also // -// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/containerengine/GetWorkRequest.go.html to see an example of how to use GetWorkRequest API. -// A default retry strategy applies to this operation GetWorkRequest() -func (client ContainerEngineClient) GetWorkRequest(ctx context.Context, request GetWorkRequestRequest) (response GetWorkRequestResponse, err error) { +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/containerengine/ListPodShapes.go.html to see an example of how to use ListPodShapes API. +// A default retry strategy applies to this operation ListPodShapes() +func (client ContainerEngineClient) ListPodShapes(ctx context.Context, request ListPodShapesRequest) (response ListPodShapesResponse, err error) { var ociResponse common.OCIResponse policy := common.DefaultRetryPolicy() if client.RetryPolicy() != nil { @@ -867,42 +1573,42 @@ func (client ContainerEngineClient) GetWorkRequest(ctx context.Context, request if request.RetryPolicy() != nil { policy = *request.RetryPolicy() } - ociResponse, err = common.Retry(ctx, request, client.getWorkRequest, policy) + ociResponse, err = common.Retry(ctx, request, client.listPodShapes, policy) if err != nil { if ociResponse != nil { if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { opcRequestId := httpResponse.Header.Get("opc-request-id") - response = GetWorkRequestResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + response = ListPodShapesResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} } else { - response = GetWorkRequestResponse{} + response = ListPodShapesResponse{} } } return } - if convertedResponse, ok := ociResponse.(GetWorkRequestResponse); ok { + if convertedResponse, ok := ociResponse.(ListPodShapesResponse); ok { response = convertedResponse } else { - err = fmt.Errorf("failed to convert OCIResponse into GetWorkRequestResponse") + err = fmt.Errorf("failed to convert OCIResponse into ListPodShapesResponse") } return } -// getWorkRequest implements the OCIOperation interface (enables retrying operations) -func (client ContainerEngineClient) getWorkRequest(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { +// listPodShapes implements the OCIOperation interface (enables retrying operations) +func (client ContainerEngineClient) listPodShapes(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { - httpRequest, err := request.HTTPRequest(http.MethodGet, "/workRequests/{workRequestId}", binaryReqBody, extraHeaders) + httpRequest, err := request.HTTPRequest(http.MethodGet, "/podShapes", binaryReqBody, extraHeaders) if err != nil { return nil, err } - var response GetWorkRequestResponse + var response ListPodShapesResponse var httpResponse *http.Response httpResponse, err = client.Call(ctx, &httpRequest) defer common.CloseBodyIfValid(httpResponse) response.RawResponse = httpResponse if err != nil { - apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/containerengine/20180222/WorkRequest/GetWorkRequest" - err = common.PostProcessServiceError(err, "ContainerEngine", "GetWorkRequest", apiReferenceLink) + apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/containerengine/20180222/PodShapeSummary/ListPodShapes" + err = common.PostProcessServiceError(err, "ContainerEngine", "ListPodShapes", apiReferenceLink) return response, err } @@ -910,13 +1616,13 @@ func (client ContainerEngineClient) getWorkRequest(ctx context.Context, request return response, err } -// ListClusters List all the cluster objects in a compartment. +// ListVirtualNodePools List all the virtual node pools in a compartment, and optionally filter by cluster. // // See also // -// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/containerengine/ListClusters.go.html to see an example of how to use ListClusters API. -// A default retry strategy applies to this operation ListClusters() -func (client ContainerEngineClient) ListClusters(ctx context.Context, request ListClustersRequest) (response ListClustersResponse, err error) { +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/containerengine/ListVirtualNodePools.go.html to see an example of how to use ListVirtualNodePools API. +// A default retry strategy applies to this operation ListVirtualNodePools() +func (client ContainerEngineClient) ListVirtualNodePools(ctx context.Context, request ListVirtualNodePoolsRequest) (response ListVirtualNodePoolsResponse, err error) { var ociResponse common.OCIResponse policy := common.DefaultRetryPolicy() if client.RetryPolicy() != nil { @@ -925,42 +1631,42 @@ func (client ContainerEngineClient) ListClusters(ctx context.Context, request Li if request.RetryPolicy() != nil { policy = *request.RetryPolicy() } - ociResponse, err = common.Retry(ctx, request, client.listClusters, policy) + ociResponse, err = common.Retry(ctx, request, client.listVirtualNodePools, policy) if err != nil { if ociResponse != nil { if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { opcRequestId := httpResponse.Header.Get("opc-request-id") - response = ListClustersResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + response = ListVirtualNodePoolsResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} } else { - response = ListClustersResponse{} + response = ListVirtualNodePoolsResponse{} } } return } - if convertedResponse, ok := ociResponse.(ListClustersResponse); ok { + if convertedResponse, ok := ociResponse.(ListVirtualNodePoolsResponse); ok { response = convertedResponse } else { - err = fmt.Errorf("failed to convert OCIResponse into ListClustersResponse") + err = fmt.Errorf("failed to convert OCIResponse into ListVirtualNodePoolsResponse") } return } -// listClusters implements the OCIOperation interface (enables retrying operations) -func (client ContainerEngineClient) listClusters(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { +// listVirtualNodePools implements the OCIOperation interface (enables retrying operations) +func (client ContainerEngineClient) listVirtualNodePools(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { - httpRequest, err := request.HTTPRequest(http.MethodGet, "/clusters", binaryReqBody, extraHeaders) + httpRequest, err := request.HTTPRequest(http.MethodGet, "/virtualNodePools", binaryReqBody, extraHeaders) if err != nil { return nil, err } - var response ListClustersResponse + var response ListVirtualNodePoolsResponse var httpResponse *http.Response httpResponse, err = client.Call(ctx, &httpRequest) defer common.CloseBodyIfValid(httpResponse) response.RawResponse = httpResponse if err != nil { - apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/containerengine/20180222/ClusterSummary/ListClusters" - err = common.PostProcessServiceError(err, "ContainerEngine", "ListClusters", apiReferenceLink) + apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/containerengine/20180222/VirtualNodePoolSummary/ListVirtualNodePools" + err = common.PostProcessServiceError(err, "ContainerEngine", "ListVirtualNodePools", apiReferenceLink) return response, err } @@ -968,13 +1674,13 @@ func (client ContainerEngineClient) listClusters(ctx context.Context, request co return response, err } -// ListNodePools List all the node pools in a compartment, and optionally filter by cluster. +// ListVirtualNodes List virtual nodes in a virtual node pool. // // See also // -// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/containerengine/ListNodePools.go.html to see an example of how to use ListNodePools API. -// A default retry strategy applies to this operation ListNodePools() -func (client ContainerEngineClient) ListNodePools(ctx context.Context, request ListNodePoolsRequest) (response ListNodePoolsResponse, err error) { +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/containerengine/ListVirtualNodes.go.html to see an example of how to use ListVirtualNodes API. +// A default retry strategy applies to this operation ListVirtualNodes() +func (client ContainerEngineClient) ListVirtualNodes(ctx context.Context, request ListVirtualNodesRequest) (response ListVirtualNodesResponse, err error) { var ociResponse common.OCIResponse policy := common.DefaultRetryPolicy() if client.RetryPolicy() != nil { @@ -983,42 +1689,42 @@ func (client ContainerEngineClient) ListNodePools(ctx context.Context, request L if request.RetryPolicy() != nil { policy = *request.RetryPolicy() } - ociResponse, err = common.Retry(ctx, request, client.listNodePools, policy) + ociResponse, err = common.Retry(ctx, request, client.listVirtualNodes, policy) if err != nil { if ociResponse != nil { if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { opcRequestId := httpResponse.Header.Get("opc-request-id") - response = ListNodePoolsResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + response = ListVirtualNodesResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} } else { - response = ListNodePoolsResponse{} + response = ListVirtualNodesResponse{} } } return } - if convertedResponse, ok := ociResponse.(ListNodePoolsResponse); ok { + if convertedResponse, ok := ociResponse.(ListVirtualNodesResponse); ok { response = convertedResponse } else { - err = fmt.Errorf("failed to convert OCIResponse into ListNodePoolsResponse") + err = fmt.Errorf("failed to convert OCIResponse into ListVirtualNodesResponse") } return } -// listNodePools implements the OCIOperation interface (enables retrying operations) -func (client ContainerEngineClient) listNodePools(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { +// listVirtualNodes implements the OCIOperation interface (enables retrying operations) +func (client ContainerEngineClient) listVirtualNodes(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { - httpRequest, err := request.HTTPRequest(http.MethodGet, "/nodePools", binaryReqBody, extraHeaders) + httpRequest, err := request.HTTPRequest(http.MethodGet, "/virtualNodePools/{virtualNodePoolId}/virtualNodes", binaryReqBody, extraHeaders) if err != nil { return nil, err } - var response ListNodePoolsResponse + var response ListVirtualNodesResponse var httpResponse *http.Response httpResponse, err = client.Call(ctx, &httpRequest) defer common.CloseBodyIfValid(httpResponse) response.RawResponse = httpResponse if err != nil { - apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/containerengine/20180222/NodePoolSummary/ListNodePools" - err = common.PostProcessServiceError(err, "ContainerEngine", "ListNodePools", apiReferenceLink) + apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/containerengine/20180222/VirtualNodePool/ListVirtualNodes" + err = common.PostProcessServiceError(err, "ContainerEngine", "ListVirtualNodes", apiReferenceLink) return response, err } @@ -1200,6 +1906,64 @@ func (client ContainerEngineClient) listWorkRequests(ctx context.Context, reques return response, err } +// UpdateAddon Update addon details for a cluster. +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/containerengine/UpdateAddon.go.html to see an example of how to use UpdateAddon API. +// A default retry strategy applies to this operation UpdateAddon() +func (client ContainerEngineClient) UpdateAddon(ctx context.Context, request UpdateAddonRequest) (response UpdateAddonResponse, err error) { + var ociResponse common.OCIResponse + policy := common.DefaultRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + ociResponse, err = common.Retry(ctx, request, client.updateAddon, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = UpdateAddonResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = UpdateAddonResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(UpdateAddonResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into UpdateAddonResponse") + } + return +} + +// updateAddon implements the OCIOperation interface (enables retrying operations) +func (client ContainerEngineClient) updateAddon(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPut, "/clusters/{clusterId}/addons/{addonName}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response UpdateAddonResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/containerengine/20180222/Cluster/UpdateAddon" + err = common.PostProcessServiceError(err, "ContainerEngine", "UpdateAddon", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + // UpdateCluster Update the details of a cluster. // // See also @@ -1373,3 +2137,61 @@ func (client ContainerEngineClient) updateNodePool(ctx context.Context, request err = common.UnmarshalResponse(httpResponse, &response) return response, err } + +// UpdateVirtualNodePool Update the details of a virtual node pool. +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/containerengine/UpdateVirtualNodePool.go.html to see an example of how to use UpdateVirtualNodePool API. +// A default retry strategy applies to this operation UpdateVirtualNodePool() +func (client ContainerEngineClient) UpdateVirtualNodePool(ctx context.Context, request UpdateVirtualNodePoolRequest) (response UpdateVirtualNodePoolResponse, err error) { + var ociResponse common.OCIResponse + policy := common.DefaultRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + ociResponse, err = common.Retry(ctx, request, client.updateVirtualNodePool, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = UpdateVirtualNodePoolResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = UpdateVirtualNodePoolResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(UpdateVirtualNodePoolResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into UpdateVirtualNodePoolResponse") + } + return +} + +// updateVirtualNodePool implements the OCIOperation interface (enables retrying operations) +func (client ContainerEngineClient) updateVirtualNodePool(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPut, "/virtualNodePools/{virtualNodePoolId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response UpdateVirtualNodePoolResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/containerengine/20180222/VirtualNodePool/UpdateVirtualNodePool" + err = common.PostProcessServiceError(err, "ContainerEngine", "UpdateVirtualNodePool", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/create_cluster_details.go b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/create_cluster_details.go index bb2a56a0bc9..b2fd3a8daaf 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/create_cluster_details.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/create_cluster_details.go @@ -60,6 +60,9 @@ type CreateClusterDetails struct { // Available CNIs and network options for existing and new node pools of the cluster ClusterPodNetworkOptions []ClusterPodNetworkOptionDetails `mandatory:"false" json:"clusterPodNetworkOptions"` + + // Type of cluster + Type ClusterTypeEnum `mandatory:"false" json:"type,omitempty"` } func (m CreateClusterDetails) String() string { @@ -72,6 +75,9 @@ func (m CreateClusterDetails) String() string { func (m CreateClusterDetails) ValidateEnumValue() (bool, error) { errMessage := []string{} + if _, ok := GetMappingClusterTypeEnum(string(m.Type)); !ok && m.Type != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Type: %s. Supported values are: %s.", m.Type, strings.Join(GetClusterTypeEnumStringValues(), ","))) + } if len(errMessage) > 0 { return true, fmt.Errorf(strings.Join(errMessage, "\n")) } @@ -88,6 +94,7 @@ func (m *CreateClusterDetails) UnmarshalJSON(data []byte) (e error) { Options *ClusterCreateOptions `json:"options"` ImagePolicyConfig *CreateImagePolicyConfigDetails `json:"imagePolicyConfig"` ClusterPodNetworkOptions []clusterpodnetworkoptiondetails `json:"clusterPodNetworkOptions"` + Type ClusterTypeEnum `json:"type"` Name *string `json:"name"` CompartmentId *string `json:"compartmentId"` VcnId *string `json:"vcnId"` @@ -124,6 +131,8 @@ func (m *CreateClusterDetails) UnmarshalJSON(data []byte) (e error) { } } + m.Type = model.Type + m.Name = model.Name m.CompartmentId = model.CompartmentId diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/create_virtual_node_pool_details.go b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/create_virtual_node_pool_details.go new file mode 100644 index 00000000000..59cfc21e410 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/create_virtual_node_pool_details.go @@ -0,0 +1,77 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Container Engine for Kubernetes API +// +// API for the Container Engine for Kubernetes service. Use this API to build, deploy, +// and manage cloud-native applications. For more information, see +// Overview of Container Engine for Kubernetes (https://docs.cloud.oracle.com/iaas/Content/ContEng/Concepts/contengoverview.htm). +// + +package containerengine + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// CreateVirtualNodePoolDetails The properties that define a request to create a virtual node pool. +type CreateVirtualNodePoolDetails struct { + + // Compartment of the virtual node pool. + CompartmentId *string `mandatory:"true" json:"compartmentId"` + + // The cluster the virtual node pool is associated with. A virtual node pool can only be associated with one cluster. + ClusterId *string `mandatory:"true" json:"clusterId"` + + // Display name of the virtual node pool. This is a non-unique value. + DisplayName *string `mandatory:"true" json:"displayName"` + + // The list of placement configurations which determines where Virtual Nodes will be provisioned across as it relates to the subnet and availability domains. The size attribute determines how many we evenly spread across these placement configurations + PlacementConfigurations []PlacementConfiguration `mandatory:"true" json:"placementConfigurations"` + + // Initial labels that will be added to the Kubernetes Virtual Node object when it registers. + InitialVirtualNodeLabels []InitialVirtualNodeLabel `mandatory:"false" json:"initialVirtualNodeLabels"` + + // A taint is a collection of . These taints will be applied to the Virtual Nodes of this Virtual Node Pool for Kubernetes scheduling. + Taints []Taint `mandatory:"false" json:"taints"` + + // The number of Virtual Nodes that should be in the Virtual Node Pool. The placement configurations determine where these virtual nodes are placed. + Size *int `mandatory:"false" json:"size"` + + // List of network security group id's applied to the Virtual Node VNIC. + NsgIds []string `mandatory:"false" json:"nsgIds"` + + // The pod configuration for pods run on virtual nodes of this virtual node pool. + PodConfiguration *PodConfiguration `mandatory:"false" json:"podConfiguration"` + + // 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/Content/General/Concepts/resourcetags.htm). + // Example: `{"Department": "Finance"}` + FreeformTags map[string]string `mandatory:"false" json:"freeformTags"` + + // 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/Content/General/Concepts/resourcetags.htm). + // Example: `{"Operations": {"CostCenter": "42"}}` + DefinedTags map[string]map[string]interface{} `mandatory:"false" json:"definedTags"` + + VirtualNodeTags *VirtualNodeTags `mandatory:"false" json:"virtualNodeTags"` +} + +func (m CreateVirtualNodePoolDetails) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m CreateVirtualNodePoolDetails) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/create_virtual_node_pool_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/create_virtual_node_pool_request_response.go new file mode 100644 index 00000000000..280c38c89ae --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/create_virtual_node_pool_request_response.go @@ -0,0 +1,94 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package containerengine + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// CreateVirtualNodePoolRequest wrapper for the CreateVirtualNodePool operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/containerengine/CreateVirtualNodePool.go.html to see an example of how to use CreateVirtualNodePoolRequest. +type CreateVirtualNodePoolRequest struct { + + // The details of the virtual node pool to create. + CreateVirtualNodePoolDetails `contributesTo:"body"` + + // A token you supply to uniquely identify the request and provide idempotency if + // the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. If you need to contact + // Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request CreateVirtualNodePoolRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request CreateVirtualNodePoolRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request CreateVirtualNodePoolRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request CreateVirtualNodePoolRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request CreateVirtualNodePoolRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// CreateVirtualNodePoolResponse wrapper for the CreateVirtualNodePool operation +type CreateVirtualNodePoolResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The OCID of the work request handling the operation. + OpcWorkRequestId *string `presentIn:"header" name:"opc-work-request-id"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response CreateVirtualNodePoolResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response CreateVirtualNodePoolResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/delete_virtual_node_pool_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/delete_virtual_node_pool_request_response.go new file mode 100644 index 00000000000..bd7b0abe318 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/delete_virtual_node_pool_request_response.go @@ -0,0 +1,102 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package containerengine + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// DeleteVirtualNodePoolRequest wrapper for the DeleteVirtualNodePool operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/containerengine/DeleteVirtualNodePool.go.html to see an example of how to use DeleteVirtualNodePoolRequest. +type DeleteVirtualNodePoolRequest struct { + + // The OCID of the virtual node pool. + VirtualNodePoolId *string `mandatory:"true" contributesTo:"path" name:"virtualNodePoolId"` + + // For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match` + // parameter to the value of the etag from a previous GET or POST response for that resource. The resource + // will be updated or deleted only if the etag you provide matches the resource's current etag value. + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // Unique Oracle-assigned identifier for the request. If you need to contact + // Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Duration after which Sk8s will give up eviction of the pods on the node. + // PT0M will indicate you want to delete the virtual node without cordon and drain. Default PT60M, Min PT0M, Max: PT60M. Format ISO 8601 e.g PT30M + OverrideEvictionGraceDurationVnp *string `mandatory:"false" contributesTo:"query" name:"overrideEvictionGraceDurationVnp"` + + // If the underlying compute instance should be deleted if you cannot evict all the pods in grace period + IsForceDeletionAfterOverrideGraceDurationVnp *bool `mandatory:"false" contributesTo:"query" name:"isForceDeletionAfterOverrideGraceDurationVnp"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request DeleteVirtualNodePoolRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request DeleteVirtualNodePoolRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request DeleteVirtualNodePoolRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request DeleteVirtualNodePoolRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request DeleteVirtualNodePoolRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// DeleteVirtualNodePoolResponse wrapper for the DeleteVirtualNodePool operation +type DeleteVirtualNodePoolResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The OCID of the work request handling the operation. + OpcWorkRequestId *string `presentIn:"header" name:"opc-work-request-id"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response DeleteVirtualNodePoolResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response DeleteVirtualNodePoolResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/disable_addon_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/disable_addon_request_response.go new file mode 100644 index 00000000000..c9a9497a1ca --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/disable_addon_request_response.go @@ -0,0 +1,101 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package containerengine + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// DisableAddonRequest wrapper for the DisableAddon operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/containerengine/DisableAddon.go.html to see an example of how to use DisableAddonRequest. +type DisableAddonRequest struct { + + // The OCID of the cluster. + ClusterId *string `mandatory:"true" contributesTo:"path" name:"clusterId"` + + // The name of the addon. + AddonName *string `mandatory:"true" contributesTo:"path" name:"addonName"` + + // Whether existing addon resources should be deleted or not. True would remove the underlying resources completely. + IsRemoveExistingAddOn *bool `mandatory:"true" contributesTo:"query" name:"isRemoveExistingAddOn"` + + // For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match` + // parameter to the value of the etag from a previous GET or POST response for that resource. The resource + // will be updated or deleted only if the etag you provide matches the resource's current etag value. + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // Unique Oracle-assigned identifier for the request. If you need to contact + // Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request DisableAddonRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request DisableAddonRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request DisableAddonRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request DisableAddonRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request DisableAddonRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// DisableAddonResponse wrapper for the DisableAddon operation +type DisableAddonResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The OCID of the work request handling the operation. + OpcWorkRequestId *string `presentIn:"header" name:"opc-work-request-id"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response DisableAddonResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response DisableAddonResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/get_addon_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/get_addon_request_response.go new file mode 100644 index 00000000000..6ff810e7af4 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/get_addon_request_response.go @@ -0,0 +1,97 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package containerengine + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// GetAddonRequest wrapper for the GetAddon operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/containerengine/GetAddon.go.html to see an example of how to use GetAddonRequest. +type GetAddonRequest struct { + + // The OCID of the cluster. + ClusterId *string `mandatory:"true" contributesTo:"path" name:"clusterId"` + + // The name of the addon. + AddonName *string `mandatory:"true" contributesTo:"path" name:"addonName"` + + // Unique Oracle-assigned identifier for the request. If you need to contact + // Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request GetAddonRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request GetAddonRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request GetAddonRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request GetAddonRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request GetAddonRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// GetAddonResponse wrapper for the GetAddon operation +type GetAddonResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The Addon instance + Addon `presentIn:"body"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a + // particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response GetAddonResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response GetAddonResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/get_virtual_node_pool_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/get_virtual_node_pool_request_response.go new file mode 100644 index 00000000000..b93774f2d11 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/get_virtual_node_pool_request_response.go @@ -0,0 +1,94 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package containerengine + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// GetVirtualNodePoolRequest wrapper for the GetVirtualNodePool operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/containerengine/GetVirtualNodePool.go.html to see an example of how to use GetVirtualNodePoolRequest. +type GetVirtualNodePoolRequest struct { + + // The OCID of the virtual node pool. + VirtualNodePoolId *string `mandatory:"true" contributesTo:"path" name:"virtualNodePoolId"` + + // Unique Oracle-assigned identifier for the request. If you need to contact + // Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request GetVirtualNodePoolRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request GetVirtualNodePoolRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request GetVirtualNodePoolRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request GetVirtualNodePoolRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request GetVirtualNodePoolRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// GetVirtualNodePoolResponse wrapper for the GetVirtualNodePool operation +type GetVirtualNodePoolResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The VirtualNodePool instance + VirtualNodePool `presentIn:"body"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a + // particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response GetVirtualNodePoolResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response GetVirtualNodePoolResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/get_virtual_node_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/get_virtual_node_request_response.go new file mode 100644 index 00000000000..b9890671a31 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/get_virtual_node_request_response.go @@ -0,0 +1,97 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package containerengine + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// GetVirtualNodeRequest wrapper for the GetVirtualNode operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/containerengine/GetVirtualNode.go.html to see an example of how to use GetVirtualNodeRequest. +type GetVirtualNodeRequest struct { + + // The OCID of the virtual node pool. + VirtualNodePoolId *string `mandatory:"true" contributesTo:"path" name:"virtualNodePoolId"` + + // The OCID of the virtual node. + VirtualNodeId *string `mandatory:"true" contributesTo:"path" name:"virtualNodeId"` + + // Unique Oracle-assigned identifier for the request. If you need to contact + // Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request GetVirtualNodeRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request GetVirtualNodeRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request GetVirtualNodeRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request GetVirtualNodeRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request GetVirtualNodeRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// GetVirtualNodeResponse wrapper for the GetVirtualNode operation +type GetVirtualNodeResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The VirtualNode instance + VirtualNode `presentIn:"body"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a + // particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response GetVirtualNodeResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response GetVirtualNodeResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/initial_virtual_node_label.go b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/initial_virtual_node_label.go new file mode 100644 index 00000000000..07653e25dde --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/initial_virtual_node_label.go @@ -0,0 +1,44 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Container Engine for Kubernetes API +// +// API for the Container Engine for Kubernetes service. Use this API to build, deploy, +// and manage cloud-native applications. For more information, see +// Overview of Container Engine for Kubernetes (https://docs.cloud.oracle.com/iaas/Content/ContEng/Concepts/contengoverview.htm). +// + +package containerengine + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// InitialVirtualNodeLabel The properties that define a key value pair. +type InitialVirtualNodeLabel struct { + + // The key of the pair. + Key *string `mandatory:"false" json:"key"` + + // The value of the pair. + Value *string `mandatory:"false" json:"value"` +} + +func (m InitialVirtualNodeLabel) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m InitialVirtualNodeLabel) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/install_addon_details.go b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/install_addon_details.go new file mode 100644 index 00000000000..3d924ca78f1 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/install_addon_details.go @@ -0,0 +1,47 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Container Engine for Kubernetes API +// +// API for the Container Engine for Kubernetes service. Use this API to build, deploy, +// and manage cloud-native applications. For more information, see +// Overview of Container Engine for Kubernetes (https://docs.cloud.oracle.com/iaas/Content/ContEng/Concepts/contengoverview.htm). +// + +package containerengine + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// InstallAddonDetails The properties that define to install/enable addon on a cluster +type InstallAddonDetails struct { + + // The name of the addon. + AddonName *string `mandatory:"true" json:"addonName"` + + // The version of addon to be installed. + Version *string `mandatory:"false" json:"version"` + + // Addon configuration details. + Configurations []AddonConfiguration `mandatory:"false" json:"configurations"` +} + +func (m InstallAddonDetails) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m InstallAddonDetails) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/install_addon_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/install_addon_request_response.go new file mode 100644 index 00000000000..07bcbcbaac1 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/install_addon_request_response.go @@ -0,0 +1,102 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package containerengine + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// InstallAddonRequest wrapper for the InstallAddon operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/containerengine/InstallAddon.go.html to see an example of how to use InstallAddonRequest. +type InstallAddonRequest struct { + + // The OCID of the cluster. + ClusterId *string `mandatory:"true" contributesTo:"path" name:"clusterId"` + + // The details of the addon to be installed. + InstallAddonDetails `contributesTo:"body"` + + // A token you supply to uniquely identify the request and provide idempotency if + // the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. If you need to contact + // Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match` + // parameter to the value of the etag from a previous GET or POST response for that resource. The resource + // will be updated or deleted only if the etag you provide matches the resource's current etag value. + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request InstallAddonRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request InstallAddonRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request InstallAddonRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request InstallAddonRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request InstallAddonRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// InstallAddonResponse wrapper for the InstallAddon operation +type InstallAddonResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The OCID of the work request handling the operation. + OpcWorkRequestId *string `presentIn:"header" name:"opc-work-request-id"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response InstallAddonResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response InstallAddonResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/kubernetes_versions_filters.go b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/kubernetes_versions_filters.go new file mode 100644 index 00000000000..3e729920c6a --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/kubernetes_versions_filters.go @@ -0,0 +1,47 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Container Engine for Kubernetes API +// +// API for the Container Engine for Kubernetes service. Use this API to build, deploy, +// and manage cloud-native applications. For more information, see +// Overview of Container Engine for Kubernetes (https://docs.cloud.oracle.com/iaas/Content/ContEng/Concepts/contengoverview.htm). +// + +package containerengine + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// KubernetesVersionsFilters The range of kubernetes versions an addon can be configured. +type KubernetesVersionsFilters struct { + + // The earliest kubernetes version. + MinimalVersion *string `mandatory:"false" json:"minimalVersion"` + + // The latest kubernetes version. + MaximumVersion *string `mandatory:"false" json:"maximumVersion"` + + // The exact version of kubernetes that are compatible. + ExactKubernetesVersions []string `mandatory:"false" json:"exactKubernetesVersions"` +} + +func (m KubernetesVersionsFilters) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m KubernetesVersionsFilters) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/list_addon_options_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/list_addon_options_request_response.go new file mode 100644 index 00000000000..f5839c70d4e --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/list_addon_options_request_response.go @@ -0,0 +1,203 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package containerengine + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// ListAddonOptionsRequest wrapper for the ListAddonOptions operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/containerengine/ListAddonOptions.go.html to see an example of how to use ListAddonOptionsRequest. +type ListAddonOptionsRequest struct { + + // The kubernetes version to fetch the addons. + KubernetesVersion *string `mandatory:"true" contributesTo:"query" name:"kubernetesVersion"` + + // The name of the addon. + AddonName *string `mandatory:"false" contributesTo:"query" name:"addonName"` + + // Unique Oracle-assigned identifier for the request. If you need to contact + // Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // For list pagination. The maximum number of results per page, or items to return in a paginated "List" call. + // 1 is the minimum, 1000 is the maximum. For important details about how pagination works, + // see List Pagination (https://docs.cloud.oracle.com/iaas/Content/API/Concepts/usingapi.htm#nine). + Limit *int `mandatory:"false" contributesTo:"query" name:"limit"` + + // For list pagination. The value of the `opc-next-page` response header from the previous "List" call. + // For important details about how pagination works, see List Pagination (https://docs.cloud.oracle.com/iaas/Content/API/Concepts/usingapi.htm#nine). + Page *string `mandatory:"false" contributesTo:"query" name:"page"` + + // The optional order in which to sort the results. + SortOrder ListAddonOptionsSortOrderEnum `mandatory:"false" contributesTo:"query" name:"sortOrder" omitEmpty:"true"` + + // The optional field to sort the results by. + SortBy ListAddonOptionsSortByEnum `mandatory:"false" contributesTo:"query" name:"sortBy" omitEmpty:"true"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request ListAddonOptionsRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request ListAddonOptionsRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request ListAddonOptionsRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request ListAddonOptionsRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request ListAddonOptionsRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingListAddonOptionsSortOrderEnum(string(request.SortOrder)); !ok && request.SortOrder != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for SortOrder: %s. Supported values are: %s.", request.SortOrder, strings.Join(GetListAddonOptionsSortOrderEnumStringValues(), ","))) + } + if _, ok := GetMappingListAddonOptionsSortByEnum(string(request.SortBy)); !ok && request.SortBy != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for SortBy: %s. Supported values are: %s.", request.SortBy, strings.Join(GetListAddonOptionsSortByEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// ListAddonOptionsResponse wrapper for the ListAddonOptions operation +type ListAddonOptionsResponse struct { + + // The underlying http response + RawResponse *http.Response + + // A list of []AddonOptionSummary instances + Items []AddonOptionSummary `presentIn:"body"` + + // For list pagination. When this header appears in the response, additional pages of results remain. + // For important details about how pagination works, see List Pagination (https://docs.cloud.oracle.com/iaas/Content/API/Concepts/usingapi.htm#nine). + OpcNextPage *string `presentIn:"header" name:"opc-next-page"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a + // particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response ListAddonOptionsResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response ListAddonOptionsResponse) HTTPResponse() *http.Response { + return response.RawResponse +} + +// ListAddonOptionsSortOrderEnum Enum with underlying type: string +type ListAddonOptionsSortOrderEnum string + +// Set of constants representing the allowable values for ListAddonOptionsSortOrderEnum +const ( + ListAddonOptionsSortOrderAsc ListAddonOptionsSortOrderEnum = "ASC" + ListAddonOptionsSortOrderDesc ListAddonOptionsSortOrderEnum = "DESC" +) + +var mappingListAddonOptionsSortOrderEnum = map[string]ListAddonOptionsSortOrderEnum{ + "ASC": ListAddonOptionsSortOrderAsc, + "DESC": ListAddonOptionsSortOrderDesc, +} + +var mappingListAddonOptionsSortOrderEnumLowerCase = map[string]ListAddonOptionsSortOrderEnum{ + "asc": ListAddonOptionsSortOrderAsc, + "desc": ListAddonOptionsSortOrderDesc, +} + +// GetListAddonOptionsSortOrderEnumValues Enumerates the set of values for ListAddonOptionsSortOrderEnum +func GetListAddonOptionsSortOrderEnumValues() []ListAddonOptionsSortOrderEnum { + values := make([]ListAddonOptionsSortOrderEnum, 0) + for _, v := range mappingListAddonOptionsSortOrderEnum { + values = append(values, v) + } + return values +} + +// GetListAddonOptionsSortOrderEnumStringValues Enumerates the set of values in String for ListAddonOptionsSortOrderEnum +func GetListAddonOptionsSortOrderEnumStringValues() []string { + return []string{ + "ASC", + "DESC", + } +} + +// GetMappingListAddonOptionsSortOrderEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingListAddonOptionsSortOrderEnum(val string) (ListAddonOptionsSortOrderEnum, bool) { + enum, ok := mappingListAddonOptionsSortOrderEnumLowerCase[strings.ToLower(val)] + return enum, ok +} + +// ListAddonOptionsSortByEnum Enum with underlying type: string +type ListAddonOptionsSortByEnum string + +// Set of constants representing the allowable values for ListAddonOptionsSortByEnum +const ( + ListAddonOptionsSortByName ListAddonOptionsSortByEnum = "NAME" + ListAddonOptionsSortByTimeCreated ListAddonOptionsSortByEnum = "TIME_CREATED" +) + +var mappingListAddonOptionsSortByEnum = map[string]ListAddonOptionsSortByEnum{ + "NAME": ListAddonOptionsSortByName, + "TIME_CREATED": ListAddonOptionsSortByTimeCreated, +} + +var mappingListAddonOptionsSortByEnumLowerCase = map[string]ListAddonOptionsSortByEnum{ + "name": ListAddonOptionsSortByName, + "time_created": ListAddonOptionsSortByTimeCreated, +} + +// GetListAddonOptionsSortByEnumValues Enumerates the set of values for ListAddonOptionsSortByEnum +func GetListAddonOptionsSortByEnumValues() []ListAddonOptionsSortByEnum { + values := make([]ListAddonOptionsSortByEnum, 0) + for _, v := range mappingListAddonOptionsSortByEnum { + values = append(values, v) + } + return values +} + +// GetListAddonOptionsSortByEnumStringValues Enumerates the set of values in String for ListAddonOptionsSortByEnum +func GetListAddonOptionsSortByEnumStringValues() []string { + return []string{ + "NAME", + "TIME_CREATED", + } +} + +// GetMappingListAddonOptionsSortByEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingListAddonOptionsSortByEnum(val string) (ListAddonOptionsSortByEnum, bool) { + enum, ok := mappingListAddonOptionsSortByEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/list_addons_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/list_addons_request_response.go new file mode 100644 index 00000000000..b101b0731cf --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/list_addons_request_response.go @@ -0,0 +1,200 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package containerengine + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// ListAddonsRequest wrapper for the ListAddons operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/containerengine/ListAddons.go.html to see an example of how to use ListAddonsRequest. +type ListAddonsRequest struct { + + // The OCID of the cluster. + ClusterId *string `mandatory:"true" contributesTo:"path" name:"clusterId"` + + // Unique Oracle-assigned identifier for the request. If you need to contact + // Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // For list pagination. The maximum number of results per page, or items to return in a paginated "List" call. + // 1 is the minimum, 1000 is the maximum. For important details about how pagination works, + // see List Pagination (https://docs.cloud.oracle.com/iaas/Content/API/Concepts/usingapi.htm#nine). + Limit *int `mandatory:"false" contributesTo:"query" name:"limit"` + + // For list pagination. The value of the `opc-next-page` response header from the previous "List" call. + // For important details about how pagination works, see List Pagination (https://docs.cloud.oracle.com/iaas/Content/API/Concepts/usingapi.htm#nine). + Page *string `mandatory:"false" contributesTo:"query" name:"page"` + + // The optional order in which to sort the results. + SortOrder ListAddonsSortOrderEnum `mandatory:"false" contributesTo:"query" name:"sortOrder" omitEmpty:"true"` + + // The optional field to sort the results by. + SortBy ListAddonsSortByEnum `mandatory:"false" contributesTo:"query" name:"sortBy" omitEmpty:"true"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request ListAddonsRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request ListAddonsRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request ListAddonsRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request ListAddonsRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request ListAddonsRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingListAddonsSortOrderEnum(string(request.SortOrder)); !ok && request.SortOrder != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for SortOrder: %s. Supported values are: %s.", request.SortOrder, strings.Join(GetListAddonsSortOrderEnumStringValues(), ","))) + } + if _, ok := GetMappingListAddonsSortByEnum(string(request.SortBy)); !ok && request.SortBy != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for SortBy: %s. Supported values are: %s.", request.SortBy, strings.Join(GetListAddonsSortByEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// ListAddonsResponse wrapper for the ListAddons operation +type ListAddonsResponse struct { + + // The underlying http response + RawResponse *http.Response + + // A list of []AddonSummary instances + Items []AddonSummary `presentIn:"body"` + + // For list pagination. When this header appears in the response, additional pages of results remain. + // For important details about how pagination works, see List Pagination (https://docs.cloud.oracle.com/iaas/Content/API/Concepts/usingapi.htm#nine). + OpcNextPage *string `presentIn:"header" name:"opc-next-page"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a + // particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response ListAddonsResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response ListAddonsResponse) HTTPResponse() *http.Response { + return response.RawResponse +} + +// ListAddonsSortOrderEnum Enum with underlying type: string +type ListAddonsSortOrderEnum string + +// Set of constants representing the allowable values for ListAddonsSortOrderEnum +const ( + ListAddonsSortOrderAsc ListAddonsSortOrderEnum = "ASC" + ListAddonsSortOrderDesc ListAddonsSortOrderEnum = "DESC" +) + +var mappingListAddonsSortOrderEnum = map[string]ListAddonsSortOrderEnum{ + "ASC": ListAddonsSortOrderAsc, + "DESC": ListAddonsSortOrderDesc, +} + +var mappingListAddonsSortOrderEnumLowerCase = map[string]ListAddonsSortOrderEnum{ + "asc": ListAddonsSortOrderAsc, + "desc": ListAddonsSortOrderDesc, +} + +// GetListAddonsSortOrderEnumValues Enumerates the set of values for ListAddonsSortOrderEnum +func GetListAddonsSortOrderEnumValues() []ListAddonsSortOrderEnum { + values := make([]ListAddonsSortOrderEnum, 0) + for _, v := range mappingListAddonsSortOrderEnum { + values = append(values, v) + } + return values +} + +// GetListAddonsSortOrderEnumStringValues Enumerates the set of values in String for ListAddonsSortOrderEnum +func GetListAddonsSortOrderEnumStringValues() []string { + return []string{ + "ASC", + "DESC", + } +} + +// GetMappingListAddonsSortOrderEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingListAddonsSortOrderEnum(val string) (ListAddonsSortOrderEnum, bool) { + enum, ok := mappingListAddonsSortOrderEnumLowerCase[strings.ToLower(val)] + return enum, ok +} + +// ListAddonsSortByEnum Enum with underlying type: string +type ListAddonsSortByEnum string + +// Set of constants representing the allowable values for ListAddonsSortByEnum +const ( + ListAddonsSortByName ListAddonsSortByEnum = "NAME" + ListAddonsSortByTimeCreated ListAddonsSortByEnum = "TIME_CREATED" +) + +var mappingListAddonsSortByEnum = map[string]ListAddonsSortByEnum{ + "NAME": ListAddonsSortByName, + "TIME_CREATED": ListAddonsSortByTimeCreated, +} + +var mappingListAddonsSortByEnumLowerCase = map[string]ListAddonsSortByEnum{ + "name": ListAddonsSortByName, + "time_created": ListAddonsSortByTimeCreated, +} + +// GetListAddonsSortByEnumValues Enumerates the set of values for ListAddonsSortByEnum +func GetListAddonsSortByEnumValues() []ListAddonsSortByEnum { + values := make([]ListAddonsSortByEnum, 0) + for _, v := range mappingListAddonsSortByEnum { + values = append(values, v) + } + return values +} + +// GetListAddonsSortByEnumStringValues Enumerates the set of values in String for ListAddonsSortByEnum +func GetListAddonsSortByEnumStringValues() []string { + return []string{ + "NAME", + "TIME_CREATED", + } +} + +// GetMappingListAddonsSortByEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingListAddonsSortByEnum(val string) (ListAddonsSortByEnum, bool) { + enum, ok := mappingListAddonsSortByEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/list_pod_shapes_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/list_pod_shapes_request_response.go new file mode 100644 index 00000000000..efcbdc4f7c0 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/list_pod_shapes_request_response.go @@ -0,0 +1,210 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package containerengine + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// ListPodShapesRequest wrapper for the ListPodShapes operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/containerengine/ListPodShapes.go.html to see an example of how to use ListPodShapesRequest. +type ListPodShapesRequest struct { + + // The OCID of the compartment. + CompartmentId *string `mandatory:"true" contributesTo:"query" name:"compartmentId"` + + // Unique Oracle-assigned identifier for the request. If you need to contact + // Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // The availability domain of the pod shape. + AvailabilityDomain *string `mandatory:"false" contributesTo:"query" name:"availabilityDomain"` + + // The name to filter on. + Name *string `mandatory:"false" contributesTo:"query" name:"name"` + + // For list pagination. The maximum number of results per page, or items to return in a paginated "List" call. + // 1 is the minimum, 1000 is the maximum. For important details about how pagination works, + // see List Pagination (https://docs.cloud.oracle.com/iaas/Content/API/Concepts/usingapi.htm#nine). + Limit *int `mandatory:"false" contributesTo:"query" name:"limit"` + + // For list pagination. The value of the `opc-next-page` response header from the previous "List" call. + // For important details about how pagination works, see List Pagination (https://docs.cloud.oracle.com/iaas/Content/API/Concepts/usingapi.htm#nine). + Page *string `mandatory:"false" contributesTo:"query" name:"page"` + + // The optional order in which to sort the results. + SortOrder ListPodShapesSortOrderEnum `mandatory:"false" contributesTo:"query" name:"sortOrder" omitEmpty:"true"` + + // The optional field to sort the results by. + SortBy ListPodShapesSortByEnum `mandatory:"false" contributesTo:"query" name:"sortBy" omitEmpty:"true"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request ListPodShapesRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request ListPodShapesRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request ListPodShapesRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request ListPodShapesRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request ListPodShapesRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingListPodShapesSortOrderEnum(string(request.SortOrder)); !ok && request.SortOrder != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for SortOrder: %s. Supported values are: %s.", request.SortOrder, strings.Join(GetListPodShapesSortOrderEnumStringValues(), ","))) + } + if _, ok := GetMappingListPodShapesSortByEnum(string(request.SortBy)); !ok && request.SortBy != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for SortBy: %s. Supported values are: %s.", request.SortBy, strings.Join(GetListPodShapesSortByEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// ListPodShapesResponse wrapper for the ListPodShapes operation +type ListPodShapesResponse struct { + + // The underlying http response + RawResponse *http.Response + + // A list of []PodShapeSummary instances + Items []PodShapeSummary `presentIn:"body"` + + // For list pagination. When this header appears in the response, additional pages of results remain. + // For important details about how pagination works, see List Pagination (https://docs.cloud.oracle.com/iaas/Content/API/Concepts/usingapi.htm#nine). + OpcNextPage *string `presentIn:"header" name:"opc-next-page"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a + // particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response ListPodShapesResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response ListPodShapesResponse) HTTPResponse() *http.Response { + return response.RawResponse +} + +// ListPodShapesSortOrderEnum Enum with underlying type: string +type ListPodShapesSortOrderEnum string + +// Set of constants representing the allowable values for ListPodShapesSortOrderEnum +const ( + ListPodShapesSortOrderAsc ListPodShapesSortOrderEnum = "ASC" + ListPodShapesSortOrderDesc ListPodShapesSortOrderEnum = "DESC" +) + +var mappingListPodShapesSortOrderEnum = map[string]ListPodShapesSortOrderEnum{ + "ASC": ListPodShapesSortOrderAsc, + "DESC": ListPodShapesSortOrderDesc, +} + +var mappingListPodShapesSortOrderEnumLowerCase = map[string]ListPodShapesSortOrderEnum{ + "asc": ListPodShapesSortOrderAsc, + "desc": ListPodShapesSortOrderDesc, +} + +// GetListPodShapesSortOrderEnumValues Enumerates the set of values for ListPodShapesSortOrderEnum +func GetListPodShapesSortOrderEnumValues() []ListPodShapesSortOrderEnum { + values := make([]ListPodShapesSortOrderEnum, 0) + for _, v := range mappingListPodShapesSortOrderEnum { + values = append(values, v) + } + return values +} + +// GetListPodShapesSortOrderEnumStringValues Enumerates the set of values in String for ListPodShapesSortOrderEnum +func GetListPodShapesSortOrderEnumStringValues() []string { + return []string{ + "ASC", + "DESC", + } +} + +// GetMappingListPodShapesSortOrderEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingListPodShapesSortOrderEnum(val string) (ListPodShapesSortOrderEnum, bool) { + enum, ok := mappingListPodShapesSortOrderEnumLowerCase[strings.ToLower(val)] + return enum, ok +} + +// ListPodShapesSortByEnum Enum with underlying type: string +type ListPodShapesSortByEnum string + +// Set of constants representing the allowable values for ListPodShapesSortByEnum +const ( + ListPodShapesSortById ListPodShapesSortByEnum = "ID" + ListPodShapesSortByName ListPodShapesSortByEnum = "NAME" + ListPodShapesSortByTimeCreated ListPodShapesSortByEnum = "TIME_CREATED" +) + +var mappingListPodShapesSortByEnum = map[string]ListPodShapesSortByEnum{ + "ID": ListPodShapesSortById, + "NAME": ListPodShapesSortByName, + "TIME_CREATED": ListPodShapesSortByTimeCreated, +} + +var mappingListPodShapesSortByEnumLowerCase = map[string]ListPodShapesSortByEnum{ + "id": ListPodShapesSortById, + "name": ListPodShapesSortByName, + "time_created": ListPodShapesSortByTimeCreated, +} + +// GetListPodShapesSortByEnumValues Enumerates the set of values for ListPodShapesSortByEnum +func GetListPodShapesSortByEnumValues() []ListPodShapesSortByEnum { + values := make([]ListPodShapesSortByEnum, 0) + for _, v := range mappingListPodShapesSortByEnum { + values = append(values, v) + } + return values +} + +// GetListPodShapesSortByEnumStringValues Enumerates the set of values in String for ListPodShapesSortByEnum +func GetListPodShapesSortByEnumStringValues() []string { + return []string{ + "ID", + "NAME", + "TIME_CREATED", + } +} + +// GetMappingListPodShapesSortByEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingListPodShapesSortByEnum(val string) (ListPodShapesSortByEnum, bool) { + enum, ok := mappingListPodShapesSortByEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/list_virtual_node_pools_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/list_virtual_node_pools_request_response.go new file mode 100644 index 00000000000..f8f7fa3def2 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/list_virtual_node_pools_request_response.go @@ -0,0 +1,219 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package containerengine + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// ListVirtualNodePoolsRequest wrapper for the ListVirtualNodePools operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/containerengine/ListVirtualNodePools.go.html to see an example of how to use ListVirtualNodePoolsRequest. +type ListVirtualNodePoolsRequest struct { + + // The OCID of the compartment. + CompartmentId *string `mandatory:"true" contributesTo:"query" name:"compartmentId"` + + // Unique Oracle-assigned identifier for the request. If you need to contact + // Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // The OCID of the cluster. + ClusterId *string `mandatory:"false" contributesTo:"query" name:"clusterId"` + + // The name to filter on. + Name *string `mandatory:"false" contributesTo:"query" name:"name"` + + // For list pagination. The maximum number of results per page, or items to return in a paginated "List" call. + // 1 is the minimum, 1000 is the maximum. For important details about how pagination works, + // see List Pagination (https://docs.cloud.oracle.com/iaas/Content/API/Concepts/usingapi.htm#nine). + Limit *int `mandatory:"false" contributesTo:"query" name:"limit"` + + // For list pagination. The value of the `opc-next-page` response header from the previous "List" call. + // For important details about how pagination works, see List Pagination (https://docs.cloud.oracle.com/iaas/Content/API/Concepts/usingapi.htm#nine). + Page *string `mandatory:"false" contributesTo:"query" name:"page"` + + // The optional order in which to sort the results. + SortOrder ListVirtualNodePoolsSortOrderEnum `mandatory:"false" contributesTo:"query" name:"sortOrder" omitEmpty:"true"` + + // The optional field to sort the results by. + SortBy ListVirtualNodePoolsSortByEnum `mandatory:"false" contributesTo:"query" name:"sortBy" omitEmpty:"true"` + + // A virtual node pool lifecycle state to filter on. Can have multiple parameters of this name. + LifecycleState []VirtualNodePoolLifecycleStateEnum `contributesTo:"query" name:"lifecycleState" omitEmpty:"true" collectionFormat:"multi"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request ListVirtualNodePoolsRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request ListVirtualNodePoolsRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request ListVirtualNodePoolsRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request ListVirtualNodePoolsRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request ListVirtualNodePoolsRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingListVirtualNodePoolsSortOrderEnum(string(request.SortOrder)); !ok && request.SortOrder != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for SortOrder: %s. Supported values are: %s.", request.SortOrder, strings.Join(GetListVirtualNodePoolsSortOrderEnumStringValues(), ","))) + } + if _, ok := GetMappingListVirtualNodePoolsSortByEnum(string(request.SortBy)); !ok && request.SortBy != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for SortBy: %s. Supported values are: %s.", request.SortBy, strings.Join(GetListVirtualNodePoolsSortByEnumStringValues(), ","))) + } + for _, val := range request.LifecycleState { + if _, ok := GetMappingVirtualNodePoolLifecycleStateEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for LifecycleState: %s. Supported values are: %s.", val, strings.Join(GetVirtualNodePoolLifecycleStateEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// ListVirtualNodePoolsResponse wrapper for the ListVirtualNodePools operation +type ListVirtualNodePoolsResponse struct { + + // The underlying http response + RawResponse *http.Response + + // A list of []VirtualNodePoolSummary instances + Items []VirtualNodePoolSummary `presentIn:"body"` + + // For list pagination. When this header appears in the response, additional pages of results remain. + // For important details about how pagination works, see List Pagination (https://docs.cloud.oracle.com/iaas/Content/API/Concepts/usingapi.htm#nine). + OpcNextPage *string `presentIn:"header" name:"opc-next-page"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a + // particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response ListVirtualNodePoolsResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response ListVirtualNodePoolsResponse) HTTPResponse() *http.Response { + return response.RawResponse +} + +// ListVirtualNodePoolsSortOrderEnum Enum with underlying type: string +type ListVirtualNodePoolsSortOrderEnum string + +// Set of constants representing the allowable values for ListVirtualNodePoolsSortOrderEnum +const ( + ListVirtualNodePoolsSortOrderAsc ListVirtualNodePoolsSortOrderEnum = "ASC" + ListVirtualNodePoolsSortOrderDesc ListVirtualNodePoolsSortOrderEnum = "DESC" +) + +var mappingListVirtualNodePoolsSortOrderEnum = map[string]ListVirtualNodePoolsSortOrderEnum{ + "ASC": ListVirtualNodePoolsSortOrderAsc, + "DESC": ListVirtualNodePoolsSortOrderDesc, +} + +var mappingListVirtualNodePoolsSortOrderEnumLowerCase = map[string]ListVirtualNodePoolsSortOrderEnum{ + "asc": ListVirtualNodePoolsSortOrderAsc, + "desc": ListVirtualNodePoolsSortOrderDesc, +} + +// GetListVirtualNodePoolsSortOrderEnumValues Enumerates the set of values for ListVirtualNodePoolsSortOrderEnum +func GetListVirtualNodePoolsSortOrderEnumValues() []ListVirtualNodePoolsSortOrderEnum { + values := make([]ListVirtualNodePoolsSortOrderEnum, 0) + for _, v := range mappingListVirtualNodePoolsSortOrderEnum { + values = append(values, v) + } + return values +} + +// GetListVirtualNodePoolsSortOrderEnumStringValues Enumerates the set of values in String for ListVirtualNodePoolsSortOrderEnum +func GetListVirtualNodePoolsSortOrderEnumStringValues() []string { + return []string{ + "ASC", + "DESC", + } +} + +// GetMappingListVirtualNodePoolsSortOrderEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingListVirtualNodePoolsSortOrderEnum(val string) (ListVirtualNodePoolsSortOrderEnum, bool) { + enum, ok := mappingListVirtualNodePoolsSortOrderEnumLowerCase[strings.ToLower(val)] + return enum, ok +} + +// ListVirtualNodePoolsSortByEnum Enum with underlying type: string +type ListVirtualNodePoolsSortByEnum string + +// Set of constants representing the allowable values for ListVirtualNodePoolsSortByEnum +const ( + ListVirtualNodePoolsSortById ListVirtualNodePoolsSortByEnum = "ID" + ListVirtualNodePoolsSortByName ListVirtualNodePoolsSortByEnum = "NAME" + ListVirtualNodePoolsSortByTimeCreated ListVirtualNodePoolsSortByEnum = "TIME_CREATED" +) + +var mappingListVirtualNodePoolsSortByEnum = map[string]ListVirtualNodePoolsSortByEnum{ + "ID": ListVirtualNodePoolsSortById, + "NAME": ListVirtualNodePoolsSortByName, + "TIME_CREATED": ListVirtualNodePoolsSortByTimeCreated, +} + +var mappingListVirtualNodePoolsSortByEnumLowerCase = map[string]ListVirtualNodePoolsSortByEnum{ + "id": ListVirtualNodePoolsSortById, + "name": ListVirtualNodePoolsSortByName, + "time_created": ListVirtualNodePoolsSortByTimeCreated, +} + +// GetListVirtualNodePoolsSortByEnumValues Enumerates the set of values for ListVirtualNodePoolsSortByEnum +func GetListVirtualNodePoolsSortByEnumValues() []ListVirtualNodePoolsSortByEnum { + values := make([]ListVirtualNodePoolsSortByEnum, 0) + for _, v := range mappingListVirtualNodePoolsSortByEnum { + values = append(values, v) + } + return values +} + +// GetListVirtualNodePoolsSortByEnumStringValues Enumerates the set of values in String for ListVirtualNodePoolsSortByEnum +func GetListVirtualNodePoolsSortByEnumStringValues() []string { + return []string{ + "ID", + "NAME", + "TIME_CREATED", + } +} + +// GetMappingListVirtualNodePoolsSortByEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingListVirtualNodePoolsSortByEnum(val string) (ListVirtualNodePoolsSortByEnum, bool) { + enum, ok := mappingListVirtualNodePoolsSortByEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/list_virtual_nodes_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/list_virtual_nodes_request_response.go new file mode 100644 index 00000000000..5491a8b2665 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/list_virtual_nodes_request_response.go @@ -0,0 +1,207 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package containerengine + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// ListVirtualNodesRequest wrapper for the ListVirtualNodes operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/containerengine/ListVirtualNodes.go.html to see an example of how to use ListVirtualNodesRequest. +type ListVirtualNodesRequest struct { + + // The OCID of the virtual node pool. + VirtualNodePoolId *string `mandatory:"true" contributesTo:"path" name:"virtualNodePoolId"` + + // Unique Oracle-assigned identifier for the request. If you need to contact + // Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // The name to filter on. + Name *string `mandatory:"false" contributesTo:"query" name:"name"` + + // For list pagination. The maximum number of results per page, or items to return in a paginated "List" call. + // 1 is the minimum, 1000 is the maximum. For important details about how pagination works, + // see List Pagination (https://docs.cloud.oracle.com/iaas/Content/API/Concepts/usingapi.htm#nine). + Limit *int `mandatory:"false" contributesTo:"query" name:"limit"` + + // For list pagination. The value of the `opc-next-page` response header from the previous "List" call. + // For important details about how pagination works, see List Pagination (https://docs.cloud.oracle.com/iaas/Content/API/Concepts/usingapi.htm#nine). + Page *string `mandatory:"false" contributesTo:"query" name:"page"` + + // The optional order in which to sort the results. + SortOrder ListVirtualNodesSortOrderEnum `mandatory:"false" contributesTo:"query" name:"sortOrder" omitEmpty:"true"` + + // The optional field to sort the results by. + SortBy ListVirtualNodesSortByEnum `mandatory:"false" contributesTo:"query" name:"sortBy" omitEmpty:"true"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request ListVirtualNodesRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request ListVirtualNodesRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request ListVirtualNodesRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request ListVirtualNodesRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request ListVirtualNodesRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingListVirtualNodesSortOrderEnum(string(request.SortOrder)); !ok && request.SortOrder != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for SortOrder: %s. Supported values are: %s.", request.SortOrder, strings.Join(GetListVirtualNodesSortOrderEnumStringValues(), ","))) + } + if _, ok := GetMappingListVirtualNodesSortByEnum(string(request.SortBy)); !ok && request.SortBy != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for SortBy: %s. Supported values are: %s.", request.SortBy, strings.Join(GetListVirtualNodesSortByEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// ListVirtualNodesResponse wrapper for the ListVirtualNodes operation +type ListVirtualNodesResponse struct { + + // The underlying http response + RawResponse *http.Response + + // A list of []VirtualNodeSummary instances + Items []VirtualNodeSummary `presentIn:"body"` + + // For list pagination. When this header appears in the response, additional pages of results remain. + // For important details about how pagination works, see List Pagination (https://docs.cloud.oracle.com/iaas/Content/API/Concepts/usingapi.htm#nine). + OpcNextPage *string `presentIn:"header" name:"opc-next-page"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a + // particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response ListVirtualNodesResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response ListVirtualNodesResponse) HTTPResponse() *http.Response { + return response.RawResponse +} + +// ListVirtualNodesSortOrderEnum Enum with underlying type: string +type ListVirtualNodesSortOrderEnum string + +// Set of constants representing the allowable values for ListVirtualNodesSortOrderEnum +const ( + ListVirtualNodesSortOrderAsc ListVirtualNodesSortOrderEnum = "ASC" + ListVirtualNodesSortOrderDesc ListVirtualNodesSortOrderEnum = "DESC" +) + +var mappingListVirtualNodesSortOrderEnum = map[string]ListVirtualNodesSortOrderEnum{ + "ASC": ListVirtualNodesSortOrderAsc, + "DESC": ListVirtualNodesSortOrderDesc, +} + +var mappingListVirtualNodesSortOrderEnumLowerCase = map[string]ListVirtualNodesSortOrderEnum{ + "asc": ListVirtualNodesSortOrderAsc, + "desc": ListVirtualNodesSortOrderDesc, +} + +// GetListVirtualNodesSortOrderEnumValues Enumerates the set of values for ListVirtualNodesSortOrderEnum +func GetListVirtualNodesSortOrderEnumValues() []ListVirtualNodesSortOrderEnum { + values := make([]ListVirtualNodesSortOrderEnum, 0) + for _, v := range mappingListVirtualNodesSortOrderEnum { + values = append(values, v) + } + return values +} + +// GetListVirtualNodesSortOrderEnumStringValues Enumerates the set of values in String for ListVirtualNodesSortOrderEnum +func GetListVirtualNodesSortOrderEnumStringValues() []string { + return []string{ + "ASC", + "DESC", + } +} + +// GetMappingListVirtualNodesSortOrderEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingListVirtualNodesSortOrderEnum(val string) (ListVirtualNodesSortOrderEnum, bool) { + enum, ok := mappingListVirtualNodesSortOrderEnumLowerCase[strings.ToLower(val)] + return enum, ok +} + +// ListVirtualNodesSortByEnum Enum with underlying type: string +type ListVirtualNodesSortByEnum string + +// Set of constants representing the allowable values for ListVirtualNodesSortByEnum +const ( + ListVirtualNodesSortById ListVirtualNodesSortByEnum = "ID" + ListVirtualNodesSortByName ListVirtualNodesSortByEnum = "NAME" + ListVirtualNodesSortByTimeCreated ListVirtualNodesSortByEnum = "TIME_CREATED" +) + +var mappingListVirtualNodesSortByEnum = map[string]ListVirtualNodesSortByEnum{ + "ID": ListVirtualNodesSortById, + "NAME": ListVirtualNodesSortByName, + "TIME_CREATED": ListVirtualNodesSortByTimeCreated, +} + +var mappingListVirtualNodesSortByEnumLowerCase = map[string]ListVirtualNodesSortByEnum{ + "id": ListVirtualNodesSortById, + "name": ListVirtualNodesSortByName, + "time_created": ListVirtualNodesSortByTimeCreated, +} + +// GetListVirtualNodesSortByEnumValues Enumerates the set of values for ListVirtualNodesSortByEnum +func GetListVirtualNodesSortByEnumValues() []ListVirtualNodesSortByEnum { + values := make([]ListVirtualNodesSortByEnum, 0) + for _, v := range mappingListVirtualNodesSortByEnum { + values = append(values, v) + } + return values +} + +// GetListVirtualNodesSortByEnumStringValues Enumerates the set of values in String for ListVirtualNodesSortByEnum +func GetListVirtualNodesSortByEnumStringValues() []string { + return []string{ + "ID", + "NAME", + "TIME_CREATED", + } +} + +// GetMappingListVirtualNodesSortByEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingListVirtualNodesSortByEnum(val string) (ListVirtualNodesSortByEnum, bool) { + enum, ok := mappingListVirtualNodesSortByEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/placement_configuration.go b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/placement_configuration.go new file mode 100644 index 00000000000..392033622f2 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/placement_configuration.go @@ -0,0 +1,48 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Container Engine for Kubernetes API +// +// API for the Container Engine for Kubernetes service. Use this API to build, deploy, +// and manage cloud-native applications. For more information, see +// Overview of Container Engine for Kubernetes (https://docs.cloud.oracle.com/iaas/Content/ContEng/Concepts/contengoverview.htm). +// + +package containerengine + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// PlacementConfiguration The information of virtual node placement in the virtual node pool. +type PlacementConfiguration struct { + + // The availability domain in which to place virtual nodes. + // Example: `Uocm:PHX-AD-1` + AvailabilityDomain *string `mandatory:"false" json:"availabilityDomain"` + + // The fault domain of this virtual node. + FaultDomain []string `mandatory:"false" json:"faultDomain"` + + // The OCID of the subnet in which to place virtual nodes. + SubnetId *string `mandatory:"false" json:"subnetId"` +} + +func (m PlacementConfiguration) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m PlacementConfiguration) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/pod_configuration.go b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/pod_configuration.go new file mode 100644 index 00000000000..d917c0a3dc1 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/pod_configuration.go @@ -0,0 +1,47 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Container Engine for Kubernetes API +// +// API for the Container Engine for Kubernetes service. Use this API to build, deploy, +// and manage cloud-native applications. For more information, see +// Overview of Container Engine for Kubernetes (https://docs.cloud.oracle.com/iaas/Content/ContEng/Concepts/contengoverview.htm). +// + +package containerengine + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// PodConfiguration The pod configuration for pods run on virtual nodes of this virtual node pool. +type PodConfiguration struct { + + // The regional subnet where pods' VNIC will be placed. + SubnetId *string `mandatory:"true" json:"subnetId"` + + // Shape of the pods. + Shape *string `mandatory:"true" json:"shape"` + + // List of network security group IDs applied to the Pod VNIC. + NsgIds []string `mandatory:"false" json:"nsgIds"` +} + +func (m PodConfiguration) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m PodConfiguration) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/pod_shape.go b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/pod_shape.go new file mode 100644 index 00000000000..e32f541a6df --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/pod_shape.go @@ -0,0 +1,53 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Container Engine for Kubernetes API +// +// API for the Container Engine for Kubernetes service. Use this API to build, deploy, +// and manage cloud-native applications. For more information, see +// Overview of Container Engine for Kubernetes (https://docs.cloud.oracle.com/iaas/Content/ContEng/Concepts/contengoverview.htm). +// + +package containerengine + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// PodShape Pod shape. +type PodShape struct { + + // The name of the identifying shape. + Name *string `mandatory:"true" json:"name"` + + // A short description of the VM's processor (CPU). + ProcessorDescription *string `mandatory:"false" json:"processorDescription"` + + // Options for OCPU shape. + OcpuOptions []ShapeOcpuOptions `mandatory:"false" json:"ocpuOptions"` + + // ShapeMemoryOptions. + MemoryOptions []ShapeMemoryOptions `mandatory:"false" json:"memoryOptions"` + + // ShapeNetworkBandwidthOptions. + NetworkBandwidthOptions []ShapeNetworkBandwidthOptions `mandatory:"false" json:"networkBandwidthOptions"` +} + +func (m PodShape) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m PodShape) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/pod_shape_summary.go b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/pod_shape_summary.go new file mode 100644 index 00000000000..2dd4c55644b --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/pod_shape_summary.go @@ -0,0 +1,53 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Container Engine for Kubernetes API +// +// API for the Container Engine for Kubernetes service. Use this API to build, deploy, +// and manage cloud-native applications. For more information, see +// Overview of Container Engine for Kubernetes (https://docs.cloud.oracle.com/iaas/Content/ContEng/Concepts/contengoverview.htm). +// + +package containerengine + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// PodShapeSummary Pod shape. +type PodShapeSummary struct { + + // The name of the identifying shape. + Name *string `mandatory:"true" json:"name"` + + // A short description of the VM's processor (CPU). + ProcessorDescription *string `mandatory:"false" json:"processorDescription"` + + // Options for OCPU shape. + OcpuOptions []ShapeOcpuOptions `mandatory:"false" json:"ocpuOptions"` + + // ShapeMemoryOptions. + MemoryOptions []ShapeMemoryOptions `mandatory:"false" json:"memoryOptions"` + + // ShapeNetworkBandwidthOptions. + NetworkBandwidthOptions []ShapeNetworkBandwidthOptions `mandatory:"false" json:"networkBandwidthOptions"` +} + +func (m PodShapeSummary) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m PodShapeSummary) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/shape_memory_options.go b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/shape_memory_options.go new file mode 100644 index 00000000000..8bf067f706a --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/shape_memory_options.go @@ -0,0 +1,53 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Container Engine for Kubernetes API +// +// API for the Container Engine for Kubernetes service. Use this API to build, deploy, +// and manage cloud-native applications. For more information, see +// Overview of Container Engine for Kubernetes (https://docs.cloud.oracle.com/iaas/Content/ContEng/Concepts/contengoverview.htm). +// + +package containerengine + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// ShapeMemoryOptions Memory properties. +type ShapeMemoryOptions struct { + + // The minimum amount of memory, in gigabytes. + MinInGBs *float32 `mandatory:"false" json:"minInGBs"` + + // The maximum amount of memory, in gigabytes. + MaxInGBs *float32 `mandatory:"false" json:"maxInGBs"` + + // The default amount of memory per OCPU available for this shape, in gigabytes. + DefaultPerOcpuInGBs *float32 `mandatory:"false" json:"defaultPerOcpuInGBs"` + + // The minimum amount of memory per OCPU available for this shape, in gigabytes. + MinPerOcpuInGBs *float32 `mandatory:"false" json:"minPerOcpuInGBs"` + + // The maximum amount of memory per OCPU available for this shape, in gigabytes. + MaxPerOcpuInGBs *float32 `mandatory:"false" json:"maxPerOcpuInGBs"` +} + +func (m ShapeMemoryOptions) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m ShapeMemoryOptions) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/shape_network_bandwidth_options.go b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/shape_network_bandwidth_options.go new file mode 100644 index 00000000000..bf1d51e490f --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/shape_network_bandwidth_options.go @@ -0,0 +1,47 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Container Engine for Kubernetes API +// +// API for the Container Engine for Kubernetes service. Use this API to build, deploy, +// and manage cloud-native applications. For more information, see +// Overview of Container Engine for Kubernetes (https://docs.cloud.oracle.com/iaas/Content/ContEng/Concepts/contengoverview.htm). +// + +package containerengine + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// ShapeNetworkBandwidthOptions Properties of network bandwidth. +type ShapeNetworkBandwidthOptions struct { + + // The minimum amount of networking bandwidth, in gigabits per second. + MinInGbps *float32 `mandatory:"false" json:"minInGbps"` + + // The maximum amount of networking bandwidth, in gigabits per second. + MaxInGbps *float32 `mandatory:"false" json:"maxInGbps"` + + // The default amount of networking bandwidth per OCPU, in gigabits per second. + DefaultPerOcpuInGbps *float32 `mandatory:"false" json:"defaultPerOcpuInGbps"` +} + +func (m ShapeNetworkBandwidthOptions) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m ShapeNetworkBandwidthOptions) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/shape_ocpu_options.go b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/shape_ocpu_options.go new file mode 100644 index 00000000000..8754e981201 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/shape_ocpu_options.go @@ -0,0 +1,44 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Container Engine for Kubernetes API +// +// API for the Container Engine for Kubernetes service. Use this API to build, deploy, +// and manage cloud-native applications. For more information, see +// Overview of Container Engine for Kubernetes (https://docs.cloud.oracle.com/iaas/Content/ContEng/Concepts/contengoverview.htm). +// + +package containerengine + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// ShapeOcpuOptions Properties of OCPUs. +type ShapeOcpuOptions struct { + + // The minimum number of OCPUs. + Min *float32 `mandatory:"false" json:"min"` + + // The maximum number of OCPUs. + Max *float32 `mandatory:"false" json:"max"` +} + +func (m ShapeOcpuOptions) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m ShapeOcpuOptions) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/taint.go b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/taint.go new file mode 100644 index 00000000000..f600899b9f7 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/taint.go @@ -0,0 +1,47 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Container Engine for Kubernetes API +// +// API for the Container Engine for Kubernetes service. Use this API to build, deploy, +// and manage cloud-native applications. For more information, see +// Overview of Container Engine for Kubernetes (https://docs.cloud.oracle.com/iaas/Content/ContEng/Concepts/contengoverview.htm). +// + +package containerengine + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// Taint taints +type Taint struct { + + // The key of the pair. + Key *string `mandatory:"false" json:"key"` + + // The value of the pair. + Value *string `mandatory:"false" json:"value"` + + // The effect of the pair. + Effect *string `mandatory:"false" json:"effect"` +} + +func (m Taint) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m Taint) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/update_addon_details.go b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/update_addon_details.go new file mode 100644 index 00000000000..4494352acc9 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/update_addon_details.go @@ -0,0 +1,44 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Container Engine for Kubernetes API +// +// API for the Container Engine for Kubernetes service. Use this API to build, deploy, +// and manage cloud-native applications. For more information, see +// Overview of Container Engine for Kubernetes (https://docs.cloud.oracle.com/iaas/Content/ContEng/Concepts/contengoverview.htm). +// + +package containerengine + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UpdateAddonDetails The properties that define to update addon details. +type UpdateAddonDetails struct { + + // The version of the installed addon. + Version *string `mandatory:"false" json:"version"` + + // Addon configuration details. + Configurations []AddonConfiguration `mandatory:"false" json:"configurations"` +} + +func (m UpdateAddonDetails) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UpdateAddonDetails) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/update_addon_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/update_addon_request_response.go new file mode 100644 index 00000000000..4434927af74 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/update_addon_request_response.go @@ -0,0 +1,101 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package containerengine + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// UpdateAddonRequest wrapper for the UpdateAddon operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/containerengine/UpdateAddon.go.html to see an example of how to use UpdateAddonRequest. +type UpdateAddonRequest struct { + + // The OCID of the cluster. + ClusterId *string `mandatory:"true" contributesTo:"path" name:"clusterId"` + + // The name of the addon. + AddonName *string `mandatory:"true" contributesTo:"path" name:"addonName"` + + // The details of the addon to be updated. + UpdateAddonDetails `contributesTo:"body"` + + // For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match` + // parameter to the value of the etag from a previous GET or POST response for that resource. The resource + // will be updated or deleted only if the etag you provide matches the resource's current etag value. + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // Unique Oracle-assigned identifier for the request. If you need to contact + // Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request UpdateAddonRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request UpdateAddonRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request UpdateAddonRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request UpdateAddonRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request UpdateAddonRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// UpdateAddonResponse wrapper for the UpdateAddon operation +type UpdateAddonResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The OCID of the work request handling the operation. + OpcWorkRequestId *string `presentIn:"header" name:"opc-work-request-id"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response UpdateAddonResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response UpdateAddonResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/update_cluster_details.go b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/update_cluster_details.go index f3e179d0bd1..b9eb342ab9b 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/update_cluster_details.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/update_cluster_details.go @@ -42,6 +42,9 @@ type UpdateClusterDetails struct { // one or more kms keys, the policy will ensure all images deployed has been signed with the key(s) // attached to the policy. ImagePolicyConfig *UpdateImagePolicyConfigDetails `mandatory:"false" json:"imagePolicyConfig"` + + // Type of cluster + Type ClusterTypeEnum `mandatory:"false" json:"type,omitempty"` } func (m UpdateClusterDetails) String() string { @@ -54,6 +57,9 @@ func (m UpdateClusterDetails) String() string { func (m UpdateClusterDetails) ValidateEnumValue() (bool, error) { errMessage := []string{} + if _, ok := GetMappingClusterTypeEnum(string(m.Type)); !ok && m.Type != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Type: %s. Supported values are: %s.", m.Type, strings.Join(GetClusterTypeEnumStringValues(), ","))) + } if len(errMessage) > 0 { return true, fmt.Errorf(strings.Join(errMessage, "\n")) } diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/update_virtual_node_details.go b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/update_virtual_node_details.go new file mode 100644 index 00000000000..e6189fe89d9 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/update_virtual_node_details.go @@ -0,0 +1,44 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Container Engine for Kubernetes API +// +// API for the Container Engine for Kubernetes service. Use this API to build, deploy, +// and manage cloud-native applications. For more information, see +// Overview of Container Engine for Kubernetes (https://docs.cloud.oracle.com/iaas/Content/ContEng/Concepts/contengoverview.htm). +// + +package containerengine + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UpdateVirtualNodeDetails The properties that define a request to update a virtual node. +type UpdateVirtualNodeDetails struct { + + // The state of the Virtual Node. + LifecycleState VirtualNodeLifecycleStateEnum `mandatory:"false" json:"lifecycleState,omitempty"` +} + +func (m UpdateVirtualNodeDetails) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UpdateVirtualNodeDetails) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if _, ok := GetMappingVirtualNodeLifecycleStateEnum(string(m.LifecycleState)); !ok && m.LifecycleState != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for LifecycleState: %s. Supported values are: %s.", m.LifecycleState, strings.Join(GetVirtualNodeLifecycleStateEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/update_virtual_node_pool_details.go b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/update_virtual_node_pool_details.go new file mode 100644 index 00000000000..04ccfe2be3b --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/update_virtual_node_pool_details.go @@ -0,0 +1,71 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Container Engine for Kubernetes API +// +// API for the Container Engine for Kubernetes service. Use this API to build, deploy, +// and manage cloud-native applications. For more information, see +// Overview of Container Engine for Kubernetes (https://docs.cloud.oracle.com/iaas/Content/ContEng/Concepts/contengoverview.htm). +// + +package containerengine + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UpdateVirtualNodePoolDetails The properties that define a request to update a virtual node pool. +type UpdateVirtualNodePoolDetails struct { + + // Display name of the virtual node pool. This is a non-unique value. + DisplayName *string `mandatory:"false" json:"displayName"` + + // Initial labels that will be added to the Kubernetes Virtual Node object when it registers. + InitialVirtualNodeLabels []InitialVirtualNodeLabel `mandatory:"false" json:"initialVirtualNodeLabels"` + + // A taint is a collection of . These taints will be applied to the Virtual Nodes of this Virtual Node Pool for Kubernetes scheduling. + Taints []Taint `mandatory:"false" json:"taints"` + + // The number of Virtual Nodes that should be in the Virtual Node Pool. The placement configurations determine where these virtual nodes are placed. + Size *int `mandatory:"false" json:"size"` + + // The list of placement configurations which determines where Virtual Nodes will be provisioned across as it relates to the subnet and availability domains. The size attribute determines how many we evenly spread across these placement configurations + PlacementConfigurations []PlacementConfiguration `mandatory:"false" json:"placementConfigurations"` + + // List of network security group id's applied to the Virtual Node VNIC. + NsgIds []string `mandatory:"false" json:"nsgIds"` + + // The pod configuration for pods run on virtual nodes of this virtual node pool. + PodConfiguration *PodConfiguration `mandatory:"false" json:"podConfiguration"` + + // 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/Content/General/Concepts/resourcetags.htm). + // Example: `{"Department": "Finance"}` + FreeformTags map[string]string `mandatory:"false" json:"freeformTags"` + + // 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/Content/General/Concepts/resourcetags.htm). + // Example: `{"Operations": {"CostCenter": "42"}}` + DefinedTags map[string]map[string]interface{} `mandatory:"false" json:"definedTags"` + + VirtualNodeTags *VirtualNodeTags `mandatory:"false" json:"virtualNodeTags"` +} + +func (m UpdateVirtualNodePoolDetails) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UpdateVirtualNodePoolDetails) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/update_virtual_node_pool_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/update_virtual_node_pool_request_response.go new file mode 100644 index 00000000000..510ead53ef8 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/update_virtual_node_pool_request_response.go @@ -0,0 +1,98 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package containerengine + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// UpdateVirtualNodePoolRequest wrapper for the UpdateVirtualNodePool operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/containerengine/UpdateVirtualNodePool.go.html to see an example of how to use UpdateVirtualNodePoolRequest. +type UpdateVirtualNodePoolRequest struct { + + // The OCID of the virtual node pool. + VirtualNodePoolId *string `mandatory:"true" contributesTo:"path" name:"virtualNodePoolId"` + + // The fields to update in a virtual node pool. + UpdateVirtualNodePoolDetails `contributesTo:"body"` + + // For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match` + // parameter to the value of the etag from a previous GET or POST response for that resource. The resource + // will be updated or deleted only if the etag you provide matches the resource's current etag value. + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // Unique Oracle-assigned identifier for the request. If you need to contact + // Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request UpdateVirtualNodePoolRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request UpdateVirtualNodePoolRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request UpdateVirtualNodePoolRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request UpdateVirtualNodePoolRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request UpdateVirtualNodePoolRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// UpdateVirtualNodePoolResponse wrapper for the UpdateVirtualNodePool operation +type UpdateVirtualNodePoolResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The OCID of the work request handling the operation. + OpcWorkRequestId *string `presentIn:"header" name:"opc-work-request-id"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response UpdateVirtualNodePoolResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response UpdateVirtualNodePoolResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/virtual_node.go b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/virtual_node.go new file mode 100644 index 00000000000..f791279f04c --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/virtual_node.go @@ -0,0 +1,94 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Container Engine for Kubernetes API +// +// API for the Container Engine for Kubernetes service. Use this API to build, deploy, +// and manage cloud-native applications. For more information, see +// Overview of Container Engine for Kubernetes (https://docs.cloud.oracle.com/iaas/Content/ContEng/Concepts/contengoverview.htm). +// + +package containerengine + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// VirtualNode The properties that define a virtual node. +type VirtualNode struct { + + // The ocid of the virtual node. + Id *string `mandatory:"true" json:"id"` + + // The name of the virtual node. + DisplayName *string `mandatory:"true" json:"displayName"` + + // The ocid of the virtual node pool this virtual node belongs to. + VirtualNodePoolId *string `mandatory:"true" json:"virtualNodePoolId"` + + // The version of Kubernetes this virtual node is running. + KubernetesVersion *string `mandatory:"false" json:"kubernetesVersion"` + + // The name of the availability domain in which this virtual node is placed + AvailabilityDomain *string `mandatory:"false" json:"availabilityDomain"` + + // The fault domain of this virtual node. + FaultDomain *string `mandatory:"false" json:"faultDomain"` + + // The OCID of the subnet in which this Virtual Node is placed. + SubnetId *string `mandatory:"false" json:"subnetId"` + + // NSG Ids applied to virtual node vnic. + NsgIds []string `mandatory:"false" json:"nsgIds"` + + // The private IP address of this Virtual Node. + PrivateIp *string `mandatory:"false" json:"privateIp"` + + // An error that may be associated with the virtual node. + VirtualNodeError *string `mandatory:"false" json:"virtualNodeError"` + + // The state of the Virtual Node. + LifecycleState VirtualNodeLifecycleStateEnum `mandatory:"false" json:"lifecycleState,omitempty"` + + // Details about the state of the Virtual Node. + LifecycleDetails *string `mandatory:"false" json:"lifecycleDetails"` + + // The time at which the virtual node was created. + TimeCreated *common.SDKTime `mandatory:"false" json:"timeCreated"` + + // 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/Content/General/Concepts/resourcetags.htm). + // Example: `{"Department": "Finance"}` + FreeformTags map[string]string `mandatory:"false" json:"freeformTags"` + + // 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/Content/General/Concepts/resourcetags.htm). + // Example: `{"Operations": {"CostCenter": "42"}}` + DefinedTags map[string]map[string]interface{} `mandatory:"false" json:"definedTags"` + + // Usage of system tag keys. These predefined keys are scoped to namespaces. + // Example: `{"orcl-cloud": {"free-tier-retained": "true"}}` + SystemTags map[string]map[string]interface{} `mandatory:"false" json:"systemTags"` +} + +func (m VirtualNode) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m VirtualNode) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if _, ok := GetMappingVirtualNodeLifecycleStateEnum(string(m.LifecycleState)); !ok && m.LifecycleState != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for LifecycleState: %s. Supported values are: %s.", m.LifecycleState, strings.Join(GetVirtualNodeLifecycleStateEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/virtual_node_lifecycle_state.go b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/virtual_node_lifecycle_state.go new file mode 100644 index 00000000000..979301ec05e --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/virtual_node_lifecycle_state.go @@ -0,0 +1,78 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Container Engine for Kubernetes API +// +// API for the Container Engine for Kubernetes service. Use this API to build, deploy, +// and manage cloud-native applications. For more information, see +// Overview of Container Engine for Kubernetes (https://docs.cloud.oracle.com/iaas/Content/ContEng/Concepts/contengoverview.htm). +// + +package containerengine + +import ( + "strings" +) + +// VirtualNodeLifecycleStateEnum Enum with underlying type: string +type VirtualNodeLifecycleStateEnum string + +// Set of constants representing the allowable values for VirtualNodeLifecycleStateEnum +const ( + VirtualNodeLifecycleStateCreating VirtualNodeLifecycleStateEnum = "CREATING" + VirtualNodeLifecycleStateActive VirtualNodeLifecycleStateEnum = "ACTIVE" + VirtualNodeLifecycleStateUpdating VirtualNodeLifecycleStateEnum = "UPDATING" + VirtualNodeLifecycleStateDeleting VirtualNodeLifecycleStateEnum = "DELETING" + VirtualNodeLifecycleStateDeleted VirtualNodeLifecycleStateEnum = "DELETED" + VirtualNodeLifecycleStateFailed VirtualNodeLifecycleStateEnum = "FAILED" + VirtualNodeLifecycleStateNeedsAttention VirtualNodeLifecycleStateEnum = "NEEDS_ATTENTION" +) + +var mappingVirtualNodeLifecycleStateEnum = map[string]VirtualNodeLifecycleStateEnum{ + "CREATING": VirtualNodeLifecycleStateCreating, + "ACTIVE": VirtualNodeLifecycleStateActive, + "UPDATING": VirtualNodeLifecycleStateUpdating, + "DELETING": VirtualNodeLifecycleStateDeleting, + "DELETED": VirtualNodeLifecycleStateDeleted, + "FAILED": VirtualNodeLifecycleStateFailed, + "NEEDS_ATTENTION": VirtualNodeLifecycleStateNeedsAttention, +} + +var mappingVirtualNodeLifecycleStateEnumLowerCase = map[string]VirtualNodeLifecycleStateEnum{ + "creating": VirtualNodeLifecycleStateCreating, + "active": VirtualNodeLifecycleStateActive, + "updating": VirtualNodeLifecycleStateUpdating, + "deleting": VirtualNodeLifecycleStateDeleting, + "deleted": VirtualNodeLifecycleStateDeleted, + "failed": VirtualNodeLifecycleStateFailed, + "needs_attention": VirtualNodeLifecycleStateNeedsAttention, +} + +// GetVirtualNodeLifecycleStateEnumValues Enumerates the set of values for VirtualNodeLifecycleStateEnum +func GetVirtualNodeLifecycleStateEnumValues() []VirtualNodeLifecycleStateEnum { + values := make([]VirtualNodeLifecycleStateEnum, 0) + for _, v := range mappingVirtualNodeLifecycleStateEnum { + values = append(values, v) + } + return values +} + +// GetVirtualNodeLifecycleStateEnumStringValues Enumerates the set of values in String for VirtualNodeLifecycleStateEnum +func GetVirtualNodeLifecycleStateEnumStringValues() []string { + return []string{ + "CREATING", + "ACTIVE", + "UPDATING", + "DELETING", + "DELETED", + "FAILED", + "NEEDS_ATTENTION", + } +} + +// GetMappingVirtualNodeLifecycleStateEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingVirtualNodeLifecycleStateEnum(val string) (VirtualNodeLifecycleStateEnum, bool) { + enum, ok := mappingVirtualNodeLifecycleStateEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/virtual_node_pool.go b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/virtual_node_pool.go new file mode 100644 index 00000000000..12bf3075713 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/virtual_node_pool.go @@ -0,0 +1,102 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Container Engine for Kubernetes API +// +// API for the Container Engine for Kubernetes service. Use this API to build, deploy, +// and manage cloud-native applications. For more information, see +// Overview of Container Engine for Kubernetes (https://docs.cloud.oracle.com/iaas/Content/ContEng/Concepts/contengoverview.htm). +// + +package containerengine + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// VirtualNodePool A pool of virtual nodes attached to a cluster. +type VirtualNodePool struct { + + // The OCID of the virtual node pool. + Id *string `mandatory:"true" json:"id"` + + // Compartment of the virtual node pool. + CompartmentId *string `mandatory:"true" json:"compartmentId"` + + // The cluster the virtual node pool is associated with. A virtual node pool can only be associated with one cluster. + ClusterId *string `mandatory:"true" json:"clusterId"` + + // Display name of the virtual node pool. This is a non-unique value. + DisplayName *string `mandatory:"true" json:"displayName"` + + // The version of Kubernetes running on the nodes in the node pool. + KubernetesVersion *string `mandatory:"true" json:"kubernetesVersion"` + + // The list of placement configurations which determines where Virtual Nodes will be provisioned across as it relates to the subnet and availability domains. The size attribute determines how many we evenly spread across these placement configurations + PlacementConfigurations []PlacementConfiguration `mandatory:"true" json:"placementConfigurations"` + + // Initial labels that will be added to the Kubernetes Virtual Node object when it registers. This is the same as virtualNodePool resources. + InitialVirtualNodeLabels []InitialVirtualNodeLabel `mandatory:"false" json:"initialVirtualNodeLabels"` + + // A taint is a collection of . These taints will be applied to the Virtual Nodes of this Virtual Node Pool for Kubernetes scheduling. + Taints []Taint `mandatory:"false" json:"taints"` + + // The number of Virtual Nodes that should be in the Virtual Node Pool. The placement configurations determine where these virtual nodes are placed. + Size *int `mandatory:"false" json:"size"` + + // List of network security group id's applied to the Virtual Node VNIC. + NsgIds []string `mandatory:"false" json:"nsgIds"` + + // The pod configuration for pods run on virtual nodes of this virtual node pool. + PodConfiguration *PodConfiguration `mandatory:"false" json:"podConfiguration"` + + // The state of the Virtual Node Pool. + LifecycleState VirtualNodePoolLifecycleStateEnum `mandatory:"false" json:"lifecycleState,omitempty"` + + // Details about the state of the Virtual Node Pool. + LifecycleDetails *string `mandatory:"false" json:"lifecycleDetails"` + + // The time the virtual node pool was created. + TimeCreated *common.SDKTime `mandatory:"false" json:"timeCreated"` + + // The time the virtual node pool was updated. + TimeUpdated *common.SDKTime `mandatory:"false" json:"timeUpdated"` + + // 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/Content/General/Concepts/resourcetags.htm). + // Example: `{"Department": "Finance"}` + FreeformTags map[string]string `mandatory:"false" json:"freeformTags"` + + // 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/Content/General/Concepts/resourcetags.htm). + // Example: `{"Operations": {"CostCenter": "42"}}` + DefinedTags map[string]map[string]interface{} `mandatory:"false" json:"definedTags"` + + // Usage of system tag keys. These predefined keys are scoped to namespaces. + // Example: `{"orcl-cloud": {"free-tier-retained": "true"}}` + SystemTags map[string]map[string]interface{} `mandatory:"false" json:"systemTags"` + + VirtualNodeTags *VirtualNodeTags `mandatory:"false" json:"virtualNodeTags"` +} + +func (m VirtualNodePool) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m VirtualNodePool) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if _, ok := GetMappingVirtualNodePoolLifecycleStateEnum(string(m.LifecycleState)); !ok && m.LifecycleState != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for LifecycleState: %s. Supported values are: %s.", m.LifecycleState, strings.Join(GetVirtualNodePoolLifecycleStateEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/virtual_node_pool_lifecycle_state.go b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/virtual_node_pool_lifecycle_state.go new file mode 100644 index 00000000000..3aa9aee03c0 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/virtual_node_pool_lifecycle_state.go @@ -0,0 +1,78 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Container Engine for Kubernetes API +// +// API for the Container Engine for Kubernetes service. Use this API to build, deploy, +// and manage cloud-native applications. For more information, see +// Overview of Container Engine for Kubernetes (https://docs.cloud.oracle.com/iaas/Content/ContEng/Concepts/contengoverview.htm). +// + +package containerengine + +import ( + "strings" +) + +// VirtualNodePoolLifecycleStateEnum Enum with underlying type: string +type VirtualNodePoolLifecycleStateEnum string + +// Set of constants representing the allowable values for VirtualNodePoolLifecycleStateEnum +const ( + VirtualNodePoolLifecycleStateCreating VirtualNodePoolLifecycleStateEnum = "CREATING" + VirtualNodePoolLifecycleStateActive VirtualNodePoolLifecycleStateEnum = "ACTIVE" + VirtualNodePoolLifecycleStateUpdating VirtualNodePoolLifecycleStateEnum = "UPDATING" + VirtualNodePoolLifecycleStateDeleting VirtualNodePoolLifecycleStateEnum = "DELETING" + VirtualNodePoolLifecycleStateDeleted VirtualNodePoolLifecycleStateEnum = "DELETED" + VirtualNodePoolLifecycleStateFailed VirtualNodePoolLifecycleStateEnum = "FAILED" + VirtualNodePoolLifecycleStateNeedsAttention VirtualNodePoolLifecycleStateEnum = "NEEDS_ATTENTION" +) + +var mappingVirtualNodePoolLifecycleStateEnum = map[string]VirtualNodePoolLifecycleStateEnum{ + "CREATING": VirtualNodePoolLifecycleStateCreating, + "ACTIVE": VirtualNodePoolLifecycleStateActive, + "UPDATING": VirtualNodePoolLifecycleStateUpdating, + "DELETING": VirtualNodePoolLifecycleStateDeleting, + "DELETED": VirtualNodePoolLifecycleStateDeleted, + "FAILED": VirtualNodePoolLifecycleStateFailed, + "NEEDS_ATTENTION": VirtualNodePoolLifecycleStateNeedsAttention, +} + +var mappingVirtualNodePoolLifecycleStateEnumLowerCase = map[string]VirtualNodePoolLifecycleStateEnum{ + "creating": VirtualNodePoolLifecycleStateCreating, + "active": VirtualNodePoolLifecycleStateActive, + "updating": VirtualNodePoolLifecycleStateUpdating, + "deleting": VirtualNodePoolLifecycleStateDeleting, + "deleted": VirtualNodePoolLifecycleStateDeleted, + "failed": VirtualNodePoolLifecycleStateFailed, + "needs_attention": VirtualNodePoolLifecycleStateNeedsAttention, +} + +// GetVirtualNodePoolLifecycleStateEnumValues Enumerates the set of values for VirtualNodePoolLifecycleStateEnum +func GetVirtualNodePoolLifecycleStateEnumValues() []VirtualNodePoolLifecycleStateEnum { + values := make([]VirtualNodePoolLifecycleStateEnum, 0) + for _, v := range mappingVirtualNodePoolLifecycleStateEnum { + values = append(values, v) + } + return values +} + +// GetVirtualNodePoolLifecycleStateEnumStringValues Enumerates the set of values in String for VirtualNodePoolLifecycleStateEnum +func GetVirtualNodePoolLifecycleStateEnumStringValues() []string { + return []string{ + "CREATING", + "ACTIVE", + "UPDATING", + "DELETING", + "DELETED", + "FAILED", + "NEEDS_ATTENTION", + } +} + +// GetMappingVirtualNodePoolLifecycleStateEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingVirtualNodePoolLifecycleStateEnum(val string) (VirtualNodePoolLifecycleStateEnum, bool) { + enum, ok := mappingVirtualNodePoolLifecycleStateEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/virtual_node_pool_summary.go b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/virtual_node_pool_summary.go new file mode 100644 index 00000000000..2624657ca62 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/virtual_node_pool_summary.go @@ -0,0 +1,102 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Container Engine for Kubernetes API +// +// API for the Container Engine for Kubernetes service. Use this API to build, deploy, +// and manage cloud-native applications. For more information, see +// Overview of Container Engine for Kubernetes (https://docs.cloud.oracle.com/iaas/Content/ContEng/Concepts/contengoverview.htm). +// + +package containerengine + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// VirtualNodePoolSummary The properties that define a virtual node pool summary. +type VirtualNodePoolSummary struct { + + // The OCID of the virtual node pool. + Id *string `mandatory:"true" json:"id"` + + // Compartment of the virtual node pool. + CompartmentId *string `mandatory:"true" json:"compartmentId"` + + // The cluster the virtual node pool is associated with. A virtual node pool can only be associated with one cluster. + ClusterId *string `mandatory:"true" json:"clusterId"` + + // Display name of the virtual node pool. This is a non-unique value. + DisplayName *string `mandatory:"true" json:"displayName"` + + // The version of Kubernetes running on the nodes in the node pool. + KubernetesVersion *string `mandatory:"true" json:"kubernetesVersion"` + + // The list of placement configurations which determines where Virtual Nodes will be provisioned across as it relates to the subnet and availability domains. The size attribute determines how many we evenly spread across these placement configurations + PlacementConfigurations []PlacementConfiguration `mandatory:"true" json:"placementConfigurations"` + + // Initial labels that will be added to the Kubernetes Virtual Node object when it registers. This is the same as virtualNodePool resources. + InitialVirtualNodeLabels []InitialVirtualNodeLabel `mandatory:"false" json:"initialVirtualNodeLabels"` + + // A taint is a collection of . These taints will be applied to the Virtual Nodes of this Virtual Node Pool for Kubernetes scheduling. + Taints []Taint `mandatory:"false" json:"taints"` + + // The number of Virtual Nodes that should be in the Virtual Node Pool. The placement configurations determine where these virtual nodes are placed. + Size *int `mandatory:"false" json:"size"` + + // List of network security group id's applied to the Virtual Node VNIC. + NsgIds []string `mandatory:"false" json:"nsgIds"` + + // The pod configuration for pods run on virtual nodes of this virtual node pool. + PodConfiguration *PodConfiguration `mandatory:"false" json:"podConfiguration"` + + // The state of the Virtual Node Pool. + LifecycleState VirtualNodePoolLifecycleStateEnum `mandatory:"false" json:"lifecycleState,omitempty"` + + // Details about the state of the Virtual Node Pool. + LifecycleDetails *string `mandatory:"false" json:"lifecycleDetails"` + + // The time the virtual node pool was created. + TimeCreated *common.SDKTime `mandatory:"false" json:"timeCreated"` + + // The time the virtual node pool was updated. + TimeUpdated *common.SDKTime `mandatory:"false" json:"timeUpdated"` + + // 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/Content/General/Concepts/resourcetags.htm). + // Example: `{"Department": "Finance"}` + FreeformTags map[string]string `mandatory:"false" json:"freeformTags"` + + // 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/Content/General/Concepts/resourcetags.htm). + // Example: `{"Operations": {"CostCenter": "42"}}` + DefinedTags map[string]map[string]interface{} `mandatory:"false" json:"definedTags"` + + // Usage of system tag keys. These predefined keys are scoped to namespaces. + // Example: `{"orcl-cloud": {"free-tier-retained": "true"}}` + SystemTags map[string]map[string]interface{} `mandatory:"false" json:"systemTags"` + + VirtualNodeTags *VirtualNodeTags `mandatory:"false" json:"virtualNodeTags"` +} + +func (m VirtualNodePoolSummary) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m VirtualNodePoolSummary) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if _, ok := GetMappingVirtualNodePoolLifecycleStateEnum(string(m.LifecycleState)); !ok && m.LifecycleState != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for LifecycleState: %s. Supported values are: %s.", m.LifecycleState, strings.Join(GetVirtualNodePoolLifecycleStateEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/virtual_node_summary.go b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/virtual_node_summary.go new file mode 100644 index 00000000000..85696d1a997 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/virtual_node_summary.go @@ -0,0 +1,94 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Container Engine for Kubernetes API +// +// API for the Container Engine for Kubernetes service. Use this API to build, deploy, +// and manage cloud-native applications. For more information, see +// Overview of Container Engine for Kubernetes (https://docs.cloud.oracle.com/iaas/Content/ContEng/Concepts/contengoverview.htm). +// + +package containerengine + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// VirtualNodeSummary The properties that define a virtual node summary. +type VirtualNodeSummary struct { + + // The ocid of the virtual node. + Id *string `mandatory:"true" json:"id"` + + // The name of the virtual node. + DisplayName *string `mandatory:"true" json:"displayName"` + + // The ocid of the virtual node pool this virtual node belongs to. + VirtualNodePoolId *string `mandatory:"true" json:"virtualNodePoolId"` + + // The version of Kubernetes this virtual node is running. + KubernetesVersion *string `mandatory:"false" json:"kubernetesVersion"` + + // The name of the availability domain in which this virtual node is placed + AvailabilityDomain *string `mandatory:"false" json:"availabilityDomain"` + + // The fault domain of this virtual node. + FaultDomain *string `mandatory:"false" json:"faultDomain"` + + // The OCID of the subnet in which this Virtual Node is placed. + SubnetId *string `mandatory:"false" json:"subnetId"` + + // NSG Ids applied to virtual node vnic. + NsgIds []string `mandatory:"false" json:"nsgIds"` + + // The private IP address of this Virtual Node. + PrivateIp *string `mandatory:"false" json:"privateIp"` + + // An error that may be associated with the virtual node. + VirtualNodeError *string `mandatory:"false" json:"virtualNodeError"` + + // The state of the Virtual Node. + LifecycleState VirtualNodeLifecycleStateEnum `mandatory:"false" json:"lifecycleState,omitempty"` + + // Details about the state of the Virtual Node. + LifecycleDetails *string `mandatory:"false" json:"lifecycleDetails"` + + // The time at which the virtual node was created. + TimeCreated *common.SDKTime `mandatory:"false" json:"timeCreated"` + + // 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/Content/General/Concepts/resourcetags.htm). + // Example: `{"Department": "Finance"}` + FreeformTags map[string]string `mandatory:"false" json:"freeformTags"` + + // 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/Content/General/Concepts/resourcetags.htm). + // Example: `{"Operations": {"CostCenter": "42"}}` + DefinedTags map[string]map[string]interface{} `mandatory:"false" json:"definedTags"` + + // Usage of system tag keys. These predefined keys are scoped to namespaces. + // Example: `{"orcl-cloud": {"free-tier-retained": "true"}}` + SystemTags map[string]map[string]interface{} `mandatory:"false" json:"systemTags"` +} + +func (m VirtualNodeSummary) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m VirtualNodeSummary) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if _, ok := GetMappingVirtualNodeLifecycleStateEnum(string(m.LifecycleState)); !ok && m.LifecycleState != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for LifecycleState: %s. Supported values are: %s.", m.LifecycleState, strings.Join(GetVirtualNodeLifecycleStateEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/virtual_node_tags.go b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/virtual_node_tags.go new file mode 100644 index 00000000000..33ebbbca45b --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/virtual_node_tags.go @@ -0,0 +1,48 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Container Engine for Kubernetes API +// +// API for the Container Engine for Kubernetes service. Use this API to build, deploy, +// and manage cloud-native applications. For more information, see +// Overview of Container Engine for Kubernetes (https://docs.cloud.oracle.com/iaas/Content/ContEng/Concepts/contengoverview.htm). +// + +package containerengine + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// VirtualNodeTags The tags associated to the virtual nodes in this virtual node pool. +type VirtualNodeTags struct { + + // 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/Content/General/Concepts/resourcetags.htm). + // Example: `{"Department": "Finance"}` + FreeformTags map[string]string `mandatory:"false" json:"freeformTags"` + + // 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/Content/General/Concepts/resourcetags.htm). + // Example: `{"Operations": {"CostCenter": "42"}}` + DefinedTags map[string]map[string]interface{} `mandatory:"false" json:"definedTags"` +} + +func (m VirtualNodeTags) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m VirtualNodeTags) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/work_request_operation_type.go b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/work_request_operation_type.go index db2e50658df..9d31614d7aa 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/work_request_operation_type.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/work_request_operation_type.go @@ -20,36 +20,60 @@ type WorkRequestOperationTypeEnum string // Set of constants representing the allowable values for WorkRequestOperationTypeEnum const ( - WorkRequestOperationTypeClusterCreate WorkRequestOperationTypeEnum = "CLUSTER_CREATE" - WorkRequestOperationTypeClusterUpdate WorkRequestOperationTypeEnum = "CLUSTER_UPDATE" - WorkRequestOperationTypeClusterDelete WorkRequestOperationTypeEnum = "CLUSTER_DELETE" - WorkRequestOperationTypeNodepoolCreate WorkRequestOperationTypeEnum = "NODEPOOL_CREATE" - WorkRequestOperationTypeNodepoolUpdate WorkRequestOperationTypeEnum = "NODEPOOL_UPDATE" - WorkRequestOperationTypeNodepoolDelete WorkRequestOperationTypeEnum = "NODEPOOL_DELETE" - WorkRequestOperationTypeNodepoolReconcile WorkRequestOperationTypeEnum = "NODEPOOL_RECONCILE" - WorkRequestOperationTypeWorkrequestCancel WorkRequestOperationTypeEnum = "WORKREQUEST_CANCEL" + WorkRequestOperationTypeClusterCreate WorkRequestOperationTypeEnum = "CLUSTER_CREATE" + WorkRequestOperationTypeClusterUpdate WorkRequestOperationTypeEnum = "CLUSTER_UPDATE" + WorkRequestOperationTypeClusterDelete WorkRequestOperationTypeEnum = "CLUSTER_DELETE" + WorkRequestOperationTypeNodepoolCreate WorkRequestOperationTypeEnum = "NODEPOOL_CREATE" + WorkRequestOperationTypeNodepoolUpdate WorkRequestOperationTypeEnum = "NODEPOOL_UPDATE" + WorkRequestOperationTypeNodepoolDelete WorkRequestOperationTypeEnum = "NODEPOOL_DELETE" + WorkRequestOperationTypeNodepoolReconcile WorkRequestOperationTypeEnum = "NODEPOOL_RECONCILE" + WorkRequestOperationTypeWorkrequestCancel WorkRequestOperationTypeEnum = "WORKREQUEST_CANCEL" + WorkRequestOperationTypeVirtualnodepoolCreate WorkRequestOperationTypeEnum = "VIRTUALNODEPOOL_CREATE" + WorkRequestOperationTypeVirtualnodepoolUpdate WorkRequestOperationTypeEnum = "VIRTUALNODEPOOL_UPDATE" + WorkRequestOperationTypeVirtualnodepoolDelete WorkRequestOperationTypeEnum = "VIRTUALNODEPOOL_DELETE" + WorkRequestOperationTypeVirtualnodeDelete WorkRequestOperationTypeEnum = "VIRTUALNODE_DELETE" + WorkRequestOperationTypeEnableAddon WorkRequestOperationTypeEnum = "ENABLE_ADDON" + WorkRequestOperationTypeUpdateAddon WorkRequestOperationTypeEnum = "UPDATE_ADDON" + WorkRequestOperationTypeDisableAddon WorkRequestOperationTypeEnum = "DISABLE_ADDON" + WorkRequestOperationTypeReconcileAddon WorkRequestOperationTypeEnum = "RECONCILE_ADDON" ) var mappingWorkRequestOperationTypeEnum = map[string]WorkRequestOperationTypeEnum{ - "CLUSTER_CREATE": WorkRequestOperationTypeClusterCreate, - "CLUSTER_UPDATE": WorkRequestOperationTypeClusterUpdate, - "CLUSTER_DELETE": WorkRequestOperationTypeClusterDelete, - "NODEPOOL_CREATE": WorkRequestOperationTypeNodepoolCreate, - "NODEPOOL_UPDATE": WorkRequestOperationTypeNodepoolUpdate, - "NODEPOOL_DELETE": WorkRequestOperationTypeNodepoolDelete, - "NODEPOOL_RECONCILE": WorkRequestOperationTypeNodepoolReconcile, - "WORKREQUEST_CANCEL": WorkRequestOperationTypeWorkrequestCancel, + "CLUSTER_CREATE": WorkRequestOperationTypeClusterCreate, + "CLUSTER_UPDATE": WorkRequestOperationTypeClusterUpdate, + "CLUSTER_DELETE": WorkRequestOperationTypeClusterDelete, + "NODEPOOL_CREATE": WorkRequestOperationTypeNodepoolCreate, + "NODEPOOL_UPDATE": WorkRequestOperationTypeNodepoolUpdate, + "NODEPOOL_DELETE": WorkRequestOperationTypeNodepoolDelete, + "NODEPOOL_RECONCILE": WorkRequestOperationTypeNodepoolReconcile, + "WORKREQUEST_CANCEL": WorkRequestOperationTypeWorkrequestCancel, + "VIRTUALNODEPOOL_CREATE": WorkRequestOperationTypeVirtualnodepoolCreate, + "VIRTUALNODEPOOL_UPDATE": WorkRequestOperationTypeVirtualnodepoolUpdate, + "VIRTUALNODEPOOL_DELETE": WorkRequestOperationTypeVirtualnodepoolDelete, + "VIRTUALNODE_DELETE": WorkRequestOperationTypeVirtualnodeDelete, + "ENABLE_ADDON": WorkRequestOperationTypeEnableAddon, + "UPDATE_ADDON": WorkRequestOperationTypeUpdateAddon, + "DISABLE_ADDON": WorkRequestOperationTypeDisableAddon, + "RECONCILE_ADDON": WorkRequestOperationTypeReconcileAddon, } var mappingWorkRequestOperationTypeEnumLowerCase = map[string]WorkRequestOperationTypeEnum{ - "cluster_create": WorkRequestOperationTypeClusterCreate, - "cluster_update": WorkRequestOperationTypeClusterUpdate, - "cluster_delete": WorkRequestOperationTypeClusterDelete, - "nodepool_create": WorkRequestOperationTypeNodepoolCreate, - "nodepool_update": WorkRequestOperationTypeNodepoolUpdate, - "nodepool_delete": WorkRequestOperationTypeNodepoolDelete, - "nodepool_reconcile": WorkRequestOperationTypeNodepoolReconcile, - "workrequest_cancel": WorkRequestOperationTypeWorkrequestCancel, + "cluster_create": WorkRequestOperationTypeClusterCreate, + "cluster_update": WorkRequestOperationTypeClusterUpdate, + "cluster_delete": WorkRequestOperationTypeClusterDelete, + "nodepool_create": WorkRequestOperationTypeNodepoolCreate, + "nodepool_update": WorkRequestOperationTypeNodepoolUpdate, + "nodepool_delete": WorkRequestOperationTypeNodepoolDelete, + "nodepool_reconcile": WorkRequestOperationTypeNodepoolReconcile, + "workrequest_cancel": WorkRequestOperationTypeWorkrequestCancel, + "virtualnodepool_create": WorkRequestOperationTypeVirtualnodepoolCreate, + "virtualnodepool_update": WorkRequestOperationTypeVirtualnodepoolUpdate, + "virtualnodepool_delete": WorkRequestOperationTypeVirtualnodepoolDelete, + "virtualnode_delete": WorkRequestOperationTypeVirtualnodeDelete, + "enable_addon": WorkRequestOperationTypeEnableAddon, + "update_addon": WorkRequestOperationTypeUpdateAddon, + "disable_addon": WorkRequestOperationTypeDisableAddon, + "reconcile_addon": WorkRequestOperationTypeReconcileAddon, } // GetWorkRequestOperationTypeEnumValues Enumerates the set of values for WorkRequestOperationTypeEnum @@ -72,6 +96,14 @@ func GetWorkRequestOperationTypeEnumStringValues() []string { "NODEPOOL_DELETE", "NODEPOOL_RECONCILE", "WORKREQUEST_CANCEL", + "VIRTUALNODEPOOL_CREATE", + "VIRTUALNODEPOOL_UPDATE", + "VIRTUALNODEPOOL_DELETE", + "VIRTUALNODE_DELETE", + "ENABLE_ADDON", + "UPDATE_ADDON", + "DISABLE_ADDON", + "RECONCILE_ADDON", } } diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/work_request_summary.go b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/work_request_summary.go index c652a200086..3dff6354d67 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/work_request_summary.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/containerengine/work_request_summary.go @@ -75,14 +75,22 @@ type WorkRequestSummaryOperationTypeEnum = WorkRequestOperationTypeEnum // Set of constants representing the allowable values for WorkRequestOperationTypeEnum // Deprecated const ( - WorkRequestSummaryOperationTypeClusterCreate WorkRequestOperationTypeEnum = "CLUSTER_CREATE" - WorkRequestSummaryOperationTypeClusterUpdate WorkRequestOperationTypeEnum = "CLUSTER_UPDATE" - WorkRequestSummaryOperationTypeClusterDelete WorkRequestOperationTypeEnum = "CLUSTER_DELETE" - WorkRequestSummaryOperationTypeNodepoolCreate WorkRequestOperationTypeEnum = "NODEPOOL_CREATE" - WorkRequestSummaryOperationTypeNodepoolUpdate WorkRequestOperationTypeEnum = "NODEPOOL_UPDATE" - WorkRequestSummaryOperationTypeNodepoolDelete WorkRequestOperationTypeEnum = "NODEPOOL_DELETE" - WorkRequestSummaryOperationTypeNodepoolReconcile WorkRequestOperationTypeEnum = "NODEPOOL_RECONCILE" - WorkRequestSummaryOperationTypeWorkrequestCancel WorkRequestOperationTypeEnum = "WORKREQUEST_CANCEL" + WorkRequestSummaryOperationTypeClusterCreate WorkRequestOperationTypeEnum = "CLUSTER_CREATE" + WorkRequestSummaryOperationTypeClusterUpdate WorkRequestOperationTypeEnum = "CLUSTER_UPDATE" + WorkRequestSummaryOperationTypeClusterDelete WorkRequestOperationTypeEnum = "CLUSTER_DELETE" + WorkRequestSummaryOperationTypeNodepoolCreate WorkRequestOperationTypeEnum = "NODEPOOL_CREATE" + WorkRequestSummaryOperationTypeNodepoolUpdate WorkRequestOperationTypeEnum = "NODEPOOL_UPDATE" + WorkRequestSummaryOperationTypeNodepoolDelete WorkRequestOperationTypeEnum = "NODEPOOL_DELETE" + WorkRequestSummaryOperationTypeNodepoolReconcile WorkRequestOperationTypeEnum = "NODEPOOL_RECONCILE" + WorkRequestSummaryOperationTypeWorkrequestCancel WorkRequestOperationTypeEnum = "WORKREQUEST_CANCEL" + WorkRequestSummaryOperationTypeVirtualnodepoolCreate WorkRequestOperationTypeEnum = "VIRTUALNODEPOOL_CREATE" + WorkRequestSummaryOperationTypeVirtualnodepoolUpdate WorkRequestOperationTypeEnum = "VIRTUALNODEPOOL_UPDATE" + WorkRequestSummaryOperationTypeVirtualnodepoolDelete WorkRequestOperationTypeEnum = "VIRTUALNODEPOOL_DELETE" + WorkRequestSummaryOperationTypeVirtualnodeDelete WorkRequestOperationTypeEnum = "VIRTUALNODE_DELETE" + WorkRequestSummaryOperationTypeEnableAddon WorkRequestOperationTypeEnum = "ENABLE_ADDON" + WorkRequestSummaryOperationTypeUpdateAddon WorkRequestOperationTypeEnum = "UPDATE_ADDON" + WorkRequestSummaryOperationTypeDisableAddon WorkRequestOperationTypeEnum = "DISABLE_ADDON" + WorkRequestSummaryOperationTypeReconcileAddon WorkRequestOperationTypeEnum = "RECONCILE_ADDON" ) // GetWorkRequestSummaryOperationTypeEnumValues Enumerates the set of values for WorkRequestOperationTypeEnum diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/core/amd_milan_bm_gpu_launch_instance_platform_config.go b/vendor/github.com/oracle/oci-go-sdk/v65/core/amd_milan_bm_gpu_launch_instance_platform_config.go new file mode 100644 index 00000000000..bb0f7af167c --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/core/amd_milan_bm_gpu_launch_instance_platform_config.go @@ -0,0 +1,164 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Core Services API +// +// Use the Core Services API to manage resources such as virtual cloud networks (VCNs), +// compute instances, and block storage volumes. For more information, see the console +// documentation for the Networking (https://docs.cloud.oracle.com/iaas/Content/Network/Concepts/overview.htm), +// Compute (https://docs.cloud.oracle.com/iaas/Content/Compute/Concepts/computeoverview.htm), and +// Block Volume (https://docs.cloud.oracle.com/iaas/Content/Block/Concepts/overview.htm) services. +// The required permissions are documented in the +// Details for the Core Services (https://docs.cloud.oracle.com/iaas/Content/Identity/Reference/corepolicyreference.htm) article. +// + +package core + +import ( + "encoding/json" + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// AmdMilanBmGpuLaunchInstancePlatformConfig The platform configuration used when launching a bare metal instance with a GPU shape on the AMD Milan platform. +type AmdMilanBmGpuLaunchInstancePlatformConfig struct { + + // Whether Secure Boot is enabled on the instance. + IsSecureBootEnabled *bool `mandatory:"false" json:"isSecureBootEnabled"` + + // Whether the Trusted Platform Module (TPM) is enabled on the instance. + IsTrustedPlatformModuleEnabled *bool `mandatory:"false" json:"isTrustedPlatformModuleEnabled"` + + // Whether the Measured Boot feature is enabled on the instance. + IsMeasuredBootEnabled *bool `mandatory:"false" json:"isMeasuredBootEnabled"` + + // Whether the instance is a confidential instance. If this value is `true`, the instance is a confidential instance. The default value is `false`. + IsMemoryEncryptionEnabled *bool `mandatory:"false" json:"isMemoryEncryptionEnabled"` + + // Whether symmetric multithreading is enabled on the instance. Symmetric multithreading is also + // called simultaneous multithreading (SMT) or Intel Hyper-Threading. + // Intel and AMD processors have two hardware execution threads per core (OCPU). SMT permits multiple + // independent threads of execution, to better use the resources and increase the efficiency + // of the CPU. When multithreading is disabled, only one thread is permitted to run on each core, which + // can provide higher or more predictable performance for some workloads. + IsSymmetricMultiThreadingEnabled *bool `mandatory:"false" json:"isSymmetricMultiThreadingEnabled"` + + // Whether the Access Control Service is enabled on the instance. When enabled, + // the platform can enforce PCIe device isolation, required for VFIO device pass-through. + IsAccessControlServiceEnabled *bool `mandatory:"false" json:"isAccessControlServiceEnabled"` + + // Whether virtualization instructions are available. For example, Secure Virtual Machine for AMD shapes + // or VT-x for Intel shapes. + AreVirtualInstructionsEnabled *bool `mandatory:"false" json:"areVirtualInstructionsEnabled"` + + // Whether the input-output memory management unit is enabled. + IsInputOutputMemoryManagementUnitEnabled *bool `mandatory:"false" json:"isInputOutputMemoryManagementUnitEnabled"` + + // The number of NUMA nodes per socket (NPS). + NumaNodesPerSocket AmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnum `mandatory:"false" json:"numaNodesPerSocket,omitempty"` +} + +//GetIsSecureBootEnabled returns IsSecureBootEnabled +func (m AmdMilanBmGpuLaunchInstancePlatformConfig) GetIsSecureBootEnabled() *bool { + return m.IsSecureBootEnabled +} + +//GetIsTrustedPlatformModuleEnabled returns IsTrustedPlatformModuleEnabled +func (m AmdMilanBmGpuLaunchInstancePlatformConfig) GetIsTrustedPlatformModuleEnabled() *bool { + return m.IsTrustedPlatformModuleEnabled +} + +//GetIsMeasuredBootEnabled returns IsMeasuredBootEnabled +func (m AmdMilanBmGpuLaunchInstancePlatformConfig) GetIsMeasuredBootEnabled() *bool { + return m.IsMeasuredBootEnabled +} + +//GetIsMemoryEncryptionEnabled returns IsMemoryEncryptionEnabled +func (m AmdMilanBmGpuLaunchInstancePlatformConfig) GetIsMemoryEncryptionEnabled() *bool { + return m.IsMemoryEncryptionEnabled +} + +func (m AmdMilanBmGpuLaunchInstancePlatformConfig) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m AmdMilanBmGpuLaunchInstancePlatformConfig) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingAmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnum(string(m.NumaNodesPerSocket)); !ok && m.NumaNodesPerSocket != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for NumaNodesPerSocket: %s. Supported values are: %s.", m.NumaNodesPerSocket, strings.Join(GetAmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnumStringValues(), ","))) + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// MarshalJSON marshals to json representation +func (m AmdMilanBmGpuLaunchInstancePlatformConfig) MarshalJSON() (buff []byte, e error) { + type MarshalTypeAmdMilanBmGpuLaunchInstancePlatformConfig AmdMilanBmGpuLaunchInstancePlatformConfig + s := struct { + DiscriminatorParam string `json:"type"` + MarshalTypeAmdMilanBmGpuLaunchInstancePlatformConfig + }{ + "AMD_MILAN_BM_GPU", + (MarshalTypeAmdMilanBmGpuLaunchInstancePlatformConfig)(m), + } + + return json.Marshal(&s) +} + +// AmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnum Enum with underlying type: string +type AmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnum string + +// Set of constants representing the allowable values for AmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnum +const ( + AmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketNps0 AmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnum = "NPS0" + AmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketNps1 AmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnum = "NPS1" + AmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketNps2 AmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnum = "NPS2" + AmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketNps4 AmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnum = "NPS4" +) + +var mappingAmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnum = map[string]AmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnum{ + "NPS0": AmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketNps0, + "NPS1": AmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketNps1, + "NPS2": AmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketNps2, + "NPS4": AmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketNps4, +} + +var mappingAmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnumLowerCase = map[string]AmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnum{ + "nps0": AmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketNps0, + "nps1": AmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketNps1, + "nps2": AmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketNps2, + "nps4": AmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketNps4, +} + +// GetAmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnumValues Enumerates the set of values for AmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnum +func GetAmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnumValues() []AmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnum { + values := make([]AmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnum, 0) + for _, v := range mappingAmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnum { + values = append(values, v) + } + return values +} + +// GetAmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnumStringValues Enumerates the set of values in String for AmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnum +func GetAmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnumStringValues() []string { + return []string{ + "NPS0", + "NPS1", + "NPS2", + "NPS4", + } +} + +// GetMappingAmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingAmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnum(val string) (AmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnum, bool) { + enum, ok := mappingAmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/core/amd_milan_bm_gpu_platform_config.go b/vendor/github.com/oracle/oci-go-sdk/v65/core/amd_milan_bm_gpu_platform_config.go new file mode 100644 index 00000000000..0bbd6a9b0b3 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/core/amd_milan_bm_gpu_platform_config.go @@ -0,0 +1,165 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Core Services API +// +// Use the Core Services API to manage resources such as virtual cloud networks (VCNs), +// compute instances, and block storage volumes. For more information, see the console +// documentation for the Networking (https://docs.cloud.oracle.com/iaas/Content/Network/Concepts/overview.htm), +// Compute (https://docs.cloud.oracle.com/iaas/Content/Compute/Concepts/computeoverview.htm), and +// Block Volume (https://docs.cloud.oracle.com/iaas/Content/Block/Concepts/overview.htm) services. +// The required permissions are documented in the +// Details for the Core Services (https://docs.cloud.oracle.com/iaas/Content/Identity/Reference/corepolicyreference.htm) article. +// + +package core + +import ( + "encoding/json" + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// AmdMilanBmGpuPlatformConfig The platform configuration used when launching a bare metal GPU instance with the following shape: BM.GPU.GM4.8 +// (the AMD Milan platform). +type AmdMilanBmGpuPlatformConfig struct { + + // Whether Secure Boot is enabled on the instance. + IsSecureBootEnabled *bool `mandatory:"false" json:"isSecureBootEnabled"` + + // Whether the Trusted Platform Module (TPM) is enabled on the instance. + IsTrustedPlatformModuleEnabled *bool `mandatory:"false" json:"isTrustedPlatformModuleEnabled"` + + // Whether the Measured Boot feature is enabled on the instance. + IsMeasuredBootEnabled *bool `mandatory:"false" json:"isMeasuredBootEnabled"` + + // Whether the instance is a confidential instance. If this value is `true`, the instance is a confidential instance. The default value is `false`. + IsMemoryEncryptionEnabled *bool `mandatory:"false" json:"isMemoryEncryptionEnabled"` + + // Whether symmetric multithreading is enabled on the instance. Symmetric multithreading is also + // called simultaneous multithreading (SMT) or Intel Hyper-Threading. + // Intel and AMD processors have two hardware execution threads per core (OCPU). SMT permits multiple + // independent threads of execution, to better use the resources and increase the efficiency + // of the CPU. When multithreading is disabled, only one thread is permitted to run on each core, which + // can provide higher or more predictable performance for some workloads. + IsSymmetricMultiThreadingEnabled *bool `mandatory:"false" json:"isSymmetricMultiThreadingEnabled"` + + // Whether the Access Control Service is enabled on the instance. When enabled, + // the platform can enforce PCIe device isolation, required for VFIO device pass-through. + IsAccessControlServiceEnabled *bool `mandatory:"false" json:"isAccessControlServiceEnabled"` + + // Whether virtualization instructions are available. For example, Secure Virtual Machine for AMD shapes + // or VT-x for Intel shapes. + AreVirtualInstructionsEnabled *bool `mandatory:"false" json:"areVirtualInstructionsEnabled"` + + // Whether the input-output memory management unit is enabled. + IsInputOutputMemoryManagementUnitEnabled *bool `mandatory:"false" json:"isInputOutputMemoryManagementUnitEnabled"` + + // The number of NUMA nodes per socket (NPS). + NumaNodesPerSocket AmdMilanBmGpuPlatformConfigNumaNodesPerSocketEnum `mandatory:"false" json:"numaNodesPerSocket,omitempty"` +} + +//GetIsSecureBootEnabled returns IsSecureBootEnabled +func (m AmdMilanBmGpuPlatformConfig) GetIsSecureBootEnabled() *bool { + return m.IsSecureBootEnabled +} + +//GetIsTrustedPlatformModuleEnabled returns IsTrustedPlatformModuleEnabled +func (m AmdMilanBmGpuPlatformConfig) GetIsTrustedPlatformModuleEnabled() *bool { + return m.IsTrustedPlatformModuleEnabled +} + +//GetIsMeasuredBootEnabled returns IsMeasuredBootEnabled +func (m AmdMilanBmGpuPlatformConfig) GetIsMeasuredBootEnabled() *bool { + return m.IsMeasuredBootEnabled +} + +//GetIsMemoryEncryptionEnabled returns IsMemoryEncryptionEnabled +func (m AmdMilanBmGpuPlatformConfig) GetIsMemoryEncryptionEnabled() *bool { + return m.IsMemoryEncryptionEnabled +} + +func (m AmdMilanBmGpuPlatformConfig) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m AmdMilanBmGpuPlatformConfig) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingAmdMilanBmGpuPlatformConfigNumaNodesPerSocketEnum(string(m.NumaNodesPerSocket)); !ok && m.NumaNodesPerSocket != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for NumaNodesPerSocket: %s. Supported values are: %s.", m.NumaNodesPerSocket, strings.Join(GetAmdMilanBmGpuPlatformConfigNumaNodesPerSocketEnumStringValues(), ","))) + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// MarshalJSON marshals to json representation +func (m AmdMilanBmGpuPlatformConfig) MarshalJSON() (buff []byte, e error) { + type MarshalTypeAmdMilanBmGpuPlatformConfig AmdMilanBmGpuPlatformConfig + s := struct { + DiscriminatorParam string `json:"type"` + MarshalTypeAmdMilanBmGpuPlatformConfig + }{ + "AMD_MILAN_BM_GPU", + (MarshalTypeAmdMilanBmGpuPlatformConfig)(m), + } + + return json.Marshal(&s) +} + +// AmdMilanBmGpuPlatformConfigNumaNodesPerSocketEnum Enum with underlying type: string +type AmdMilanBmGpuPlatformConfigNumaNodesPerSocketEnum string + +// Set of constants representing the allowable values for AmdMilanBmGpuPlatformConfigNumaNodesPerSocketEnum +const ( + AmdMilanBmGpuPlatformConfigNumaNodesPerSocketNps0 AmdMilanBmGpuPlatformConfigNumaNodesPerSocketEnum = "NPS0" + AmdMilanBmGpuPlatformConfigNumaNodesPerSocketNps1 AmdMilanBmGpuPlatformConfigNumaNodesPerSocketEnum = "NPS1" + AmdMilanBmGpuPlatformConfigNumaNodesPerSocketNps2 AmdMilanBmGpuPlatformConfigNumaNodesPerSocketEnum = "NPS2" + AmdMilanBmGpuPlatformConfigNumaNodesPerSocketNps4 AmdMilanBmGpuPlatformConfigNumaNodesPerSocketEnum = "NPS4" +) + +var mappingAmdMilanBmGpuPlatformConfigNumaNodesPerSocketEnum = map[string]AmdMilanBmGpuPlatformConfigNumaNodesPerSocketEnum{ + "NPS0": AmdMilanBmGpuPlatformConfigNumaNodesPerSocketNps0, + "NPS1": AmdMilanBmGpuPlatformConfigNumaNodesPerSocketNps1, + "NPS2": AmdMilanBmGpuPlatformConfigNumaNodesPerSocketNps2, + "NPS4": AmdMilanBmGpuPlatformConfigNumaNodesPerSocketNps4, +} + +var mappingAmdMilanBmGpuPlatformConfigNumaNodesPerSocketEnumLowerCase = map[string]AmdMilanBmGpuPlatformConfigNumaNodesPerSocketEnum{ + "nps0": AmdMilanBmGpuPlatformConfigNumaNodesPerSocketNps0, + "nps1": AmdMilanBmGpuPlatformConfigNumaNodesPerSocketNps1, + "nps2": AmdMilanBmGpuPlatformConfigNumaNodesPerSocketNps2, + "nps4": AmdMilanBmGpuPlatformConfigNumaNodesPerSocketNps4, +} + +// GetAmdMilanBmGpuPlatformConfigNumaNodesPerSocketEnumValues Enumerates the set of values for AmdMilanBmGpuPlatformConfigNumaNodesPerSocketEnum +func GetAmdMilanBmGpuPlatformConfigNumaNodesPerSocketEnumValues() []AmdMilanBmGpuPlatformConfigNumaNodesPerSocketEnum { + values := make([]AmdMilanBmGpuPlatformConfigNumaNodesPerSocketEnum, 0) + for _, v := range mappingAmdMilanBmGpuPlatformConfigNumaNodesPerSocketEnum { + values = append(values, v) + } + return values +} + +// GetAmdMilanBmGpuPlatformConfigNumaNodesPerSocketEnumStringValues Enumerates the set of values in String for AmdMilanBmGpuPlatformConfigNumaNodesPerSocketEnum +func GetAmdMilanBmGpuPlatformConfigNumaNodesPerSocketEnumStringValues() []string { + return []string{ + "NPS0", + "NPS1", + "NPS2", + "NPS4", + } +} + +// GetMappingAmdMilanBmGpuPlatformConfigNumaNodesPerSocketEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingAmdMilanBmGpuPlatformConfigNumaNodesPerSocketEnum(val string) (AmdMilanBmGpuPlatformConfigNumaNodesPerSocketEnum, bool) { + enum, ok := mappingAmdMilanBmGpuPlatformConfigNumaNodesPerSocketEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/core/instance_configuration_amd_milan_bm_gpu_launch_instance_platform_config.go b/vendor/github.com/oracle/oci-go-sdk/v65/core/instance_configuration_amd_milan_bm_gpu_launch_instance_platform_config.go new file mode 100644 index 00000000000..7f86c1eb1b9 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/core/instance_configuration_amd_milan_bm_gpu_launch_instance_platform_config.go @@ -0,0 +1,164 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Core Services API +// +// Use the Core Services API to manage resources such as virtual cloud networks (VCNs), +// compute instances, and block storage volumes. For more information, see the console +// documentation for the Networking (https://docs.cloud.oracle.com/iaas/Content/Network/Concepts/overview.htm), +// Compute (https://docs.cloud.oracle.com/iaas/Content/Compute/Concepts/computeoverview.htm), and +// Block Volume (https://docs.cloud.oracle.com/iaas/Content/Block/Concepts/overview.htm) services. +// The required permissions are documented in the +// Details for the Core Services (https://docs.cloud.oracle.com/iaas/Content/Identity/Reference/corepolicyreference.htm) article. +// + +package core + +import ( + "encoding/json" + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// InstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfig The platform configuration of a bare metal instance that uses a GPU shape on the AMD Milan platform. +type InstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfig struct { + + // Whether Secure Boot is enabled on the instance. + IsSecureBootEnabled *bool `mandatory:"false" json:"isSecureBootEnabled"` + + // Whether the Trusted Platform Module (TPM) is enabled on the instance. + IsTrustedPlatformModuleEnabled *bool `mandatory:"false" json:"isTrustedPlatformModuleEnabled"` + + // Whether the Measured Boot feature is enabled on the instance. + IsMeasuredBootEnabled *bool `mandatory:"false" json:"isMeasuredBootEnabled"` + + // Whether the instance is a confidential instance. If this value is `true`, the instance is a confidential instance. The default value is `false`. + IsMemoryEncryptionEnabled *bool `mandatory:"false" json:"isMemoryEncryptionEnabled"` + + // Whether symmetric multithreading is enabled on the instance. Symmetric multithreading is also + // called simultaneous multithreading (SMT) or Intel Hyper-Threading. + // Intel and AMD processors have two hardware execution threads per core (OCPU). SMT permits multiple + // independent threads of execution, to better use the resources and increase the efficiency + // of the CPU. When multithreading is disabled, only one thread is permitted to run on each core, which + // can provide higher or more predictable performance for some workloads. + IsSymmetricMultiThreadingEnabled *bool `mandatory:"false" json:"isSymmetricMultiThreadingEnabled"` + + // Whether the Access Control Service is enabled on the instance. When enabled, + // the platform can enforce PCIe device isolation, required for VFIO device pass-through. + IsAccessControlServiceEnabled *bool `mandatory:"false" json:"isAccessControlServiceEnabled"` + + // Whether virtualization instructions are available. For example, Secure Virtual Machine for AMD shapes + // or VT-x for Intel shapes. + AreVirtualInstructionsEnabled *bool `mandatory:"false" json:"areVirtualInstructionsEnabled"` + + // Whether the input-output memory management unit is enabled. + IsInputOutputMemoryManagementUnitEnabled *bool `mandatory:"false" json:"isInputOutputMemoryManagementUnitEnabled"` + + // The number of NUMA nodes per socket (NPS). + NumaNodesPerSocket InstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnum `mandatory:"false" json:"numaNodesPerSocket,omitempty"` +} + +//GetIsSecureBootEnabled returns IsSecureBootEnabled +func (m InstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfig) GetIsSecureBootEnabled() *bool { + return m.IsSecureBootEnabled +} + +//GetIsTrustedPlatformModuleEnabled returns IsTrustedPlatformModuleEnabled +func (m InstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfig) GetIsTrustedPlatformModuleEnabled() *bool { + return m.IsTrustedPlatformModuleEnabled +} + +//GetIsMeasuredBootEnabled returns IsMeasuredBootEnabled +func (m InstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfig) GetIsMeasuredBootEnabled() *bool { + return m.IsMeasuredBootEnabled +} + +//GetIsMemoryEncryptionEnabled returns IsMemoryEncryptionEnabled +func (m InstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfig) GetIsMemoryEncryptionEnabled() *bool { + return m.IsMemoryEncryptionEnabled +} + +func (m InstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfig) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m InstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfig) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingInstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnum(string(m.NumaNodesPerSocket)); !ok && m.NumaNodesPerSocket != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for NumaNodesPerSocket: %s. Supported values are: %s.", m.NumaNodesPerSocket, strings.Join(GetInstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnumStringValues(), ","))) + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// MarshalJSON marshals to json representation +func (m InstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfig) MarshalJSON() (buff []byte, e error) { + type MarshalTypeInstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfig InstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfig + s := struct { + DiscriminatorParam string `json:"type"` + MarshalTypeInstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfig + }{ + "AMD_MILAN_BM_GPU", + (MarshalTypeInstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfig)(m), + } + + return json.Marshal(&s) +} + +// InstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnum Enum with underlying type: string +type InstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnum string + +// Set of constants representing the allowable values for InstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnum +const ( + InstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketNps0 InstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnum = "NPS0" + InstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketNps1 InstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnum = "NPS1" + InstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketNps2 InstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnum = "NPS2" + InstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketNps4 InstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnum = "NPS4" +) + +var mappingInstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnum = map[string]InstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnum{ + "NPS0": InstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketNps0, + "NPS1": InstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketNps1, + "NPS2": InstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketNps2, + "NPS4": InstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketNps4, +} + +var mappingInstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnumLowerCase = map[string]InstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnum{ + "nps0": InstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketNps0, + "nps1": InstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketNps1, + "nps2": InstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketNps2, + "nps4": InstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketNps4, +} + +// GetInstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnumValues Enumerates the set of values for InstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnum +func GetInstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnumValues() []InstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnum { + values := make([]InstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnum, 0) + for _, v := range mappingInstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnum { + values = append(values, v) + } + return values +} + +// GetInstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnumStringValues Enumerates the set of values in String for InstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnum +func GetInstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnumStringValues() []string { + return []string{ + "NPS0", + "NPS1", + "NPS2", + "NPS4", + } +} + +// GetMappingInstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingInstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnum(val string) (InstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnum, bool) { + enum, ok := mappingInstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfigNumaNodesPerSocketEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/core/instance_configuration_launch_instance_platform_config.go b/vendor/github.com/oracle/oci-go-sdk/v65/core/instance_configuration_launch_instance_platform_config.go index 2a8fb9b2636..338d6b47839 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/core/instance_configuration_launch_instance_platform_config.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/core/instance_configuration_launch_instance_platform_config.go @@ -89,6 +89,10 @@ func (m *instanceconfigurationlaunchinstanceplatformconfig) UnmarshalPolymorphic mm := InstanceConfigurationIntelVmLaunchInstancePlatformConfig{} err = json.Unmarshal(data, &mm) return mm, err + case "AMD_MILAN_BM_GPU": + mm := InstanceConfigurationAmdMilanBmGpuLaunchInstancePlatformConfig{} + err = json.Unmarshal(data, &mm) + return mm, err case "INTEL_ICELAKE_BM": mm := InstanceConfigurationIntelIcelakeBmLaunchInstancePlatformConfig{} err = json.Unmarshal(data, &mm) @@ -156,6 +160,7 @@ type InstanceConfigurationLaunchInstancePlatformConfigTypeEnum string // Set of constants representing the allowable values for InstanceConfigurationLaunchInstancePlatformConfigTypeEnum const ( InstanceConfigurationLaunchInstancePlatformConfigTypeAmdMilanBm InstanceConfigurationLaunchInstancePlatformConfigTypeEnum = "AMD_MILAN_BM" + InstanceConfigurationLaunchInstancePlatformConfigTypeAmdMilanBmGpu InstanceConfigurationLaunchInstancePlatformConfigTypeEnum = "AMD_MILAN_BM_GPU" InstanceConfigurationLaunchInstancePlatformConfigTypeAmdRomeBm InstanceConfigurationLaunchInstancePlatformConfigTypeEnum = "AMD_ROME_BM" InstanceConfigurationLaunchInstancePlatformConfigTypeAmdRomeBmGpu InstanceConfigurationLaunchInstancePlatformConfigTypeEnum = "AMD_ROME_BM_GPU" InstanceConfigurationLaunchInstancePlatformConfigTypeIntelIcelakeBm InstanceConfigurationLaunchInstancePlatformConfigTypeEnum = "INTEL_ICELAKE_BM" @@ -166,6 +171,7 @@ const ( var mappingInstanceConfigurationLaunchInstancePlatformConfigTypeEnum = map[string]InstanceConfigurationLaunchInstancePlatformConfigTypeEnum{ "AMD_MILAN_BM": InstanceConfigurationLaunchInstancePlatformConfigTypeAmdMilanBm, + "AMD_MILAN_BM_GPU": InstanceConfigurationLaunchInstancePlatformConfigTypeAmdMilanBmGpu, "AMD_ROME_BM": InstanceConfigurationLaunchInstancePlatformConfigTypeAmdRomeBm, "AMD_ROME_BM_GPU": InstanceConfigurationLaunchInstancePlatformConfigTypeAmdRomeBmGpu, "INTEL_ICELAKE_BM": InstanceConfigurationLaunchInstancePlatformConfigTypeIntelIcelakeBm, @@ -176,6 +182,7 @@ var mappingInstanceConfigurationLaunchInstancePlatformConfigTypeEnum = map[strin var mappingInstanceConfigurationLaunchInstancePlatformConfigTypeEnumLowerCase = map[string]InstanceConfigurationLaunchInstancePlatformConfigTypeEnum{ "amd_milan_bm": InstanceConfigurationLaunchInstancePlatformConfigTypeAmdMilanBm, + "amd_milan_bm_gpu": InstanceConfigurationLaunchInstancePlatformConfigTypeAmdMilanBmGpu, "amd_rome_bm": InstanceConfigurationLaunchInstancePlatformConfigTypeAmdRomeBm, "amd_rome_bm_gpu": InstanceConfigurationLaunchInstancePlatformConfigTypeAmdRomeBmGpu, "intel_icelake_bm": InstanceConfigurationLaunchInstancePlatformConfigTypeIntelIcelakeBm, @@ -197,6 +204,7 @@ func GetInstanceConfigurationLaunchInstancePlatformConfigTypeEnumValues() []Inst func GetInstanceConfigurationLaunchInstancePlatformConfigTypeEnumStringValues() []string { return []string{ "AMD_MILAN_BM", + "AMD_MILAN_BM_GPU", "AMD_ROME_BM", "AMD_ROME_BM_GPU", "INTEL_ICELAKE_BM", diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/core/launch_instance_platform_config.go b/vendor/github.com/oracle/oci-go-sdk/v65/core/launch_instance_platform_config.go index 8d576f7cc2b..1fb2634ebbb 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/core/launch_instance_platform_config.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/core/launch_instance_platform_config.go @@ -113,6 +113,10 @@ func (m *launchinstanceplatformconfig) UnmarshalPolymorphicJSON(data []byte) (in mm := AmdMilanBmLaunchInstancePlatformConfig{} err = json.Unmarshal(data, &mm) return mm, err + case "AMD_MILAN_BM_GPU": + mm := AmdMilanBmGpuLaunchInstancePlatformConfig{} + err = json.Unmarshal(data, &mm) + return mm, err default: return *m, nil } @@ -160,6 +164,7 @@ type LaunchInstancePlatformConfigTypeEnum string // Set of constants representing the allowable values for LaunchInstancePlatformConfigTypeEnum const ( LaunchInstancePlatformConfigTypeAmdMilanBm LaunchInstancePlatformConfigTypeEnum = "AMD_MILAN_BM" + LaunchInstancePlatformConfigTypeAmdMilanBmGpu LaunchInstancePlatformConfigTypeEnum = "AMD_MILAN_BM_GPU" LaunchInstancePlatformConfigTypeAmdRomeBm LaunchInstancePlatformConfigTypeEnum = "AMD_ROME_BM" LaunchInstancePlatformConfigTypeAmdRomeBmGpu LaunchInstancePlatformConfigTypeEnum = "AMD_ROME_BM_GPU" LaunchInstancePlatformConfigTypeIntelIcelakeBm LaunchInstancePlatformConfigTypeEnum = "INTEL_ICELAKE_BM" @@ -170,6 +175,7 @@ const ( var mappingLaunchInstancePlatformConfigTypeEnum = map[string]LaunchInstancePlatformConfigTypeEnum{ "AMD_MILAN_BM": LaunchInstancePlatformConfigTypeAmdMilanBm, + "AMD_MILAN_BM_GPU": LaunchInstancePlatformConfigTypeAmdMilanBmGpu, "AMD_ROME_BM": LaunchInstancePlatformConfigTypeAmdRomeBm, "AMD_ROME_BM_GPU": LaunchInstancePlatformConfigTypeAmdRomeBmGpu, "INTEL_ICELAKE_BM": LaunchInstancePlatformConfigTypeIntelIcelakeBm, @@ -180,6 +186,7 @@ var mappingLaunchInstancePlatformConfigTypeEnum = map[string]LaunchInstancePlatf var mappingLaunchInstancePlatformConfigTypeEnumLowerCase = map[string]LaunchInstancePlatformConfigTypeEnum{ "amd_milan_bm": LaunchInstancePlatformConfigTypeAmdMilanBm, + "amd_milan_bm_gpu": LaunchInstancePlatformConfigTypeAmdMilanBmGpu, "amd_rome_bm": LaunchInstancePlatformConfigTypeAmdRomeBm, "amd_rome_bm_gpu": LaunchInstancePlatformConfigTypeAmdRomeBmGpu, "intel_icelake_bm": LaunchInstancePlatformConfigTypeIntelIcelakeBm, @@ -201,6 +208,7 @@ func GetLaunchInstancePlatformConfigTypeEnumValues() []LaunchInstancePlatformCon func GetLaunchInstancePlatformConfigTypeEnumStringValues() []string { return []string{ "AMD_MILAN_BM", + "AMD_MILAN_BM_GPU", "AMD_ROME_BM", "AMD_ROME_BM_GPU", "INTEL_ICELAKE_BM", diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/core/platform_config.go b/vendor/github.com/oracle/oci-go-sdk/v65/core/platform_config.go index 2e3b9f44f48..2864ceae34e 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/core/platform_config.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/core/platform_config.go @@ -104,6 +104,10 @@ func (m *platformconfig) UnmarshalPolymorphicJSON(data []byte) (interface{}, err mm := IntelVmPlatformConfig{} err = json.Unmarshal(data, &mm) return mm, err + case "AMD_MILAN_BM_GPU": + mm := AmdMilanBmGpuPlatformConfig{} + err = json.Unmarshal(data, &mm) + return mm, err default: return *m, nil } @@ -151,6 +155,7 @@ type PlatformConfigTypeEnum string // Set of constants representing the allowable values for PlatformConfigTypeEnum const ( PlatformConfigTypeAmdMilanBm PlatformConfigTypeEnum = "AMD_MILAN_BM" + PlatformConfigTypeAmdMilanBmGpu PlatformConfigTypeEnum = "AMD_MILAN_BM_GPU" PlatformConfigTypeAmdRomeBm PlatformConfigTypeEnum = "AMD_ROME_BM" PlatformConfigTypeAmdRomeBmGpu PlatformConfigTypeEnum = "AMD_ROME_BM_GPU" PlatformConfigTypeIntelIcelakeBm PlatformConfigTypeEnum = "INTEL_ICELAKE_BM" @@ -161,6 +166,7 @@ const ( var mappingPlatformConfigTypeEnum = map[string]PlatformConfigTypeEnum{ "AMD_MILAN_BM": PlatformConfigTypeAmdMilanBm, + "AMD_MILAN_BM_GPU": PlatformConfigTypeAmdMilanBmGpu, "AMD_ROME_BM": PlatformConfigTypeAmdRomeBm, "AMD_ROME_BM_GPU": PlatformConfigTypeAmdRomeBmGpu, "INTEL_ICELAKE_BM": PlatformConfigTypeIntelIcelakeBm, @@ -171,6 +177,7 @@ var mappingPlatformConfigTypeEnum = map[string]PlatformConfigTypeEnum{ var mappingPlatformConfigTypeEnumLowerCase = map[string]PlatformConfigTypeEnum{ "amd_milan_bm": PlatformConfigTypeAmdMilanBm, + "amd_milan_bm_gpu": PlatformConfigTypeAmdMilanBmGpu, "amd_rome_bm": PlatformConfigTypeAmdRomeBm, "amd_rome_bm_gpu": PlatformConfigTypeAmdRomeBmGpu, "intel_icelake_bm": PlatformConfigTypeIntelIcelakeBm, @@ -192,6 +199,7 @@ func GetPlatformConfigTypeEnumValues() []PlatformConfigTypeEnum { func GetPlatformConfigTypeEnumStringValues() []string { return []string{ "AMD_MILAN_BM", + "AMD_MILAN_BM_GPU", "AMD_ROME_BM", "AMD_ROME_BM_GPU", "INTEL_ICELAKE_BM", diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/core/shape_platform_config_options.go b/vendor/github.com/oracle/oci-go-sdk/v65/core/shape_platform_config_options.go index a77c52edce7..1f9bc035cc4 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/core/shape_platform_config_options.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/core/shape_platform_config_options.go @@ -73,6 +73,7 @@ type ShapePlatformConfigOptionsTypeEnum string // Set of constants representing the allowable values for ShapePlatformConfigOptionsTypeEnum const ( ShapePlatformConfigOptionsTypeAmdMilanBm ShapePlatformConfigOptionsTypeEnum = "AMD_MILAN_BM" + ShapePlatformConfigOptionsTypeAmdMilanBmGpu ShapePlatformConfigOptionsTypeEnum = "AMD_MILAN_BM_GPU" ShapePlatformConfigOptionsTypeAmdRomeBm ShapePlatformConfigOptionsTypeEnum = "AMD_ROME_BM" ShapePlatformConfigOptionsTypeAmdRomeBmGpu ShapePlatformConfigOptionsTypeEnum = "AMD_ROME_BM_GPU" ShapePlatformConfigOptionsTypeIntelIcelakeBm ShapePlatformConfigOptionsTypeEnum = "INTEL_ICELAKE_BM" @@ -83,6 +84,7 @@ const ( var mappingShapePlatformConfigOptionsTypeEnum = map[string]ShapePlatformConfigOptionsTypeEnum{ "AMD_MILAN_BM": ShapePlatformConfigOptionsTypeAmdMilanBm, + "AMD_MILAN_BM_GPU": ShapePlatformConfigOptionsTypeAmdMilanBmGpu, "AMD_ROME_BM": ShapePlatformConfigOptionsTypeAmdRomeBm, "AMD_ROME_BM_GPU": ShapePlatformConfigOptionsTypeAmdRomeBmGpu, "INTEL_ICELAKE_BM": ShapePlatformConfigOptionsTypeIntelIcelakeBm, @@ -93,6 +95,7 @@ var mappingShapePlatformConfigOptionsTypeEnum = map[string]ShapePlatformConfigOp var mappingShapePlatformConfigOptionsTypeEnumLowerCase = map[string]ShapePlatformConfigOptionsTypeEnum{ "amd_milan_bm": ShapePlatformConfigOptionsTypeAmdMilanBm, + "amd_milan_bm_gpu": ShapePlatformConfigOptionsTypeAmdMilanBmGpu, "amd_rome_bm": ShapePlatformConfigOptionsTypeAmdRomeBm, "amd_rome_bm_gpu": ShapePlatformConfigOptionsTypeAmdRomeBmGpu, "intel_icelake_bm": ShapePlatformConfigOptionsTypeIntelIcelakeBm, @@ -114,6 +117,7 @@ func GetShapePlatformConfigOptionsTypeEnumValues() []ShapePlatformConfigOptionsT func GetShapePlatformConfigOptionsTypeEnumStringValues() []string { return []string{ "AMD_MILAN_BM", + "AMD_MILAN_BM_GPU", "AMD_ROME_BM", "AMD_ROME_BM_GPU", "INTEL_ICELAKE_BM", diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/database/autonomous_database_backup.go b/vendor/github.com/oracle/oci-go-sdk/v65/database/autonomous_database_backup.go index 19020557e68..0bf56e34e24 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/database/autonomous_database_backup.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/database/autonomous_database_backup.go @@ -80,6 +80,8 @@ type AutonomousDatabaseBackup struct { // The backup size in terrabytes (TB). SizeInTBs *float64 `mandatory:"false" json:"sizeInTBs"` + + BackupDestinationDetails *BackupDestinationDetails `mandatory:"false" json:"backupDestinationDetails"` } func (m AutonomousDatabaseBackup) String() string { diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/database/autonomous_database_backup_summary.go b/vendor/github.com/oracle/oci-go-sdk/v65/database/autonomous_database_backup_summary.go index 2804d10e689..667b23cb83a 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/database/autonomous_database_backup_summary.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/database/autonomous_database_backup_summary.go @@ -82,6 +82,8 @@ type AutonomousDatabaseBackupSummary struct { // The backup size in terrabytes (TB). SizeInTBs *float64 `mandatory:"false" json:"sizeInTBs"` + + BackupDestinationDetails *BackupDestinationDetails `mandatory:"false" json:"backupDestinationDetails"` } func (m AutonomousDatabaseBackupSummary) String() string { diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/database/create_autonomous_database_backup_details.go b/vendor/github.com/oracle/oci-go-sdk/v65/database/create_autonomous_database_backup_details.go index 8b037923446..86d29e746b9 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/database/create_autonomous_database_backup_details.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/database/create_autonomous_database_backup_details.go @@ -30,6 +30,8 @@ type CreateAutonomousDatabaseBackupDetails struct { // Indicates whether the backup is long-term IsLongTermBackup *bool `mandatory:"false" json:"isLongTermBackup"` + + BackupDestinationDetails *BackupDestinationDetails `mandatory:"false" json:"backupDestinationDetails"` } func (m CreateAutonomousDatabaseBackupDetails) String() string { diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/database/db_system.go b/vendor/github.com/oracle/oci-go-sdk/v65/database/db_system.go index cb37ac8bc18..06dedf26836 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/database/db_system.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/database/db_system.go @@ -94,6 +94,9 @@ type DbSystem struct { // The Oracle Database version of the DB system. Version *string `mandatory:"false" json:"version"` + // The most recent OS Patch Version applied on the DB system. + OsVersion *string `mandatory:"false" json:"osVersion"` + // The cluster name for Exadata and 2-node RAC virtual machine DB systems. The cluster name must begin with an alphabetic character, and may contain hyphens (-). Underscores (_) are not permitted. The cluster name can be no longer than 11 characters and is not case sensitive. ClusterName *string `mandatory:"false" json:"clusterName"` diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/database/db_system_summary.go b/vendor/github.com/oracle/oci-go-sdk/v65/database/db_system_summary.go index 24ab8c96a15..8d41c6938c0 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/database/db_system_summary.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/database/db_system_summary.go @@ -108,6 +108,9 @@ type DbSystemSummary struct { // The Oracle Database version of the DB system. Version *string `mandatory:"false" json:"version"` + // The most recent OS Patch Version applied on the DB system. + OsVersion *string `mandatory:"false" json:"osVersion"` + // The cluster name for Exadata and 2-node RAC virtual machine DB systems. The cluster name must begin with an alphabetic character, and may contain hyphens (-). Underscores (_) are not permitted. The cluster name can be no longer than 11 characters and is not case sensitive. ClusterName *string `mandatory:"false" json:"clusterName"` diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/database/list_autonomous_database_backups_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/database/list_autonomous_database_backups_request_response.go index ba0fdc7680a..514f7eb9cb6 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/database/list_autonomous_database_backups_request_response.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/database/list_autonomous_database_backups_request_response.go @@ -43,6 +43,9 @@ type ListAutonomousDatabaseBackupsRequest struct { // A filter to return only resources that match the entire display name given. The match is not case sensitive. DisplayName *string `mandatory:"false" contributesTo:"query" name:"displayName"` + // A filter to return only backups that matches with the given type of Backup. + Type *string `mandatory:"false" contributesTo:"query" name:"type"` + // Unique identifier for the request. OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/database/patch_history_entry.go b/vendor/github.com/oracle/oci-go-sdk/v65/database/patch_history_entry.go index 594d413e6fa..2f0b15f3b69 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/database/patch_history_entry.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/database/patch_history_entry.go @@ -39,6 +39,9 @@ type PatchHistoryEntry struct { // The date and time when the patch action completed TimeEnded *common.SDKTime `mandatory:"false" json:"timeEnded"` + + // The type of Patch operation. + PatchType PatchHistoryEntryPatchTypeEnum `mandatory:"false" json:"patchType,omitempty"` } func (m PatchHistoryEntry) String() string { @@ -57,6 +60,9 @@ func (m PatchHistoryEntry) ValidateEnumValue() (bool, error) { if _, ok := GetMappingPatchHistoryEntryActionEnum(string(m.Action)); !ok && m.Action != "" { errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Action: %s. Supported values are: %s.", m.Action, strings.Join(GetPatchHistoryEntryActionEnumStringValues(), ","))) } + if _, ok := GetMappingPatchHistoryEntryPatchTypeEnum(string(m.PatchType)); !ok && m.PatchType != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for PatchType: %s. Supported values are: %s.", m.PatchType, strings.Join(GetPatchHistoryEntryPatchTypeEnumStringValues(), ","))) + } if len(errMessage) > 0 { return true, fmt.Errorf(strings.Join(errMessage, "\n")) } @@ -150,3 +156,49 @@ func GetMappingPatchHistoryEntryLifecycleStateEnum(val string) (PatchHistoryEntr enum, ok := mappingPatchHistoryEntryLifecycleStateEnumLowerCase[strings.ToLower(val)] return enum, ok } + +// PatchHistoryEntryPatchTypeEnum Enum with underlying type: string +type PatchHistoryEntryPatchTypeEnum string + +// Set of constants representing the allowable values for PatchHistoryEntryPatchTypeEnum +const ( + PatchHistoryEntryPatchTypeOs PatchHistoryEntryPatchTypeEnum = "OS" + PatchHistoryEntryPatchTypeDb PatchHistoryEntryPatchTypeEnum = "DB" + PatchHistoryEntryPatchTypeGi PatchHistoryEntryPatchTypeEnum = "GI" +) + +var mappingPatchHistoryEntryPatchTypeEnum = map[string]PatchHistoryEntryPatchTypeEnum{ + "OS": PatchHistoryEntryPatchTypeOs, + "DB": PatchHistoryEntryPatchTypeDb, + "GI": PatchHistoryEntryPatchTypeGi, +} + +var mappingPatchHistoryEntryPatchTypeEnumLowerCase = map[string]PatchHistoryEntryPatchTypeEnum{ + "os": PatchHistoryEntryPatchTypeOs, + "db": PatchHistoryEntryPatchTypeDb, + "gi": PatchHistoryEntryPatchTypeGi, +} + +// GetPatchHistoryEntryPatchTypeEnumValues Enumerates the set of values for PatchHistoryEntryPatchTypeEnum +func GetPatchHistoryEntryPatchTypeEnumValues() []PatchHistoryEntryPatchTypeEnum { + values := make([]PatchHistoryEntryPatchTypeEnum, 0) + for _, v := range mappingPatchHistoryEntryPatchTypeEnum { + values = append(values, v) + } + return values +} + +// GetPatchHistoryEntryPatchTypeEnumStringValues Enumerates the set of values in String for PatchHistoryEntryPatchTypeEnum +func GetPatchHistoryEntryPatchTypeEnumStringValues() []string { + return []string{ + "OS", + "DB", + "GI", + } +} + +// GetMappingPatchHistoryEntryPatchTypeEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingPatchHistoryEntryPatchTypeEnum(val string) (PatchHistoryEntryPatchTypeEnum, bool) { + enum, ok := mappingPatchHistoryEntryPatchTypeEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/database/patch_history_entry_summary.go b/vendor/github.com/oracle/oci-go-sdk/v65/database/patch_history_entry_summary.go index a0115cd8a53..78a874e82a8 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/database/patch_history_entry_summary.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/database/patch_history_entry_summary.go @@ -39,6 +39,9 @@ type PatchHistoryEntrySummary struct { // The date and time when the patch action completed TimeEnded *common.SDKTime `mandatory:"false" json:"timeEnded"` + + // The type of Patch operation. + PatchType PatchHistoryEntrySummaryPatchTypeEnum `mandatory:"false" json:"patchType,omitempty"` } func (m PatchHistoryEntrySummary) String() string { @@ -57,6 +60,9 @@ func (m PatchHistoryEntrySummary) ValidateEnumValue() (bool, error) { if _, ok := GetMappingPatchHistoryEntrySummaryActionEnum(string(m.Action)); !ok && m.Action != "" { errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Action: %s. Supported values are: %s.", m.Action, strings.Join(GetPatchHistoryEntrySummaryActionEnumStringValues(), ","))) } + if _, ok := GetMappingPatchHistoryEntrySummaryPatchTypeEnum(string(m.PatchType)); !ok && m.PatchType != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for PatchType: %s. Supported values are: %s.", m.PatchType, strings.Join(GetPatchHistoryEntrySummaryPatchTypeEnumStringValues(), ","))) + } if len(errMessage) > 0 { return true, fmt.Errorf(strings.Join(errMessage, "\n")) } @@ -150,3 +156,49 @@ func GetMappingPatchHistoryEntrySummaryLifecycleStateEnum(val string) (PatchHist enum, ok := mappingPatchHistoryEntrySummaryLifecycleStateEnumLowerCase[strings.ToLower(val)] return enum, ok } + +// PatchHistoryEntrySummaryPatchTypeEnum Enum with underlying type: string +type PatchHistoryEntrySummaryPatchTypeEnum string + +// Set of constants representing the allowable values for PatchHistoryEntrySummaryPatchTypeEnum +const ( + PatchHistoryEntrySummaryPatchTypeOs PatchHistoryEntrySummaryPatchTypeEnum = "OS" + PatchHistoryEntrySummaryPatchTypeDb PatchHistoryEntrySummaryPatchTypeEnum = "DB" + PatchHistoryEntrySummaryPatchTypeGi PatchHistoryEntrySummaryPatchTypeEnum = "GI" +) + +var mappingPatchHistoryEntrySummaryPatchTypeEnum = map[string]PatchHistoryEntrySummaryPatchTypeEnum{ + "OS": PatchHistoryEntrySummaryPatchTypeOs, + "DB": PatchHistoryEntrySummaryPatchTypeDb, + "GI": PatchHistoryEntrySummaryPatchTypeGi, +} + +var mappingPatchHistoryEntrySummaryPatchTypeEnumLowerCase = map[string]PatchHistoryEntrySummaryPatchTypeEnum{ + "os": PatchHistoryEntrySummaryPatchTypeOs, + "db": PatchHistoryEntrySummaryPatchTypeDb, + "gi": PatchHistoryEntrySummaryPatchTypeGi, +} + +// GetPatchHistoryEntrySummaryPatchTypeEnumValues Enumerates the set of values for PatchHistoryEntrySummaryPatchTypeEnum +func GetPatchHistoryEntrySummaryPatchTypeEnumValues() []PatchHistoryEntrySummaryPatchTypeEnum { + values := make([]PatchHistoryEntrySummaryPatchTypeEnum, 0) + for _, v := range mappingPatchHistoryEntrySummaryPatchTypeEnum { + values = append(values, v) + } + return values +} + +// GetPatchHistoryEntrySummaryPatchTypeEnumStringValues Enumerates the set of values in String for PatchHistoryEntrySummaryPatchTypeEnum +func GetPatchHistoryEntrySummaryPatchTypeEnumStringValues() []string { + return []string{ + "OS", + "DB", + "GI", + } +} + +// GetMappingPatchHistoryEntrySummaryPatchTypeEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingPatchHistoryEntrySummaryPatchTypeEnum(val string) (PatchHistoryEntrySummaryPatchTypeEnum, bool) { + enum, ok := mappingPatchHistoryEntrySummaryPatchTypeEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/copy_conflict_resolution.go b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/copy_conflict_resolution.go new file mode 100644 index 00000000000..3e89a2cd71f --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/copy_conflict_resolution.go @@ -0,0 +1,94 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Data Integration API +// +// Use the Data Integration API to organize your data integration projects, create data flows, pipelines and tasks, and then publish, schedule, and run tasks that extract, transform, and load data. For more information, see Data Integration (https://docs.oracle.com/iaas/data-integration/home.htm). +// + +package dataintegration + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// CopyConflictResolution Copy Object Conflict resolution. +type CopyConflictResolution struct { + + // Copy Object Conflict Resolution Type (RETAIN/DUPLICATE/REPLACE). + RequestType CopyConflictResolutionRequestTypeEnum `mandatory:"true" json:"requestType"` + + // In case of DUPLICATE mode, this prefix will be used to disambiguate the object. + DuplicatePrefix *string `mandatory:"false" json:"duplicatePrefix"` + + // In case of DUPLICATE mode, this suffix will be used to disambiguate the object. + DuplicateSuffix *string `mandatory:"false" json:"duplicateSuffix"` +} + +func (m CopyConflictResolution) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m CopyConflictResolution) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingCopyConflictResolutionRequestTypeEnum(string(m.RequestType)); !ok && m.RequestType != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for RequestType: %s. Supported values are: %s.", m.RequestType, strings.Join(GetCopyConflictResolutionRequestTypeEnumStringValues(), ","))) + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// CopyConflictResolutionRequestTypeEnum Enum with underlying type: string +type CopyConflictResolutionRequestTypeEnum string + +// Set of constants representing the allowable values for CopyConflictResolutionRequestTypeEnum +const ( + CopyConflictResolutionRequestTypeRetain CopyConflictResolutionRequestTypeEnum = "RETAIN" + CopyConflictResolutionRequestTypeDuplicate CopyConflictResolutionRequestTypeEnum = "DUPLICATE" + CopyConflictResolutionRequestTypeReplace CopyConflictResolutionRequestTypeEnum = "REPLACE" +) + +var mappingCopyConflictResolutionRequestTypeEnum = map[string]CopyConflictResolutionRequestTypeEnum{ + "RETAIN": CopyConflictResolutionRequestTypeRetain, + "DUPLICATE": CopyConflictResolutionRequestTypeDuplicate, + "REPLACE": CopyConflictResolutionRequestTypeReplace, +} + +var mappingCopyConflictResolutionRequestTypeEnumLowerCase = map[string]CopyConflictResolutionRequestTypeEnum{ + "retain": CopyConflictResolutionRequestTypeRetain, + "duplicate": CopyConflictResolutionRequestTypeDuplicate, + "replace": CopyConflictResolutionRequestTypeReplace, +} + +// GetCopyConflictResolutionRequestTypeEnumValues Enumerates the set of values for CopyConflictResolutionRequestTypeEnum +func GetCopyConflictResolutionRequestTypeEnumValues() []CopyConflictResolutionRequestTypeEnum { + values := make([]CopyConflictResolutionRequestTypeEnum, 0) + for _, v := range mappingCopyConflictResolutionRequestTypeEnum { + values = append(values, v) + } + return values +} + +// GetCopyConflictResolutionRequestTypeEnumStringValues Enumerates the set of values in String for CopyConflictResolutionRequestTypeEnum +func GetCopyConflictResolutionRequestTypeEnumStringValues() []string { + return []string{ + "RETAIN", + "DUPLICATE", + "REPLACE", + } +} + +// GetMappingCopyConflictResolutionRequestTypeEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingCopyConflictResolutionRequestTypeEnum(val string) (CopyConflictResolutionRequestTypeEnum, bool) { + enum, ok := mappingCopyConflictResolutionRequestTypeEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/copy_object_metadata_summary.go b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/copy_object_metadata_summary.go new file mode 100644 index 00000000000..2bff8a77f08 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/copy_object_metadata_summary.go @@ -0,0 +1,119 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Data Integration API +// +// Use the Data Integration API to organize your data integration projects, create data flows, pipelines and tasks, and then publish, schedule, and run tasks that extract, transform, and load data. For more information, see Data Integration (https://docs.oracle.com/iaas/data-integration/home.htm). +// + +package dataintegration + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// CopyObjectMetadataSummary Details of copied objects. +type CopyObjectMetadataSummary struct { + + // Old key of the object from where the object was copied. For example a dataflow key within the project being copied. + OldKey *string `mandatory:"false" json:"oldKey"` + + // New key of the object to identify the copied object. For example the new dataflow key. + NewKey *string `mandatory:"false" json:"newKey"` + + // Name of the object. + Name *string `mandatory:"false" json:"name"` + + // Object identifier. + Identifier *string `mandatory:"false" json:"identifier"` + + // Object type. + ObjectType *string `mandatory:"false" json:"objectType"` + + // Object version. + ObjectVersion *string `mandatory:"false" json:"objectVersion"` + + // Aggregator key + AggregatorKey *string `mandatory:"false" json:"aggregatorKey"` + + // Object name path. + NamePath *string `mandatory:"false" json:"namePath"` + + // time at which this object was last updated. + TimeUpdatedInMillis *int64 `mandatory:"false" json:"timeUpdatedInMillis"` + + // Object resolution action. + ResolutionAction CopyObjectMetadataSummaryResolutionActionEnum `mandatory:"false" json:"resolutionAction,omitempty"` +} + +func (m CopyObjectMetadataSummary) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m CopyObjectMetadataSummary) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if _, ok := GetMappingCopyObjectMetadataSummaryResolutionActionEnum(string(m.ResolutionAction)); !ok && m.ResolutionAction != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for ResolutionAction: %s. Supported values are: %s.", m.ResolutionAction, strings.Join(GetCopyObjectMetadataSummaryResolutionActionEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// CopyObjectMetadataSummaryResolutionActionEnum Enum with underlying type: string +type CopyObjectMetadataSummaryResolutionActionEnum string + +// Set of constants representing the allowable values for CopyObjectMetadataSummaryResolutionActionEnum +const ( + CopyObjectMetadataSummaryResolutionActionCreated CopyObjectMetadataSummaryResolutionActionEnum = "CREATED" + CopyObjectMetadataSummaryResolutionActionRetained CopyObjectMetadataSummaryResolutionActionEnum = "RETAINED" + CopyObjectMetadataSummaryResolutionActionDuplicated CopyObjectMetadataSummaryResolutionActionEnum = "DUPLICATED" + CopyObjectMetadataSummaryResolutionActionReplaced CopyObjectMetadataSummaryResolutionActionEnum = "REPLACED" +) + +var mappingCopyObjectMetadataSummaryResolutionActionEnum = map[string]CopyObjectMetadataSummaryResolutionActionEnum{ + "CREATED": CopyObjectMetadataSummaryResolutionActionCreated, + "RETAINED": CopyObjectMetadataSummaryResolutionActionRetained, + "DUPLICATED": CopyObjectMetadataSummaryResolutionActionDuplicated, + "REPLACED": CopyObjectMetadataSummaryResolutionActionReplaced, +} + +var mappingCopyObjectMetadataSummaryResolutionActionEnumLowerCase = map[string]CopyObjectMetadataSummaryResolutionActionEnum{ + "created": CopyObjectMetadataSummaryResolutionActionCreated, + "retained": CopyObjectMetadataSummaryResolutionActionRetained, + "duplicated": CopyObjectMetadataSummaryResolutionActionDuplicated, + "replaced": CopyObjectMetadataSummaryResolutionActionReplaced, +} + +// GetCopyObjectMetadataSummaryResolutionActionEnumValues Enumerates the set of values for CopyObjectMetadataSummaryResolutionActionEnum +func GetCopyObjectMetadataSummaryResolutionActionEnumValues() []CopyObjectMetadataSummaryResolutionActionEnum { + values := make([]CopyObjectMetadataSummaryResolutionActionEnum, 0) + for _, v := range mappingCopyObjectMetadataSummaryResolutionActionEnum { + values = append(values, v) + } + return values +} + +// GetCopyObjectMetadataSummaryResolutionActionEnumStringValues Enumerates the set of values in String for CopyObjectMetadataSummaryResolutionActionEnum +func GetCopyObjectMetadataSummaryResolutionActionEnumStringValues() []string { + return []string{ + "CREATED", + "RETAINED", + "DUPLICATED", + "REPLACED", + } +} + +// GetMappingCopyObjectMetadataSummaryResolutionActionEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingCopyObjectMetadataSummaryResolutionActionEnum(val string) (CopyObjectMetadataSummaryResolutionActionEnum, bool) { + enum, ok := mappingCopyObjectMetadataSummaryResolutionActionEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/copy_object_request.go b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/copy_object_request.go new file mode 100644 index 00000000000..e14a90d4c00 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/copy_object_request.go @@ -0,0 +1,138 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Data Integration API +// +// Use the Data Integration API to organize your data integration projects, create data flows, pipelines and tasks, and then publish, schedule, and run tasks that extract, transform, and load data. For more information, see Data Integration (https://docs.oracle.com/iaas/data-integration/home.htm). +// + +package dataintegration + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// CopyObjectRequest Copy metadata object request. +type CopyObjectRequest struct { + + // Copy object request key. + Key *string `mandatory:"false" json:"key"` + + // The workspace id of the source from where we need to copy object. + SourceWorkspaceId *string `mandatory:"false" json:"sourceWorkspaceId"` + + // The list of the objects to be copied. + ObjectKeys []string `mandatory:"false" json:"objectKeys"` + + CopyConflictResolution *CopyConflictResolution `mandatory:"false" json:"copyConflictResolution"` + + // Copy Object request status. + CopyMetadataObjectRequestStatus CopyObjectRequestCopyMetadataObjectRequestStatusEnum `mandatory:"false" json:"copyMetadataObjectRequestStatus,omitempty"` + + // OCID of the user who initiated copy request. + CreatedBy *string `mandatory:"false" json:"createdBy"` + + // Name of the user who created the copy object request. + CreatedByName *string `mandatory:"false" json:"createdByName"` + + // Number of source objects to be copied. + TotalSourceObjectCount *int `mandatory:"false" json:"totalSourceObjectCount"` + + // Number of objects copied into the target. + TotalObjectsCopiedIntoTarget *int `mandatory:"false" json:"totalObjectsCopiedIntoTarget"` + + // Time at which the request started getting processed. + TimeStartedInMillis *int64 `mandatory:"false" json:"timeStartedInMillis"` + + // Time at which the request was completely processed. + TimeEndedInMillis *int64 `mandatory:"false" json:"timeEndedInMillis"` + + // The array of copy object details. + CopiedItems []CopyObjectMetadataSummary `mandatory:"false" json:"copiedItems"` + + // The array of copied referenced objects. + ReferencedItems []CopyObjectMetadataSummary `mandatory:"false" json:"referencedItems"` + + // Name of the copy object request. + Name *string `mandatory:"false" json:"name"` +} + +func (m CopyObjectRequest) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m CopyObjectRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if _, ok := GetMappingCopyObjectRequestCopyMetadataObjectRequestStatusEnum(string(m.CopyMetadataObjectRequestStatus)); !ok && m.CopyMetadataObjectRequestStatus != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for CopyMetadataObjectRequestStatus: %s. Supported values are: %s.", m.CopyMetadataObjectRequestStatus, strings.Join(GetCopyObjectRequestCopyMetadataObjectRequestStatusEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// CopyObjectRequestCopyMetadataObjectRequestStatusEnum Enum with underlying type: string +type CopyObjectRequestCopyMetadataObjectRequestStatusEnum string + +// Set of constants representing the allowable values for CopyObjectRequestCopyMetadataObjectRequestStatusEnum +const ( + CopyObjectRequestCopyMetadataObjectRequestStatusSuccessful CopyObjectRequestCopyMetadataObjectRequestStatusEnum = "SUCCESSFUL" + CopyObjectRequestCopyMetadataObjectRequestStatusFailed CopyObjectRequestCopyMetadataObjectRequestStatusEnum = "FAILED" + CopyObjectRequestCopyMetadataObjectRequestStatusInProgress CopyObjectRequestCopyMetadataObjectRequestStatusEnum = "IN_PROGRESS" + CopyObjectRequestCopyMetadataObjectRequestStatusQueued CopyObjectRequestCopyMetadataObjectRequestStatusEnum = "QUEUED" + CopyObjectRequestCopyMetadataObjectRequestStatusTerminating CopyObjectRequestCopyMetadataObjectRequestStatusEnum = "TERMINATING" + CopyObjectRequestCopyMetadataObjectRequestStatusTerminated CopyObjectRequestCopyMetadataObjectRequestStatusEnum = "TERMINATED" +) + +var mappingCopyObjectRequestCopyMetadataObjectRequestStatusEnum = map[string]CopyObjectRequestCopyMetadataObjectRequestStatusEnum{ + "SUCCESSFUL": CopyObjectRequestCopyMetadataObjectRequestStatusSuccessful, + "FAILED": CopyObjectRequestCopyMetadataObjectRequestStatusFailed, + "IN_PROGRESS": CopyObjectRequestCopyMetadataObjectRequestStatusInProgress, + "QUEUED": CopyObjectRequestCopyMetadataObjectRequestStatusQueued, + "TERMINATING": CopyObjectRequestCopyMetadataObjectRequestStatusTerminating, + "TERMINATED": CopyObjectRequestCopyMetadataObjectRequestStatusTerminated, +} + +var mappingCopyObjectRequestCopyMetadataObjectRequestStatusEnumLowerCase = map[string]CopyObjectRequestCopyMetadataObjectRequestStatusEnum{ + "successful": CopyObjectRequestCopyMetadataObjectRequestStatusSuccessful, + "failed": CopyObjectRequestCopyMetadataObjectRequestStatusFailed, + "in_progress": CopyObjectRequestCopyMetadataObjectRequestStatusInProgress, + "queued": CopyObjectRequestCopyMetadataObjectRequestStatusQueued, + "terminating": CopyObjectRequestCopyMetadataObjectRequestStatusTerminating, + "terminated": CopyObjectRequestCopyMetadataObjectRequestStatusTerminated, +} + +// GetCopyObjectRequestCopyMetadataObjectRequestStatusEnumValues Enumerates the set of values for CopyObjectRequestCopyMetadataObjectRequestStatusEnum +func GetCopyObjectRequestCopyMetadataObjectRequestStatusEnumValues() []CopyObjectRequestCopyMetadataObjectRequestStatusEnum { + values := make([]CopyObjectRequestCopyMetadataObjectRequestStatusEnum, 0) + for _, v := range mappingCopyObjectRequestCopyMetadataObjectRequestStatusEnum { + values = append(values, v) + } + return values +} + +// GetCopyObjectRequestCopyMetadataObjectRequestStatusEnumStringValues Enumerates the set of values in String for CopyObjectRequestCopyMetadataObjectRequestStatusEnum +func GetCopyObjectRequestCopyMetadataObjectRequestStatusEnumStringValues() []string { + return []string{ + "SUCCESSFUL", + "FAILED", + "IN_PROGRESS", + "QUEUED", + "TERMINATING", + "TERMINATED", + } +} + +// GetMappingCopyObjectRequestCopyMetadataObjectRequestStatusEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingCopyObjectRequestCopyMetadataObjectRequestStatusEnum(val string) (CopyObjectRequestCopyMetadataObjectRequestStatusEnum, bool) { + enum, ok := mappingCopyObjectRequestCopyMetadataObjectRequestStatusEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/copy_object_request_summary.go b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/copy_object_request_summary.go new file mode 100644 index 00000000000..f61a2d5cbb1 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/copy_object_request_summary.go @@ -0,0 +1,138 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Data Integration API +// +// Use the Data Integration API to organize your data integration projects, create data flows, pipelines and tasks, and then publish, schedule, and run tasks that extract, transform, and load data. For more information, see Data Integration (https://docs.oracle.com/iaas/data-integration/home.htm). +// + +package dataintegration + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// CopyObjectRequestSummary Copy metadata object response summary. +type CopyObjectRequestSummary struct { + + // Copy object request key. + Key *string `mandatory:"false" json:"key"` + + // The workspace id of the source from where we need to copy object. + SourceWorkspaceId *string `mandatory:"false" json:"sourceWorkspaceId"` + + // The list of the objects to be copied. + ObjectKeys []string `mandatory:"false" json:"objectKeys"` + + CopyConflictResolution *CopyConflictResolution `mandatory:"false" json:"copyConflictResolution"` + + // Copy Object request status. + CopyMetadataObjectRequestStatus CopyObjectRequestSummaryCopyMetadataObjectRequestStatusEnum `mandatory:"false" json:"copyMetadataObjectRequestStatus,omitempty"` + + // OCID of the user who initiated copy request. + CreatedBy *string `mandatory:"false" json:"createdBy"` + + // Name of the user who created the copy object request. + CreatedByName *string `mandatory:"false" json:"createdByName"` + + // Number of source objects to be copied. + TotalSourceObjectCount *int `mandatory:"false" json:"totalSourceObjectCount"` + + // Number of objects copied into the target. + TotalObjectsCopiedIntoTarget *int `mandatory:"false" json:"totalObjectsCopiedIntoTarget"` + + // Time at which the request started getting processed. + TimeStartedInMillis *int64 `mandatory:"false" json:"timeStartedInMillis"` + + // Time at which the request was completely processed. + TimeEndedInMillis *int64 `mandatory:"false" json:"timeEndedInMillis"` + + // The array of copy object details. + CopiedItems []CopyObjectMetadataSummary `mandatory:"false" json:"copiedItems"` + + // The array of copied referenced objects. + ReferencedItems []CopyObjectMetadataSummary `mandatory:"false" json:"referencedItems"` + + // Name of the copy object request. + Name *string `mandatory:"false" json:"name"` +} + +func (m CopyObjectRequestSummary) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m CopyObjectRequestSummary) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if _, ok := GetMappingCopyObjectRequestSummaryCopyMetadataObjectRequestStatusEnum(string(m.CopyMetadataObjectRequestStatus)); !ok && m.CopyMetadataObjectRequestStatus != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for CopyMetadataObjectRequestStatus: %s. Supported values are: %s.", m.CopyMetadataObjectRequestStatus, strings.Join(GetCopyObjectRequestSummaryCopyMetadataObjectRequestStatusEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// CopyObjectRequestSummaryCopyMetadataObjectRequestStatusEnum Enum with underlying type: string +type CopyObjectRequestSummaryCopyMetadataObjectRequestStatusEnum string + +// Set of constants representing the allowable values for CopyObjectRequestSummaryCopyMetadataObjectRequestStatusEnum +const ( + CopyObjectRequestSummaryCopyMetadataObjectRequestStatusSuccessful CopyObjectRequestSummaryCopyMetadataObjectRequestStatusEnum = "SUCCESSFUL" + CopyObjectRequestSummaryCopyMetadataObjectRequestStatusFailed CopyObjectRequestSummaryCopyMetadataObjectRequestStatusEnum = "FAILED" + CopyObjectRequestSummaryCopyMetadataObjectRequestStatusInProgress CopyObjectRequestSummaryCopyMetadataObjectRequestStatusEnum = "IN_PROGRESS" + CopyObjectRequestSummaryCopyMetadataObjectRequestStatusQueued CopyObjectRequestSummaryCopyMetadataObjectRequestStatusEnum = "QUEUED" + CopyObjectRequestSummaryCopyMetadataObjectRequestStatusTerminating CopyObjectRequestSummaryCopyMetadataObjectRequestStatusEnum = "TERMINATING" + CopyObjectRequestSummaryCopyMetadataObjectRequestStatusTerminated CopyObjectRequestSummaryCopyMetadataObjectRequestStatusEnum = "TERMINATED" +) + +var mappingCopyObjectRequestSummaryCopyMetadataObjectRequestStatusEnum = map[string]CopyObjectRequestSummaryCopyMetadataObjectRequestStatusEnum{ + "SUCCESSFUL": CopyObjectRequestSummaryCopyMetadataObjectRequestStatusSuccessful, + "FAILED": CopyObjectRequestSummaryCopyMetadataObjectRequestStatusFailed, + "IN_PROGRESS": CopyObjectRequestSummaryCopyMetadataObjectRequestStatusInProgress, + "QUEUED": CopyObjectRequestSummaryCopyMetadataObjectRequestStatusQueued, + "TERMINATING": CopyObjectRequestSummaryCopyMetadataObjectRequestStatusTerminating, + "TERMINATED": CopyObjectRequestSummaryCopyMetadataObjectRequestStatusTerminated, +} + +var mappingCopyObjectRequestSummaryCopyMetadataObjectRequestStatusEnumLowerCase = map[string]CopyObjectRequestSummaryCopyMetadataObjectRequestStatusEnum{ + "successful": CopyObjectRequestSummaryCopyMetadataObjectRequestStatusSuccessful, + "failed": CopyObjectRequestSummaryCopyMetadataObjectRequestStatusFailed, + "in_progress": CopyObjectRequestSummaryCopyMetadataObjectRequestStatusInProgress, + "queued": CopyObjectRequestSummaryCopyMetadataObjectRequestStatusQueued, + "terminating": CopyObjectRequestSummaryCopyMetadataObjectRequestStatusTerminating, + "terminated": CopyObjectRequestSummaryCopyMetadataObjectRequestStatusTerminated, +} + +// GetCopyObjectRequestSummaryCopyMetadataObjectRequestStatusEnumValues Enumerates the set of values for CopyObjectRequestSummaryCopyMetadataObjectRequestStatusEnum +func GetCopyObjectRequestSummaryCopyMetadataObjectRequestStatusEnumValues() []CopyObjectRequestSummaryCopyMetadataObjectRequestStatusEnum { + values := make([]CopyObjectRequestSummaryCopyMetadataObjectRequestStatusEnum, 0) + for _, v := range mappingCopyObjectRequestSummaryCopyMetadataObjectRequestStatusEnum { + values = append(values, v) + } + return values +} + +// GetCopyObjectRequestSummaryCopyMetadataObjectRequestStatusEnumStringValues Enumerates the set of values in String for CopyObjectRequestSummaryCopyMetadataObjectRequestStatusEnum +func GetCopyObjectRequestSummaryCopyMetadataObjectRequestStatusEnumStringValues() []string { + return []string{ + "SUCCESSFUL", + "FAILED", + "IN_PROGRESS", + "QUEUED", + "TERMINATING", + "TERMINATED", + } +} + +// GetMappingCopyObjectRequestSummaryCopyMetadataObjectRequestStatusEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingCopyObjectRequestSummaryCopyMetadataObjectRequestStatusEnum(val string) (CopyObjectRequestSummaryCopyMetadataObjectRequestStatusEnum, bool) { + enum, ok := mappingCopyObjectRequestSummaryCopyMetadataObjectRequestStatusEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/copy_object_request_summary_collection.go b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/copy_object_request_summary_collection.go new file mode 100644 index 00000000000..65589935515 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/copy_object_request_summary_collection.go @@ -0,0 +1,39 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Data Integration API +// +// Use the Data Integration API to organize your data integration projects, create data flows, pipelines and tasks, and then publish, schedule, and run tasks that extract, transform, and load data. For more information, see Data Integration (https://docs.oracle.com/iaas/data-integration/home.htm). +// + +package dataintegration + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// CopyObjectRequestSummaryCollection This is the collection of copy object requests. +type CopyObjectRequestSummaryCollection struct { + + // The array of copy object requests status summaries. + Items []CopyObjectRequestSummary `mandatory:"true" json:"items"` +} + +func (m CopyObjectRequestSummaryCollection) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m CopyObjectRequestSummaryCollection) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/create_application_detailed_description_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/create_application_detailed_description_request_response.go new file mode 100644 index 00000000000..dafde950e35 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/create_application_detailed_description_request_response.go @@ -0,0 +1,104 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package dataintegration + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// CreateApplicationDetailedDescriptionRequest wrapper for the CreateApplicationDetailedDescription operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/dataintegration/CreateApplicationDetailedDescription.go.html to see an example of how to use CreateApplicationDetailedDescriptionRequest. +type CreateApplicationDetailedDescriptionRequest struct { + + // The workspace ID. + WorkspaceId *string `mandatory:"true" contributesTo:"path" name:"workspaceId"` + + // The application key. + ApplicationKey *string `mandatory:"true" contributesTo:"path" name:"applicationKey"` + + // Detailed description of an application. + CreateApplicationDetailedDescriptionDetails CreateDetailedDescriptionDetails `contributesTo:"body"` + + // Unique Oracle-assigned identifier for the request. If + // you need to contact Oracle about a particular request, + // please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // A token that uniquely identifies a request so it can be retried in case of a timeout or server error without risk of executing that same action again. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request CreateApplicationDetailedDescriptionRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request CreateApplicationDetailedDescriptionRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request CreateApplicationDetailedDescriptionRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request CreateApplicationDetailedDescriptionRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request CreateApplicationDetailedDescriptionRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// CreateApplicationDetailedDescriptionResponse wrapper for the CreateApplicationDetailedDescription operation +type CreateApplicationDetailedDescriptionResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The DetailedDescription instance + DetailedDescription `presentIn:"body"` + + // For optimistic concurrency control. See ETags for Optimistic Concurrency Control (https://docs.cloud.oracle.com/iaas/Content/API/Concepts/usingapi.htm#eleven). + Etag *string `presentIn:"header" name:"etag"` + + // Unique Oracle-assigned identifier for the request. If you need to contact + // Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response CreateApplicationDetailedDescriptionResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response CreateApplicationDetailedDescriptionResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/create_copy_object_request_details.go b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/create_copy_object_request_details.go new file mode 100644 index 00000000000..51ffb106adf --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/create_copy_object_request_details.go @@ -0,0 +1,44 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Data Integration API +// +// Use the Data Integration API to organize your data integration projects, create data flows, pipelines and tasks, and then publish, schedule, and run tasks that extract, transform, and load data. For more information, see Data Integration (https://docs.oracle.com/iaas/data-integration/home.htm). +// + +package dataintegration + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// CreateCopyObjectRequestDetails Details of copy object. +type CreateCopyObjectRequestDetails struct { + + // The workspace id of the source from where we need to copy object. + SourceWorkspaceId *string `mandatory:"true" json:"sourceWorkspaceId"` + + // The list of the objects to be copied. + ObjectKeys []string `mandatory:"true" json:"objectKeys"` + + CopyConflictResolution *CopyConflictResolution `mandatory:"true" json:"copyConflictResolution"` +} + +func (m CreateCopyObjectRequestDetails) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m CreateCopyObjectRequestDetails) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/create_copy_object_request_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/create_copy_object_request_request_response.go new file mode 100644 index 00000000000..8241084221c --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/create_copy_object_request_request_response.go @@ -0,0 +1,104 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package dataintegration + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// CreateCopyObjectRequestRequest wrapper for the CreateCopyObjectRequest operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/dataintegration/CreateCopyObjectRequest.go.html to see an example of how to use CreateCopyObjectRequestRequest. +type CreateCopyObjectRequestRequest struct { + + // The workspace ID. + WorkspaceId *string `mandatory:"true" contributesTo:"path" name:"workspaceId"` + + // The details needed to copy metadata object. + CreateCopyObjectRequestDetails `contributesTo:"body"` + + // Unique Oracle-assigned identifier for the request. If + // you need to contact Oracle about a particular request, + // please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // A token that uniquely identifies a request so it can be retried in case of a timeout or server error without risk of executing that same action again. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request CreateCopyObjectRequestRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request CreateCopyObjectRequestRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request CreateCopyObjectRequestRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request CreateCopyObjectRequestRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request CreateCopyObjectRequestRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// CreateCopyObjectRequestResponse wrapper for the CreateCopyObjectRequest operation +type CreateCopyObjectRequestResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The CopyObjectRequest instance + CopyObjectRequest `presentIn:"body"` + + // For optimistic concurrency control. See ETags for Optimistic Concurrency Control (https://docs.cloud.oracle.com/iaas/Content/API/Concepts/usingapi.htm#eleven). + Etag *string `presentIn:"header" name:"etag"` + + // Unique Oracle-assigned identifier for the request. If you need to contact + // Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // Unique Oracle-assigned identifier for the asynchronous request. You can use this to query status of the asynchronous operation. + OpcWorkRequestId *string `presentIn:"header" name:"opc-work-request-id"` +} + +func (response CreateCopyObjectRequestResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response CreateCopyObjectRequestResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/create_detailed_description_details.go b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/create_detailed_description_details.go new file mode 100644 index 00000000000..da88cc94b15 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/create_detailed_description_details.go @@ -0,0 +1,42 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Data Integration API +// +// Use the Data Integration API to organize your data integration projects, create data flows, pipelines and tasks, and then publish, schedule, and run tasks that extract, transform, and load data. For more information, see Data Integration (https://docs.oracle.com/iaas/data-integration/home.htm). +// + +package dataintegration + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// CreateDetailedDescriptionDetails Properties used in detailed description create operations. +type CreateDetailedDescriptionDetails struct { + + // Base64 encoded image to represent logo of the object. + Logo *string `mandatory:"false" json:"logo"` + + // Base64 encoded rich text description of the object. + DetailedDescription *string `mandatory:"false" json:"detailedDescription"` +} + +func (m CreateDetailedDescriptionDetails) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m CreateDetailedDescriptionDetails) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/create_dis_application_detailed_description_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/create_dis_application_detailed_description_request_response.go new file mode 100644 index 00000000000..d186fb44b7b --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/create_dis_application_detailed_description_request_response.go @@ -0,0 +1,104 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package dataintegration + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// CreateDisApplicationDetailedDescriptionRequest wrapper for the CreateDisApplicationDetailedDescription operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/dataintegration/CreateDisApplicationDetailedDescription.go.html to see an example of how to use CreateDisApplicationDetailedDescriptionRequest. +type CreateDisApplicationDetailedDescriptionRequest struct { + + // The workspace ID. + WorkspaceId *string `mandatory:"true" contributesTo:"path" name:"workspaceId"` + + // The application key. + ApplicationKey *string `mandatory:"true" contributesTo:"path" name:"applicationKey"` + + // Detailed description of an application. + CreateDisApplicationDetailedDescriptionDetails CreateDetailedDescriptionDetails `contributesTo:"body"` + + // Unique Oracle-assigned identifier for the request. If + // you need to contact Oracle about a particular request, + // please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // A token that uniquely identifies a request so it can be retried in case of a timeout or server error without risk of executing that same action again. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request CreateDisApplicationDetailedDescriptionRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request CreateDisApplicationDetailedDescriptionRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request CreateDisApplicationDetailedDescriptionRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request CreateDisApplicationDetailedDescriptionRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request CreateDisApplicationDetailedDescriptionRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// CreateDisApplicationDetailedDescriptionResponse wrapper for the CreateDisApplicationDetailedDescription operation +type CreateDisApplicationDetailedDescriptionResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The DetailedDescription instance + DetailedDescription `presentIn:"body"` + + // For optimistic concurrency control. See ETags for Optimistic Concurrency Control (https://docs.cloud.oracle.com/iaas/Content/API/Concepts/usingapi.htm#eleven). + Etag *string `presentIn:"header" name:"etag"` + + // Unique Oracle-assigned identifier for the request. If you need to contact + // Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response CreateDisApplicationDetailedDescriptionResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response CreateDisApplicationDetailedDescriptionResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/dataintegration_client.go b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/dataintegration_client.go index 360512630eb..dd4e7358134 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/dataintegration_client.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/dataintegration_client.go @@ -273,6 +273,68 @@ func (client DataIntegrationClient) createApplication(ctx context.Context, reque return response, err } +// CreateApplicationDetailedDescription Creates detailed description for an application. +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/dataintegration/CreateApplicationDetailedDescription.go.html to see an example of how to use CreateApplicationDetailedDescription API. +func (client DataIntegrationClient) CreateApplicationDetailedDescription(ctx context.Context, request CreateApplicationDetailedDescriptionRequest) (response CreateApplicationDetailedDescriptionResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.createApplicationDetailedDescription, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = CreateApplicationDetailedDescriptionResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = CreateApplicationDetailedDescriptionResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(CreateApplicationDetailedDescriptionResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into CreateApplicationDetailedDescriptionResponse") + } + return +} + +// createApplicationDetailedDescription implements the OCIOperation interface (enables retrying operations) +func (client DataIntegrationClient) createApplicationDetailedDescription(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPost, "/workspaces/{workspaceId}/applications/{applicationKey}/detailedDescription", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response CreateApplicationDetailedDescriptionResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/data-integration/20200430/DetailedDescription/CreateApplicationDetailedDescription" + err = common.PostProcessServiceError(err, "DataIntegration", "CreateApplicationDetailedDescription", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + // CreateConnection Creates a connection under an existing data asset. // // See also @@ -397,6 +459,68 @@ func (client DataIntegrationClient) createConnectionValidation(ctx context.Conte return response, err } +// CreateCopyObjectRequest Copy Metadata Object. +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/dataintegration/CreateCopyObjectRequest.go.html to see an example of how to use CreateCopyObjectRequest API. +func (client DataIntegrationClient) CreateCopyObjectRequest(ctx context.Context, request CreateCopyObjectRequestRequest) (response CreateCopyObjectRequestResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.createCopyObjectRequest, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = CreateCopyObjectRequestResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = CreateCopyObjectRequestResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(CreateCopyObjectRequestResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into CreateCopyObjectRequestResponse") + } + return +} + +// createCopyObjectRequest implements the OCIOperation interface (enables retrying operations) +func (client DataIntegrationClient) createCopyObjectRequest(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPost, "/workspaces/{workspaceId}/copyObjectRequests", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response CreateCopyObjectRequestResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "DataIntegration", "CreateCopyObjectRequest", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + // CreateDataAsset Creates a data asset with default connection. // // See also @@ -645,6 +769,68 @@ func (client DataIntegrationClient) createDisApplication(ctx context.Context, re return response, err } +// CreateDisApplicationDetailedDescription Creates detailed description for an application. +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/dataintegration/CreateDisApplicationDetailedDescription.go.html to see an example of how to use CreateDisApplicationDetailedDescription API. +func (client DataIntegrationClient) CreateDisApplicationDetailedDescription(ctx context.Context, request CreateDisApplicationDetailedDescriptionRequest) (response CreateDisApplicationDetailedDescriptionResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.createDisApplicationDetailedDescription, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = CreateDisApplicationDetailedDescriptionResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = CreateDisApplicationDetailedDescriptionResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(CreateDisApplicationDetailedDescriptionResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into CreateDisApplicationDetailedDescriptionResponse") + } + return +} + +// createDisApplicationDetailedDescription implements the OCIOperation interface (enables retrying operations) +func (client DataIntegrationClient) createDisApplicationDetailedDescription(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPost, "/workspaces/{workspaceId}/disApplications/{applicationKey}/detailedDescription", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response CreateDisApplicationDetailedDescriptionResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/data-integration/20200430/DetailedDescription/CreateDisApplicationDetailedDescription" + err = common.PostProcessServiceError(err, "DataIntegration", "CreateDisApplicationDetailedDescription", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + // CreateEntityShape Creates the data entity shape using the shape from the data asset. // // See also @@ -1758,6 +1944,63 @@ func (client DataIntegrationClient) deleteApplication(ctx context.Context, reque return response, err } +// DeleteApplicationDetailedDescription Deletes detailed description of an Application. +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/dataintegration/DeleteApplicationDetailedDescription.go.html to see an example of how to use DeleteApplicationDetailedDescription API. +func (client DataIntegrationClient) DeleteApplicationDetailedDescription(ctx context.Context, request DeleteApplicationDetailedDescriptionRequest) (response DeleteApplicationDetailedDescriptionResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + ociResponse, err = common.Retry(ctx, request, client.deleteApplicationDetailedDescription, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = DeleteApplicationDetailedDescriptionResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = DeleteApplicationDetailedDescriptionResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(DeleteApplicationDetailedDescriptionResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into DeleteApplicationDetailedDescriptionResponse") + } + return +} + +// deleteApplicationDetailedDescription implements the OCIOperation interface (enables retrying operations) +func (client DataIntegrationClient) deleteApplicationDetailedDescription(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodDelete, "/workspaces/{workspaceId}/applications/{applicationKey}/detailedDescription", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response DeleteApplicationDetailedDescriptionResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/data-integration/20200430/DetailedDescription/DeleteApplicationDetailedDescription" + err = common.PostProcessServiceError(err, "DataIntegration", "DeleteApplicationDetailedDescription", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + // DeleteConnection Removes a connection using the specified identifier. // // See also @@ -1872,6 +2115,63 @@ func (client DataIntegrationClient) deleteConnectionValidation(ctx context.Conte return response, err } +// DeleteCopyObjectRequest Delete copy object request using the specified identifier. +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/dataintegration/DeleteCopyObjectRequest.go.html to see an example of how to use DeleteCopyObjectRequest API. +func (client DataIntegrationClient) DeleteCopyObjectRequest(ctx context.Context, request DeleteCopyObjectRequestRequest) (response DeleteCopyObjectRequestResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + ociResponse, err = common.Retry(ctx, request, client.deleteCopyObjectRequest, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = DeleteCopyObjectRequestResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = DeleteCopyObjectRequestResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(DeleteCopyObjectRequestResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into DeleteCopyObjectRequestResponse") + } + return +} + +// deleteCopyObjectRequest implements the OCIOperation interface (enables retrying operations) +func (client DataIntegrationClient) deleteCopyObjectRequest(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodDelete, "/workspaces/{workspaceId}/copyObjectRequests/{copyObjectRequestKey}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response DeleteCopyObjectRequestResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/data-integration/20200430/Workspace/DeleteCopyObjectRequest" + err = common.PostProcessServiceError(err, "DataIntegration", "DeleteCopyObjectRequest", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + // DeleteDataAsset Removes a data asset using the specified identifier. // // See also @@ -2100,6 +2400,63 @@ func (client DataIntegrationClient) deleteDisApplication(ctx context.Context, re return response, err } +// DeleteDisApplicationDetailedDescription Deletes detailed description of an Application. +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/dataintegration/DeleteDisApplicationDetailedDescription.go.html to see an example of how to use DeleteDisApplicationDetailedDescription API. +func (client DataIntegrationClient) DeleteDisApplicationDetailedDescription(ctx context.Context, request DeleteDisApplicationDetailedDescriptionRequest) (response DeleteDisApplicationDetailedDescriptionResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + ociResponse, err = common.Retry(ctx, request, client.deleteDisApplicationDetailedDescription, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = DeleteDisApplicationDetailedDescriptionResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = DeleteDisApplicationDetailedDescriptionResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(DeleteDisApplicationDetailedDescriptionResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into DeleteDisApplicationDetailedDescriptionResponse") + } + return +} + +// deleteDisApplicationDetailedDescription implements the OCIOperation interface (enables retrying operations) +func (client DataIntegrationClient) deleteDisApplicationDetailedDescription(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodDelete, "/workspaces/{workspaceId}/disApplications/{applicationKey}/detailedDescription", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response DeleteDisApplicationDetailedDescriptionResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/data-integration/20200430/DetailedDescription/DeleteDisApplicationDetailedDescription" + err = common.PostProcessServiceError(err, "DataIntegration", "DeleteDisApplicationDetailedDescription", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + // DeleteExternalPublication Removes a published object using the specified identifier. // // See also @@ -3069,6 +3426,63 @@ func (client DataIntegrationClient) getApplication(ctx context.Context, request return response, err } +// GetApplicationDetailedDescription Retrieves detailed description of an Application +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/dataintegration/GetApplicationDetailedDescription.go.html to see an example of how to use GetApplicationDetailedDescription API. +func (client DataIntegrationClient) GetApplicationDetailedDescription(ctx context.Context, request GetApplicationDetailedDescriptionRequest) (response GetApplicationDetailedDescriptionResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + ociResponse, err = common.Retry(ctx, request, client.getApplicationDetailedDescription, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = GetApplicationDetailedDescriptionResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = GetApplicationDetailedDescriptionResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(GetApplicationDetailedDescriptionResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into GetApplicationDetailedDescriptionResponse") + } + return +} + +// getApplicationDetailedDescription implements the OCIOperation interface (enables retrying operations) +func (client DataIntegrationClient) getApplicationDetailedDescription(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/workspaces/{workspaceId}/applications/{applicationKey}/detailedDescription", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response GetApplicationDetailedDescriptionResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/data-integration/20200430/DetailedDescription/GetApplicationDetailedDescription" + err = common.PostProcessServiceError(err, "DataIntegration", "GetApplicationDetailedDescription", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + // GetConnection Retrieves the connection details using the specified identifier. // // See also @@ -3183,6 +3597,63 @@ func (client DataIntegrationClient) getConnectionValidation(ctx context.Context, return response, err } +// GetCopyObjectRequest This endpoint can be used to get the summary/details of object being copied. +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/dataintegration/GetCopyObjectRequest.go.html to see an example of how to use GetCopyObjectRequest API. +func (client DataIntegrationClient) GetCopyObjectRequest(ctx context.Context, request GetCopyObjectRequestRequest) (response GetCopyObjectRequestResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + ociResponse, err = common.Retry(ctx, request, client.getCopyObjectRequest, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = GetCopyObjectRequestResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = GetCopyObjectRequestResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(GetCopyObjectRequestResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into GetCopyObjectRequestResponse") + } + return +} + +// getCopyObjectRequest implements the OCIOperation interface (enables retrying operations) +func (client DataIntegrationClient) getCopyObjectRequest(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/workspaces/{workspaceId}/copyObjectRequests/{copyObjectRequestKey}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response GetCopyObjectRequestResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/data-integration/20200430/CopyObjectRequest/GetCopyObjectRequest" + err = common.PostProcessServiceError(err, "DataIntegration", "GetCopyObjectRequest", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + // GetCountStatistic Retrieves statistics on a workspace. It returns an object with an array of property values, such as the number of projects, | // applications, data assets, and so on. // @@ -3583,6 +4054,63 @@ func (client DataIntegrationClient) getDisApplication(ctx context.Context, reque return response, err } +// GetDisApplicationDetailedDescription Retrieves detailed description of an Application. +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/dataintegration/GetDisApplicationDetailedDescription.go.html to see an example of how to use GetDisApplicationDetailedDescription API. +func (client DataIntegrationClient) GetDisApplicationDetailedDescription(ctx context.Context, request GetDisApplicationDetailedDescriptionRequest) (response GetDisApplicationDetailedDescriptionResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + ociResponse, err = common.Retry(ctx, request, client.getDisApplicationDetailedDescription, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = GetDisApplicationDetailedDescriptionResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = GetDisApplicationDetailedDescriptionResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(GetDisApplicationDetailedDescriptionResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into GetDisApplicationDetailedDescriptionResponse") + } + return +} + +// getDisApplicationDetailedDescription implements the OCIOperation interface (enables retrying operations) +func (client DataIntegrationClient) getDisApplicationDetailedDescription(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/workspaces/{workspaceId}/disApplications/{applicationKey}/detailedDescription", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response GetDisApplicationDetailedDescriptionResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/data-integration/20200430/DetailedDescription/GetDisApplicationDetailedDescription" + err = common.PostProcessServiceError(err, "DataIntegration", "GetDisApplicationDetailedDescription", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + // GetExternalPublication Retrieves a publshed object in an task using the specified identifier. // // See also @@ -4499,8 +5027,65 @@ func (client DataIntegrationClient) getTaskRun(ctx context.Context, request comm // // See also // -// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/dataintegration/GetTaskSchedule.go.html to see an example of how to use GetTaskSchedule API. -func (client DataIntegrationClient) GetTaskSchedule(ctx context.Context, request GetTaskScheduleRequest) (response GetTaskScheduleResponse, err error) { +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/dataintegration/GetTaskSchedule.go.html to see an example of how to use GetTaskSchedule API. +func (client DataIntegrationClient) GetTaskSchedule(ctx context.Context, request GetTaskScheduleRequest) (response GetTaskScheduleResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + ociResponse, err = common.Retry(ctx, request, client.getTaskSchedule, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = GetTaskScheduleResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = GetTaskScheduleResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(GetTaskScheduleResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into GetTaskScheduleResponse") + } + return +} + +// getTaskSchedule implements the OCIOperation interface (enables retrying operations) +func (client DataIntegrationClient) getTaskSchedule(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/workspaces/{workspaceId}/applications/{applicationKey}/taskSchedules/{taskScheduleKey}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response GetTaskScheduleResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/data-integration/20200430/TaskSchedule/GetTaskSchedule" + err = common.PostProcessServiceError(err, "DataIntegration", "GetTaskSchedule", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// GetTaskValidation Retrieves a task validation using the specified identifier. +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/dataintegration/GetTaskValidation.go.html to see an example of how to use GetTaskValidation API. +func (client DataIntegrationClient) GetTaskValidation(ctx context.Context, request GetTaskValidationRequest) (response GetTaskValidationResponse, err error) { var ociResponse common.OCIResponse policy := common.NoRetryPolicy() if client.RetryPolicy() != nil { @@ -4509,42 +5094,42 @@ func (client DataIntegrationClient) GetTaskSchedule(ctx context.Context, request if request.RetryPolicy() != nil { policy = *request.RetryPolicy() } - ociResponse, err = common.Retry(ctx, request, client.getTaskSchedule, policy) + ociResponse, err = common.Retry(ctx, request, client.getTaskValidation, policy) if err != nil { if ociResponse != nil { if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { opcRequestId := httpResponse.Header.Get("opc-request-id") - response = GetTaskScheduleResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + response = GetTaskValidationResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} } else { - response = GetTaskScheduleResponse{} + response = GetTaskValidationResponse{} } } return } - if convertedResponse, ok := ociResponse.(GetTaskScheduleResponse); ok { + if convertedResponse, ok := ociResponse.(GetTaskValidationResponse); ok { response = convertedResponse } else { - err = fmt.Errorf("failed to convert OCIResponse into GetTaskScheduleResponse") + err = fmt.Errorf("failed to convert OCIResponse into GetTaskValidationResponse") } return } -// getTaskSchedule implements the OCIOperation interface (enables retrying operations) -func (client DataIntegrationClient) getTaskSchedule(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { +// getTaskValidation implements the OCIOperation interface (enables retrying operations) +func (client DataIntegrationClient) getTaskValidation(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { - httpRequest, err := request.HTTPRequest(http.MethodGet, "/workspaces/{workspaceId}/applications/{applicationKey}/taskSchedules/{taskScheduleKey}", binaryReqBody, extraHeaders) + httpRequest, err := request.HTTPRequest(http.MethodGet, "/workspaces/{workspaceId}/taskValidations/{taskValidationKey}", binaryReqBody, extraHeaders) if err != nil { return nil, err } - var response GetTaskScheduleResponse + var response GetTaskValidationResponse var httpResponse *http.Response httpResponse, err = client.Call(ctx, &httpRequest) defer common.CloseBodyIfValid(httpResponse) response.RawResponse = httpResponse if err != nil { - apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/data-integration/20200430/TaskSchedule/GetTaskSchedule" - err = common.PostProcessServiceError(err, "DataIntegration", "GetTaskSchedule", apiReferenceLink) + apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/data-integration/20200430/TaskValidation/GetTaskValidation" + err = common.PostProcessServiceError(err, "DataIntegration", "GetTaskValidation", apiReferenceLink) return response, err } @@ -4552,12 +5137,12 @@ func (client DataIntegrationClient) getTaskSchedule(ctx context.Context, request return response, err } -// GetTaskValidation Retrieves a task validation using the specified identifier. +// GetTemplate This endpoint can be used to get an application template using a key. // // See also // -// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/dataintegration/GetTaskValidation.go.html to see an example of how to use GetTaskValidation API. -func (client DataIntegrationClient) GetTaskValidation(ctx context.Context, request GetTaskValidationRequest) (response GetTaskValidationResponse, err error) { +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/dataintegration/GetTemplate.go.html to see an example of how to use GetTemplate API. +func (client DataIntegrationClient) GetTemplate(ctx context.Context, request GetTemplateRequest) (response GetTemplateResponse, err error) { var ociResponse common.OCIResponse policy := common.NoRetryPolicy() if client.RetryPolicy() != nil { @@ -4566,42 +5151,42 @@ func (client DataIntegrationClient) GetTaskValidation(ctx context.Context, reque if request.RetryPolicy() != nil { policy = *request.RetryPolicy() } - ociResponse, err = common.Retry(ctx, request, client.getTaskValidation, policy) + ociResponse, err = common.Retry(ctx, request, client.getTemplate, policy) if err != nil { if ociResponse != nil { if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { opcRequestId := httpResponse.Header.Get("opc-request-id") - response = GetTaskValidationResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + response = GetTemplateResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} } else { - response = GetTaskValidationResponse{} + response = GetTemplateResponse{} } } return } - if convertedResponse, ok := ociResponse.(GetTaskValidationResponse); ok { + if convertedResponse, ok := ociResponse.(GetTemplateResponse); ok { response = convertedResponse } else { - err = fmt.Errorf("failed to convert OCIResponse into GetTaskValidationResponse") + err = fmt.Errorf("failed to convert OCIResponse into GetTemplateResponse") } return } -// getTaskValidation implements the OCIOperation interface (enables retrying operations) -func (client DataIntegrationClient) getTaskValidation(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { +// getTemplate implements the OCIOperation interface (enables retrying operations) +func (client DataIntegrationClient) getTemplate(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { - httpRequest, err := request.HTTPRequest(http.MethodGet, "/workspaces/{workspaceId}/taskValidations/{taskValidationKey}", binaryReqBody, extraHeaders) + httpRequest, err := request.HTTPRequest(http.MethodGet, "/workspaces/{workspaceId}/templates/{templateId}", binaryReqBody, extraHeaders) if err != nil { return nil, err } - var response GetTaskValidationResponse + var response GetTemplateResponse var httpResponse *http.Response httpResponse, err = client.Call(ctx, &httpRequest) defer common.CloseBodyIfValid(httpResponse) response.RawResponse = httpResponse if err != nil { - apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/data-integration/20200430/TaskValidation/GetTaskValidation" - err = common.PostProcessServiceError(err, "DataIntegration", "GetTaskValidation", apiReferenceLink) + apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/data-integration/20200430/Template/GetTemplate" + err = common.PostProcessServiceError(err, "DataIntegration", "GetTemplate", apiReferenceLink) return response, err } @@ -5008,6 +5593,63 @@ func (client DataIntegrationClient) listConnections(ctx context.Context, request return response, err } +// ListCopyObjectRequests This endpoint can be used to get the list of copy object requests. +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/dataintegration/ListCopyObjectRequests.go.html to see an example of how to use ListCopyObjectRequests API. +func (client DataIntegrationClient) ListCopyObjectRequests(ctx context.Context, request ListCopyObjectRequestsRequest) (response ListCopyObjectRequestsResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + ociResponse, err = common.Retry(ctx, request, client.listCopyObjectRequests, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = ListCopyObjectRequestsResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = ListCopyObjectRequestsResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(ListCopyObjectRequestsResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into ListCopyObjectRequestsResponse") + } + return +} + +// listCopyObjectRequests implements the OCIOperation interface (enables retrying operations) +func (client DataIntegrationClient) listCopyObjectRequests(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/workspaces/{workspaceId}/copyObjectRequests", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response ListCopyObjectRequestsResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/data-integration/20200430/CopyObjectRequestSummaryCollection/ListCopyObjectRequests" + err = common.PostProcessServiceError(err, "DataIntegration", "ListCopyObjectRequests", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + // ListDataAssets Retrieves a list of all data asset summaries. // // See also @@ -6604,6 +7246,63 @@ func (client DataIntegrationClient) listTasks(ctx context.Context, request commo return response, err } +// ListTemplates This endpoint can be used to list application templates with filtering options. +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/dataintegration/ListTemplates.go.html to see an example of how to use ListTemplates API. +func (client DataIntegrationClient) ListTemplates(ctx context.Context, request ListTemplatesRequest) (response ListTemplatesResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + ociResponse, err = common.Retry(ctx, request, client.listTemplates, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = ListTemplatesResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = ListTemplatesResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(ListTemplatesResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into ListTemplatesResponse") + } + return +} + +// listTemplates implements the OCIOperation interface (enables retrying operations) +func (client DataIntegrationClient) listTemplates(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/workspaces/{workspaceId}/templates", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response ListTemplatesResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/data-integration/20200430/Template/ListTemplates" + err = common.PostProcessServiceError(err, "DataIntegration", "ListTemplates", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + // ListUserDefinedFunctionValidations Retrieves a list of UserDefinedFunctionvalidations within the specified workspace. // // See also @@ -7127,6 +7826,63 @@ func (client DataIntegrationClient) updateApplication(ctx context.Context, reque return response, err } +// UpdateApplicationDetailedDescription Updates the detailed description of an Application. +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/dataintegration/UpdateApplicationDetailedDescription.go.html to see an example of how to use UpdateApplicationDetailedDescription API. +func (client DataIntegrationClient) UpdateApplicationDetailedDescription(ctx context.Context, request UpdateApplicationDetailedDescriptionRequest) (response UpdateApplicationDetailedDescriptionResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + ociResponse, err = common.Retry(ctx, request, client.updateApplicationDetailedDescription, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = UpdateApplicationDetailedDescriptionResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = UpdateApplicationDetailedDescriptionResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(UpdateApplicationDetailedDescriptionResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into UpdateApplicationDetailedDescriptionResponse") + } + return +} + +// updateApplicationDetailedDescription implements the OCIOperation interface (enables retrying operations) +func (client DataIntegrationClient) updateApplicationDetailedDescription(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPut, "/workspaces/{workspaceId}/applications/{applicationKey}/detailedDescription", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response UpdateApplicationDetailedDescriptionResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/data-integration/20200430/DetailedDescription/UpdateApplicationDetailedDescription" + err = common.PostProcessServiceError(err, "DataIntegration", "UpdateApplicationDetailedDescription", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + // UpdateConnection Updates a connection under a data asset. // // See also @@ -7184,6 +7940,63 @@ func (client DataIntegrationClient) updateConnection(ctx context.Context, reques return response, err } +// UpdateCopyObjectRequest Updates the status of a copy object request. +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/dataintegration/UpdateCopyObjectRequest.go.html to see an example of how to use UpdateCopyObjectRequest API. +func (client DataIntegrationClient) UpdateCopyObjectRequest(ctx context.Context, request UpdateCopyObjectRequestRequest) (response UpdateCopyObjectRequestResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + ociResponse, err = common.Retry(ctx, request, client.updateCopyObjectRequest, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = UpdateCopyObjectRequestResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = UpdateCopyObjectRequestResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(UpdateCopyObjectRequestResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into UpdateCopyObjectRequestResponse") + } + return +} + +// updateCopyObjectRequest implements the OCIOperation interface (enables retrying operations) +func (client DataIntegrationClient) updateCopyObjectRequest(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPut, "/workspaces/{workspaceId}/copyObjectRequests/{copyObjectRequestKey}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response UpdateCopyObjectRequestResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/data-integration/20200430/Workspace/UpdateCopyObjectRequest" + err = common.PostProcessServiceError(err, "DataIntegration", "UpdateCopyObjectRequest", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + // UpdateDataAsset Updates a specific data asset with default connection. // // See also @@ -7355,6 +8168,63 @@ func (client DataIntegrationClient) updateDisApplication(ctx context.Context, re return response, err } +// UpdateDisApplicationDetailedDescription Updates the detailed description of an Application. +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/dataintegration/UpdateDisApplicationDetailedDescription.go.html to see an example of how to use UpdateDisApplicationDetailedDescription API. +func (client DataIntegrationClient) UpdateDisApplicationDetailedDescription(ctx context.Context, request UpdateDisApplicationDetailedDescriptionRequest) (response UpdateDisApplicationDetailedDescriptionResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + ociResponse, err = common.Retry(ctx, request, client.updateDisApplicationDetailedDescription, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = UpdateDisApplicationDetailedDescriptionResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = UpdateDisApplicationDetailedDescriptionResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(UpdateDisApplicationDetailedDescriptionResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into UpdateDisApplicationDetailedDescriptionResponse") + } + return +} + +// updateDisApplicationDetailedDescription implements the OCIOperation interface (enables retrying operations) +func (client DataIntegrationClient) updateDisApplicationDetailedDescription(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPut, "/workspaces/{workspaceId}/disApplications/{applicationKey}/detailedDescription", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response UpdateDisApplicationDetailedDescriptionResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/data-integration/20200430/DetailedDescription/UpdateDisApplicationDetailedDescription" + err = common.PostProcessServiceError(err, "DataIntegration", "UpdateDisApplicationDetailedDescription", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + // UpdateExternalPublication Updates the external publication object. // // See also diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/delete_application_detailed_description_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/delete_application_detailed_description_request_response.go new file mode 100644 index 00000000000..55db33ee406 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/delete_application_detailed_description_request_response.go @@ -0,0 +1,97 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package dataintegration + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// DeleteApplicationDetailedDescriptionRequest wrapper for the DeleteApplicationDetailedDescription operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/dataintegration/DeleteApplicationDetailedDescription.go.html to see an example of how to use DeleteApplicationDetailedDescriptionRequest. +type DeleteApplicationDetailedDescriptionRequest struct { + + // The workspace ID. + WorkspaceId *string `mandatory:"true" contributesTo:"path" name:"workspaceId"` + + // The application key. + ApplicationKey *string `mandatory:"true" contributesTo:"path" name:"applicationKey"` + + // For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match` parameter to the value of the `etag` from a previous GET or POST response for that resource. + // The resource will be updated or deleted only if the `etag` you provide matches the resource's current `etag` value. + // When 'if-match' is provided and its value does not exactly match the 'etag' of the resource on the server, the request fails with the 412 response code. + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // Unique Oracle-assigned identifier for the request. If + // you need to contact Oracle about a particular request, + // please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request DeleteApplicationDetailedDescriptionRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request DeleteApplicationDetailedDescriptionRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request DeleteApplicationDetailedDescriptionRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request DeleteApplicationDetailedDescriptionRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request DeleteApplicationDetailedDescriptionRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// DeleteApplicationDetailedDescriptionResponse wrapper for the DeleteApplicationDetailedDescription operation +type DeleteApplicationDetailedDescriptionResponse struct { + + // The underlying http response + RawResponse *http.Response + + // Unique Oracle-assigned identifier for the request. If you need to contact + // Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response DeleteApplicationDetailedDescriptionResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response DeleteApplicationDetailedDescriptionResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/delete_copy_object_request_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/delete_copy_object_request_request_response.go new file mode 100644 index 00000000000..2f5527aad59 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/delete_copy_object_request_request_response.go @@ -0,0 +1,97 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package dataintegration + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// DeleteCopyObjectRequestRequest wrapper for the DeleteCopyObjectRequest operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/dataintegration/DeleteCopyObjectRequest.go.html to see an example of how to use DeleteCopyObjectRequestRequest. +type DeleteCopyObjectRequestRequest struct { + + // The workspace ID. + WorkspaceId *string `mandatory:"true" contributesTo:"path" name:"workspaceId"` + + // The key of the object to be copied, for example this could be the key of a project. + CopyObjectRequestKey *string `mandatory:"true" contributesTo:"path" name:"copyObjectRequestKey"` + + // Unique Oracle-assigned identifier for the request. If + // you need to contact Oracle about a particular request, + // please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match` parameter to the value of the `etag` from a previous GET or POST response for that resource. + // The resource will be updated or deleted only if the `etag` you provide matches the resource's current `etag` value. + // When 'if-match' is provided and its value does not exactly match the 'etag' of the resource on the server, the request fails with the 412 response code. + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request DeleteCopyObjectRequestRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request DeleteCopyObjectRequestRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request DeleteCopyObjectRequestRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request DeleteCopyObjectRequestRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request DeleteCopyObjectRequestRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// DeleteCopyObjectRequestResponse wrapper for the DeleteCopyObjectRequest operation +type DeleteCopyObjectRequestResponse struct { + + // The underlying http response + RawResponse *http.Response + + // Unique Oracle-assigned identifier for the request. If you need to contact + // Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response DeleteCopyObjectRequestResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response DeleteCopyObjectRequestResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/delete_dis_application_detailed_description_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/delete_dis_application_detailed_description_request_response.go new file mode 100644 index 00000000000..17a45ef4689 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/delete_dis_application_detailed_description_request_response.go @@ -0,0 +1,97 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package dataintegration + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// DeleteDisApplicationDetailedDescriptionRequest wrapper for the DeleteDisApplicationDetailedDescription operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/dataintegration/DeleteDisApplicationDetailedDescription.go.html to see an example of how to use DeleteDisApplicationDetailedDescriptionRequest. +type DeleteDisApplicationDetailedDescriptionRequest struct { + + // The workspace ID. + WorkspaceId *string `mandatory:"true" contributesTo:"path" name:"workspaceId"` + + // The application key. + ApplicationKey *string `mandatory:"true" contributesTo:"path" name:"applicationKey"` + + // For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match` parameter to the value of the `etag` from a previous GET or POST response for that resource. + // The resource will be updated or deleted only if the `etag` you provide matches the resource's current `etag` value. + // When 'if-match' is provided and its value does not exactly match the 'etag' of the resource on the server, the request fails with the 412 response code. + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // Unique Oracle-assigned identifier for the request. If + // you need to contact Oracle about a particular request, + // please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request DeleteDisApplicationDetailedDescriptionRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request DeleteDisApplicationDetailedDescriptionRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request DeleteDisApplicationDetailedDescriptionRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request DeleteDisApplicationDetailedDescriptionRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request DeleteDisApplicationDetailedDescriptionRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// DeleteDisApplicationDetailedDescriptionResponse wrapper for the DeleteDisApplicationDetailedDescription operation +type DeleteDisApplicationDetailedDescriptionResponse struct { + + // The underlying http response + RawResponse *http.Response + + // Unique Oracle-assigned identifier for the request. If you need to contact + // Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response DeleteDisApplicationDetailedDescriptionResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response DeleteDisApplicationDetailedDescriptionResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/detailed_description.go b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/detailed_description.go new file mode 100644 index 00000000000..0283655e901 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/detailed_description.go @@ -0,0 +1,108 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Data Integration API +// +// Use the Data Integration API to organize your data integration projects, create data flows, pipelines and tasks, and then publish, schedule, and run tasks that extract, transform, and load data. For more information, see Data Integration (https://docs.oracle.com/iaas/data-integration/home.htm). +// + +package dataintegration + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// DetailedDescription The detailed description of an object. +type DetailedDescription struct { + + // The type of the published object. + ModelType DetailedDescriptionModelTypeEnum `mandatory:"false" json:"modelType,omitempty"` + + // Generated key that can be used in API calls to identify task. On scenarios where reference to the task is needed, a value can be passed in create. + Key *string `mandatory:"false" json:"key"` + + // The object's model version. + ModelVersion *string `mandatory:"false" json:"modelVersion"` + + ParentRef *ParentReference `mandatory:"false" json:"parentRef"` + + // Free form text without any restriction on permitted characters. Name can have letters, numbers, and special characters. The value is editable and is restricted to 1000 characters. + Name *string `mandatory:"false" json:"name"` + + // The version of the object that is used to track changes in the object instance. + ObjectVersion *int `mandatory:"false" json:"objectVersion"` + + // The status of an object that can be set to value 1 for shallow references across objects, other values reserved. + ObjectStatus *int `mandatory:"false" json:"objectStatus"` + + // Value can only contain upper case letters, underscore, and numbers. It should begin with upper case letter or underscore. The value can be modified. + Identifier *string `mandatory:"false" json:"identifier"` + + Metadata *ObjectMetadata `mandatory:"false" json:"metadata"` + + // Base64 encoded image to represent logo of the object. + Logo *string `mandatory:"false" json:"logo"` + + // Base64 encoded rich text description of the object. + DetailedDescription *string `mandatory:"false" json:"detailedDescription"` +} + +func (m DetailedDescription) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m DetailedDescription) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if _, ok := GetMappingDetailedDescriptionModelTypeEnum(string(m.ModelType)); !ok && m.ModelType != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for ModelType: %s. Supported values are: %s.", m.ModelType, strings.Join(GetDetailedDescriptionModelTypeEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// DetailedDescriptionModelTypeEnum Enum with underlying type: string +type DetailedDescriptionModelTypeEnum string + +// Set of constants representing the allowable values for DetailedDescriptionModelTypeEnum +const ( + DetailedDescriptionModelTypeDetailedDescription DetailedDescriptionModelTypeEnum = "DETAILED_DESCRIPTION" +) + +var mappingDetailedDescriptionModelTypeEnum = map[string]DetailedDescriptionModelTypeEnum{ + "DETAILED_DESCRIPTION": DetailedDescriptionModelTypeDetailedDescription, +} + +var mappingDetailedDescriptionModelTypeEnumLowerCase = map[string]DetailedDescriptionModelTypeEnum{ + "detailed_description": DetailedDescriptionModelTypeDetailedDescription, +} + +// GetDetailedDescriptionModelTypeEnumValues Enumerates the set of values for DetailedDescriptionModelTypeEnum +func GetDetailedDescriptionModelTypeEnumValues() []DetailedDescriptionModelTypeEnum { + values := make([]DetailedDescriptionModelTypeEnum, 0) + for _, v := range mappingDetailedDescriptionModelTypeEnum { + values = append(values, v) + } + return values +} + +// GetDetailedDescriptionModelTypeEnumStringValues Enumerates the set of values in String for DetailedDescriptionModelTypeEnum +func GetDetailedDescriptionModelTypeEnumStringValues() []string { + return []string{ + "DETAILED_DESCRIPTION", + } +} + +// GetMappingDetailedDescriptionModelTypeEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingDetailedDescriptionModelTypeEnum(val string) (DetailedDescriptionModelTypeEnum, bool) { + enum, ok := mappingDetailedDescriptionModelTypeEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/get_application_detailed_description_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/get_application_detailed_description_request_response.go new file mode 100644 index 00000000000..821c15f07ee --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/get_application_detailed_description_request_response.go @@ -0,0 +1,98 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package dataintegration + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// GetApplicationDetailedDescriptionRequest wrapper for the GetApplicationDetailedDescription operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/dataintegration/GetApplicationDetailedDescription.go.html to see an example of how to use GetApplicationDetailedDescriptionRequest. +type GetApplicationDetailedDescriptionRequest struct { + + // The workspace ID. + WorkspaceId *string `mandatory:"true" contributesTo:"path" name:"workspaceId"` + + // The application key. + ApplicationKey *string `mandatory:"true" contributesTo:"path" name:"applicationKey"` + + // Unique Oracle-assigned identifier for the request. If + // you need to contact Oracle about a particular request, + // please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request GetApplicationDetailedDescriptionRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request GetApplicationDetailedDescriptionRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request GetApplicationDetailedDescriptionRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request GetApplicationDetailedDescriptionRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request GetApplicationDetailedDescriptionRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// GetApplicationDetailedDescriptionResponse wrapper for the GetApplicationDetailedDescription operation +type GetApplicationDetailedDescriptionResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The DetailedDescription instance + DetailedDescription `presentIn:"body"` + + // For optimistic concurrency control. See ETags for Optimistic Concurrency Control (https://docs.cloud.oracle.com/iaas/Content/API/Concepts/usingapi.htm#eleven). + Etag *string `presentIn:"header" name:"etag"` + + // Unique Oracle-assigned identifier for the request. If you need to contact + // Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response GetApplicationDetailedDescriptionResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response GetApplicationDetailedDescriptionResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/get_copy_object_request_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/get_copy_object_request_request_response.go new file mode 100644 index 00000000000..7ad996ee189 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/get_copy_object_request_request_response.go @@ -0,0 +1,98 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package dataintegration + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// GetCopyObjectRequestRequest wrapper for the GetCopyObjectRequest operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/dataintegration/GetCopyObjectRequest.go.html to see an example of how to use GetCopyObjectRequestRequest. +type GetCopyObjectRequestRequest struct { + + // The workspace ID. + WorkspaceId *string `mandatory:"true" contributesTo:"path" name:"workspaceId"` + + // The key of the object to be copied, for example this could be the key of a project. + CopyObjectRequestKey *string `mandatory:"true" contributesTo:"path" name:"copyObjectRequestKey"` + + // Unique Oracle-assigned identifier for the request. If + // you need to contact Oracle about a particular request, + // please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request GetCopyObjectRequestRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request GetCopyObjectRequestRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request GetCopyObjectRequestRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request GetCopyObjectRequestRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request GetCopyObjectRequestRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// GetCopyObjectRequestResponse wrapper for the GetCopyObjectRequest operation +type GetCopyObjectRequestResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The CopyObjectRequest instance + CopyObjectRequest `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact + // Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See ETags for Optimistic Concurrency Control (https://docs.cloud.oracle.com/iaas/Content/API/Concepts/usingapi.htm#eleven). + Etag *string `presentIn:"header" name:"etag"` +} + +func (response GetCopyObjectRequestResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response GetCopyObjectRequestResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/get_dis_application_detailed_description_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/get_dis_application_detailed_description_request_response.go new file mode 100644 index 00000000000..734ae6826f7 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/get_dis_application_detailed_description_request_response.go @@ -0,0 +1,98 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package dataintegration + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// GetDisApplicationDetailedDescriptionRequest wrapper for the GetDisApplicationDetailedDescription operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/dataintegration/GetDisApplicationDetailedDescription.go.html to see an example of how to use GetDisApplicationDetailedDescriptionRequest. +type GetDisApplicationDetailedDescriptionRequest struct { + + // The workspace ID. + WorkspaceId *string `mandatory:"true" contributesTo:"path" name:"workspaceId"` + + // The application key. + ApplicationKey *string `mandatory:"true" contributesTo:"path" name:"applicationKey"` + + // Unique Oracle-assigned identifier for the request. If + // you need to contact Oracle about a particular request, + // please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request GetDisApplicationDetailedDescriptionRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request GetDisApplicationDetailedDescriptionRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request GetDisApplicationDetailedDescriptionRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request GetDisApplicationDetailedDescriptionRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request GetDisApplicationDetailedDescriptionRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// GetDisApplicationDetailedDescriptionResponse wrapper for the GetDisApplicationDetailedDescription operation +type GetDisApplicationDetailedDescriptionResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The DetailedDescription instance + DetailedDescription `presentIn:"body"` + + // For optimistic concurrency control. See ETags for Optimistic Concurrency Control (https://docs.cloud.oracle.com/iaas/Content/API/Concepts/usingapi.htm#eleven). + Etag *string `presentIn:"header" name:"etag"` + + // Unique Oracle-assigned identifier for the request. If you need to contact + // Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response GetDisApplicationDetailedDescriptionResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response GetDisApplicationDetailedDescriptionResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/get_template_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/get_template_request_response.go new file mode 100644 index 00000000000..b3c00bf3f77 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/get_template_request_response.go @@ -0,0 +1,95 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package dataintegration + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// GetTemplateRequest wrapper for the GetTemplate operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/dataintegration/GetTemplate.go.html to see an example of how to use GetTemplateRequest. +type GetTemplateRequest struct { + + // The workspace ID. + WorkspaceId *string `mandatory:"true" contributesTo:"path" name:"workspaceId"` + + // The OCID of the template. + TemplateId *string `mandatory:"true" contributesTo:"path" name:"templateId"` + + // Unique Oracle-assigned identifier for the request. If + // you need to contact Oracle about a particular request, + // please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request GetTemplateRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request GetTemplateRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request GetTemplateRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request GetTemplateRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request GetTemplateRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// GetTemplateResponse wrapper for the GetTemplate operation +type GetTemplateResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The Template instance + Template `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact + // Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response GetTemplateResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response GetTemplateResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/list_copy_object_requests_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/list_copy_object_requests_request_response.go new file mode 100644 index 00000000000..7e582301c00 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/list_copy_object_requests_request_response.go @@ -0,0 +1,326 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package dataintegration + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// ListCopyObjectRequestsRequest wrapper for the ListCopyObjectRequests operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/dataintegration/ListCopyObjectRequests.go.html to see an example of how to use ListCopyObjectRequestsRequest. +type ListCopyObjectRequestsRequest struct { + + // The workspace ID. + WorkspaceId *string `mandatory:"true" contributesTo:"path" name:"workspaceId"` + + // Unique Oracle-assigned identifier for the request. If + // you need to contact Oracle about a particular request, + // please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Sets the maximum number of results per page, or items to return in a paginated `List` call. See List Pagination (https://docs.cloud.oracle.com/iaas/Content/API/Concepts/usingapi.htm#nine). + Limit *int `mandatory:"false" contributesTo:"query" name:"limit"` + + // For list pagination. The value for this parameter is the `opc-next-page` or the `opc-prev-page` response header from the previous `List` call. See List Pagination (https://docs.cloud.oracle.com/iaas/Content/API/Concepts/usingapi.htm#nine). + Page *string `mandatory:"false" contributesTo:"query" name:"page"` + + // Used to filter by the name of the object. + Name *string `mandatory:"false" contributesTo:"query" name:"name"` + + // Specifies sort order to use, either `ASC` (ascending) or `DESC` (descending). + SortOrder ListCopyObjectRequestsSortOrderEnum `mandatory:"false" contributesTo:"query" name:"sortOrder" omitEmpty:"true"` + + // Specifies the field to sort by. Accepts only one field. By default, when you sort by time fields, results are shown in descending order. All other fields default to ascending order. Sorting related parameters are ignored when parameter `query` is present (search operation and sorting order is by relevance score in descending order). + SortBy ListCopyObjectRequestsSortByEnum `mandatory:"false" contributesTo:"query" name:"sortBy" omitEmpty:"true"` + + // Specifies copy status to use, either - ALL, SUCCESSFUL, IN_PROGRESS, QUEUED, FAILED . + CopyStatus ListCopyObjectRequestsCopyStatusEnum `mandatory:"false" contributesTo:"query" name:"copyStatus" omitEmpty:"true"` + + // This parameter allows users to specify which view of the copy object response to return. SUMMARY - Summary of the copy object response will be returned. This is the default option when no value is specified. DETAILS - Details of copy object response will be returned. This will include details of all the objects to be copied. + Projection ListCopyObjectRequestsProjectionEnum `mandatory:"false" contributesTo:"query" name:"projection" omitEmpty:"true"` + + // Specifies start time of a copy object request. + TimeStartedInMillis *int64 `mandatory:"false" contributesTo:"query" name:"timeStartedInMillis"` + + // Specifies end time of a copy object request. + TimeEndedInMillis *int64 `mandatory:"false" contributesTo:"query" name:"timeEndedInMillis"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request ListCopyObjectRequestsRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request ListCopyObjectRequestsRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request ListCopyObjectRequestsRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request ListCopyObjectRequestsRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request ListCopyObjectRequestsRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingListCopyObjectRequestsSortOrderEnum(string(request.SortOrder)); !ok && request.SortOrder != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for SortOrder: %s. Supported values are: %s.", request.SortOrder, strings.Join(GetListCopyObjectRequestsSortOrderEnumStringValues(), ","))) + } + if _, ok := GetMappingListCopyObjectRequestsSortByEnum(string(request.SortBy)); !ok && request.SortBy != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for SortBy: %s. Supported values are: %s.", request.SortBy, strings.Join(GetListCopyObjectRequestsSortByEnumStringValues(), ","))) + } + if _, ok := GetMappingListCopyObjectRequestsCopyStatusEnum(string(request.CopyStatus)); !ok && request.CopyStatus != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for CopyStatus: %s. Supported values are: %s.", request.CopyStatus, strings.Join(GetListCopyObjectRequestsCopyStatusEnumStringValues(), ","))) + } + if _, ok := GetMappingListCopyObjectRequestsProjectionEnum(string(request.Projection)); !ok && request.Projection != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Projection: %s. Supported values are: %s.", request.Projection, strings.Join(GetListCopyObjectRequestsProjectionEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// ListCopyObjectRequestsResponse wrapper for the ListCopyObjectRequests operation +type ListCopyObjectRequestsResponse struct { + + // The underlying http response + RawResponse *http.Response + + // A list of CopyObjectRequestSummaryCollection instances + CopyObjectRequestSummaryCollection `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact + // Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // Retrieves the next page of results. When this header appears in the response, additional pages of results remain. See List Pagination (https://docs.cloud.oracle.com/iaas/Content/API/Concepts/usingapi.htm#nine). + OpcNextPage *string `presentIn:"header" name:"opc-next-page"` +} + +func (response ListCopyObjectRequestsResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response ListCopyObjectRequestsResponse) HTTPResponse() *http.Response { + return response.RawResponse +} + +// ListCopyObjectRequestsSortOrderEnum Enum with underlying type: string +type ListCopyObjectRequestsSortOrderEnum string + +// Set of constants representing the allowable values for ListCopyObjectRequestsSortOrderEnum +const ( + ListCopyObjectRequestsSortOrderAsc ListCopyObjectRequestsSortOrderEnum = "ASC" + ListCopyObjectRequestsSortOrderDesc ListCopyObjectRequestsSortOrderEnum = "DESC" +) + +var mappingListCopyObjectRequestsSortOrderEnum = map[string]ListCopyObjectRequestsSortOrderEnum{ + "ASC": ListCopyObjectRequestsSortOrderAsc, + "DESC": ListCopyObjectRequestsSortOrderDesc, +} + +var mappingListCopyObjectRequestsSortOrderEnumLowerCase = map[string]ListCopyObjectRequestsSortOrderEnum{ + "asc": ListCopyObjectRequestsSortOrderAsc, + "desc": ListCopyObjectRequestsSortOrderDesc, +} + +// GetListCopyObjectRequestsSortOrderEnumValues Enumerates the set of values for ListCopyObjectRequestsSortOrderEnum +func GetListCopyObjectRequestsSortOrderEnumValues() []ListCopyObjectRequestsSortOrderEnum { + values := make([]ListCopyObjectRequestsSortOrderEnum, 0) + for _, v := range mappingListCopyObjectRequestsSortOrderEnum { + values = append(values, v) + } + return values +} + +// GetListCopyObjectRequestsSortOrderEnumStringValues Enumerates the set of values in String for ListCopyObjectRequestsSortOrderEnum +func GetListCopyObjectRequestsSortOrderEnumStringValues() []string { + return []string{ + "ASC", + "DESC", + } +} + +// GetMappingListCopyObjectRequestsSortOrderEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingListCopyObjectRequestsSortOrderEnum(val string) (ListCopyObjectRequestsSortOrderEnum, bool) { + enum, ok := mappingListCopyObjectRequestsSortOrderEnumLowerCase[strings.ToLower(val)] + return enum, ok +} + +// ListCopyObjectRequestsSortByEnum Enum with underlying type: string +type ListCopyObjectRequestsSortByEnum string + +// Set of constants representing the allowable values for ListCopyObjectRequestsSortByEnum +const ( + ListCopyObjectRequestsSortByTimeCreated ListCopyObjectRequestsSortByEnum = "TIME_CREATED" + ListCopyObjectRequestsSortByDisplayName ListCopyObjectRequestsSortByEnum = "DISPLAY_NAME" + ListCopyObjectRequestsSortByTimeUpdated ListCopyObjectRequestsSortByEnum = "TIME_UPDATED" +) + +var mappingListCopyObjectRequestsSortByEnum = map[string]ListCopyObjectRequestsSortByEnum{ + "TIME_CREATED": ListCopyObjectRequestsSortByTimeCreated, + "DISPLAY_NAME": ListCopyObjectRequestsSortByDisplayName, + "TIME_UPDATED": ListCopyObjectRequestsSortByTimeUpdated, +} + +var mappingListCopyObjectRequestsSortByEnumLowerCase = map[string]ListCopyObjectRequestsSortByEnum{ + "time_created": ListCopyObjectRequestsSortByTimeCreated, + "display_name": ListCopyObjectRequestsSortByDisplayName, + "time_updated": ListCopyObjectRequestsSortByTimeUpdated, +} + +// GetListCopyObjectRequestsSortByEnumValues Enumerates the set of values for ListCopyObjectRequestsSortByEnum +func GetListCopyObjectRequestsSortByEnumValues() []ListCopyObjectRequestsSortByEnum { + values := make([]ListCopyObjectRequestsSortByEnum, 0) + for _, v := range mappingListCopyObjectRequestsSortByEnum { + values = append(values, v) + } + return values +} + +// GetListCopyObjectRequestsSortByEnumStringValues Enumerates the set of values in String for ListCopyObjectRequestsSortByEnum +func GetListCopyObjectRequestsSortByEnumStringValues() []string { + return []string{ + "TIME_CREATED", + "DISPLAY_NAME", + "TIME_UPDATED", + } +} + +// GetMappingListCopyObjectRequestsSortByEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingListCopyObjectRequestsSortByEnum(val string) (ListCopyObjectRequestsSortByEnum, bool) { + enum, ok := mappingListCopyObjectRequestsSortByEnumLowerCase[strings.ToLower(val)] + return enum, ok +} + +// ListCopyObjectRequestsCopyStatusEnum Enum with underlying type: string +type ListCopyObjectRequestsCopyStatusEnum string + +// Set of constants representing the allowable values for ListCopyObjectRequestsCopyStatusEnum +const ( + ListCopyObjectRequestsCopyStatusInProgress ListCopyObjectRequestsCopyStatusEnum = "IN_PROGRESS" + ListCopyObjectRequestsCopyStatusSuccessful ListCopyObjectRequestsCopyStatusEnum = "SUCCESSFUL" + ListCopyObjectRequestsCopyStatusQueued ListCopyObjectRequestsCopyStatusEnum = "QUEUED" + ListCopyObjectRequestsCopyStatusTerminating ListCopyObjectRequestsCopyStatusEnum = "TERMINATING" + ListCopyObjectRequestsCopyStatusTerminated ListCopyObjectRequestsCopyStatusEnum = "TERMINATED" + ListCopyObjectRequestsCopyStatusFailed ListCopyObjectRequestsCopyStatusEnum = "FAILED" + ListCopyObjectRequestsCopyStatusAll ListCopyObjectRequestsCopyStatusEnum = "ALL" +) + +var mappingListCopyObjectRequestsCopyStatusEnum = map[string]ListCopyObjectRequestsCopyStatusEnum{ + "IN_PROGRESS": ListCopyObjectRequestsCopyStatusInProgress, + "SUCCESSFUL": ListCopyObjectRequestsCopyStatusSuccessful, + "QUEUED": ListCopyObjectRequestsCopyStatusQueued, + "TERMINATING": ListCopyObjectRequestsCopyStatusTerminating, + "TERMINATED": ListCopyObjectRequestsCopyStatusTerminated, + "FAILED": ListCopyObjectRequestsCopyStatusFailed, + "ALL": ListCopyObjectRequestsCopyStatusAll, +} + +var mappingListCopyObjectRequestsCopyStatusEnumLowerCase = map[string]ListCopyObjectRequestsCopyStatusEnum{ + "in_progress": ListCopyObjectRequestsCopyStatusInProgress, + "successful": ListCopyObjectRequestsCopyStatusSuccessful, + "queued": ListCopyObjectRequestsCopyStatusQueued, + "terminating": ListCopyObjectRequestsCopyStatusTerminating, + "terminated": ListCopyObjectRequestsCopyStatusTerminated, + "failed": ListCopyObjectRequestsCopyStatusFailed, + "all": ListCopyObjectRequestsCopyStatusAll, +} + +// GetListCopyObjectRequestsCopyStatusEnumValues Enumerates the set of values for ListCopyObjectRequestsCopyStatusEnum +func GetListCopyObjectRequestsCopyStatusEnumValues() []ListCopyObjectRequestsCopyStatusEnum { + values := make([]ListCopyObjectRequestsCopyStatusEnum, 0) + for _, v := range mappingListCopyObjectRequestsCopyStatusEnum { + values = append(values, v) + } + return values +} + +// GetListCopyObjectRequestsCopyStatusEnumStringValues Enumerates the set of values in String for ListCopyObjectRequestsCopyStatusEnum +func GetListCopyObjectRequestsCopyStatusEnumStringValues() []string { + return []string{ + "IN_PROGRESS", + "SUCCESSFUL", + "QUEUED", + "TERMINATING", + "TERMINATED", + "FAILED", + "ALL", + } +} + +// GetMappingListCopyObjectRequestsCopyStatusEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingListCopyObjectRequestsCopyStatusEnum(val string) (ListCopyObjectRequestsCopyStatusEnum, bool) { + enum, ok := mappingListCopyObjectRequestsCopyStatusEnumLowerCase[strings.ToLower(val)] + return enum, ok +} + +// ListCopyObjectRequestsProjectionEnum Enum with underlying type: string +type ListCopyObjectRequestsProjectionEnum string + +// Set of constants representing the allowable values for ListCopyObjectRequestsProjectionEnum +const ( + ListCopyObjectRequestsProjectionSummary ListCopyObjectRequestsProjectionEnum = "SUMMARY" + ListCopyObjectRequestsProjectionDetails ListCopyObjectRequestsProjectionEnum = "DETAILS" +) + +var mappingListCopyObjectRequestsProjectionEnum = map[string]ListCopyObjectRequestsProjectionEnum{ + "SUMMARY": ListCopyObjectRequestsProjectionSummary, + "DETAILS": ListCopyObjectRequestsProjectionDetails, +} + +var mappingListCopyObjectRequestsProjectionEnumLowerCase = map[string]ListCopyObjectRequestsProjectionEnum{ + "summary": ListCopyObjectRequestsProjectionSummary, + "details": ListCopyObjectRequestsProjectionDetails, +} + +// GetListCopyObjectRequestsProjectionEnumValues Enumerates the set of values for ListCopyObjectRequestsProjectionEnum +func GetListCopyObjectRequestsProjectionEnumValues() []ListCopyObjectRequestsProjectionEnum { + values := make([]ListCopyObjectRequestsProjectionEnum, 0) + for _, v := range mappingListCopyObjectRequestsProjectionEnum { + values = append(values, v) + } + return values +} + +// GetListCopyObjectRequestsProjectionEnumStringValues Enumerates the set of values in String for ListCopyObjectRequestsProjectionEnum +func GetListCopyObjectRequestsProjectionEnumStringValues() []string { + return []string{ + "SUMMARY", + "DETAILS", + } +} + +// GetMappingListCopyObjectRequestsProjectionEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingListCopyObjectRequestsProjectionEnum(val string) (ListCopyObjectRequestsProjectionEnum, bool) { + enum, ok := mappingListCopyObjectRequestsProjectionEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/list_task_runs_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/list_task_runs_request_response.go index f5f7dbb9abd..d87dfb71491 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/list_task_runs_request_response.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/list_task_runs_request_response.go @@ -62,6 +62,9 @@ type ListTaskRunsRequest struct { // This parameter can be used to filter objects by the names starting with the given value. NameStartsWith *string `mandatory:"false" contributesTo:"query" name:"nameStartsWith"` + // This parameter can be used to filter objects by the names that match partially or fully with the given value. + NameContains *string `mandatory:"false" contributesTo:"query" name:"nameContains"` + // Metadata about the request. This information will not be transmitted to the service, but // represents information that the SDK will consume to drive retry behavior. RequestMetadata common.RequestMetadata diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/list_templates_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/list_templates_request_response.go new file mode 100644 index 00000000000..33f7ea62268 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/list_templates_request_response.go @@ -0,0 +1,216 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package dataintegration + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// ListTemplatesRequest wrapper for the ListTemplates operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/dataintegration/ListTemplates.go.html to see an example of how to use ListTemplatesRequest. +type ListTemplatesRequest struct { + + // The workspace ID. + WorkspaceId *string `mandatory:"true" contributesTo:"path" name:"workspaceId"` + + // Used to filter by the name of the object. + Name *string `mandatory:"false" contributesTo:"query" name:"name"` + + // Used to filter by the identifier of the published object. + Identifier []string `contributesTo:"query" name:"identifier" collectionFormat:"multi"` + + // Specifies the fields to get for an object. + Fields []string `contributesTo:"query" name:"fields" collectionFormat:"multi"` + + // Sets the maximum number of results per page, or items to return in a paginated `List` call. See List Pagination (https://docs.cloud.oracle.com/iaas/Content/API/Concepts/usingapi.htm#nine). + Limit *int `mandatory:"false" contributesTo:"query" name:"limit"` + + // For list pagination. The value for this parameter is the `opc-next-page` or the `opc-prev-page` response header from the previous `List` call. See List Pagination (https://docs.cloud.oracle.com/iaas/Content/API/Concepts/usingapi.htm#nine). + Page *string `mandatory:"false" contributesTo:"query" name:"page"` + + // Specifies sort order to use, either `ASC` (ascending) or `DESC` (descending). + SortOrder ListTemplatesSortOrderEnum `mandatory:"false" contributesTo:"query" name:"sortOrder" omitEmpty:"true"` + + // Specifies the field to sort by. Accepts only one field. By default, when you sort by time fields, results are shown in descending order. All other fields default to ascending order. Sorting related parameters are ignored when parameter `query` is present (search operation and sorting order is by relevance score in descending order). + SortBy ListTemplatesSortByEnum `mandatory:"false" contributesTo:"query" name:"sortBy" omitEmpty:"true"` + + // Unique Oracle-assigned identifier for the request. If + // you need to contact Oracle about a particular request, + // please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request ListTemplatesRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request ListTemplatesRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request ListTemplatesRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request ListTemplatesRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request ListTemplatesRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingListTemplatesSortOrderEnum(string(request.SortOrder)); !ok && request.SortOrder != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for SortOrder: %s. Supported values are: %s.", request.SortOrder, strings.Join(GetListTemplatesSortOrderEnumStringValues(), ","))) + } + if _, ok := GetMappingListTemplatesSortByEnum(string(request.SortBy)); !ok && request.SortBy != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for SortBy: %s. Supported values are: %s.", request.SortBy, strings.Join(GetListTemplatesSortByEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// ListTemplatesResponse wrapper for the ListTemplates operation +type ListTemplatesResponse struct { + + // The underlying http response + RawResponse *http.Response + + // A list of TemplateSummaryCollection instances + TemplateSummaryCollection `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact + // Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // Retrieves the next page of results. When this header appears in the response, additional pages of results remain. See List Pagination (https://docs.cloud.oracle.com/iaas/Content/API/Concepts/usingapi.htm#nine). + OpcNextPage *string `presentIn:"header" name:"opc-next-page"` + + // Retrieves the previous page of results. When this header appears in the response, previous pages of results exist. See List Pagination (https://docs.cloud.oracle.com/iaas/Content/API/Concepts/usingapi.htm#nine). + OpcPrevPage *string `presentIn:"header" name:"opc-prev-page"` + + // Total items in the entire list. + OpcTotalItems *int `presentIn:"header" name:"opc-total-items"` +} + +func (response ListTemplatesResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response ListTemplatesResponse) HTTPResponse() *http.Response { + return response.RawResponse +} + +// ListTemplatesSortOrderEnum Enum with underlying type: string +type ListTemplatesSortOrderEnum string + +// Set of constants representing the allowable values for ListTemplatesSortOrderEnum +const ( + ListTemplatesSortOrderAsc ListTemplatesSortOrderEnum = "ASC" + ListTemplatesSortOrderDesc ListTemplatesSortOrderEnum = "DESC" +) + +var mappingListTemplatesSortOrderEnum = map[string]ListTemplatesSortOrderEnum{ + "ASC": ListTemplatesSortOrderAsc, + "DESC": ListTemplatesSortOrderDesc, +} + +var mappingListTemplatesSortOrderEnumLowerCase = map[string]ListTemplatesSortOrderEnum{ + "asc": ListTemplatesSortOrderAsc, + "desc": ListTemplatesSortOrderDesc, +} + +// GetListTemplatesSortOrderEnumValues Enumerates the set of values for ListTemplatesSortOrderEnum +func GetListTemplatesSortOrderEnumValues() []ListTemplatesSortOrderEnum { + values := make([]ListTemplatesSortOrderEnum, 0) + for _, v := range mappingListTemplatesSortOrderEnum { + values = append(values, v) + } + return values +} + +// GetListTemplatesSortOrderEnumStringValues Enumerates the set of values in String for ListTemplatesSortOrderEnum +func GetListTemplatesSortOrderEnumStringValues() []string { + return []string{ + "ASC", + "DESC", + } +} + +// GetMappingListTemplatesSortOrderEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingListTemplatesSortOrderEnum(val string) (ListTemplatesSortOrderEnum, bool) { + enum, ok := mappingListTemplatesSortOrderEnumLowerCase[strings.ToLower(val)] + return enum, ok +} + +// ListTemplatesSortByEnum Enum with underlying type: string +type ListTemplatesSortByEnum string + +// Set of constants representing the allowable values for ListTemplatesSortByEnum +const ( + ListTemplatesSortByTimeCreated ListTemplatesSortByEnum = "TIME_CREATED" + ListTemplatesSortByDisplayName ListTemplatesSortByEnum = "DISPLAY_NAME" + ListTemplatesSortByTimeUpdated ListTemplatesSortByEnum = "TIME_UPDATED" +) + +var mappingListTemplatesSortByEnum = map[string]ListTemplatesSortByEnum{ + "TIME_CREATED": ListTemplatesSortByTimeCreated, + "DISPLAY_NAME": ListTemplatesSortByDisplayName, + "TIME_UPDATED": ListTemplatesSortByTimeUpdated, +} + +var mappingListTemplatesSortByEnumLowerCase = map[string]ListTemplatesSortByEnum{ + "time_created": ListTemplatesSortByTimeCreated, + "display_name": ListTemplatesSortByDisplayName, + "time_updated": ListTemplatesSortByTimeUpdated, +} + +// GetListTemplatesSortByEnumValues Enumerates the set of values for ListTemplatesSortByEnum +func GetListTemplatesSortByEnumValues() []ListTemplatesSortByEnum { + values := make([]ListTemplatesSortByEnum, 0) + for _, v := range mappingListTemplatesSortByEnum { + values = append(values, v) + } + return values +} + +// GetListTemplatesSortByEnumStringValues Enumerates the set of values in String for ListTemplatesSortByEnum +func GetListTemplatesSortByEnumStringValues() []string { + return []string{ + "TIME_CREATED", + "DISPLAY_NAME", + "TIME_UPDATED", + } +} + +// GetMappingListTemplatesSortByEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingListTemplatesSortByEnum(val string) (ListTemplatesSortByEnum, bool) { + enum, ok := mappingListTemplatesSortByEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/template.go b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/template.go new file mode 100644 index 00000000000..9405da73d7a --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/template.go @@ -0,0 +1,169 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Data Integration API +// +// Use the Data Integration API to organize your data integration projects, create data flows, pipelines and tasks, and then publish, schedule, and run tasks that extract, transform, and load data. For more information, see Data Integration (https://docs.oracle.com/iaas/data-integration/home.htm). +// + +package dataintegration + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// Template Template application. +type Template struct { + + // Generated key that can be used in API calls to identify application. + Key *string `mandatory:"false" json:"key"` + + // The object type. + ModelType *string `mandatory:"false" json:"modelType"` + + // The object's model version. + ModelVersion *string `mandatory:"false" json:"modelVersion"` + + // Free form text without any restriction on permitted characters. Name can have letters, numbers, and special characters. The value is editable and is restricted to 1000 characters. + Name *string `mandatory:"false" json:"name"` + + // Detailed description for the object. + Description *string `mandatory:"false" json:"description"` + + // The application's version. + ApplicationVersion *int `mandatory:"false" json:"applicationVersion"` + + // The status of an object that can be set to value 1 for shallow references across objects, other values reserved. + ObjectStatus *int `mandatory:"false" json:"objectStatus"` + + // Value can only contain upper case letters, underscore, and numbers. It should begin with upper case letter or underscore. The value can be modified. + Identifier *string `mandatory:"false" json:"identifier"` + + ParentRef *ParentReference `mandatory:"false" json:"parentRef"` + + // The version of the object that is used to track changes in the object instance. + ObjectVersion *int `mandatory:"false" json:"objectVersion"` + + // A list of dependent objects in this patch. + DependentObjectMetadata []PatchObjectMetadata `mandatory:"false" json:"dependentObjectMetadata"` + + // A list of objects that are published or unpublished in this patch. + PublishedObjectMetadata map[string]PatchObjectMetadata `mandatory:"false" json:"publishedObjectMetadata"` + + SourceApplicationInfo *SourceApplicationInfo `mandatory:"false" json:"sourceApplicationInfo"` + + // The date and time the application was patched, in the timestamp format defined by RFC3339. + TimePatched *common.SDKTime `mandatory:"false" json:"timePatched"` + + // OCID of the resource that is used to uniquely identify the application + Id *string `mandatory:"false" json:"id"` + + // OCID of the compartment that this resource belongs to. Defaults to compartment of the Workspace. + CompartmentId *string `mandatory:"false" json:"compartmentId"` + + // Free form text without any restriction on permitted characters. Name can have letters, numbers, and special characters. The value is editable and is restricted to 1000 characters. + DisplayName *string `mandatory:"false" json:"displayName"` + + // The date and time the application was created, in the timestamp format defined by RFC3339. + TimeCreated *common.SDKTime `mandatory:"false" json:"timeCreated"` + + // The date and time the application was updated, in the timestamp format defined by RFC3339. + // example: 2019-08-25T21:10:29.41Z + TimeUpdated *common.SDKTime `mandatory:"false" json:"timeUpdated"` + + // Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only. + // Example: `{"bar-key": "value"}` + FreeformTags map[string]string `mandatory:"false" json:"freeformTags"` + + // Usage of predefined tag keys. These predefined keys are scoped to namespaces. + // Example: `{"foo-namespace": {"bar-key": "value"}}` + DefinedTags map[string]map[string]interface{} `mandatory:"false" json:"definedTags"` + + // The current state of the workspace. + LifecycleState TemplateLifecycleStateEnum `mandatory:"false" json:"lifecycleState,omitempty"` + + Metadata *ObjectMetadata `mandatory:"false" json:"metadata"` + + // A key map. If provided, key is replaced with generated key. This structure provides mapping between user provided key and generated key. + KeyMap map[string]string `mandatory:"false" json:"keyMap"` +} + +func (m Template) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m Template) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if _, ok := GetMappingTemplateLifecycleStateEnum(string(m.LifecycleState)); !ok && m.LifecycleState != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for LifecycleState: %s. Supported values are: %s.", m.LifecycleState, strings.Join(GetTemplateLifecycleStateEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// TemplateLifecycleStateEnum Enum with underlying type: string +type TemplateLifecycleStateEnum string + +// Set of constants representing the allowable values for TemplateLifecycleStateEnum +const ( + TemplateLifecycleStateCreating TemplateLifecycleStateEnum = "CREATING" + TemplateLifecycleStateActive TemplateLifecycleStateEnum = "ACTIVE" + TemplateLifecycleStateUpdating TemplateLifecycleStateEnum = "UPDATING" + TemplateLifecycleStateDeleting TemplateLifecycleStateEnum = "DELETING" + TemplateLifecycleStateDeleted TemplateLifecycleStateEnum = "DELETED" + TemplateLifecycleStateFailed TemplateLifecycleStateEnum = "FAILED" +) + +var mappingTemplateLifecycleStateEnum = map[string]TemplateLifecycleStateEnum{ + "CREATING": TemplateLifecycleStateCreating, + "ACTIVE": TemplateLifecycleStateActive, + "UPDATING": TemplateLifecycleStateUpdating, + "DELETING": TemplateLifecycleStateDeleting, + "DELETED": TemplateLifecycleStateDeleted, + "FAILED": TemplateLifecycleStateFailed, +} + +var mappingTemplateLifecycleStateEnumLowerCase = map[string]TemplateLifecycleStateEnum{ + "creating": TemplateLifecycleStateCreating, + "active": TemplateLifecycleStateActive, + "updating": TemplateLifecycleStateUpdating, + "deleting": TemplateLifecycleStateDeleting, + "deleted": TemplateLifecycleStateDeleted, + "failed": TemplateLifecycleStateFailed, +} + +// GetTemplateLifecycleStateEnumValues Enumerates the set of values for TemplateLifecycleStateEnum +func GetTemplateLifecycleStateEnumValues() []TemplateLifecycleStateEnum { + values := make([]TemplateLifecycleStateEnum, 0) + for _, v := range mappingTemplateLifecycleStateEnum { + values = append(values, v) + } + return values +} + +// GetTemplateLifecycleStateEnumStringValues Enumerates the set of values in String for TemplateLifecycleStateEnum +func GetTemplateLifecycleStateEnumStringValues() []string { + return []string{ + "CREATING", + "ACTIVE", + "UPDATING", + "DELETING", + "DELETED", + "FAILED", + } +} + +// GetMappingTemplateLifecycleStateEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingTemplateLifecycleStateEnum(val string) (TemplateLifecycleStateEnum, bool) { + enum, ok := mappingTemplateLifecycleStateEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/update_application_detailed_description_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/update_application_detailed_description_request_response.go new file mode 100644 index 00000000000..e44afa146a6 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/update_application_detailed_description_request_response.go @@ -0,0 +1,106 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package dataintegration + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// UpdateApplicationDetailedDescriptionRequest wrapper for the UpdateApplicationDetailedDescription operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/dataintegration/UpdateApplicationDetailedDescription.go.html to see an example of how to use UpdateApplicationDetailedDescriptionRequest. +type UpdateApplicationDetailedDescriptionRequest struct { + + // The workspace ID. + WorkspaceId *string `mandatory:"true" contributesTo:"path" name:"workspaceId"` + + // The application key. + ApplicationKey *string `mandatory:"true" contributesTo:"path" name:"applicationKey"` + + // The details needed to update the detailed description of Application + UpdateApplicationDetailedDescriptionDetails UpdateDetailedDescriptionDetails `contributesTo:"body"` + + // Unique Oracle-assigned identifier for the request. If + // you need to contact Oracle about a particular request, + // please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match` parameter to the value of the `etag` from a previous GET or POST response for that resource. + // The resource will be updated or deleted only if the `etag` you provide matches the resource's current `etag` value. + // When 'if-match' is provided and its value does not exactly match the 'etag' of the resource on the server, the request fails with the 412 response code. + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request UpdateApplicationDetailedDescriptionRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request UpdateApplicationDetailedDescriptionRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request UpdateApplicationDetailedDescriptionRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request UpdateApplicationDetailedDescriptionRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request UpdateApplicationDetailedDescriptionRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// UpdateApplicationDetailedDescriptionResponse wrapper for the UpdateApplicationDetailedDescription operation +type UpdateApplicationDetailedDescriptionResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The DetailedDescription instance + DetailedDescription `presentIn:"body"` + + // For optimistic concurrency control. See ETags for Optimistic Concurrency Control (https://docs.cloud.oracle.com/iaas/Content/API/Concepts/usingapi.htm#eleven). + Etag *string `presentIn:"header" name:"etag"` + + // Unique Oracle-assigned identifier for the request. If you need to contact + // Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response UpdateApplicationDetailedDescriptionResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response UpdateApplicationDetailedDescriptionResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/update_copy_object_request_details.go b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/update_copy_object_request_details.go new file mode 100644 index 00000000000..7378499df0d --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/update_copy_object_request_details.go @@ -0,0 +1,80 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Data Integration API +// +// Use the Data Integration API to organize your data integration projects, create data flows, pipelines and tasks, and then publish, schedule, and run tasks that extract, transform, and load data. For more information, see Data Integration (https://docs.oracle.com/iaas/data-integration/home.htm). +// + +package dataintegration + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UpdateCopyObjectRequestDetails Properties used in copy object request update operations. +type UpdateCopyObjectRequestDetails struct { + + // The status of the object. + Status UpdateCopyObjectRequestDetailsStatusEnum `mandatory:"false" json:"status,omitempty"` +} + +func (m UpdateCopyObjectRequestDetails) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UpdateCopyObjectRequestDetails) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if _, ok := GetMappingUpdateCopyObjectRequestDetailsStatusEnum(string(m.Status)); !ok && m.Status != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Status: %s. Supported values are: %s.", m.Status, strings.Join(GetUpdateCopyObjectRequestDetailsStatusEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// UpdateCopyObjectRequestDetailsStatusEnum Enum with underlying type: string +type UpdateCopyObjectRequestDetailsStatusEnum string + +// Set of constants representing the allowable values for UpdateCopyObjectRequestDetailsStatusEnum +const ( + UpdateCopyObjectRequestDetailsStatusTerminating UpdateCopyObjectRequestDetailsStatusEnum = "TERMINATING" +) + +var mappingUpdateCopyObjectRequestDetailsStatusEnum = map[string]UpdateCopyObjectRequestDetailsStatusEnum{ + "TERMINATING": UpdateCopyObjectRequestDetailsStatusTerminating, +} + +var mappingUpdateCopyObjectRequestDetailsStatusEnumLowerCase = map[string]UpdateCopyObjectRequestDetailsStatusEnum{ + "terminating": UpdateCopyObjectRequestDetailsStatusTerminating, +} + +// GetUpdateCopyObjectRequestDetailsStatusEnumValues Enumerates the set of values for UpdateCopyObjectRequestDetailsStatusEnum +func GetUpdateCopyObjectRequestDetailsStatusEnumValues() []UpdateCopyObjectRequestDetailsStatusEnum { + values := make([]UpdateCopyObjectRequestDetailsStatusEnum, 0) + for _, v := range mappingUpdateCopyObjectRequestDetailsStatusEnum { + values = append(values, v) + } + return values +} + +// GetUpdateCopyObjectRequestDetailsStatusEnumStringValues Enumerates the set of values in String for UpdateCopyObjectRequestDetailsStatusEnum +func GetUpdateCopyObjectRequestDetailsStatusEnumStringValues() []string { + return []string{ + "TERMINATING", + } +} + +// GetMappingUpdateCopyObjectRequestDetailsStatusEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingUpdateCopyObjectRequestDetailsStatusEnum(val string) (UpdateCopyObjectRequestDetailsStatusEnum, bool) { + enum, ok := mappingUpdateCopyObjectRequestDetailsStatusEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/update_copy_object_request_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/update_copy_object_request_request_response.go new file mode 100644 index 00000000000..6d1414cd3c3 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/update_copy_object_request_request_response.go @@ -0,0 +1,106 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package dataintegration + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// UpdateCopyObjectRequestRequest wrapper for the UpdateCopyObjectRequest operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/dataintegration/UpdateCopyObjectRequest.go.html to see an example of how to use UpdateCopyObjectRequestRequest. +type UpdateCopyObjectRequestRequest struct { + + // The workspace ID. + WorkspaceId *string `mandatory:"true" contributesTo:"path" name:"workspaceId"` + + // The key of the object to be copied, for example this could be the key of a project. + CopyObjectRequestKey *string `mandatory:"true" contributesTo:"path" name:"copyObjectRequestKey"` + + // The details needed to update the status of a copy object request. + UpdateCopyObjectRequestDetails `contributesTo:"body"` + + // Unique Oracle-assigned identifier for the request. If + // you need to contact Oracle about a particular request, + // please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match` parameter to the value of the `etag` from a previous GET or POST response for that resource. + // The resource will be updated or deleted only if the `etag` you provide matches the resource's current `etag` value. + // When 'if-match' is provided and its value does not exactly match the 'etag' of the resource on the server, the request fails with the 412 response code. + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request UpdateCopyObjectRequestRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request UpdateCopyObjectRequestRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request UpdateCopyObjectRequestRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request UpdateCopyObjectRequestRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request UpdateCopyObjectRequestRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// UpdateCopyObjectRequestResponse wrapper for the UpdateCopyObjectRequest operation +type UpdateCopyObjectRequestResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The CopyObjectRequest instance + CopyObjectRequest `presentIn:"body"` + + // For optimistic concurrency control. See ETags for Optimistic Concurrency Control (https://docs.cloud.oracle.com/iaas/Content/API/Concepts/usingapi.htm#eleven). + Etag *string `presentIn:"header" name:"etag"` + + // Unique Oracle-assigned identifier for the request. If you need to contact + // Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response UpdateCopyObjectRequestResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response UpdateCopyObjectRequestResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/update_detailed_description_details.go b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/update_detailed_description_details.go new file mode 100644 index 00000000000..9fd57d9d36f --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/update_detailed_description_details.go @@ -0,0 +1,42 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Data Integration API +// +// Use the Data Integration API to organize your data integration projects, create data flows, pipelines and tasks, and then publish, schedule, and run tasks that extract, transform, and load data. For more information, see Data Integration (https://docs.oracle.com/iaas/data-integration/home.htm). +// + +package dataintegration + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UpdateDetailedDescriptionDetails Properties used in detailed description update operations. +type UpdateDetailedDescriptionDetails struct { + + // Base64 encoded image to represent logo of the object. + Logo *string `mandatory:"false" json:"logo"` + + // Base64 encoded rich text description of the object. + DetailedDescription *string `mandatory:"false" json:"detailedDescription"` +} + +func (m UpdateDetailedDescriptionDetails) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UpdateDetailedDescriptionDetails) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/update_dis_application_detailed_description_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/update_dis_application_detailed_description_request_response.go new file mode 100644 index 00000000000..862c0efb2bf --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/dataintegration/update_dis_application_detailed_description_request_response.go @@ -0,0 +1,106 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package dataintegration + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// UpdateDisApplicationDetailedDescriptionRequest wrapper for the UpdateDisApplicationDetailedDescription operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/dataintegration/UpdateDisApplicationDetailedDescription.go.html to see an example of how to use UpdateDisApplicationDetailedDescriptionRequest. +type UpdateDisApplicationDetailedDescriptionRequest struct { + + // The workspace ID. + WorkspaceId *string `mandatory:"true" contributesTo:"path" name:"workspaceId"` + + // The application key. + ApplicationKey *string `mandatory:"true" contributesTo:"path" name:"applicationKey"` + + // The details needed to update the detailed description of Application. + UpdateDisApplicationDetailedDescriptionDetails UpdateDetailedDescriptionDetails `contributesTo:"body"` + + // Unique Oracle-assigned identifier for the request. If + // you need to contact Oracle about a particular request, + // please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match` parameter to the value of the `etag` from a previous GET or POST response for that resource. + // The resource will be updated or deleted only if the `etag` you provide matches the resource's current `etag` value. + // When 'if-match' is provided and its value does not exactly match the 'etag' of the resource on the server, the request fails with the 412 response code. + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request UpdateDisApplicationDetailedDescriptionRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request UpdateDisApplicationDetailedDescriptionRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request UpdateDisApplicationDetailedDescriptionRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request UpdateDisApplicationDetailedDescriptionRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request UpdateDisApplicationDetailedDescriptionRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// UpdateDisApplicationDetailedDescriptionResponse wrapper for the UpdateDisApplicationDetailedDescription operation +type UpdateDisApplicationDetailedDescriptionResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The DetailedDescription instance + DetailedDescription `presentIn:"body"` + + // For optimistic concurrency control. See ETags for Optimistic Concurrency Control (https://docs.cloud.oracle.com/iaas/Content/API/Concepts/usingapi.htm#eleven). + Etag *string `presentIn:"header" name:"etag"` + + // Unique Oracle-assigned identifier for the request. If you need to contact + // Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response UpdateDisApplicationDetailedDescriptionResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response UpdateDisApplicationDetailedDescriptionResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/cancel_snooze_deployment_upgrade_details.go b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/cancel_snooze_deployment_upgrade_details.go new file mode 100644 index 00000000000..d23eee3671b --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/cancel_snooze_deployment_upgrade_details.go @@ -0,0 +1,76 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// GoldenGate API +// +// Use the Oracle Cloud Infrastructure GoldenGate APIs to perform data replication operations. +// + +package goldengate + +import ( + "encoding/json" + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// CancelSnoozeDeploymentUpgradeDetails The information about snooze canceling. +type CancelSnoozeDeploymentUpgradeDetails interface { +} + +type cancelsnoozedeploymentupgradedetails struct { + JsonData []byte + Type string `json:"type"` +} + +// UnmarshalJSON unmarshals json +func (m *cancelsnoozedeploymentupgradedetails) UnmarshalJSON(data []byte) error { + m.JsonData = data + type Unmarshalercancelsnoozedeploymentupgradedetails cancelsnoozedeploymentupgradedetails + s := struct { + Model Unmarshalercancelsnoozedeploymentupgradedetails + }{} + err := json.Unmarshal(data, &s.Model) + if err != nil { + return err + } + m.Type = s.Model.Type + + return err +} + +// UnmarshalPolymorphicJSON unmarshals polymorphic json +func (m *cancelsnoozedeploymentupgradedetails) UnmarshalPolymorphicJSON(data []byte) (interface{}, error) { + + if data == nil || string(data) == "null" { + return nil, nil + } + + var err error + switch m.Type { + case "DEFAULT": + mm := DefaultCancelSnoozeDeploymentUpgradeDetails{} + err = json.Unmarshal(data, &mm) + return mm, err + default: + return *m, nil + } +} + +func (m cancelsnoozedeploymentupgradedetails) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m cancelsnoozedeploymentupgradedetails) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/cancel_snooze_deployment_upgrade_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/cancel_snooze_deployment_upgrade_request_response.go new file mode 100644 index 00000000000..a21619c0683 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/cancel_snooze_deployment_upgrade_request_response.go @@ -0,0 +1,103 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package goldengate + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// CancelSnoozeDeploymentUpgradeRequest wrapper for the CancelSnoozeDeploymentUpgrade operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/goldengate/CancelSnoozeDeploymentUpgrade.go.html to see an example of how to use CancelSnoozeDeploymentUpgradeRequest. +type CancelSnoozeDeploymentUpgradeRequest struct { + + // A unique Deployment Upgrade identifier. + DeploymentUpgradeId *string `mandatory:"true" contributesTo:"path" name:"deploymentUpgradeId"` + + // A placeholder for any additional metadata to describe the cancel snooze of deployment upgrade. + CancelSnoozeDeploymentUpgradeDetails `contributesTo:"body"` + + // For optimistic concurrency control. In the PUT or DELETE call for a resource, set the + // `if-match` parameter to the value of the etag from a previous GET or POST response for that + // resource. The resource is updated or deleted only if the etag you provide matches the + // resource's current etag value. + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // The client request ID for tracing. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // A token that uniquely identifies a request so it can be retried, in case of a timeout or + // server error, without risk of executing that same action again. Retry tokens expire after 24 + // hours, but can be invalidated before then due to conflicting operations. For example, if a + // resource has been deleted and purged from the system, then a retry of the original creation + // request is rejected. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request CancelSnoozeDeploymentUpgradeRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request CancelSnoozeDeploymentUpgradeRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request CancelSnoozeDeploymentUpgradeRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request CancelSnoozeDeploymentUpgradeRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request CancelSnoozeDeploymentUpgradeRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// CancelSnoozeDeploymentUpgradeResponse wrapper for the CancelSnoozeDeploymentUpgrade operation +type CancelSnoozeDeploymentUpgradeResponse struct { + + // The underlying http response + RawResponse *http.Response + + // A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a + // particular request, please include the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response CancelSnoozeDeploymentUpgradeResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response CancelSnoozeDeploymentUpgradeResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/cancel_snooze_deployment_upgrade_type.go b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/cancel_snooze_deployment_upgrade_type.go new file mode 100644 index 00000000000..8ac47c46733 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/cancel_snooze_deployment_upgrade_type.go @@ -0,0 +1,52 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// GoldenGate API +// +// Use the Oracle Cloud Infrastructure GoldenGate APIs to perform data replication operations. +// + +package goldengate + +import ( + "strings" +) + +// CancelSnoozeDeploymentUpgradeTypeEnum Enum with underlying type: string +type CancelSnoozeDeploymentUpgradeTypeEnum string + +// Set of constants representing the allowable values for CancelSnoozeDeploymentUpgradeTypeEnum +const ( + CancelSnoozeDeploymentUpgradeTypeDefault CancelSnoozeDeploymentUpgradeTypeEnum = "DEFAULT" +) + +var mappingCancelSnoozeDeploymentUpgradeTypeEnum = map[string]CancelSnoozeDeploymentUpgradeTypeEnum{ + "DEFAULT": CancelSnoozeDeploymentUpgradeTypeDefault, +} + +var mappingCancelSnoozeDeploymentUpgradeTypeEnumLowerCase = map[string]CancelSnoozeDeploymentUpgradeTypeEnum{ + "default": CancelSnoozeDeploymentUpgradeTypeDefault, +} + +// GetCancelSnoozeDeploymentUpgradeTypeEnumValues Enumerates the set of values for CancelSnoozeDeploymentUpgradeTypeEnum +func GetCancelSnoozeDeploymentUpgradeTypeEnumValues() []CancelSnoozeDeploymentUpgradeTypeEnum { + values := make([]CancelSnoozeDeploymentUpgradeTypeEnum, 0) + for _, v := range mappingCancelSnoozeDeploymentUpgradeTypeEnum { + values = append(values, v) + } + return values +} + +// GetCancelSnoozeDeploymentUpgradeTypeEnumStringValues Enumerates the set of values in String for CancelSnoozeDeploymentUpgradeTypeEnum +func GetCancelSnoozeDeploymentUpgradeTypeEnumStringValues() []string { + return []string{ + "DEFAULT", + } +} + +// GetMappingCancelSnoozeDeploymentUpgradeTypeEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingCancelSnoozeDeploymentUpgradeTypeEnum(val string) (CancelSnoozeDeploymentUpgradeTypeEnum, bool) { + enum, ok := mappingCancelSnoozeDeploymentUpgradeTypeEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/create_deployment_details.go b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/create_deployment_details.go index 93c5449c799..357f8926011 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/create_deployment_details.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/create_deployment_details.go @@ -66,6 +66,8 @@ type CreateDeploymentDetails struct { IsPublic *bool `mandatory:"false" json:"isPublic"` OggData *CreateOggDeploymentDetails `mandatory:"false" json:"oggData"` + + MaintenanceWindow *CreateMaintenanceWindowDetails `mandatory:"false" json:"maintenanceWindow"` } func (m CreateDeploymentDetails) String() string { diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/create_maintenance_window_details.go b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/create_maintenance_window_details.go new file mode 100644 index 00000000000..91288f76660 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/create_maintenance_window_details.go @@ -0,0 +1,45 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// GoldenGate API +// +// Use the Oracle Cloud Infrastructure GoldenGate APIs to perform data replication operations. +// + +package goldengate + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// CreateMaintenanceWindowDetails Defines the maintenance window for create operation, when automatic actions can be performed. +type CreateMaintenanceWindowDetails struct { + + // Days of the week. + Day DayEnum `mandatory:"true" json:"day"` + + // Start hour for maintenance period. Hour is in UTC. + StartHour *int `mandatory:"true" json:"startHour"` +} + +func (m CreateMaintenanceWindowDetails) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m CreateMaintenanceWindowDetails) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingDayEnum(string(m.Day)); !ok && m.Day != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Day: %s. Supported values are: %s.", m.Day, strings.Join(GetDayEnumStringValues(), ","))) + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/create_ogg_deployment_details.go b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/create_ogg_deployment_details.go index 7745314579b..3c3e81ef9bd 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/create_ogg_deployment_details.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/create_ogg_deployment_details.go @@ -36,6 +36,9 @@ type CreateOggDeploymentDetails struct { // A PEM-encoded private key. Key *string `mandatory:"false" json:"key"` + + // Version of OGG + OggVersion *string `mandatory:"false" json:"oggVersion"` } func (m CreateOggDeploymentDetails) String() string { diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/day.go b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/day.go new file mode 100644 index 00000000000..3f3fe8ca9bb --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/day.go @@ -0,0 +1,76 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// GoldenGate API +// +// Use the Oracle Cloud Infrastructure GoldenGate APIs to perform data replication operations. +// + +package goldengate + +import ( + "strings" +) + +// DayEnum Enum with underlying type: string +type DayEnum string + +// Set of constants representing the allowable values for DayEnum +const ( + DayMonday DayEnum = "MONDAY" + DayTuesday DayEnum = "TUESDAY" + DayWednesday DayEnum = "WEDNESDAY" + DayThursday DayEnum = "THURSDAY" + DayFriday DayEnum = "FRIDAY" + DaySaturday DayEnum = "SATURDAY" + DaySunday DayEnum = "SUNDAY" +) + +var mappingDayEnum = map[string]DayEnum{ + "MONDAY": DayMonday, + "TUESDAY": DayTuesday, + "WEDNESDAY": DayWednesday, + "THURSDAY": DayThursday, + "FRIDAY": DayFriday, + "SATURDAY": DaySaturday, + "SUNDAY": DaySunday, +} + +var mappingDayEnumLowerCase = map[string]DayEnum{ + "monday": DayMonday, + "tuesday": DayTuesday, + "wednesday": DayWednesday, + "thursday": DayThursday, + "friday": DayFriday, + "saturday": DaySaturday, + "sunday": DaySunday, +} + +// GetDayEnumValues Enumerates the set of values for DayEnum +func GetDayEnumValues() []DayEnum { + values := make([]DayEnum, 0) + for _, v := range mappingDayEnum { + values = append(values, v) + } + return values +} + +// GetDayEnumStringValues Enumerates the set of values in String for DayEnum +func GetDayEnumStringValues() []string { + return []string{ + "MONDAY", + "TUESDAY", + "WEDNESDAY", + "THURSDAY", + "FRIDAY", + "SATURDAY", + "SUNDAY", + } +} + +// GetMappingDayEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingDayEnum(val string) (DayEnum, bool) { + enum, ok := mappingDayEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/default_cancel_snooze_deployment_upgrade_details.go b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/default_cancel_snooze_deployment_upgrade_details.go new file mode 100644 index 00000000000..89c2abf6d39 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/default_cancel_snooze_deployment_upgrade_details.go @@ -0,0 +1,51 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// GoldenGate API +// +// Use the Oracle Cloud Infrastructure GoldenGate APIs to perform data replication operations. +// + +package goldengate + +import ( + "encoding/json" + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// DefaultCancelSnoozeDeploymentUpgradeDetails Definition of the additional attributes for default deployment upgrade cancel snooze. +type DefaultCancelSnoozeDeploymentUpgradeDetails struct { +} + +func (m DefaultCancelSnoozeDeploymentUpgradeDetails) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m DefaultCancelSnoozeDeploymentUpgradeDetails) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// MarshalJSON marshals to json representation +func (m DefaultCancelSnoozeDeploymentUpgradeDetails) MarshalJSON() (buff []byte, e error) { + type MarshalTypeDefaultCancelSnoozeDeploymentUpgradeDetails DefaultCancelSnoozeDeploymentUpgradeDetails + s := struct { + DiscriminatorParam string `json:"type"` + MarshalTypeDefaultCancelSnoozeDeploymentUpgradeDetails + }{ + "DEFAULT", + (MarshalTypeDefaultCancelSnoozeDeploymentUpgradeDetails)(m), + } + + return json.Marshal(&s) +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/default_rollback_deployment_upgrade_details.go b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/default_rollback_deployment_upgrade_details.go new file mode 100644 index 00000000000..6b70d199799 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/default_rollback_deployment_upgrade_details.go @@ -0,0 +1,51 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// GoldenGate API +// +// Use the Oracle Cloud Infrastructure GoldenGate APIs to perform data replication operations. +// + +package goldengate + +import ( + "encoding/json" + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// DefaultRollbackDeploymentUpgradeDetails Definition of the additional attributes for default upgrade rollback. +type DefaultRollbackDeploymentUpgradeDetails struct { +} + +func (m DefaultRollbackDeploymentUpgradeDetails) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m DefaultRollbackDeploymentUpgradeDetails) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// MarshalJSON marshals to json representation +func (m DefaultRollbackDeploymentUpgradeDetails) MarshalJSON() (buff []byte, e error) { + type MarshalTypeDefaultRollbackDeploymentUpgradeDetails DefaultRollbackDeploymentUpgradeDetails + s := struct { + DiscriminatorParam string `json:"type"` + MarshalTypeDefaultRollbackDeploymentUpgradeDetails + }{ + "DEFAULT", + (MarshalTypeDefaultRollbackDeploymentUpgradeDetails)(m), + } + + return json.Marshal(&s) +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/default_snooze_deployment_upgrade_details.go b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/default_snooze_deployment_upgrade_details.go new file mode 100644 index 00000000000..b15d905502c --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/default_snooze_deployment_upgrade_details.go @@ -0,0 +1,51 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// GoldenGate API +// +// Use the Oracle Cloud Infrastructure GoldenGate APIs to perform data replication operations. +// + +package goldengate + +import ( + "encoding/json" + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// DefaultSnoozeDeploymentUpgradeDetails Definition of the additional attributes for default deployment upgrade snooze. +type DefaultSnoozeDeploymentUpgradeDetails struct { +} + +func (m DefaultSnoozeDeploymentUpgradeDetails) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m DefaultSnoozeDeploymentUpgradeDetails) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// MarshalJSON marshals to json representation +func (m DefaultSnoozeDeploymentUpgradeDetails) MarshalJSON() (buff []byte, e error) { + type MarshalTypeDefaultSnoozeDeploymentUpgradeDetails DefaultSnoozeDeploymentUpgradeDetails + s := struct { + DiscriminatorParam string `json:"type"` + MarshalTypeDefaultSnoozeDeploymentUpgradeDetails + }{ + "DEFAULT", + (MarshalTypeDefaultSnoozeDeploymentUpgradeDetails)(m), + } + + return json.Marshal(&s) +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/default_upgrade_deployment_upgrade_details.go b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/default_upgrade_deployment_upgrade_details.go new file mode 100644 index 00000000000..880f2fb41ea --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/default_upgrade_deployment_upgrade_details.go @@ -0,0 +1,51 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// GoldenGate API +// +// Use the Oracle Cloud Infrastructure GoldenGate APIs to perform data replication operations. +// + +package goldengate + +import ( + "encoding/json" + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// DefaultUpgradeDeploymentUpgradeDetails Definition of the additional attributes for default deployment upgrade. +type DefaultUpgradeDeploymentUpgradeDetails struct { +} + +func (m DefaultUpgradeDeploymentUpgradeDetails) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m DefaultUpgradeDeploymentUpgradeDetails) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// MarshalJSON marshals to json representation +func (m DefaultUpgradeDeploymentUpgradeDetails) MarshalJSON() (buff []byte, e error) { + type MarshalTypeDefaultUpgradeDeploymentUpgradeDetails DefaultUpgradeDeploymentUpgradeDetails + s := struct { + DiscriminatorParam string `json:"type"` + MarshalTypeDefaultUpgradeDeploymentUpgradeDetails + }{ + "DEFAULT", + (MarshalTypeDefaultUpgradeDeploymentUpgradeDetails)(m), + } + + return json.Marshal(&s) +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/deployment.go b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/deployment.go index a2ec8e496f3..b759fc87311 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/deployment.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/deployment.go @@ -108,6 +108,9 @@ type Deployment struct { // Indicates if the resource is the the latest available version. IsLatestVersion *bool `mandatory:"false" json:"isLatestVersion"` + // Note: Deprecated: Use timeOfNextMaintenance instead, or related upgrade records + // to check, when deployment will be forced to upgrade to a newer version. + // Old description: // The date the existing version in use will no longer be considered as usable // and an upgrade will be required. This date is typically 6 months after the // version was released for use by GGS. The format is defined by @@ -123,6 +126,18 @@ type Deployment struct { OggData *OggDeployment `mandatory:"false" json:"oggData"` DeploymentDiagnosticData *DeploymentDiagnosticData `mandatory:"false" json:"deploymentDiagnosticData"` + + MaintenanceWindow *MaintenanceWindow `mandatory:"false" json:"maintenanceWindow"` + + // The time of next maintenance schedule. The format is defined by + // RFC3339 (https://tools.ietf.org/html/rfc3339), such as `2016-08-25T21:10:29.600Z`. + TimeOfNextMaintenance *common.SDKTime `mandatory:"false" json:"timeOfNextMaintenance"` + + // Type of the next maintenance. + NextMaintenanceActionType MaintenanceActionTypeEnum `mandatory:"false" json:"nextMaintenanceActionType,omitempty"` + + // Description of the next maintenance. + NextMaintenanceDescription *string `mandatory:"false" json:"nextMaintenanceDescription"` } func (m Deployment) String() string { @@ -147,6 +162,9 @@ func (m Deployment) ValidateEnumValue() (bool, error) { if _, ok := GetMappingLifecycleSubStateEnum(string(m.LifecycleSubState)); !ok && m.LifecycleSubState != "" { errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for LifecycleSubState: %s. Supported values are: %s.", m.LifecycleSubState, strings.Join(GetLifecycleSubStateEnumStringValues(), ","))) } + if _, ok := GetMappingMaintenanceActionTypeEnum(string(m.NextMaintenanceActionType)); !ok && m.NextMaintenanceActionType != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for NextMaintenanceActionType: %s. Supported values are: %s.", m.NextMaintenanceActionType, strings.Join(GetMaintenanceActionTypeEnumStringValues(), ","))) + } if len(errMessage) > 0 { return true, fmt.Errorf(strings.Join(errMessage, "\n")) } diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/deployment_summary.go b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/deployment_summary.go index e55f8de7eea..96f0a7e0e9e 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/deployment_summary.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/deployment_summary.go @@ -94,6 +94,9 @@ type DeploymentSummary struct { // Indicates if the resource is the the latest available version. IsLatestVersion *bool `mandatory:"false" json:"isLatestVersion"` + // Note: Deprecated: Use timeOfNextMaintenance instead, or related upgrade records + // to check, when deployment will be forced to upgrade to a newer version. + // Old description: // The date the existing version in use will no longer be considered as usable // and an upgrade will be required. This date is typically 6 months after the // version was released for use by GGS. The format is defined by diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/deployment_type_summary.go b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/deployment_type_summary.go index ae22f393327..c2359ee037a 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/deployment_type_summary.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/deployment_type_summary.go @@ -42,6 +42,9 @@ type DeploymentTypeSummary struct { // of a description of the technology and optionally the speific version(s) support. For example, // [ "Oracle Database 19c", "Oracle Exadata", "OCI Streaming" ] TargetTechnologies []string `mandatory:"false" json:"targetTechnologies"` + + // Version of OGG + OggVersion *string `mandatory:"false" json:"oggVersion"` } func (m DeploymentTypeSummary) String() string { diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/deployment_upgrade.go b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/deployment_upgrade.go index 85039ee7e89..878a624f943 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/deployment_upgrade.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/deployment_upgrade.go @@ -79,6 +79,35 @@ type DeploymentUpgrade struct { // information, see Resource Tags (https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). // Example: `{orcl-cloud: {free-tier-retain: true}}` SystemTags map[string]map[string]interface{} `mandatory:"false" json:"systemTags"` + + // Version of OGG + PreviousOggVersion *string `mandatory:"false" json:"previousOggVersion"` + + // The time of upgrade schedule. The format is defined by + // RFC3339 (https://tools.ietf.org/html/rfc3339), such as `2016-08-25T21:10:29.600Z`. + TimeSchedule *common.SDKTime `mandatory:"false" json:"timeSchedule"` + + // Indicates if upgrade notifications are snoozed or not. + IsSnoozed *bool `mandatory:"false" json:"isSnoozed"` + + // The time the upgrade notifications are snoozed until. The format is defined by + // RFC3339 (https://tools.ietf.org/html/rfc3339), such as `2016-08-25T21:10:29.600Z`. + TimeSnoozedUntil *common.SDKTime `mandatory:"false" json:"timeSnoozedUntil"` + + // The time the resource was released. The format is defined by + // RFC3339 (https://tools.ietf.org/html/rfc3339), such as `2016-08-25T21:10:29.600Z`. + TimeReleased *common.SDKTime `mandatory:"false" json:"timeReleased"` + + // The type of release. + ReleaseType ReleaseTypeEnum `mandatory:"false" json:"releaseType,omitempty"` + + // Indicates if OGG release contains security fix. + IsSecurityFix *bool `mandatory:"false" json:"isSecurityFix"` + + // Indicates if rollback is allowed. In practice only the last upgrade can be rolled back. + // - Manual upgrade is allowed to rollback only until the old version isn't deprecated yet. + // - Automatic upgrade by default is not allowed, unless a serious issue does not justify. + IsRollbackAllowed *bool `mandatory:"false" json:"isRollbackAllowed"` } func (m DeploymentUpgrade) String() string { @@ -100,6 +129,9 @@ func (m DeploymentUpgrade) ValidateEnumValue() (bool, error) { if _, ok := GetMappingLifecycleSubStateEnum(string(m.LifecycleSubState)); !ok && m.LifecycleSubState != "" { errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for LifecycleSubState: %s. Supported values are: %s.", m.LifecycleSubState, strings.Join(GetLifecycleSubStateEnumStringValues(), ","))) } + if _, ok := GetMappingReleaseTypeEnum(string(m.ReleaseType)); !ok && m.ReleaseType != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for ReleaseType: %s. Supported values are: %s.", m.ReleaseType, strings.Join(GetReleaseTypeEnumStringValues(), ","))) + } if len(errMessage) > 0 { return true, fmt.Errorf(strings.Join(errMessage, "\n")) } diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/deployment_upgrade_summary.go b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/deployment_upgrade_summary.go index f38390bf494..12776544e21 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/deployment_upgrade_summary.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/deployment_upgrade_summary.go @@ -79,6 +79,35 @@ type DeploymentUpgradeSummary struct { // information, see Resource Tags (https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). // Example: `{orcl-cloud: {free-tier-retain: true}}` SystemTags map[string]map[string]interface{} `mandatory:"false" json:"systemTags"` + + // Version of OGG + PreviousOggVersion *string `mandatory:"false" json:"previousOggVersion"` + + // The time of upgrade schedule. The format is defined by + // RFC3339 (https://tools.ietf.org/html/rfc3339), such as `2016-08-25T21:10:29.600Z`. + TimeSchedule *common.SDKTime `mandatory:"false" json:"timeSchedule"` + + // Indicates if upgrade notifications are snoozed or not. + IsSnoozed *bool `mandatory:"false" json:"isSnoozed"` + + // The time the upgrade notifications are snoozed until. The format is defined by + // RFC3339 (https://tools.ietf.org/html/rfc3339), such as `2016-08-25T21:10:29.600Z`. + TimeSnoozedUntil *common.SDKTime `mandatory:"false" json:"timeSnoozedUntil"` + + // The time the resource was released. The format is defined by + // RFC3339 (https://tools.ietf.org/html/rfc3339), such as `2016-08-25T21:10:29.600Z`. + TimeReleased *common.SDKTime `mandatory:"false" json:"timeReleased"` + + // The type of release. + ReleaseType ReleaseTypeEnum `mandatory:"false" json:"releaseType,omitempty"` + + // Indicates if OGG release contains security fix. + IsSecurityFix *bool `mandatory:"false" json:"isSecurityFix"` + + // Indicates if rollback is allowed. In practice only the last upgrade can be rolled back. + // - Manual upgrade is allowed to rollback only until the old version isn't deprecated yet. + // - Automatic upgrade by default is not allowed, unless a serious issue does not justify. + IsRollbackAllowed *bool `mandatory:"false" json:"isRollbackAllowed"` } func (m DeploymentUpgradeSummary) String() string { @@ -100,6 +129,9 @@ func (m DeploymentUpgradeSummary) ValidateEnumValue() (bool, error) { if _, ok := GetMappingLifecycleSubStateEnum(string(m.LifecycleSubState)); !ok && m.LifecycleSubState != "" { errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for LifecycleSubState: %s. Supported values are: %s.", m.LifecycleSubState, strings.Join(GetLifecycleSubStateEnumStringValues(), ","))) } + if _, ok := GetMappingReleaseTypeEnum(string(m.ReleaseType)); !ok && m.ReleaseType != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for ReleaseType: %s. Supported values are: %s.", m.ReleaseType, strings.Join(GetReleaseTypeEnumStringValues(), ","))) + } if len(errMessage) > 0 { return true, fmt.Errorf(strings.Join(errMessage, "\n")) } diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/deployment_version_collection.go b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/deployment_version_collection.go new file mode 100644 index 00000000000..55f6117a1ab --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/deployment_version_collection.go @@ -0,0 +1,39 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// GoldenGate API +// +// Use the Oracle Cloud Infrastructure GoldenGate APIs to perform data replication operations. +// + +package goldengate + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// DeploymentVersionCollection The list of DeploymentVersionSummary objects. +type DeploymentVersionCollection struct { + + // Array of DeploymentVersionSummary. + Items []DeploymentVersionSummary `mandatory:"true" json:"items"` +} + +func (m DeploymentVersionCollection) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m DeploymentVersionCollection) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/deployment_version_summary.go b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/deployment_version_summary.go new file mode 100644 index 00000000000..c53d0a777ea --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/deployment_version_summary.go @@ -0,0 +1,60 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// GoldenGate API +// +// Use the Oracle Cloud Infrastructure GoldenGate APIs to perform data replication operations. +// + +package goldengate + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// DeploymentVersionSummary The summary data of a specific deployment version. +type DeploymentVersionSummary struct { + + // Version of OGG + OggVersion *string `mandatory:"true" json:"oggVersion"` + + // The type of deployment, the value determines the exact 'type' of service executed in the Deployment. + // NOTE: Use of the value 'OGG' is maintained for backward compatibility purposes. Its use is discouraged + // in favor of the equivalent 'DATABASE_ORACLE' value. + DeploymentType DeploymentTypeEnum `mandatory:"true" json:"deploymentType"` + + // The time the resource was released. The format is defined by + // RFC3339 (https://tools.ietf.org/html/rfc3339), such as `2016-08-25T21:10:29.600Z`. + TimeReleased *common.SDKTime `mandatory:"false" json:"timeReleased"` + + // The type of release. + ReleaseType ReleaseTypeEnum `mandatory:"false" json:"releaseType,omitempty"` + + // Indicates if OGG release contains security fix. + IsSecurityFix *bool `mandatory:"false" json:"isSecurityFix"` +} + +func (m DeploymentVersionSummary) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m DeploymentVersionSummary) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingDeploymentTypeEnum(string(m.DeploymentType)); !ok && m.DeploymentType != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for DeploymentType: %s. Supported values are: %s.", m.DeploymentType, strings.Join(GetDeploymentTypeEnumStringValues(), ","))) + } + + if _, ok := GetMappingReleaseTypeEnum(string(m.ReleaseType)); !ok && m.ReleaseType != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for ReleaseType: %s. Supported values are: %s.", m.ReleaseType, strings.Join(GetReleaseTypeEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/goldengate_client.go b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/goldengate_client.go index ef2f1042c91..1b2404f0ee9 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/goldengate_client.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/goldengate_client.go @@ -150,6 +150,69 @@ func (client GoldenGateClient) cancelDeploymentBackup(ctx context.Context, reque return response, err } +// CancelSnoozeDeploymentUpgrade Cancel snooze of a DeploymentUpgrade. When provided, If-Match is checked against ETag values of the resource. +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/goldengate/CancelSnoozeDeploymentUpgrade.go.html to see an example of how to use CancelSnoozeDeploymentUpgrade API. +// A default retry strategy applies to this operation CancelSnoozeDeploymentUpgrade() +func (client GoldenGateClient) CancelSnoozeDeploymentUpgrade(ctx context.Context, request CancelSnoozeDeploymentUpgradeRequest) (response CancelSnoozeDeploymentUpgradeResponse, err error) { + var ociResponse common.OCIResponse + policy := common.DefaultRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.cancelSnoozeDeploymentUpgrade, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = CancelSnoozeDeploymentUpgradeResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = CancelSnoozeDeploymentUpgradeResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(CancelSnoozeDeploymentUpgradeResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into CancelSnoozeDeploymentUpgradeResponse") + } + return +} + +// cancelSnoozeDeploymentUpgrade implements the OCIOperation interface (enables retrying operations) +func (client GoldenGateClient) cancelSnoozeDeploymentUpgrade(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPost, "/deploymentUpgrades/{deploymentUpgradeId}/actions/cancelSnooze", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response CancelSnoozeDeploymentUpgradeResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/goldengate/20200407/DeploymentUpgrade/CancelSnoozeDeploymentUpgrade" + err = common.PostProcessServiceError(err, "GoldenGate", "CancelSnoozeDeploymentUpgrade", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + // ChangeConnectionCompartment Moves the Connection into a different compartment within the same tenancy. When // provided, If-Match is checked against ETag values of the resource. For information about // moving resources between compartments, see Moving Resources Between @@ -2025,6 +2088,64 @@ func (client GoldenGateClient) listDeploymentUpgrades(ctx context.Context, reque return response, err } +// ListDeploymentVersions Returns the list of available deployment versions. +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/goldengate/ListDeploymentVersions.go.html to see an example of how to use ListDeploymentVersions API. +// A default retry strategy applies to this operation ListDeploymentVersions() +func (client GoldenGateClient) ListDeploymentVersions(ctx context.Context, request ListDeploymentVersionsRequest) (response ListDeploymentVersionsResponse, err error) { + var ociResponse common.OCIResponse + policy := common.DefaultRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + ociResponse, err = common.Retry(ctx, request, client.listDeploymentVersions, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = ListDeploymentVersionsResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = ListDeploymentVersionsResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(ListDeploymentVersionsResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into ListDeploymentVersionsResponse") + } + return +} + +// listDeploymentVersions implements the OCIOperation interface (enables retrying operations) +func (client GoldenGateClient) listDeploymentVersions(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/deploymentVersions", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response ListDeploymentVersionsResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/goldengate/20200407/DeploymentVersionCollection/ListDeploymentVersions" + err = common.PostProcessServiceError(err, "GoldenGate", "ListDeploymentVersions", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + // ListDeploymentWalletsOperations Lists the wallets export/import operations to/from a deployment. // // See also @@ -2552,6 +2673,132 @@ func (client GoldenGateClient) restoreDeployment(ctx context.Context, request co return response, err } +// RollbackDeploymentUpgrade Rollback a deployment to it's previous version. When provided, If-Match is checked against ETag values of the resource. +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/goldengate/RollbackDeploymentUpgrade.go.html to see an example of how to use RollbackDeploymentUpgrade API. +// A default retry strategy applies to this operation RollbackDeploymentUpgrade() +func (client GoldenGateClient) RollbackDeploymentUpgrade(ctx context.Context, request RollbackDeploymentUpgradeRequest) (response RollbackDeploymentUpgradeResponse, err error) { + var ociResponse common.OCIResponse + policy := common.DefaultRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.rollbackDeploymentUpgrade, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = RollbackDeploymentUpgradeResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = RollbackDeploymentUpgradeResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(RollbackDeploymentUpgradeResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into RollbackDeploymentUpgradeResponse") + } + return +} + +// rollbackDeploymentUpgrade implements the OCIOperation interface (enables retrying operations) +func (client GoldenGateClient) rollbackDeploymentUpgrade(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPost, "/deploymentUpgrades/{deploymentUpgradeId}/actions/rollback", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response RollbackDeploymentUpgradeResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/goldengate/20200407/DeploymentUpgrade/RollbackDeploymentUpgrade" + err = common.PostProcessServiceError(err, "GoldenGate", "RollbackDeploymentUpgrade", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// SnoozeDeploymentUpgrade Snooze a DeploymentUpgrade. When provided, If-Match is checked against ETag values of the resource. +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/goldengate/SnoozeDeploymentUpgrade.go.html to see an example of how to use SnoozeDeploymentUpgrade API. +// A default retry strategy applies to this operation SnoozeDeploymentUpgrade() +func (client GoldenGateClient) SnoozeDeploymentUpgrade(ctx context.Context, request SnoozeDeploymentUpgradeRequest) (response SnoozeDeploymentUpgradeResponse, err error) { + var ociResponse common.OCIResponse + policy := common.DefaultRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.snoozeDeploymentUpgrade, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = SnoozeDeploymentUpgradeResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = SnoozeDeploymentUpgradeResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(SnoozeDeploymentUpgradeResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into SnoozeDeploymentUpgradeResponse") + } + return +} + +// snoozeDeploymentUpgrade implements the OCIOperation interface (enables retrying operations) +func (client GoldenGateClient) snoozeDeploymentUpgrade(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPost, "/deploymentUpgrades/{deploymentUpgradeId}/actions/snooze", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response SnoozeDeploymentUpgradeResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/goldengate/20200407/DeploymentUpgrade/SnoozeDeploymentUpgrade" + err = common.PostProcessServiceError(err, "GoldenGate", "SnoozeDeploymentUpgrade", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + // StartDeployment Starts a Deployment. When provided, If-Match is checked against ETag values of the resource. // // See also @@ -2973,3 +3220,66 @@ func (client GoldenGateClient) upgradeDeployment(ctx context.Context, request co err = common.UnmarshalResponse(httpResponse, &response) return response, err } + +// UpgradeDeploymentUpgrade Upgrade a deployment. When provided, If-Match is checked against ETag values of the resource. +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/goldengate/UpgradeDeploymentUpgrade.go.html to see an example of how to use UpgradeDeploymentUpgrade API. +// A default retry strategy applies to this operation UpgradeDeploymentUpgrade() +func (client GoldenGateClient) UpgradeDeploymentUpgrade(ctx context.Context, request UpgradeDeploymentUpgradeRequest) (response UpgradeDeploymentUpgradeResponse, err error) { + var ociResponse common.OCIResponse + policy := common.DefaultRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.upgradeDeploymentUpgrade, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = UpgradeDeploymentUpgradeResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = UpgradeDeploymentUpgradeResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(UpgradeDeploymentUpgradeResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into UpgradeDeploymentUpgradeResponse") + } + return +} + +// upgradeDeploymentUpgrade implements the OCIOperation interface (enables retrying operations) +func (client GoldenGateClient) upgradeDeploymentUpgrade(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPost, "/deploymentUpgrades/{deploymentUpgradeId}/actions/upgrade", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response UpgradeDeploymentUpgradeResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/goldengate/20200407/DeploymentUpgrade/UpgradeDeploymentUpgrade" + err = common.PostProcessServiceError(err, "GoldenGate", "UpgradeDeploymentUpgrade", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/lifecycle_state.go b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/lifecycle_state.go index 174c2486c7b..0f3d2e8aada 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/lifecycle_state.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/lifecycle_state.go @@ -30,6 +30,7 @@ const ( LifecycleStateCanceling LifecycleStateEnum = "CANCELING" LifecycleStateCanceled LifecycleStateEnum = "CANCELED" LifecycleStateSucceeded LifecycleStateEnum = "SUCCEEDED" + LifecycleStateWaiting LifecycleStateEnum = "WAITING" ) var mappingLifecycleStateEnum = map[string]LifecycleStateEnum{ @@ -45,6 +46,7 @@ var mappingLifecycleStateEnum = map[string]LifecycleStateEnum{ "CANCELING": LifecycleStateCanceling, "CANCELED": LifecycleStateCanceled, "SUCCEEDED": LifecycleStateSucceeded, + "WAITING": LifecycleStateWaiting, } var mappingLifecycleStateEnumLowerCase = map[string]LifecycleStateEnum{ @@ -60,6 +62,7 @@ var mappingLifecycleStateEnumLowerCase = map[string]LifecycleStateEnum{ "canceling": LifecycleStateCanceling, "canceled": LifecycleStateCanceled, "succeeded": LifecycleStateSucceeded, + "waiting": LifecycleStateWaiting, } // GetLifecycleStateEnumValues Enumerates the set of values for LifecycleStateEnum @@ -86,6 +89,7 @@ func GetLifecycleStateEnumStringValues() []string { "CANCELING", "CANCELED", "SUCCEEDED", + "WAITING", } } diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/lifecycle_sub_state.go b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/lifecycle_sub_state.go index fcb0ddb60eb..4aa8d9dad82 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/lifecycle_sub_state.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/lifecycle_sub_state.go @@ -18,33 +18,36 @@ type LifecycleSubStateEnum string // Set of constants representing the allowable values for LifecycleSubStateEnum const ( - LifecycleSubStateRecovering LifecycleSubStateEnum = "RECOVERING" - LifecycleSubStateStarting LifecycleSubStateEnum = "STARTING" - LifecycleSubStateStopping LifecycleSubStateEnum = "STOPPING" - LifecycleSubStateMoving LifecycleSubStateEnum = "MOVING" - LifecycleSubStateUpgrading LifecycleSubStateEnum = "UPGRADING" - LifecycleSubStateRestoring LifecycleSubStateEnum = "RESTORING" - LifecycleSubStateBackupInProgress LifecycleSubStateEnum = "BACKUP_IN_PROGRESS" + LifecycleSubStateRecovering LifecycleSubStateEnum = "RECOVERING" + LifecycleSubStateStarting LifecycleSubStateEnum = "STARTING" + LifecycleSubStateStopping LifecycleSubStateEnum = "STOPPING" + LifecycleSubStateMoving LifecycleSubStateEnum = "MOVING" + LifecycleSubStateUpgrading LifecycleSubStateEnum = "UPGRADING" + LifecycleSubStateRestoring LifecycleSubStateEnum = "RESTORING" + LifecycleSubStateBackupInProgress LifecycleSubStateEnum = "BACKUP_IN_PROGRESS" + LifecycleSubStateRollbackInProgress LifecycleSubStateEnum = "ROLLBACK_IN_PROGRESS" ) var mappingLifecycleSubStateEnum = map[string]LifecycleSubStateEnum{ - "RECOVERING": LifecycleSubStateRecovering, - "STARTING": LifecycleSubStateStarting, - "STOPPING": LifecycleSubStateStopping, - "MOVING": LifecycleSubStateMoving, - "UPGRADING": LifecycleSubStateUpgrading, - "RESTORING": LifecycleSubStateRestoring, - "BACKUP_IN_PROGRESS": LifecycleSubStateBackupInProgress, + "RECOVERING": LifecycleSubStateRecovering, + "STARTING": LifecycleSubStateStarting, + "STOPPING": LifecycleSubStateStopping, + "MOVING": LifecycleSubStateMoving, + "UPGRADING": LifecycleSubStateUpgrading, + "RESTORING": LifecycleSubStateRestoring, + "BACKUP_IN_PROGRESS": LifecycleSubStateBackupInProgress, + "ROLLBACK_IN_PROGRESS": LifecycleSubStateRollbackInProgress, } var mappingLifecycleSubStateEnumLowerCase = map[string]LifecycleSubStateEnum{ - "recovering": LifecycleSubStateRecovering, - "starting": LifecycleSubStateStarting, - "stopping": LifecycleSubStateStopping, - "moving": LifecycleSubStateMoving, - "upgrading": LifecycleSubStateUpgrading, - "restoring": LifecycleSubStateRestoring, - "backup_in_progress": LifecycleSubStateBackupInProgress, + "recovering": LifecycleSubStateRecovering, + "starting": LifecycleSubStateStarting, + "stopping": LifecycleSubStateStopping, + "moving": LifecycleSubStateMoving, + "upgrading": LifecycleSubStateUpgrading, + "restoring": LifecycleSubStateRestoring, + "backup_in_progress": LifecycleSubStateBackupInProgress, + "rollback_in_progress": LifecycleSubStateRollbackInProgress, } // GetLifecycleSubStateEnumValues Enumerates the set of values for LifecycleSubStateEnum @@ -66,6 +69,7 @@ func GetLifecycleSubStateEnumStringValues() []string { "UPGRADING", "RESTORING", "BACKUP_IN_PROGRESS", + "ROLLBACK_IN_PROGRESS", } } diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/list_database_registrations_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/list_database_registrations_request_response.go index 84f6721b55e..a19f8635a5e 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/list_database_registrations_request_response.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/list_database_registrations_request_response.go @@ -144,6 +144,7 @@ const ( ListDatabaseRegistrationsLifecycleStateCanceling ListDatabaseRegistrationsLifecycleStateEnum = "CANCELING" ListDatabaseRegistrationsLifecycleStateCanceled ListDatabaseRegistrationsLifecycleStateEnum = "CANCELED" ListDatabaseRegistrationsLifecycleStateSucceeded ListDatabaseRegistrationsLifecycleStateEnum = "SUCCEEDED" + ListDatabaseRegistrationsLifecycleStateWaiting ListDatabaseRegistrationsLifecycleStateEnum = "WAITING" ) var mappingListDatabaseRegistrationsLifecycleStateEnum = map[string]ListDatabaseRegistrationsLifecycleStateEnum{ @@ -159,6 +160,7 @@ var mappingListDatabaseRegistrationsLifecycleStateEnum = map[string]ListDatabase "CANCELING": ListDatabaseRegistrationsLifecycleStateCanceling, "CANCELED": ListDatabaseRegistrationsLifecycleStateCanceled, "SUCCEEDED": ListDatabaseRegistrationsLifecycleStateSucceeded, + "WAITING": ListDatabaseRegistrationsLifecycleStateWaiting, } var mappingListDatabaseRegistrationsLifecycleStateEnumLowerCase = map[string]ListDatabaseRegistrationsLifecycleStateEnum{ @@ -174,6 +176,7 @@ var mappingListDatabaseRegistrationsLifecycleStateEnumLowerCase = map[string]Lis "canceling": ListDatabaseRegistrationsLifecycleStateCanceling, "canceled": ListDatabaseRegistrationsLifecycleStateCanceled, "succeeded": ListDatabaseRegistrationsLifecycleStateSucceeded, + "waiting": ListDatabaseRegistrationsLifecycleStateWaiting, } // GetListDatabaseRegistrationsLifecycleStateEnumValues Enumerates the set of values for ListDatabaseRegistrationsLifecycleStateEnum @@ -200,6 +203,7 @@ func GetListDatabaseRegistrationsLifecycleStateEnumStringValues() []string { "CANCELING", "CANCELED", "SUCCEEDED", + "WAITING", } } diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/list_deployment_backups_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/list_deployment_backups_request_response.go index 55d140ae9d7..9ef61b5559c 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/list_deployment_backups_request_response.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/list_deployment_backups_request_response.go @@ -144,6 +144,7 @@ const ( ListDeploymentBackupsLifecycleStateCanceling ListDeploymentBackupsLifecycleStateEnum = "CANCELING" ListDeploymentBackupsLifecycleStateCanceled ListDeploymentBackupsLifecycleStateEnum = "CANCELED" ListDeploymentBackupsLifecycleStateSucceeded ListDeploymentBackupsLifecycleStateEnum = "SUCCEEDED" + ListDeploymentBackupsLifecycleStateWaiting ListDeploymentBackupsLifecycleStateEnum = "WAITING" ) var mappingListDeploymentBackupsLifecycleStateEnum = map[string]ListDeploymentBackupsLifecycleStateEnum{ @@ -159,6 +160,7 @@ var mappingListDeploymentBackupsLifecycleStateEnum = map[string]ListDeploymentBa "CANCELING": ListDeploymentBackupsLifecycleStateCanceling, "CANCELED": ListDeploymentBackupsLifecycleStateCanceled, "SUCCEEDED": ListDeploymentBackupsLifecycleStateSucceeded, + "WAITING": ListDeploymentBackupsLifecycleStateWaiting, } var mappingListDeploymentBackupsLifecycleStateEnumLowerCase = map[string]ListDeploymentBackupsLifecycleStateEnum{ @@ -174,6 +176,7 @@ var mappingListDeploymentBackupsLifecycleStateEnumLowerCase = map[string]ListDep "canceling": ListDeploymentBackupsLifecycleStateCanceling, "canceled": ListDeploymentBackupsLifecycleStateCanceled, "succeeded": ListDeploymentBackupsLifecycleStateSucceeded, + "waiting": ListDeploymentBackupsLifecycleStateWaiting, } // GetListDeploymentBackupsLifecycleStateEnumValues Enumerates the set of values for ListDeploymentBackupsLifecycleStateEnum @@ -200,6 +203,7 @@ func GetListDeploymentBackupsLifecycleStateEnumStringValues() []string { "CANCELING", "CANCELED", "SUCCEEDED", + "WAITING", } } diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/list_deployment_types_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/list_deployment_types_request_response.go index 67b189dcec2..ff37c124aaf 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/list_deployment_types_request_response.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/list_deployment_types_request_response.go @@ -21,6 +21,12 @@ type ListDeploymentTypesRequest struct { // The OCID (https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm) of the compartment in which to list resources. CompartmentId *string `mandatory:"true" contributesTo:"query" name:"compartmentId"` + // The type of deployment, the value determines the exact 'type' of the service executed in the deployment. Default value is DATABASE_ORACLE. + DeploymentType ListDeploymentTypesDeploymentTypeEnum `mandatory:"false" contributesTo:"query" name:"deploymentType" omitEmpty:"true"` + + // Allows to query by a specific GoldenGate version. + OggVersion *string `mandatory:"false" contributesTo:"query" name:"oggVersion"` + // A filter to return only the resources that match the entire 'displayName' given. DisplayName *string `mandatory:"false" contributesTo:"query" name:"displayName"` @@ -78,6 +84,9 @@ func (request ListDeploymentTypesRequest) RetryPolicy() *common.RetryPolicy { // Not recommended for calling this function directly func (request ListDeploymentTypesRequest) ValidateEnumValue() (bool, error) { errMessage := []string{} + if _, ok := GetMappingListDeploymentTypesDeploymentTypeEnum(string(request.DeploymentType)); !ok && request.DeploymentType != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for DeploymentType: %s. Supported values are: %s.", request.DeploymentType, strings.Join(GetListDeploymentTypesDeploymentTypeEnumStringValues(), ","))) + } if _, ok := GetMappingListDeploymentTypesSortOrderEnum(string(request.SortOrder)); !ok && request.SortOrder != "" { errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for SortOrder: %s. Supported values are: %s.", request.SortOrder, strings.Join(GetListDeploymentTypesSortOrderEnumStringValues(), ","))) } @@ -118,6 +127,60 @@ func (response ListDeploymentTypesResponse) HTTPResponse() *http.Response { return response.RawResponse } +// ListDeploymentTypesDeploymentTypeEnum Enum with underlying type: string +type ListDeploymentTypesDeploymentTypeEnum string + +// Set of constants representing the allowable values for ListDeploymentTypesDeploymentTypeEnum +const ( + ListDeploymentTypesDeploymentTypeOgg ListDeploymentTypesDeploymentTypeEnum = "OGG" + ListDeploymentTypesDeploymentTypeDatabaseOracle ListDeploymentTypesDeploymentTypeEnum = "DATABASE_ORACLE" + ListDeploymentTypesDeploymentTypeBigdata ListDeploymentTypesDeploymentTypeEnum = "BIGDATA" + ListDeploymentTypesDeploymentTypeDatabaseMysql ListDeploymentTypesDeploymentTypeEnum = "DATABASE_MYSQL" + ListDeploymentTypesDeploymentTypeDatabasePostgresql ListDeploymentTypesDeploymentTypeEnum = "DATABASE_POSTGRESQL" +) + +var mappingListDeploymentTypesDeploymentTypeEnum = map[string]ListDeploymentTypesDeploymentTypeEnum{ + "OGG": ListDeploymentTypesDeploymentTypeOgg, + "DATABASE_ORACLE": ListDeploymentTypesDeploymentTypeDatabaseOracle, + "BIGDATA": ListDeploymentTypesDeploymentTypeBigdata, + "DATABASE_MYSQL": ListDeploymentTypesDeploymentTypeDatabaseMysql, + "DATABASE_POSTGRESQL": ListDeploymentTypesDeploymentTypeDatabasePostgresql, +} + +var mappingListDeploymentTypesDeploymentTypeEnumLowerCase = map[string]ListDeploymentTypesDeploymentTypeEnum{ + "ogg": ListDeploymentTypesDeploymentTypeOgg, + "database_oracle": ListDeploymentTypesDeploymentTypeDatabaseOracle, + "bigdata": ListDeploymentTypesDeploymentTypeBigdata, + "database_mysql": ListDeploymentTypesDeploymentTypeDatabaseMysql, + "database_postgresql": ListDeploymentTypesDeploymentTypeDatabasePostgresql, +} + +// GetListDeploymentTypesDeploymentTypeEnumValues Enumerates the set of values for ListDeploymentTypesDeploymentTypeEnum +func GetListDeploymentTypesDeploymentTypeEnumValues() []ListDeploymentTypesDeploymentTypeEnum { + values := make([]ListDeploymentTypesDeploymentTypeEnum, 0) + for _, v := range mappingListDeploymentTypesDeploymentTypeEnum { + values = append(values, v) + } + return values +} + +// GetListDeploymentTypesDeploymentTypeEnumStringValues Enumerates the set of values in String for ListDeploymentTypesDeploymentTypeEnum +func GetListDeploymentTypesDeploymentTypeEnumStringValues() []string { + return []string{ + "OGG", + "DATABASE_ORACLE", + "BIGDATA", + "DATABASE_MYSQL", + "DATABASE_POSTGRESQL", + } +} + +// GetMappingListDeploymentTypesDeploymentTypeEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingListDeploymentTypesDeploymentTypeEnum(val string) (ListDeploymentTypesDeploymentTypeEnum, bool) { + enum, ok := mappingListDeploymentTypesDeploymentTypeEnumLowerCase[strings.ToLower(val)] + return enum, ok +} + // ListDeploymentTypesSortOrderEnum Enum with underlying type: string type ListDeploymentTypesSortOrderEnum string diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/list_deployment_upgrades_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/list_deployment_upgrades_request_response.go index ee3b67abd36..58d73312925 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/list_deployment_upgrades_request_response.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/list_deployment_upgrades_request_response.go @@ -144,6 +144,7 @@ const ( ListDeploymentUpgradesLifecycleStateCanceling ListDeploymentUpgradesLifecycleStateEnum = "CANCELING" ListDeploymentUpgradesLifecycleStateCanceled ListDeploymentUpgradesLifecycleStateEnum = "CANCELED" ListDeploymentUpgradesLifecycleStateSucceeded ListDeploymentUpgradesLifecycleStateEnum = "SUCCEEDED" + ListDeploymentUpgradesLifecycleStateWaiting ListDeploymentUpgradesLifecycleStateEnum = "WAITING" ) var mappingListDeploymentUpgradesLifecycleStateEnum = map[string]ListDeploymentUpgradesLifecycleStateEnum{ @@ -159,6 +160,7 @@ var mappingListDeploymentUpgradesLifecycleStateEnum = map[string]ListDeploymentU "CANCELING": ListDeploymentUpgradesLifecycleStateCanceling, "CANCELED": ListDeploymentUpgradesLifecycleStateCanceled, "SUCCEEDED": ListDeploymentUpgradesLifecycleStateSucceeded, + "WAITING": ListDeploymentUpgradesLifecycleStateWaiting, } var mappingListDeploymentUpgradesLifecycleStateEnumLowerCase = map[string]ListDeploymentUpgradesLifecycleStateEnum{ @@ -174,6 +176,7 @@ var mappingListDeploymentUpgradesLifecycleStateEnumLowerCase = map[string]ListDe "canceling": ListDeploymentUpgradesLifecycleStateCanceling, "canceled": ListDeploymentUpgradesLifecycleStateCanceled, "succeeded": ListDeploymentUpgradesLifecycleStateSucceeded, + "waiting": ListDeploymentUpgradesLifecycleStateWaiting, } // GetListDeploymentUpgradesLifecycleStateEnumValues Enumerates the set of values for ListDeploymentUpgradesLifecycleStateEnum @@ -200,6 +203,7 @@ func GetListDeploymentUpgradesLifecycleStateEnumStringValues() []string { "CANCELING", "CANCELED", "SUCCEEDED", + "WAITING", } } diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/list_deployment_versions_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/list_deployment_versions_request_response.go new file mode 100644 index 00000000000..8f0c2e9e93e --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/list_deployment_versions_request_response.go @@ -0,0 +1,263 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package goldengate + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// ListDeploymentVersionsRequest wrapper for the ListDeploymentVersions operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/goldengate/ListDeploymentVersions.go.html to see an example of how to use ListDeploymentVersionsRequest. +type ListDeploymentVersionsRequest struct { + + // The OCID (https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm) of the compartment in which to list resources. + CompartmentId *string `mandatory:"true" contributesTo:"query" name:"compartmentId"` + + // The OCID (https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm) of the deployment in which to list resources. + DeploymentId *string `mandatory:"false" contributesTo:"query" name:"deploymentId"` + + // The type of deployment, the value determines the exact 'type' of the service executed in the deployment. Default value is DATABASE_ORACLE. + DeploymentType ListDeploymentVersionsDeploymentTypeEnum `mandatory:"false" contributesTo:"query" name:"deploymentType" omitEmpty:"true"` + + // The client request ID for tracing. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // The maximum number of items to return. + Limit *int `mandatory:"false" contributesTo:"query" name:"limit"` + + // The page token representing the page at which to start retrieving results. This is usually + // retrieved from a previous list call. + Page *string `mandatory:"false" contributesTo:"query" name:"page"` + + // The sort order to use, either 'asc' or 'desc'. + SortOrder ListDeploymentVersionsSortOrderEnum `mandatory:"false" contributesTo:"query" name:"sortOrder" omitEmpty:"true"` + + // The field to sort by. Only one sort order can be provided. Default order for 'timeCreated' is + // descending. Default order for 'displayName' is ascending. If no value is specified + // timeCreated is the default. + SortBy ListDeploymentVersionsSortByEnum `mandatory:"false" contributesTo:"query" name:"sortBy" omitEmpty:"true"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request ListDeploymentVersionsRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request ListDeploymentVersionsRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request ListDeploymentVersionsRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request ListDeploymentVersionsRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request ListDeploymentVersionsRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingListDeploymentVersionsDeploymentTypeEnum(string(request.DeploymentType)); !ok && request.DeploymentType != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for DeploymentType: %s. Supported values are: %s.", request.DeploymentType, strings.Join(GetListDeploymentVersionsDeploymentTypeEnumStringValues(), ","))) + } + if _, ok := GetMappingListDeploymentVersionsSortOrderEnum(string(request.SortOrder)); !ok && request.SortOrder != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for SortOrder: %s. Supported values are: %s.", request.SortOrder, strings.Join(GetListDeploymentVersionsSortOrderEnumStringValues(), ","))) + } + if _, ok := GetMappingListDeploymentVersionsSortByEnum(string(request.SortBy)); !ok && request.SortBy != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for SortBy: %s. Supported values are: %s.", request.SortBy, strings.Join(GetListDeploymentVersionsSortByEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// ListDeploymentVersionsResponse wrapper for the ListDeploymentVersions operation +type ListDeploymentVersionsResponse struct { + + // The underlying http response + RawResponse *http.Response + + // A list of DeploymentVersionCollection instances + DeploymentVersionCollection `presentIn:"body"` + + // A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a + // particular request, please include the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For pagination of a list of items. When paging through a list, if this header appears in the + // response, then a partial list might have been returned. Include this value as the `page` + // parameter for the subsequent GET request to get the next batch of items. + OpcNextPage *string `presentIn:"header" name:"opc-next-page"` +} + +func (response ListDeploymentVersionsResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response ListDeploymentVersionsResponse) HTTPResponse() *http.Response { + return response.RawResponse +} + +// ListDeploymentVersionsDeploymentTypeEnum Enum with underlying type: string +type ListDeploymentVersionsDeploymentTypeEnum string + +// Set of constants representing the allowable values for ListDeploymentVersionsDeploymentTypeEnum +const ( + ListDeploymentVersionsDeploymentTypeOgg ListDeploymentVersionsDeploymentTypeEnum = "OGG" + ListDeploymentVersionsDeploymentTypeDatabaseOracle ListDeploymentVersionsDeploymentTypeEnum = "DATABASE_ORACLE" + ListDeploymentVersionsDeploymentTypeBigdata ListDeploymentVersionsDeploymentTypeEnum = "BIGDATA" + ListDeploymentVersionsDeploymentTypeDatabaseMysql ListDeploymentVersionsDeploymentTypeEnum = "DATABASE_MYSQL" + ListDeploymentVersionsDeploymentTypeDatabasePostgresql ListDeploymentVersionsDeploymentTypeEnum = "DATABASE_POSTGRESQL" +) + +var mappingListDeploymentVersionsDeploymentTypeEnum = map[string]ListDeploymentVersionsDeploymentTypeEnum{ + "OGG": ListDeploymentVersionsDeploymentTypeOgg, + "DATABASE_ORACLE": ListDeploymentVersionsDeploymentTypeDatabaseOracle, + "BIGDATA": ListDeploymentVersionsDeploymentTypeBigdata, + "DATABASE_MYSQL": ListDeploymentVersionsDeploymentTypeDatabaseMysql, + "DATABASE_POSTGRESQL": ListDeploymentVersionsDeploymentTypeDatabasePostgresql, +} + +var mappingListDeploymentVersionsDeploymentTypeEnumLowerCase = map[string]ListDeploymentVersionsDeploymentTypeEnum{ + "ogg": ListDeploymentVersionsDeploymentTypeOgg, + "database_oracle": ListDeploymentVersionsDeploymentTypeDatabaseOracle, + "bigdata": ListDeploymentVersionsDeploymentTypeBigdata, + "database_mysql": ListDeploymentVersionsDeploymentTypeDatabaseMysql, + "database_postgresql": ListDeploymentVersionsDeploymentTypeDatabasePostgresql, +} + +// GetListDeploymentVersionsDeploymentTypeEnumValues Enumerates the set of values for ListDeploymentVersionsDeploymentTypeEnum +func GetListDeploymentVersionsDeploymentTypeEnumValues() []ListDeploymentVersionsDeploymentTypeEnum { + values := make([]ListDeploymentVersionsDeploymentTypeEnum, 0) + for _, v := range mappingListDeploymentVersionsDeploymentTypeEnum { + values = append(values, v) + } + return values +} + +// GetListDeploymentVersionsDeploymentTypeEnumStringValues Enumerates the set of values in String for ListDeploymentVersionsDeploymentTypeEnum +func GetListDeploymentVersionsDeploymentTypeEnumStringValues() []string { + return []string{ + "OGG", + "DATABASE_ORACLE", + "BIGDATA", + "DATABASE_MYSQL", + "DATABASE_POSTGRESQL", + } +} + +// GetMappingListDeploymentVersionsDeploymentTypeEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingListDeploymentVersionsDeploymentTypeEnum(val string) (ListDeploymentVersionsDeploymentTypeEnum, bool) { + enum, ok := mappingListDeploymentVersionsDeploymentTypeEnumLowerCase[strings.ToLower(val)] + return enum, ok +} + +// ListDeploymentVersionsSortOrderEnum Enum with underlying type: string +type ListDeploymentVersionsSortOrderEnum string + +// Set of constants representing the allowable values for ListDeploymentVersionsSortOrderEnum +const ( + ListDeploymentVersionsSortOrderAsc ListDeploymentVersionsSortOrderEnum = "ASC" + ListDeploymentVersionsSortOrderDesc ListDeploymentVersionsSortOrderEnum = "DESC" +) + +var mappingListDeploymentVersionsSortOrderEnum = map[string]ListDeploymentVersionsSortOrderEnum{ + "ASC": ListDeploymentVersionsSortOrderAsc, + "DESC": ListDeploymentVersionsSortOrderDesc, +} + +var mappingListDeploymentVersionsSortOrderEnumLowerCase = map[string]ListDeploymentVersionsSortOrderEnum{ + "asc": ListDeploymentVersionsSortOrderAsc, + "desc": ListDeploymentVersionsSortOrderDesc, +} + +// GetListDeploymentVersionsSortOrderEnumValues Enumerates the set of values for ListDeploymentVersionsSortOrderEnum +func GetListDeploymentVersionsSortOrderEnumValues() []ListDeploymentVersionsSortOrderEnum { + values := make([]ListDeploymentVersionsSortOrderEnum, 0) + for _, v := range mappingListDeploymentVersionsSortOrderEnum { + values = append(values, v) + } + return values +} + +// GetListDeploymentVersionsSortOrderEnumStringValues Enumerates the set of values in String for ListDeploymentVersionsSortOrderEnum +func GetListDeploymentVersionsSortOrderEnumStringValues() []string { + return []string{ + "ASC", + "DESC", + } +} + +// GetMappingListDeploymentVersionsSortOrderEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingListDeploymentVersionsSortOrderEnum(val string) (ListDeploymentVersionsSortOrderEnum, bool) { + enum, ok := mappingListDeploymentVersionsSortOrderEnumLowerCase[strings.ToLower(val)] + return enum, ok +} + +// ListDeploymentVersionsSortByEnum Enum with underlying type: string +type ListDeploymentVersionsSortByEnum string + +// Set of constants representing the allowable values for ListDeploymentVersionsSortByEnum +const ( + ListDeploymentVersionsSortByTimecreated ListDeploymentVersionsSortByEnum = "timeCreated" + ListDeploymentVersionsSortByDisplayname ListDeploymentVersionsSortByEnum = "displayName" +) + +var mappingListDeploymentVersionsSortByEnum = map[string]ListDeploymentVersionsSortByEnum{ + "timeCreated": ListDeploymentVersionsSortByTimecreated, + "displayName": ListDeploymentVersionsSortByDisplayname, +} + +var mappingListDeploymentVersionsSortByEnumLowerCase = map[string]ListDeploymentVersionsSortByEnum{ + "timecreated": ListDeploymentVersionsSortByTimecreated, + "displayname": ListDeploymentVersionsSortByDisplayname, +} + +// GetListDeploymentVersionsSortByEnumValues Enumerates the set of values for ListDeploymentVersionsSortByEnum +func GetListDeploymentVersionsSortByEnumValues() []ListDeploymentVersionsSortByEnum { + values := make([]ListDeploymentVersionsSortByEnum, 0) + for _, v := range mappingListDeploymentVersionsSortByEnum { + values = append(values, v) + } + return values +} + +// GetListDeploymentVersionsSortByEnumStringValues Enumerates the set of values in String for ListDeploymentVersionsSortByEnum +func GetListDeploymentVersionsSortByEnumStringValues() []string { + return []string{ + "timeCreated", + "displayName", + } +} + +// GetMappingListDeploymentVersionsSortByEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingListDeploymentVersionsSortByEnum(val string) (ListDeploymentVersionsSortByEnum, bool) { + enum, ok := mappingListDeploymentVersionsSortByEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/list_deployments_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/list_deployments_request_response.go index 4e56f42e279..7093ccdb02f 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/list_deployments_request_response.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/list_deployments_request_response.go @@ -232,6 +232,7 @@ const ( ListDeploymentsLifecycleStateCanceling ListDeploymentsLifecycleStateEnum = "CANCELING" ListDeploymentsLifecycleStateCanceled ListDeploymentsLifecycleStateEnum = "CANCELED" ListDeploymentsLifecycleStateSucceeded ListDeploymentsLifecycleStateEnum = "SUCCEEDED" + ListDeploymentsLifecycleStateWaiting ListDeploymentsLifecycleStateEnum = "WAITING" ) var mappingListDeploymentsLifecycleStateEnum = map[string]ListDeploymentsLifecycleStateEnum{ @@ -247,6 +248,7 @@ var mappingListDeploymentsLifecycleStateEnum = map[string]ListDeploymentsLifecyc "CANCELING": ListDeploymentsLifecycleStateCanceling, "CANCELED": ListDeploymentsLifecycleStateCanceled, "SUCCEEDED": ListDeploymentsLifecycleStateSucceeded, + "WAITING": ListDeploymentsLifecycleStateWaiting, } var mappingListDeploymentsLifecycleStateEnumLowerCase = map[string]ListDeploymentsLifecycleStateEnum{ @@ -262,6 +264,7 @@ var mappingListDeploymentsLifecycleStateEnumLowerCase = map[string]ListDeploymen "canceling": ListDeploymentsLifecycleStateCanceling, "canceled": ListDeploymentsLifecycleStateCanceled, "succeeded": ListDeploymentsLifecycleStateSucceeded, + "waiting": ListDeploymentsLifecycleStateWaiting, } // GetListDeploymentsLifecycleStateEnumValues Enumerates the set of values for ListDeploymentsLifecycleStateEnum @@ -288,6 +291,7 @@ func GetListDeploymentsLifecycleStateEnumStringValues() []string { "CANCELING", "CANCELED", "SUCCEEDED", + "WAITING", } } @@ -302,33 +306,36 @@ type ListDeploymentsLifecycleSubStateEnum string // Set of constants representing the allowable values for ListDeploymentsLifecycleSubStateEnum const ( - ListDeploymentsLifecycleSubStateRecovering ListDeploymentsLifecycleSubStateEnum = "RECOVERING" - ListDeploymentsLifecycleSubStateStarting ListDeploymentsLifecycleSubStateEnum = "STARTING" - ListDeploymentsLifecycleSubStateStopping ListDeploymentsLifecycleSubStateEnum = "STOPPING" - ListDeploymentsLifecycleSubStateMoving ListDeploymentsLifecycleSubStateEnum = "MOVING" - ListDeploymentsLifecycleSubStateUpgrading ListDeploymentsLifecycleSubStateEnum = "UPGRADING" - ListDeploymentsLifecycleSubStateRestoring ListDeploymentsLifecycleSubStateEnum = "RESTORING" - ListDeploymentsLifecycleSubStateBackupInProgress ListDeploymentsLifecycleSubStateEnum = "BACKUP_IN_PROGRESS" + ListDeploymentsLifecycleSubStateRecovering ListDeploymentsLifecycleSubStateEnum = "RECOVERING" + ListDeploymentsLifecycleSubStateStarting ListDeploymentsLifecycleSubStateEnum = "STARTING" + ListDeploymentsLifecycleSubStateStopping ListDeploymentsLifecycleSubStateEnum = "STOPPING" + ListDeploymentsLifecycleSubStateMoving ListDeploymentsLifecycleSubStateEnum = "MOVING" + ListDeploymentsLifecycleSubStateUpgrading ListDeploymentsLifecycleSubStateEnum = "UPGRADING" + ListDeploymentsLifecycleSubStateRestoring ListDeploymentsLifecycleSubStateEnum = "RESTORING" + ListDeploymentsLifecycleSubStateBackupInProgress ListDeploymentsLifecycleSubStateEnum = "BACKUP_IN_PROGRESS" + ListDeploymentsLifecycleSubStateRollbackInProgress ListDeploymentsLifecycleSubStateEnum = "ROLLBACK_IN_PROGRESS" ) var mappingListDeploymentsLifecycleSubStateEnum = map[string]ListDeploymentsLifecycleSubStateEnum{ - "RECOVERING": ListDeploymentsLifecycleSubStateRecovering, - "STARTING": ListDeploymentsLifecycleSubStateStarting, - "STOPPING": ListDeploymentsLifecycleSubStateStopping, - "MOVING": ListDeploymentsLifecycleSubStateMoving, - "UPGRADING": ListDeploymentsLifecycleSubStateUpgrading, - "RESTORING": ListDeploymentsLifecycleSubStateRestoring, - "BACKUP_IN_PROGRESS": ListDeploymentsLifecycleSubStateBackupInProgress, + "RECOVERING": ListDeploymentsLifecycleSubStateRecovering, + "STARTING": ListDeploymentsLifecycleSubStateStarting, + "STOPPING": ListDeploymentsLifecycleSubStateStopping, + "MOVING": ListDeploymentsLifecycleSubStateMoving, + "UPGRADING": ListDeploymentsLifecycleSubStateUpgrading, + "RESTORING": ListDeploymentsLifecycleSubStateRestoring, + "BACKUP_IN_PROGRESS": ListDeploymentsLifecycleSubStateBackupInProgress, + "ROLLBACK_IN_PROGRESS": ListDeploymentsLifecycleSubStateRollbackInProgress, } var mappingListDeploymentsLifecycleSubStateEnumLowerCase = map[string]ListDeploymentsLifecycleSubStateEnum{ - "recovering": ListDeploymentsLifecycleSubStateRecovering, - "starting": ListDeploymentsLifecycleSubStateStarting, - "stopping": ListDeploymentsLifecycleSubStateStopping, - "moving": ListDeploymentsLifecycleSubStateMoving, - "upgrading": ListDeploymentsLifecycleSubStateUpgrading, - "restoring": ListDeploymentsLifecycleSubStateRestoring, - "backup_in_progress": ListDeploymentsLifecycleSubStateBackupInProgress, + "recovering": ListDeploymentsLifecycleSubStateRecovering, + "starting": ListDeploymentsLifecycleSubStateStarting, + "stopping": ListDeploymentsLifecycleSubStateStopping, + "moving": ListDeploymentsLifecycleSubStateMoving, + "upgrading": ListDeploymentsLifecycleSubStateUpgrading, + "restoring": ListDeploymentsLifecycleSubStateRestoring, + "backup_in_progress": ListDeploymentsLifecycleSubStateBackupInProgress, + "rollback_in_progress": ListDeploymentsLifecycleSubStateRollbackInProgress, } // GetListDeploymentsLifecycleSubStateEnumValues Enumerates the set of values for ListDeploymentsLifecycleSubStateEnum @@ -350,6 +357,7 @@ func GetListDeploymentsLifecycleSubStateEnumStringValues() []string { "UPGRADING", "RESTORING", "BACKUP_IN_PROGRESS", + "ROLLBACK_IN_PROGRESS", } } diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/maintenance_action_type.go b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/maintenance_action_type.go new file mode 100644 index 00000000000..285877b5f47 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/maintenance_action_type.go @@ -0,0 +1,52 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// GoldenGate API +// +// Use the Oracle Cloud Infrastructure GoldenGate APIs to perform data replication operations. +// + +package goldengate + +import ( + "strings" +) + +// MaintenanceActionTypeEnum Enum with underlying type: string +type MaintenanceActionTypeEnum string + +// Set of constants representing the allowable values for MaintenanceActionTypeEnum +const ( + MaintenanceActionTypeUpgrade MaintenanceActionTypeEnum = "UPGRADE" +) + +var mappingMaintenanceActionTypeEnum = map[string]MaintenanceActionTypeEnum{ + "UPGRADE": MaintenanceActionTypeUpgrade, +} + +var mappingMaintenanceActionTypeEnumLowerCase = map[string]MaintenanceActionTypeEnum{ + "upgrade": MaintenanceActionTypeUpgrade, +} + +// GetMaintenanceActionTypeEnumValues Enumerates the set of values for MaintenanceActionTypeEnum +func GetMaintenanceActionTypeEnumValues() []MaintenanceActionTypeEnum { + values := make([]MaintenanceActionTypeEnum, 0) + for _, v := range mappingMaintenanceActionTypeEnum { + values = append(values, v) + } + return values +} + +// GetMaintenanceActionTypeEnumStringValues Enumerates the set of values in String for MaintenanceActionTypeEnum +func GetMaintenanceActionTypeEnumStringValues() []string { + return []string{ + "UPGRADE", + } +} + +// GetMappingMaintenanceActionTypeEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingMaintenanceActionTypeEnum(val string) (MaintenanceActionTypeEnum, bool) { + enum, ok := mappingMaintenanceActionTypeEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/maintenance_window.go b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/maintenance_window.go new file mode 100644 index 00000000000..7ab7c7028ca --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/maintenance_window.go @@ -0,0 +1,45 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// GoldenGate API +// +// Use the Oracle Cloud Infrastructure GoldenGate APIs to perform data replication operations. +// + +package goldengate + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MaintenanceWindow Defines the maintenance window, when automatic actions can be performed. +type MaintenanceWindow struct { + + // Days of the week. + Day DayEnum `mandatory:"true" json:"day"` + + // Start hour for maintenance period. Hour is in UTC. + StartHour *int `mandatory:"true" json:"startHour"` +} + +func (m MaintenanceWindow) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MaintenanceWindow) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingDayEnum(string(m.Day)); !ok && m.Day != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Day: %s. Supported values are: %s.", m.Day, strings.Join(GetDayEnumStringValues(), ","))) + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/operation_type.go b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/operation_type.go index 51732cdabb8..52c3fd52aba 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/operation_type.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/operation_type.go @@ -42,7 +42,9 @@ const ( OperationTypeGoldengateDeploymentDiagnosticCollect OperationTypeEnum = "GOLDENGATE_DEPLOYMENT_DIAGNOSTIC_COLLECT" OperationTypeGoldengateDeploymentWalletExport OperationTypeEnum = "GOLDENGATE_DEPLOYMENT_WALLET_EXPORT" OperationTypeGoldengateDeploymentWalletImport OperationTypeEnum = "GOLDENGATE_DEPLOYMENT_WALLET_IMPORT" - OperationTypeGoldengateDeploymentPatch OperationTypeEnum = "GOLDENGATE_DEPLOYMENT_PATCH" + OperationTypeGoldengateDeploymentUpgradeUpgrade OperationTypeEnum = "GOLDENGATE_DEPLOYMENT_UPGRADE_UPGRADE" + OperationTypeGoldengateDeploymentUpgradeRollback OperationTypeEnum = "GOLDENGATE_DEPLOYMENT_UPGRADE_ROLLBACK" + OperationTypeGoldengateDeploymentUpgradeSnooze OperationTypeEnum = "GOLDENGATE_DEPLOYMENT_UPGRADE_SNOOZE" ) var mappingOperationTypeEnum = map[string]OperationTypeEnum{ @@ -70,7 +72,9 @@ var mappingOperationTypeEnum = map[string]OperationTypeEnum{ "GOLDENGATE_DEPLOYMENT_DIAGNOSTIC_COLLECT": OperationTypeGoldengateDeploymentDiagnosticCollect, "GOLDENGATE_DEPLOYMENT_WALLET_EXPORT": OperationTypeGoldengateDeploymentWalletExport, "GOLDENGATE_DEPLOYMENT_WALLET_IMPORT": OperationTypeGoldengateDeploymentWalletImport, - "GOLDENGATE_DEPLOYMENT_PATCH": OperationTypeGoldengateDeploymentPatch, + "GOLDENGATE_DEPLOYMENT_UPGRADE_UPGRADE": OperationTypeGoldengateDeploymentUpgradeUpgrade, + "GOLDENGATE_DEPLOYMENT_UPGRADE_ROLLBACK": OperationTypeGoldengateDeploymentUpgradeRollback, + "GOLDENGATE_DEPLOYMENT_UPGRADE_SNOOZE": OperationTypeGoldengateDeploymentUpgradeSnooze, } var mappingOperationTypeEnumLowerCase = map[string]OperationTypeEnum{ @@ -98,7 +102,9 @@ var mappingOperationTypeEnumLowerCase = map[string]OperationTypeEnum{ "goldengate_deployment_diagnostic_collect": OperationTypeGoldengateDeploymentDiagnosticCollect, "goldengate_deployment_wallet_export": OperationTypeGoldengateDeploymentWalletExport, "goldengate_deployment_wallet_import": OperationTypeGoldengateDeploymentWalletImport, - "goldengate_deployment_patch": OperationTypeGoldengateDeploymentPatch, + "goldengate_deployment_upgrade_upgrade": OperationTypeGoldengateDeploymentUpgradeUpgrade, + "goldengate_deployment_upgrade_rollback": OperationTypeGoldengateDeploymentUpgradeRollback, + "goldengate_deployment_upgrade_snooze": OperationTypeGoldengateDeploymentUpgradeSnooze, } // GetOperationTypeEnumValues Enumerates the set of values for OperationTypeEnum @@ -137,7 +143,9 @@ func GetOperationTypeEnumStringValues() []string { "GOLDENGATE_DEPLOYMENT_DIAGNOSTIC_COLLECT", "GOLDENGATE_DEPLOYMENT_WALLET_EXPORT", "GOLDENGATE_DEPLOYMENT_WALLET_IMPORT", - "GOLDENGATE_DEPLOYMENT_PATCH", + "GOLDENGATE_DEPLOYMENT_UPGRADE_UPGRADE", + "GOLDENGATE_DEPLOYMENT_UPGRADE_ROLLBACK", + "GOLDENGATE_DEPLOYMENT_UPGRADE_SNOOZE", } } diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/release_type.go b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/release_type.go new file mode 100644 index 00000000000..39b9e7223c7 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/release_type.go @@ -0,0 +1,60 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// GoldenGate API +// +// Use the Oracle Cloud Infrastructure GoldenGate APIs to perform data replication operations. +// + +package goldengate + +import ( + "strings" +) + +// ReleaseTypeEnum Enum with underlying type: string +type ReleaseTypeEnum string + +// Set of constants representing the allowable values for ReleaseTypeEnum +const ( + ReleaseTypeMajor ReleaseTypeEnum = "MAJOR" + ReleaseTypeBundle ReleaseTypeEnum = "BUNDLE" + ReleaseTypeMinor ReleaseTypeEnum = "MINOR" +) + +var mappingReleaseTypeEnum = map[string]ReleaseTypeEnum{ + "MAJOR": ReleaseTypeMajor, + "BUNDLE": ReleaseTypeBundle, + "MINOR": ReleaseTypeMinor, +} + +var mappingReleaseTypeEnumLowerCase = map[string]ReleaseTypeEnum{ + "major": ReleaseTypeMajor, + "bundle": ReleaseTypeBundle, + "minor": ReleaseTypeMinor, +} + +// GetReleaseTypeEnumValues Enumerates the set of values for ReleaseTypeEnum +func GetReleaseTypeEnumValues() []ReleaseTypeEnum { + values := make([]ReleaseTypeEnum, 0) + for _, v := range mappingReleaseTypeEnum { + values = append(values, v) + } + return values +} + +// GetReleaseTypeEnumStringValues Enumerates the set of values in String for ReleaseTypeEnum +func GetReleaseTypeEnumStringValues() []string { + return []string{ + "MAJOR", + "BUNDLE", + "MINOR", + } +} + +// GetMappingReleaseTypeEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingReleaseTypeEnum(val string) (ReleaseTypeEnum, bool) { + enum, ok := mappingReleaseTypeEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/rollback_deployment_upgrade_details.go b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/rollback_deployment_upgrade_details.go new file mode 100644 index 00000000000..3c7042451fb --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/rollback_deployment_upgrade_details.go @@ -0,0 +1,76 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// GoldenGate API +// +// Use the Oracle Cloud Infrastructure GoldenGate APIs to perform data replication operations. +// + +package goldengate + +import ( + "encoding/json" + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// RollbackDeploymentUpgradeDetails The information about the rollback of an upgrade. +type RollbackDeploymentUpgradeDetails interface { +} + +type rollbackdeploymentupgradedetails struct { + JsonData []byte + Type string `json:"type"` +} + +// UnmarshalJSON unmarshals json +func (m *rollbackdeploymentupgradedetails) UnmarshalJSON(data []byte) error { + m.JsonData = data + type Unmarshalerrollbackdeploymentupgradedetails rollbackdeploymentupgradedetails + s := struct { + Model Unmarshalerrollbackdeploymentupgradedetails + }{} + err := json.Unmarshal(data, &s.Model) + if err != nil { + return err + } + m.Type = s.Model.Type + + return err +} + +// UnmarshalPolymorphicJSON unmarshals polymorphic json +func (m *rollbackdeploymentupgradedetails) UnmarshalPolymorphicJSON(data []byte) (interface{}, error) { + + if data == nil || string(data) == "null" { + return nil, nil + } + + var err error + switch m.Type { + case "DEFAULT": + mm := DefaultRollbackDeploymentUpgradeDetails{} + err = json.Unmarshal(data, &mm) + return mm, err + default: + return *m, nil + } +} + +func (m rollbackdeploymentupgradedetails) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m rollbackdeploymentupgradedetails) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/rollback_deployment_upgrade_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/rollback_deployment_upgrade_request_response.go new file mode 100644 index 00000000000..8f1c320605f --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/rollback_deployment_upgrade_request_response.go @@ -0,0 +1,107 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package goldengate + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// RollbackDeploymentUpgradeRequest wrapper for the RollbackDeploymentUpgrade operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/goldengate/RollbackDeploymentUpgrade.go.html to see an example of how to use RollbackDeploymentUpgradeRequest. +type RollbackDeploymentUpgradeRequest struct { + + // A unique Deployment Upgrade identifier. + DeploymentUpgradeId *string `mandatory:"true" contributesTo:"path" name:"deploymentUpgradeId"` + + // A placeholder for any additional metadata to describe the deployment rollback. + RollbackDeploymentUpgradeDetails `contributesTo:"body"` + + // For optimistic concurrency control. In the PUT or DELETE call for a resource, set the + // `if-match` parameter to the value of the etag from a previous GET or POST response for that + // resource. The resource is updated or deleted only if the etag you provide matches the + // resource's current etag value. + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // The client request ID for tracing. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // A token that uniquely identifies a request so it can be retried, in case of a timeout or + // server error, without risk of executing that same action again. Retry tokens expire after 24 + // hours, but can be invalidated before then due to conflicting operations. For example, if a + // resource has been deleted and purged from the system, then a retry of the original creation + // request is rejected. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request RollbackDeploymentUpgradeRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request RollbackDeploymentUpgradeRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request RollbackDeploymentUpgradeRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request RollbackDeploymentUpgradeRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request RollbackDeploymentUpgradeRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// RollbackDeploymentUpgradeResponse wrapper for the RollbackDeploymentUpgrade operation +type RollbackDeploymentUpgradeResponse struct { + + // The underlying http response + RawResponse *http.Response + + // A unique Oracle-assigned identifier for an asynchronous request. You can use this to query + // status of the asynchronous operation. + OpcWorkRequestId *string `presentIn:"header" name:"opc-work-request-id"` + + // A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a + // particular request, please include the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response RollbackDeploymentUpgradeResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response RollbackDeploymentUpgradeResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/rollback_deployment_upgrade_type.go b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/rollback_deployment_upgrade_type.go new file mode 100644 index 00000000000..726c53b0add --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/rollback_deployment_upgrade_type.go @@ -0,0 +1,52 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// GoldenGate API +// +// Use the Oracle Cloud Infrastructure GoldenGate APIs to perform data replication operations. +// + +package goldengate + +import ( + "strings" +) + +// RollbackDeploymentUpgradeTypeEnum Enum with underlying type: string +type RollbackDeploymentUpgradeTypeEnum string + +// Set of constants representing the allowable values for RollbackDeploymentUpgradeTypeEnum +const ( + RollbackDeploymentUpgradeTypeDefault RollbackDeploymentUpgradeTypeEnum = "DEFAULT" +) + +var mappingRollbackDeploymentUpgradeTypeEnum = map[string]RollbackDeploymentUpgradeTypeEnum{ + "DEFAULT": RollbackDeploymentUpgradeTypeDefault, +} + +var mappingRollbackDeploymentUpgradeTypeEnumLowerCase = map[string]RollbackDeploymentUpgradeTypeEnum{ + "default": RollbackDeploymentUpgradeTypeDefault, +} + +// GetRollbackDeploymentUpgradeTypeEnumValues Enumerates the set of values for RollbackDeploymentUpgradeTypeEnum +func GetRollbackDeploymentUpgradeTypeEnumValues() []RollbackDeploymentUpgradeTypeEnum { + values := make([]RollbackDeploymentUpgradeTypeEnum, 0) + for _, v := range mappingRollbackDeploymentUpgradeTypeEnum { + values = append(values, v) + } + return values +} + +// GetRollbackDeploymentUpgradeTypeEnumStringValues Enumerates the set of values in String for RollbackDeploymentUpgradeTypeEnum +func GetRollbackDeploymentUpgradeTypeEnumStringValues() []string { + return []string{ + "DEFAULT", + } +} + +// GetMappingRollbackDeploymentUpgradeTypeEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingRollbackDeploymentUpgradeTypeEnum(val string) (RollbackDeploymentUpgradeTypeEnum, bool) { + enum, ok := mappingRollbackDeploymentUpgradeTypeEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/snooze_deployment_upgrade_details.go b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/snooze_deployment_upgrade_details.go new file mode 100644 index 00000000000..1781e320763 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/snooze_deployment_upgrade_details.go @@ -0,0 +1,76 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// GoldenGate API +// +// Use the Oracle Cloud Infrastructure GoldenGate APIs to perform data replication operations. +// + +package goldengate + +import ( + "encoding/json" + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// SnoozeDeploymentUpgradeDetails The information about the snooze for a deployment. +type SnoozeDeploymentUpgradeDetails interface { +} + +type snoozedeploymentupgradedetails struct { + JsonData []byte + Type string `json:"type"` +} + +// UnmarshalJSON unmarshals json +func (m *snoozedeploymentupgradedetails) UnmarshalJSON(data []byte) error { + m.JsonData = data + type Unmarshalersnoozedeploymentupgradedetails snoozedeploymentupgradedetails + s := struct { + Model Unmarshalersnoozedeploymentupgradedetails + }{} + err := json.Unmarshal(data, &s.Model) + if err != nil { + return err + } + m.Type = s.Model.Type + + return err +} + +// UnmarshalPolymorphicJSON unmarshals polymorphic json +func (m *snoozedeploymentupgradedetails) UnmarshalPolymorphicJSON(data []byte) (interface{}, error) { + + if data == nil || string(data) == "null" { + return nil, nil + } + + var err error + switch m.Type { + case "DEFAULT": + mm := DefaultSnoozeDeploymentUpgradeDetails{} + err = json.Unmarshal(data, &mm) + return mm, err + default: + return *m, nil + } +} + +func (m snoozedeploymentupgradedetails) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m snoozedeploymentupgradedetails) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/snooze_deployment_upgrade_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/snooze_deployment_upgrade_request_response.go new file mode 100644 index 00000000000..f07f4e8ac83 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/snooze_deployment_upgrade_request_response.go @@ -0,0 +1,103 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package goldengate + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// SnoozeDeploymentUpgradeRequest wrapper for the SnoozeDeploymentUpgrade operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/goldengate/SnoozeDeploymentUpgrade.go.html to see an example of how to use SnoozeDeploymentUpgradeRequest. +type SnoozeDeploymentUpgradeRequest struct { + + // A unique Deployment Upgrade identifier. + DeploymentUpgradeId *string `mandatory:"true" contributesTo:"path" name:"deploymentUpgradeId"` + + // A placeholder for any additional metadata to describe the snooze of deployment upgrade. + SnoozeDeploymentUpgradeDetails `contributesTo:"body"` + + // For optimistic concurrency control. In the PUT or DELETE call for a resource, set the + // `if-match` parameter to the value of the etag from a previous GET or POST response for that + // resource. The resource is updated or deleted only if the etag you provide matches the + // resource's current etag value. + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // The client request ID for tracing. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // A token that uniquely identifies a request so it can be retried, in case of a timeout or + // server error, without risk of executing that same action again. Retry tokens expire after 24 + // hours, but can be invalidated before then due to conflicting operations. For example, if a + // resource has been deleted and purged from the system, then a retry of the original creation + // request is rejected. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request SnoozeDeploymentUpgradeRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request SnoozeDeploymentUpgradeRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request SnoozeDeploymentUpgradeRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request SnoozeDeploymentUpgradeRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request SnoozeDeploymentUpgradeRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// SnoozeDeploymentUpgradeResponse wrapper for the SnoozeDeploymentUpgrade operation +type SnoozeDeploymentUpgradeResponse struct { + + // The underlying http response + RawResponse *http.Response + + // A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a + // particular request, please include the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response SnoozeDeploymentUpgradeResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response SnoozeDeploymentUpgradeResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/snooze_deployment_upgrade_type.go b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/snooze_deployment_upgrade_type.go new file mode 100644 index 00000000000..b8c03ededfd --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/snooze_deployment_upgrade_type.go @@ -0,0 +1,52 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// GoldenGate API +// +// Use the Oracle Cloud Infrastructure GoldenGate APIs to perform data replication operations. +// + +package goldengate + +import ( + "strings" +) + +// SnoozeDeploymentUpgradeTypeEnum Enum with underlying type: string +type SnoozeDeploymentUpgradeTypeEnum string + +// Set of constants representing the allowable values for SnoozeDeploymentUpgradeTypeEnum +const ( + SnoozeDeploymentUpgradeTypeDefault SnoozeDeploymentUpgradeTypeEnum = "DEFAULT" +) + +var mappingSnoozeDeploymentUpgradeTypeEnum = map[string]SnoozeDeploymentUpgradeTypeEnum{ + "DEFAULT": SnoozeDeploymentUpgradeTypeDefault, +} + +var mappingSnoozeDeploymentUpgradeTypeEnumLowerCase = map[string]SnoozeDeploymentUpgradeTypeEnum{ + "default": SnoozeDeploymentUpgradeTypeDefault, +} + +// GetSnoozeDeploymentUpgradeTypeEnumValues Enumerates the set of values for SnoozeDeploymentUpgradeTypeEnum +func GetSnoozeDeploymentUpgradeTypeEnumValues() []SnoozeDeploymentUpgradeTypeEnum { + values := make([]SnoozeDeploymentUpgradeTypeEnum, 0) + for _, v := range mappingSnoozeDeploymentUpgradeTypeEnum { + values = append(values, v) + } + return values +} + +// GetSnoozeDeploymentUpgradeTypeEnumStringValues Enumerates the set of values in String for SnoozeDeploymentUpgradeTypeEnum +func GetSnoozeDeploymentUpgradeTypeEnumStringValues() []string { + return []string{ + "DEFAULT", + } +} + +// GetMappingSnoozeDeploymentUpgradeTypeEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingSnoozeDeploymentUpgradeTypeEnum(val string) (SnoozeDeploymentUpgradeTypeEnum, bool) { + enum, ok := mappingSnoozeDeploymentUpgradeTypeEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/update_deployment_details.go b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/update_deployment_details.go index 01833d52d89..42acc72875c 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/update_deployment_details.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/update_deployment_details.go @@ -55,6 +55,8 @@ type UpdateDeploymentDetails struct { IsAutoScalingEnabled *bool `mandatory:"false" json:"isAutoScalingEnabled"` OggData *UpdateOggDeploymentDetails `mandatory:"false" json:"oggData"` + + MaintenanceWindow *UpdateMaintenanceWindowDetails `mandatory:"false" json:"maintenanceWindow"` } func (m UpdateDeploymentDetails) String() string { diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/update_maintenance_window_details.go b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/update_maintenance_window_details.go new file mode 100644 index 00000000000..1d62f91e2d8 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/update_maintenance_window_details.go @@ -0,0 +1,45 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// GoldenGate API +// +// Use the Oracle Cloud Infrastructure GoldenGate APIs to perform data replication operations. +// + +package goldengate + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UpdateMaintenanceWindowDetails Defines the maintenance window for update operation, when automatic actions can be performed. +type UpdateMaintenanceWindowDetails struct { + + // Days of the week. + Day DayEnum `mandatory:"true" json:"day"` + + // Start hour for maintenance period. Hour is in UTC. + StartHour *int `mandatory:"true" json:"startHour"` +} + +func (m UpdateMaintenanceWindowDetails) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UpdateMaintenanceWindowDetails) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingDayEnum(string(m.Day)); !ok && m.Day != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Day: %s. Supported values are: %s.", m.Day, strings.Join(GetDayEnumStringValues(), ","))) + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/upgrade_deployment_details.go b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/upgrade_deployment_details.go index 62ce01b9f44..c269ed915a3 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/upgrade_deployment_details.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/upgrade_deployment_details.go @@ -50,6 +50,10 @@ func (m *upgradedeploymentdetails) UnmarshalPolymorphicJSON(data []byte) (interf var err error switch m.Type { + case "SPECIFIC_RELEASE": + mm := UpgradeDeploymentSpecificReleaseDetails{} + err = json.Unmarshal(data, &mm) + return mm, err case "CURRENT_RELEASE": mm := UpgradeDeploymentCurrentReleaseDetails{} err = json.Unmarshal(data, &mm) diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/upgrade_deployment_specific_release_details.go b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/upgrade_deployment_specific_release_details.go new file mode 100644 index 00000000000..0fca5c825f9 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/upgrade_deployment_specific_release_details.go @@ -0,0 +1,54 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// GoldenGate API +// +// Use the Oracle Cloud Infrastructure GoldenGate APIs to perform data replication operations. +// + +package goldengate + +import ( + "encoding/json" + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UpgradeDeploymentSpecificReleaseDetails Definition of the additional attributes for a Specific Release upgrade. +type UpgradeDeploymentSpecificReleaseDetails struct { + + // Version of OGG + OggVersion *string `mandatory:"true" json:"oggVersion"` +} + +func (m UpgradeDeploymentSpecificReleaseDetails) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UpgradeDeploymentSpecificReleaseDetails) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// MarshalJSON marshals to json representation +func (m UpgradeDeploymentSpecificReleaseDetails) MarshalJSON() (buff []byte, e error) { + type MarshalTypeUpgradeDeploymentSpecificReleaseDetails UpgradeDeploymentSpecificReleaseDetails + s := struct { + DiscriminatorParam string `json:"type"` + MarshalTypeUpgradeDeploymentSpecificReleaseDetails + }{ + "SPECIFIC_RELEASE", + (MarshalTypeUpgradeDeploymentSpecificReleaseDetails)(m), + } + + return json.Marshal(&s) +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/upgrade_deployment_type.go b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/upgrade_deployment_type.go index fa48f25012e..7a7d187e562 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/upgrade_deployment_type.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/upgrade_deployment_type.go @@ -18,15 +18,18 @@ type UpgradeDeploymentTypeEnum string // Set of constants representing the allowable values for UpgradeDeploymentTypeEnum const ( - UpgradeDeploymentTypeCurrentRelease UpgradeDeploymentTypeEnum = "CURRENT_RELEASE" + UpgradeDeploymentTypeCurrentRelease UpgradeDeploymentTypeEnum = "CURRENT_RELEASE" + UpgradeDeploymentTypeSpecificRelease UpgradeDeploymentTypeEnum = "SPECIFIC_RELEASE" ) var mappingUpgradeDeploymentTypeEnum = map[string]UpgradeDeploymentTypeEnum{ - "CURRENT_RELEASE": UpgradeDeploymentTypeCurrentRelease, + "CURRENT_RELEASE": UpgradeDeploymentTypeCurrentRelease, + "SPECIFIC_RELEASE": UpgradeDeploymentTypeSpecificRelease, } var mappingUpgradeDeploymentTypeEnumLowerCase = map[string]UpgradeDeploymentTypeEnum{ - "current_release": UpgradeDeploymentTypeCurrentRelease, + "current_release": UpgradeDeploymentTypeCurrentRelease, + "specific_release": UpgradeDeploymentTypeSpecificRelease, } // GetUpgradeDeploymentTypeEnumValues Enumerates the set of values for UpgradeDeploymentTypeEnum @@ -42,6 +45,7 @@ func GetUpgradeDeploymentTypeEnumValues() []UpgradeDeploymentTypeEnum { func GetUpgradeDeploymentTypeEnumStringValues() []string { return []string{ "CURRENT_RELEASE", + "SPECIFIC_RELEASE", } } diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/upgrade_deployment_upgrade_details.go b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/upgrade_deployment_upgrade_details.go new file mode 100644 index 00000000000..a53153429c5 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/upgrade_deployment_upgrade_details.go @@ -0,0 +1,76 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// GoldenGate API +// +// Use the Oracle Cloud Infrastructure GoldenGate APIs to perform data replication operations. +// + +package goldengate + +import ( + "encoding/json" + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UpgradeDeploymentUpgradeDetails The information about the upgrade for a deployment. +type UpgradeDeploymentUpgradeDetails interface { +} + +type upgradedeploymentupgradedetails struct { + JsonData []byte + Type string `json:"type"` +} + +// UnmarshalJSON unmarshals json +func (m *upgradedeploymentupgradedetails) UnmarshalJSON(data []byte) error { + m.JsonData = data + type Unmarshalerupgradedeploymentupgradedetails upgradedeploymentupgradedetails + s := struct { + Model Unmarshalerupgradedeploymentupgradedetails + }{} + err := json.Unmarshal(data, &s.Model) + if err != nil { + return err + } + m.Type = s.Model.Type + + return err +} + +// UnmarshalPolymorphicJSON unmarshals polymorphic json +func (m *upgradedeploymentupgradedetails) UnmarshalPolymorphicJSON(data []byte) (interface{}, error) { + + if data == nil || string(data) == "null" { + return nil, nil + } + + var err error + switch m.Type { + case "DEFAULT": + mm := DefaultUpgradeDeploymentUpgradeDetails{} + err = json.Unmarshal(data, &mm) + return mm, err + default: + return *m, nil + } +} + +func (m upgradedeploymentupgradedetails) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m upgradedeploymentupgradedetails) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/upgrade_deployment_upgrade_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/upgrade_deployment_upgrade_request_response.go new file mode 100644 index 00000000000..3d515cea192 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/upgrade_deployment_upgrade_request_response.go @@ -0,0 +1,107 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package goldengate + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// UpgradeDeploymentUpgradeRequest wrapper for the UpgradeDeploymentUpgrade operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/goldengate/UpgradeDeploymentUpgrade.go.html to see an example of how to use UpgradeDeploymentUpgradeRequest. +type UpgradeDeploymentUpgradeRequest struct { + + // A unique Deployment Upgrade identifier. + DeploymentUpgradeId *string `mandatory:"true" contributesTo:"path" name:"deploymentUpgradeId"` + + // A placeholder for any additional metadata to describe the deployment upgrade. + UpgradeDeploymentUpgradeDetails `contributesTo:"body"` + + // For optimistic concurrency control. In the PUT or DELETE call for a resource, set the + // `if-match` parameter to the value of the etag from a previous GET or POST response for that + // resource. The resource is updated or deleted only if the etag you provide matches the + // resource's current etag value. + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // The client request ID for tracing. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // A token that uniquely identifies a request so it can be retried, in case of a timeout or + // server error, without risk of executing that same action again. Retry tokens expire after 24 + // hours, but can be invalidated before then due to conflicting operations. For example, if a + // resource has been deleted and purged from the system, then a retry of the original creation + // request is rejected. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request UpgradeDeploymentUpgradeRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request UpgradeDeploymentUpgradeRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request UpgradeDeploymentUpgradeRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request UpgradeDeploymentUpgradeRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request UpgradeDeploymentUpgradeRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// UpgradeDeploymentUpgradeResponse wrapper for the UpgradeDeploymentUpgrade operation +type UpgradeDeploymentUpgradeResponse struct { + + // The underlying http response + RawResponse *http.Response + + // A unique Oracle-assigned identifier for an asynchronous request. You can use this to query + // status of the asynchronous operation. + OpcWorkRequestId *string `presentIn:"header" name:"opc-work-request-id"` + + // A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a + // particular request, please include the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response UpgradeDeploymentUpgradeResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response UpgradeDeploymentUpgradeResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/upgrade_deployment_upgrade_type.go b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/upgrade_deployment_upgrade_type.go new file mode 100644 index 00000000000..4b6839e600b --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/goldengate/upgrade_deployment_upgrade_type.go @@ -0,0 +1,52 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// GoldenGate API +// +// Use the Oracle Cloud Infrastructure GoldenGate APIs to perform data replication operations. +// + +package goldengate + +import ( + "strings" +) + +// UpgradeDeploymentUpgradeTypeEnum Enum with underlying type: string +type UpgradeDeploymentUpgradeTypeEnum string + +// Set of constants representing the allowable values for UpgradeDeploymentUpgradeTypeEnum +const ( + UpgradeDeploymentUpgradeTypeDefault UpgradeDeploymentUpgradeTypeEnum = "DEFAULT" +) + +var mappingUpgradeDeploymentUpgradeTypeEnum = map[string]UpgradeDeploymentUpgradeTypeEnum{ + "DEFAULT": UpgradeDeploymentUpgradeTypeDefault, +} + +var mappingUpgradeDeploymentUpgradeTypeEnumLowerCase = map[string]UpgradeDeploymentUpgradeTypeEnum{ + "default": UpgradeDeploymentUpgradeTypeDefault, +} + +// GetUpgradeDeploymentUpgradeTypeEnumValues Enumerates the set of values for UpgradeDeploymentUpgradeTypeEnum +func GetUpgradeDeploymentUpgradeTypeEnumValues() []UpgradeDeploymentUpgradeTypeEnum { + values := make([]UpgradeDeploymentUpgradeTypeEnum, 0) + for _, v := range mappingUpgradeDeploymentUpgradeTypeEnum { + values = append(values, v) + } + return values +} + +// GetUpgradeDeploymentUpgradeTypeEnumStringValues Enumerates the set of values in String for UpgradeDeploymentUpgradeTypeEnum +func GetUpgradeDeploymentUpgradeTypeEnumStringValues() []string { + return []string{ + "DEFAULT", + } +} + +// GetMappingUpgradeDeploymentUpgradeTypeEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingUpgradeDeploymentUpgradeTypeEnum(val string) (UpgradeDeploymentUpgradeTypeEnum, bool) { + enum, ok := mappingUpgradeDeploymentUpgradeTypeEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/addresses.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/addresses.go new file mode 100644 index 00000000000..0e8ad8178c6 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/addresses.go @@ -0,0 +1,184 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// Addresses A physical mailing address for this User, as described in (address Element). Canonical Type Values of work, home, and other. The value attribute is a complex type with the following sub-attributes. +type Addresses struct { + + // A label indicating the attribute's function; e.g., 'work' or 'home'. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Type AddressesTypeEnum `mandatory:"true" json:"type"` + + // The full mailing address, formatted for display or use with a mailing label. This attribute MAY contain newlines. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Formatted *string `mandatory:"false" json:"formatted"` + + // The full street address component, which may include house number, street name, PO BOX, and multi-line extended street address information. This attribute MAY contain newlines. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + StreetAddress *string `mandatory:"false" json:"streetAddress"` + + // The city or locality component. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Locality *string `mandatory:"false" json:"locality"` + + // The state or region component. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Region *string `mandatory:"false" json:"region"` + + // The zipcode or postal code component. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + PostalCode *string `mandatory:"false" json:"postalCode"` + + // The country name component. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsCanonicalValueSourceFilter: attrName eq "countries" and attrValues.value eq "upper($(country))" + // - idcsCanonicalValueSourceResourceType: AllowedValue + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Country *string `mandatory:"false" json:"country"` + + // A Boolean value indicating the 'primary' or preferred attribute value for this attribute. The primary attribute value 'true' MUST appear no more than once. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + Primary *bool `mandatory:"false" json:"primary"` +} + +func (m Addresses) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m Addresses) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingAddressesTypeEnum(string(m.Type)); !ok && m.Type != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Type: %s. Supported values are: %s.", m.Type, strings.Join(GetAddressesTypeEnumStringValues(), ","))) + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// AddressesTypeEnum Enum with underlying type: string +type AddressesTypeEnum string + +// Set of constants representing the allowable values for AddressesTypeEnum +const ( + AddressesTypeWork AddressesTypeEnum = "work" + AddressesTypeHome AddressesTypeEnum = "home" + AddressesTypeOther AddressesTypeEnum = "other" +) + +var mappingAddressesTypeEnum = map[string]AddressesTypeEnum{ + "work": AddressesTypeWork, + "home": AddressesTypeHome, + "other": AddressesTypeOther, +} + +var mappingAddressesTypeEnumLowerCase = map[string]AddressesTypeEnum{ + "work": AddressesTypeWork, + "home": AddressesTypeHome, + "other": AddressesTypeOther, +} + +// GetAddressesTypeEnumValues Enumerates the set of values for AddressesTypeEnum +func GetAddressesTypeEnumValues() []AddressesTypeEnum { + values := make([]AddressesTypeEnum, 0) + for _, v := range mappingAddressesTypeEnum { + values = append(values, v) + } + return values +} + +// GetAddressesTypeEnumStringValues Enumerates the set of values in String for AddressesTypeEnum +func GetAddressesTypeEnumStringValues() []string { + return []string{ + "work", + "home", + "other", + } +} + +// GetMappingAddressesTypeEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingAddressesTypeEnum(val string) (AddressesTypeEnum, bool) { + enum, ok := mappingAddressesTypeEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/api_key.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/api_key.go new file mode 100644 index 00000000000..a69643d1aff --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/api_key.go @@ -0,0 +1,204 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// ApiKey User's api key +type ApiKey struct { + + // REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: true + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Schemas []string `mandatory:"true" json:"schemas"` + + // Fingerprint + // **Added In:** 2010242156 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - type: string + // - mutability: readOnly + // - required: true + // - returned: default + Fingerprint *string `mandatory:"true" json:"fingerprint"` + + // Key + // **Added In:** 2010242156 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsPii: true + // - type: string + // - mutability: immutable + // - required: true + // - returned: default + Key *string `mandatory:"true" json:"key"` + + // Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: always + // - type: string + // - uniqueness: global + Id *string `mandatory:"false" json:"id"` + + // Unique OCI identifier for the SCIM Resource. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: default + // - type: string + // - uniqueness: global + Ocid *string `mandatory:"false" json:"ocid"` + + Meta *Meta `mandatory:"false" json:"meta"` + + IdcsCreatedBy *IdcsCreatedBy `mandatory:"false" json:"idcsCreatedBy"` + + IdcsLastModifiedBy *IdcsLastModifiedBy `mandatory:"false" json:"idcsLastModifiedBy"` + + // Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsPreventedOperations []IdcsPreventedOperationsEnum `mandatory:"false" json:"idcsPreventedOperations,omitempty"` + + // A list of tags on this resource. + // **SCIM++ Properties:** + // - idcsCompositeKey: [key, value] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + Tags []Tags `mandatory:"false" json:"tags"` + + // A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + DeleteInProgress *bool `mandatory:"false" json:"deleteInProgress"` + + // The release number when the resource was upgraded. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsLastUpgradedInRelease *string `mandatory:"false" json:"idcsLastUpgradedInRelease"` + + // OCI Domain Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + DomainOcid *string `mandatory:"false" json:"domainOcid"` + + // OCI Compartment Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + CompartmentOcid *string `mandatory:"false" json:"compartmentOcid"` + + // OCI Tenant Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + TenancyOcid *string `mandatory:"false" json:"tenancyOcid"` + + // Description + // **Added In:** 2101262133 + // **SCIM++ Properties:** + // - caseExact: false + // - type: string + // - mutability: readWrite + // - required: false + // - returned: default + Description *string `mandatory:"false" json:"description"` + + User *ApiKeyUser `mandatory:"false" json:"user"` + + UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser *ExtensionSelfChangeUser `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:selfChange:User"` +} + +func (m ApiKey) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m ApiKey) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + for _, val := range m.IdcsPreventedOperations { + if _, ok := GetMappingIdcsPreventedOperationsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for IdcsPreventedOperations: %s. Supported values are: %s.", val, strings.Join(GetIdcsPreventedOperationsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/api_key_search_request.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/api_key_search_request.go new file mode 100644 index 00000000000..1c248760c16 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/api_key_search_request.go @@ -0,0 +1,70 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// ApiKeySearchRequest Clients MAY execute queries without passing parameters on the URL by using the HTTP POST verb combined with the **.search** path extension. The inclusion of **.search** on the end of a valid SCIM endpoint SHALL be used to indicate the HTTP POST verb is intended to be a query operation. To create a new query result set, a SCIM client sends an HTTP POST request to the desired SCIM resource endpoint (ending in **.search**). The body of the POST request MAY include any of the parameters. +type ApiKeySearchRequest struct { + + // The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. Query requests MUST be identified using the following URI: "urn:ietf:params:scim:api:messages:2.0:SearchRequest" REQUIRED. + Schemas []string `mandatory:"true" json:"schemas"` + + // A multi-valued list of strings indicating the names of resource attributes to return in the response overriding the set of attributes that would be returned by default. Attribute names MUST be in standard attribute notation (Section 3.10 (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.10)) form. See (additional retrieval query parameters (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.9)). OPTIONAL. + Attributes []string `mandatory:"false" json:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If "attributes" query parameter is also available, union of the two is fetched. Valid values : all, always, never, request, default. Values are case-insensitive. OPTIONAL. + AttributeSets []AttributeSetsEnum `mandatory:"false" json:"attributeSets,omitempty"` + + // The filter string that is used to request a subset of resources. The filter string MUST be a valid filter expression. See Section 3.4.2.2 (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.2). OPTIONAL. + Filter *string `mandatory:"false" json:"filter"` + + // A string that indicates the attribute whose value SHALL be used to order the returned responses. The sortBy attribute MUST be in standard attribute notation (Section 3.10 (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.10)) form. See Sorting section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.3). OPTIONAL. + SortBy *string `mandatory:"false" json:"sortBy"` + + // A string that indicates the order in which the sortBy parameter is applied. Allowed values are "ascending" and "descending". See (Sorting Section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.3)). OPTIONAL. + SortOrder SortOrderEnum `mandatory:"false" json:"sortOrder,omitempty"` + + // An integer that indicates the 1-based index of the first query result. See Pagination Section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.4). OPTIONAL. + StartIndex *int `mandatory:"false" json:"startIndex"` + + // An integer that indicates the desired maximum number of query results per page. 1000 is the largest value that you can use. See the Pagination section of the System for Cross-Domain Identity Management Protocol specification for more information. (Section 3.4.2.4 (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.4)). OPTIONAL. + Count *int `mandatory:"false" json:"count"` +} + +func (m ApiKeySearchRequest) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m ApiKeySearchRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + for _, val := range m.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if _, ok := GetMappingSortOrderEnum(string(m.SortOrder)); !ok && m.SortOrder != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for SortOrder: %s. Supported values are: %s.", m.SortOrder, strings.Join(GetSortOrderEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/api_key_user.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/api_key_user.go new file mode 100644 index 00000000000..c49d48e59cf --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/api_key_user.go @@ -0,0 +1,106 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// ApiKeyUser User linked to api key +// **SCIM++ Properties:** +// - caseExact: false +// - idcsSearchable: true +// - multiValued: false +// - mutability: immutable +// - required: false +// - returned: default +// - type: complex +// - uniqueness: none +type ApiKeyUser struct { + + // User's id + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: always + // - type: string + // - uniqueness: none + Value *string `mandatory:"false" json:"value"` + + // User's ocid + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: always + // - type: string + // - uniqueness: none + Ocid *string `mandatory:"false" json:"ocid"` + + // The URI that corresponds to the user linked to this credential + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` + + // User display name + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Display *string `mandatory:"false" json:"display"` + + // User name + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Name *string `mandatory:"false" json:"name"` +} + +func (m ApiKeyUser) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m ApiKeyUser) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/api_keys.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/api_keys.go new file mode 100644 index 00000000000..d319bfcacf3 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/api_keys.go @@ -0,0 +1,52 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// ApiKeys The SCIM protocol defines a standard set of query parameters that can be used to filter, sort, and paginate to return zero or more resources in a query response. Queries MAY be made against a single resource or a resource type endpoint (e.g., /Users), or the service provider Base URI. +type ApiKeys struct { + + // The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. REQUIRED. + Schemas []string `mandatory:"true" json:"schemas"` + + // The total number of results returned by the list or query operation. The value may be larger than the number of resources returned such as when returning a single page of results where multiple pages are available. REQUIRED. + TotalResults *int `mandatory:"true" json:"totalResults"` + + // A multi-valued list of complex objects containing the requested resources. This MAY be a subset of the full set of resources if pagination is requested. REQUIRED if "totalResults" is non-zero. + Resources []ApiKey `mandatory:"true" json:"Resources"` + + // The 1-based index of the first result in the current set of list results. REQUIRED when partial results returned due to pagination. + StartIndex *int `mandatory:"true" json:"startIndex"` + + // The number of resources returned in a list response page. REQUIRED when partial results returned due to pagination. + ItemsPerPage *int `mandatory:"true" json:"itemsPerPage"` +} + +func (m ApiKeys) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m ApiKeys) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/attribute_sets.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/attribute_sets.go new file mode 100644 index 00000000000..15a938c7e1d --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/attribute_sets.go @@ -0,0 +1,69 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "strings" +) + +// AttributeSetsEnum Enum with underlying type: string +type AttributeSetsEnum string + +// Set of constants representing the allowable values for AttributeSetsEnum +const ( + AttributeSetsAll AttributeSetsEnum = "all" + AttributeSetsAlways AttributeSetsEnum = "always" + AttributeSetsNever AttributeSetsEnum = "never" + AttributeSetsRequest AttributeSetsEnum = "request" + AttributeSetsDefault AttributeSetsEnum = "default" +) + +var mappingAttributeSetsEnum = map[string]AttributeSetsEnum{ + "all": AttributeSetsAll, + "always": AttributeSetsAlways, + "never": AttributeSetsNever, + "request": AttributeSetsRequest, + "default": AttributeSetsDefault, +} + +var mappingAttributeSetsEnumLowerCase = map[string]AttributeSetsEnum{ + "all": AttributeSetsAll, + "always": AttributeSetsAlways, + "never": AttributeSetsNever, + "request": AttributeSetsRequest, + "default": AttributeSetsDefault, +} + +// GetAttributeSetsEnumValues Enumerates the set of values for AttributeSetsEnum +func GetAttributeSetsEnumValues() []AttributeSetsEnum { + values := make([]AttributeSetsEnum, 0) + for _, v := range mappingAttributeSetsEnum { + values = append(values, v) + } + return values +} + +// GetAttributeSetsEnumStringValues Enumerates the set of values in String for AttributeSetsEnum +func GetAttributeSetsEnumStringValues() []string { + return []string{ + "all", + "always", + "never", + "request", + "default", + } +} + +// GetMappingAttributeSetsEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingAttributeSetsEnum(val string) (AttributeSetsEnum, bool) { + enum, ok := mappingAttributeSetsEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/auth_token.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/auth_token.go new file mode 100644 index 00000000000..07225c99ab4 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/auth_token.go @@ -0,0 +1,253 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// AuthToken User's Auth token resource +type AuthToken struct { + + // REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: true + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Schemas []string `mandatory:"true" json:"schemas"` + + // Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: always + // - type: string + // - uniqueness: global + Id *string `mandatory:"false" json:"id"` + + // Unique OCI identifier for the SCIM Resource. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: default + // - type: string + // - uniqueness: global + Ocid *string `mandatory:"false" json:"ocid"` + + Meta *Meta `mandatory:"false" json:"meta"` + + IdcsCreatedBy *IdcsCreatedBy `mandatory:"false" json:"idcsCreatedBy"` + + IdcsLastModifiedBy *IdcsLastModifiedBy `mandatory:"false" json:"idcsLastModifiedBy"` + + // Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsPreventedOperations []IdcsPreventedOperationsEnum `mandatory:"false" json:"idcsPreventedOperations,omitempty"` + + // A list of tags on this resource. + // **SCIM++ Properties:** + // - idcsCompositeKey: [key, value] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + Tags []Tags `mandatory:"false" json:"tags"` + + // A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + DeleteInProgress *bool `mandatory:"false" json:"deleteInProgress"` + + // The release number when the resource was upgraded. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsLastUpgradedInRelease *string `mandatory:"false" json:"idcsLastUpgradedInRelease"` + + // OCI Domain Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + DomainOcid *string `mandatory:"false" json:"domainOcid"` + + // OCI Compartment Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + CompartmentOcid *string `mandatory:"false" json:"compartmentOcid"` + + // OCI Tenant Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + TenancyOcid *string `mandatory:"false" json:"tenancyOcid"` + + // Description + // **Added In:** 2010242156 + // **SCIM++ Properties:** + // - caseExact: false + // - type: string + // - mutability: readWrite + // - required: false + // - returned: default + Description *string `mandatory:"false" json:"description"` + + // User credential status + // **Added In:** 2109090424 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: never + // - type: string + // - uniqueness: none + Status AuthTokenStatusEnum `mandatory:"false" json:"status,omitempty"` + + // User credential expires on + // **Added In:** 2109090424 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: default + // - type: dateTime + // - uniqueness: none + ExpiresOn *string `mandatory:"false" json:"expiresOn"` + + User *AuthTokenUser `mandatory:"false" json:"user"` + + UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser *ExtensionSelfChangeUser `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:selfChange:User"` +} + +func (m AuthToken) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m AuthToken) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + for _, val := range m.IdcsPreventedOperations { + if _, ok := GetMappingIdcsPreventedOperationsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for IdcsPreventedOperations: %s. Supported values are: %s.", val, strings.Join(GetIdcsPreventedOperationsEnumStringValues(), ","))) + } + } + + if _, ok := GetMappingAuthTokenStatusEnum(string(m.Status)); !ok && m.Status != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Status: %s. Supported values are: %s.", m.Status, strings.Join(GetAuthTokenStatusEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// AuthTokenStatusEnum Enum with underlying type: string +type AuthTokenStatusEnum string + +// Set of constants representing the allowable values for AuthTokenStatusEnum +const ( + AuthTokenStatusActive AuthTokenStatusEnum = "ACTIVE" + AuthTokenStatusInactive AuthTokenStatusEnum = "INACTIVE" +) + +var mappingAuthTokenStatusEnum = map[string]AuthTokenStatusEnum{ + "ACTIVE": AuthTokenStatusActive, + "INACTIVE": AuthTokenStatusInactive, +} + +var mappingAuthTokenStatusEnumLowerCase = map[string]AuthTokenStatusEnum{ + "active": AuthTokenStatusActive, + "inactive": AuthTokenStatusInactive, +} + +// GetAuthTokenStatusEnumValues Enumerates the set of values for AuthTokenStatusEnum +func GetAuthTokenStatusEnumValues() []AuthTokenStatusEnum { + values := make([]AuthTokenStatusEnum, 0) + for _, v := range mappingAuthTokenStatusEnum { + values = append(values, v) + } + return values +} + +// GetAuthTokenStatusEnumStringValues Enumerates the set of values in String for AuthTokenStatusEnum +func GetAuthTokenStatusEnumStringValues() []string { + return []string{ + "ACTIVE", + "INACTIVE", + } +} + +// GetMappingAuthTokenStatusEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingAuthTokenStatusEnum(val string) (AuthTokenStatusEnum, bool) { + enum, ok := mappingAuthTokenStatusEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/auth_token_search_request.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/auth_token_search_request.go new file mode 100644 index 00000000000..87f6cca8b1b --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/auth_token_search_request.go @@ -0,0 +1,70 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// AuthTokenSearchRequest Clients MAY execute queries without passing parameters on the URL by using the HTTP POST verb combined with the **.search** path extension. The inclusion of **.search** on the end of a valid SCIM endpoint SHALL be used to indicate the HTTP POST verb is intended to be a query operation. To create a new query result set, a SCIM client sends an HTTP POST request to the desired SCIM resource endpoint (ending in **.search**). The body of the POST request MAY include any of the parameters. +type AuthTokenSearchRequest struct { + + // The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. Query requests MUST be identified using the following URI: "urn:ietf:params:scim:api:messages:2.0:SearchRequest" REQUIRED. + Schemas []string `mandatory:"true" json:"schemas"` + + // A multi-valued list of strings indicating the names of resource attributes to return in the response overriding the set of attributes that would be returned by default. Attribute names MUST be in standard attribute notation (Section 3.10 (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.10)) form. See (additional retrieval query parameters (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.9)). OPTIONAL. + Attributes []string `mandatory:"false" json:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If "attributes" query parameter is also available, union of the two is fetched. Valid values : all, always, never, request, default. Values are case-insensitive. OPTIONAL. + AttributeSets []AttributeSetsEnum `mandatory:"false" json:"attributeSets,omitempty"` + + // The filter string that is used to request a subset of resources. The filter string MUST be a valid filter expression. See Section 3.4.2.2 (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.2). OPTIONAL. + Filter *string `mandatory:"false" json:"filter"` + + // A string that indicates the attribute whose value SHALL be used to order the returned responses. The sortBy attribute MUST be in standard attribute notation (Section 3.10 (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.10)) form. See Sorting section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.3). OPTIONAL. + SortBy *string `mandatory:"false" json:"sortBy"` + + // A string that indicates the order in which the sortBy parameter is applied. Allowed values are "ascending" and "descending". See (Sorting Section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.3)). OPTIONAL. + SortOrder SortOrderEnum `mandatory:"false" json:"sortOrder,omitempty"` + + // An integer that indicates the 1-based index of the first query result. See Pagination Section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.4). OPTIONAL. + StartIndex *int `mandatory:"false" json:"startIndex"` + + // An integer that indicates the desired maximum number of query results per page. 1000 is the largest value that you can use. See the Pagination section of the System for Cross-Domain Identity Management Protocol specification for more information. (Section 3.4.2.4 (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.4)). OPTIONAL. + Count *int `mandatory:"false" json:"count"` +} + +func (m AuthTokenSearchRequest) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m AuthTokenSearchRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + for _, val := range m.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if _, ok := GetMappingSortOrderEnum(string(m.SortOrder)); !ok && m.SortOrder != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for SortOrder: %s. Supported values are: %s.", m.SortOrder, strings.Join(GetSortOrderEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/auth_token_user.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/auth_token_user.go new file mode 100644 index 00000000000..7c1536a3a8c --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/auth_token_user.go @@ -0,0 +1,106 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// AuthTokenUser User linked to auth token +// **SCIM++ Properties:** +// - caseExact: false +// - idcsSearchable: true +// - multiValued: false +// - mutability: immutable +// - required: false +// - returned: default +// - type: complex +// - uniqueness: none +type AuthTokenUser struct { + + // User's id + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: always + // - type: string + // - uniqueness: none + Value *string `mandatory:"false" json:"value"` + + // User's ocid + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: always + // - type: string + // - uniqueness: none + Ocid *string `mandatory:"false" json:"ocid"` + + // The URI that corresponds to the user linked to this credential + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` + + // User display name + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Display *string `mandatory:"false" json:"display"` + + // User name + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Name *string `mandatory:"false" json:"name"` +} + +func (m AuthTokenUser) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m AuthTokenUser) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/auth_tokens.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/auth_tokens.go new file mode 100644 index 00000000000..0f4de7a9609 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/auth_tokens.go @@ -0,0 +1,52 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// AuthTokens The SCIM protocol defines a standard set of query parameters that can be used to filter, sort, and paginate to return zero or more resources in a query response. Queries MAY be made against a single resource or a resource type endpoint (e.g., /Users), or the service provider Base URI. +type AuthTokens struct { + + // The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. REQUIRED. + Schemas []string `mandatory:"true" json:"schemas"` + + // The total number of results returned by the list or query operation. The value may be larger than the number of resources returned such as when returning a single page of results where multiple pages are available. REQUIRED. + TotalResults *int `mandatory:"true" json:"totalResults"` + + // A multi-valued list of complex objects containing the requested resources. This MAY be a subset of the full set of resources if pagination is requested. REQUIRED if "totalResults" is non-zero. + Resources []AuthToken `mandatory:"true" json:"Resources"` + + // The 1-based index of the first result in the current set of list results. REQUIRED when partial results returned due to pagination. + StartIndex *int `mandatory:"true" json:"startIndex"` + + // The number of resources returned in a list response page. REQUIRED when partial results returned due to pagination. + ItemsPerPage *int `mandatory:"true" json:"itemsPerPage"` +} + +func (m AuthTokens) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m AuthTokens) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factor_setting.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factor_setting.go new file mode 100644 index 00000000000..e6cea3719c5 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factor_setting.go @@ -0,0 +1,441 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// AuthenticationFactorSetting Multi Factor Authentication Settings for Tenant +type AuthenticationFactorSetting struct { + + // REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: true + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Schemas []string `mandatory:"true" json:"schemas"` + + // If true, indicates that the Short Message Service (SMS) channel is enabled for authentication + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: boolean + // - uniqueness: none + SmsEnabled *bool `mandatory:"true" json:"smsEnabled"` + + // If true, indicates that the Mobile App One Time Passcode channel is enabled for authentication + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: boolean + // - uniqueness: none + TotpEnabled *bool `mandatory:"true" json:"totpEnabled"` + + // If true, indicates that the Mobile App Push Notification channel is enabled for authentication + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: boolean + // - uniqueness: none + PushEnabled *bool `mandatory:"true" json:"pushEnabled"` + + // If true, indicates that Bypass Code is enabled for authentication + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: boolean + // - uniqueness: none + BypassCodeEnabled *bool `mandatory:"true" json:"bypassCodeEnabled"` + + // If true, indicates that Security Questions are enabled for authentication + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: boolean + // - uniqueness: none + SecurityQuestionsEnabled *bool `mandatory:"true" json:"securityQuestionsEnabled"` + + // Specifies if Multi-Factor Authentication enrollment is mandatory or optional for a user + // **Deprecated Since: 18.1.2** + // **SCIM++ Properties:** + // - idcsCanonicalValueSourceFilter: attrName eq "mfaEnrollmentType" and attrValues.value eq "$(mfaEnrollmentType)" + // - idcsCanonicalValueSourceResourceType: AllowedValue + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + MfaEnrollmentType *string `mandatory:"true" json:"mfaEnrollmentType"` + + NotificationSettings *AuthenticationFactorSettingsNotificationSettings `mandatory:"true" json:"notificationSettings"` + + BypassCodeSettings *AuthenticationFactorSettingsBypassCodeSettings `mandatory:"true" json:"bypassCodeSettings"` + + ClientAppSettings *AuthenticationFactorSettingsClientAppSettings `mandatory:"true" json:"clientAppSettings"` + + EndpointRestrictions *AuthenticationFactorSettingsEndpointRestrictions `mandatory:"true" json:"endpointRestrictions"` + + // Compliance Policy that defines actions to be taken when a condition is violated + // **SCIM++ Properties:** + // - idcsCompositeKey: [name] + // - idcsSearchable: false + // - multiValued: true + // - mutability: readWrite + // - required: true + // - returned: default + // - type: complex + // - uniqueness: none + CompliancePolicy []AuthenticationFactorSettingsCompliancePolicy `mandatory:"true" json:"compliancePolicy"` + + TotpSettings *AuthenticationFactorSettingsTotpSettings `mandatory:"true" json:"totpSettings"` + + // Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: always + // - type: string + // - uniqueness: global + Id *string `mandatory:"false" json:"id"` + + // Unique OCI identifier for the SCIM Resource. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: default + // - type: string + // - uniqueness: global + Ocid *string `mandatory:"false" json:"ocid"` + + Meta *Meta `mandatory:"false" json:"meta"` + + IdcsCreatedBy *IdcsCreatedBy `mandatory:"false" json:"idcsCreatedBy"` + + IdcsLastModifiedBy *IdcsLastModifiedBy `mandatory:"false" json:"idcsLastModifiedBy"` + + // Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsPreventedOperations []IdcsPreventedOperationsEnum `mandatory:"false" json:"idcsPreventedOperations,omitempty"` + + // A list of tags on this resource. + // **SCIM++ Properties:** + // - idcsCompositeKey: [key, value] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + Tags []Tags `mandatory:"false" json:"tags"` + + // A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + DeleteInProgress *bool `mandatory:"false" json:"deleteInProgress"` + + // The release number when the resource was upgraded. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsLastUpgradedInRelease *string `mandatory:"false" json:"idcsLastUpgradedInRelease"` + + // OCI Domain Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + DomainOcid *string `mandatory:"false" json:"domainOcid"` + + // OCI Compartment Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + CompartmentOcid *string `mandatory:"false" json:"compartmentOcid"` + + // OCI Tenant Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + TenancyOcid *string `mandatory:"false" json:"tenancyOcid"` + + // If true, indicates that the EMAIL channel is enabled for authentication + // **Added In:** 18.1.2 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + EmailEnabled *bool `mandatory:"false" json:"emailEnabled"` + + // If true, indicates that the phone (PHONE_CALL) channel is enabled for authentication + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + PhoneCallEnabled *bool `mandatory:"false" json:"phoneCallEnabled"` + + // If true, indicates that the Fido Authenticator channels are enabled for authentication + // **Added In:** 2009232244 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + FidoAuthenticatorEnabled *bool `mandatory:"false" json:"fidoAuthenticatorEnabled"` + + // If true, indicates that the Yubico OTP is enabled for authentication + // **Added In:** 2109090424 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + YubicoOtpEnabled *bool `mandatory:"false" json:"yubicoOtpEnabled"` + + // Specifies the category of people for whom Multi-Factor Authentication is enabled. This is a readOnly attribute which reflects the value of mfaEnabledCategory attribute in SsoSettings + // **Deprecated Since: 18.1.2** + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + MfaEnabledCategory *string `mandatory:"false" json:"mfaEnabledCategory"` + + // If true, indicates that 'Show backup factor(s)' button will be hidden during authentication + // **Added In:** 19.3.3 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + HideBackupFactorEnabled *bool `mandatory:"false" json:"hideBackupFactorEnabled"` + + // If true, indicates that email will not be enrolled as a MFA factor automatically if it a account recovery factor + // **Added In:** 2011192329 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + AutoEnrollEmailFactorDisabled *bool `mandatory:"false" json:"autoEnrollEmailFactorDisabled"` + + // Factors for which enrollment should be blocked for End User + // **Added In:** 2012271618 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + UserEnrollmentDisabledFactors []AuthenticationFactorSettingUserEnrollmentDisabledFactorsEnum `mandatory:"false" json:"userEnrollmentDisabledFactors,omitempty"` + + EmailSettings *AuthenticationFactorSettingsEmailSettings `mandatory:"false" json:"emailSettings"` + + ThirdPartyFactor *AuthenticationFactorSettingsThirdPartyFactor `mandatory:"false" json:"thirdPartyFactor"` + + IdentityStoreSettings *AuthenticationFactorSettingsIdentityStoreSettings `mandatory:"false" json:"identityStoreSettings"` + + UrnietfparamsscimschemasoracleidcsextensionthirdPartyAuthenticationFactorSettings *ExtensionThirdPartyAuthenticationFactorSettings `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:thirdParty:AuthenticationFactorSettings"` + + UrnietfparamsscimschemasoracleidcsextensionfidoAuthenticationFactorSettings *ExtensionFidoAuthenticationFactorSettings `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:fido:AuthenticationFactorSettings"` +} + +func (m AuthenticationFactorSetting) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m AuthenticationFactorSetting) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + for _, val := range m.IdcsPreventedOperations { + if _, ok := GetMappingIdcsPreventedOperationsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for IdcsPreventedOperations: %s. Supported values are: %s.", val, strings.Join(GetIdcsPreventedOperationsEnumStringValues(), ","))) + } + } + + for _, val := range m.UserEnrollmentDisabledFactors { + if _, ok := GetMappingAuthenticationFactorSettingUserEnrollmentDisabledFactorsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for UserEnrollmentDisabledFactors: %s. Supported values are: %s.", val, strings.Join(GetAuthenticationFactorSettingUserEnrollmentDisabledFactorsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// AuthenticationFactorSettingUserEnrollmentDisabledFactorsEnum Enum with underlying type: string +type AuthenticationFactorSettingUserEnrollmentDisabledFactorsEnum string + +// Set of constants representing the allowable values for AuthenticationFactorSettingUserEnrollmentDisabledFactorsEnum +const ( + AuthenticationFactorSettingUserEnrollmentDisabledFactorsEmail AuthenticationFactorSettingUserEnrollmentDisabledFactorsEnum = "EMAIL" + AuthenticationFactorSettingUserEnrollmentDisabledFactorsSms AuthenticationFactorSettingUserEnrollmentDisabledFactorsEnum = "SMS" + AuthenticationFactorSettingUserEnrollmentDisabledFactorsTotp AuthenticationFactorSettingUserEnrollmentDisabledFactorsEnum = "TOTP" + AuthenticationFactorSettingUserEnrollmentDisabledFactorsPush AuthenticationFactorSettingUserEnrollmentDisabledFactorsEnum = "PUSH" + AuthenticationFactorSettingUserEnrollmentDisabledFactorsOfflinetotp AuthenticationFactorSettingUserEnrollmentDisabledFactorsEnum = "OFFLINETOTP" + AuthenticationFactorSettingUserEnrollmentDisabledFactorsVoice AuthenticationFactorSettingUserEnrollmentDisabledFactorsEnum = "VOICE" + AuthenticationFactorSettingUserEnrollmentDisabledFactorsPhoneCall AuthenticationFactorSettingUserEnrollmentDisabledFactorsEnum = "PHONE_CALL" + AuthenticationFactorSettingUserEnrollmentDisabledFactorsThirdparty AuthenticationFactorSettingUserEnrollmentDisabledFactorsEnum = "THIRDPARTY" + AuthenticationFactorSettingUserEnrollmentDisabledFactorsFidoAuthenticator AuthenticationFactorSettingUserEnrollmentDisabledFactorsEnum = "FIDO_AUTHENTICATOR" +) + +var mappingAuthenticationFactorSettingUserEnrollmentDisabledFactorsEnum = map[string]AuthenticationFactorSettingUserEnrollmentDisabledFactorsEnum{ + "EMAIL": AuthenticationFactorSettingUserEnrollmentDisabledFactorsEmail, + "SMS": AuthenticationFactorSettingUserEnrollmentDisabledFactorsSms, + "TOTP": AuthenticationFactorSettingUserEnrollmentDisabledFactorsTotp, + "PUSH": AuthenticationFactorSettingUserEnrollmentDisabledFactorsPush, + "OFFLINETOTP": AuthenticationFactorSettingUserEnrollmentDisabledFactorsOfflinetotp, + "VOICE": AuthenticationFactorSettingUserEnrollmentDisabledFactorsVoice, + "PHONE_CALL": AuthenticationFactorSettingUserEnrollmentDisabledFactorsPhoneCall, + "THIRDPARTY": AuthenticationFactorSettingUserEnrollmentDisabledFactorsThirdparty, + "FIDO_AUTHENTICATOR": AuthenticationFactorSettingUserEnrollmentDisabledFactorsFidoAuthenticator, +} + +var mappingAuthenticationFactorSettingUserEnrollmentDisabledFactorsEnumLowerCase = map[string]AuthenticationFactorSettingUserEnrollmentDisabledFactorsEnum{ + "email": AuthenticationFactorSettingUserEnrollmentDisabledFactorsEmail, + "sms": AuthenticationFactorSettingUserEnrollmentDisabledFactorsSms, + "totp": AuthenticationFactorSettingUserEnrollmentDisabledFactorsTotp, + "push": AuthenticationFactorSettingUserEnrollmentDisabledFactorsPush, + "offlinetotp": AuthenticationFactorSettingUserEnrollmentDisabledFactorsOfflinetotp, + "voice": AuthenticationFactorSettingUserEnrollmentDisabledFactorsVoice, + "phone_call": AuthenticationFactorSettingUserEnrollmentDisabledFactorsPhoneCall, + "thirdparty": AuthenticationFactorSettingUserEnrollmentDisabledFactorsThirdparty, + "fido_authenticator": AuthenticationFactorSettingUserEnrollmentDisabledFactorsFidoAuthenticator, +} + +// GetAuthenticationFactorSettingUserEnrollmentDisabledFactorsEnumValues Enumerates the set of values for AuthenticationFactorSettingUserEnrollmentDisabledFactorsEnum +func GetAuthenticationFactorSettingUserEnrollmentDisabledFactorsEnumValues() []AuthenticationFactorSettingUserEnrollmentDisabledFactorsEnum { + values := make([]AuthenticationFactorSettingUserEnrollmentDisabledFactorsEnum, 0) + for _, v := range mappingAuthenticationFactorSettingUserEnrollmentDisabledFactorsEnum { + values = append(values, v) + } + return values +} + +// GetAuthenticationFactorSettingUserEnrollmentDisabledFactorsEnumStringValues Enumerates the set of values in String for AuthenticationFactorSettingUserEnrollmentDisabledFactorsEnum +func GetAuthenticationFactorSettingUserEnrollmentDisabledFactorsEnumStringValues() []string { + return []string{ + "EMAIL", + "SMS", + "TOTP", + "PUSH", + "OFFLINETOTP", + "VOICE", + "PHONE_CALL", + "THIRDPARTY", + "FIDO_AUTHENTICATOR", + } +} + +// GetMappingAuthenticationFactorSettingUserEnrollmentDisabledFactorsEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingAuthenticationFactorSettingUserEnrollmentDisabledFactorsEnum(val string) (AuthenticationFactorSettingUserEnrollmentDisabledFactorsEnum, bool) { + enum, ok := mappingAuthenticationFactorSettingUserEnrollmentDisabledFactorsEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factor_settings.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factor_settings.go new file mode 100644 index 00000000000..7e599bde000 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factor_settings.go @@ -0,0 +1,52 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// AuthenticationFactorSettings The SCIM protocol defines a standard set of query parameters that can be used to filter, sort, and paginate to return zero or more resources in a query response. Queries MAY be made against a single resource or a resource type endpoint (e.g., /Users), or the service provider Base URI. +type AuthenticationFactorSettings struct { + + // The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. REQUIRED. + Schemas []string `mandatory:"true" json:"schemas"` + + // The total number of results returned by the list or query operation. The value may be larger than the number of resources returned such as when returning a single page of results where multiple pages are available. REQUIRED. + TotalResults *int `mandatory:"true" json:"totalResults"` + + // A multi-valued list of complex objects containing the requested resources. This MAY be a subset of the full set of resources if pagination is requested. REQUIRED if "totalResults" is non-zero. + Resources []AuthenticationFactorSetting `mandatory:"true" json:"Resources"` + + // The 1-based index of the first result in the current set of list results. REQUIRED when partial results returned due to pagination. + StartIndex *int `mandatory:"true" json:"startIndex"` + + // The number of resources returned in a list response page. REQUIRED when partial results returned due to pagination. + ItemsPerPage *int `mandatory:"true" json:"itemsPerPage"` +} + +func (m AuthenticationFactorSettings) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m AuthenticationFactorSettings) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factor_settings_bypass_code_settings.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factor_settings_bypass_code_settings.go new file mode 100644 index 00000000000..7b7ab5d3c0f --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factor_settings_bypass_code_settings.go @@ -0,0 +1,119 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// AuthenticationFactorSettingsBypassCodeSettings Settings related to the bypass code, such as bypass code length, bypass code expiry, max active bypass codes, and so on +// **SCIM++ Properties:** +// - idcsSearchable: false +// - multiValued: false +// - mutability: readWrite +// - required: true +// - returned: default +// - type: complex +// - uniqueness: none +type AuthenticationFactorSettingsBypassCodeSettings struct { + + // If true, indicates that self-service bypass code generation is enabled + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: boolean + // - uniqueness: none + SelfServiceGenerationEnabled *bool `mandatory:"true" json:"selfServiceGenerationEnabled"` + + // If true, indicates that help desk bypass code generation is enabled + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: boolean + // - uniqueness: none + HelpDeskGenerationEnabled *bool `mandatory:"true" json:"helpDeskGenerationEnabled"` + + // Exact length of the bypass code to be generated + // **SCIM++ Properties:** + // - idcsMaxValue: 20 + // - idcsMinValue: 8 + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: integer + // - uniqueness: none + Length *int `mandatory:"true" json:"length"` + + // The maximum number of bypass codes that can be issued to any user + // **SCIM++ Properties:** + // - idcsMaxValue: 6 + // - idcsMinValue: 1 + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: integer + // - uniqueness: none + MaxActive *int `mandatory:"true" json:"maxActive"` + + // Expiry (in minutes) of any bypass code that is generated by the help desk + // **SCIM++ Properties:** + // - idcsMaxValue: 9999999 + // - idcsMinValue: 1 + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: integer + // - uniqueness: none + HelpDeskCodeExpiryInMins *int `mandatory:"true" json:"helpDeskCodeExpiryInMins"` + + // The maximum number of times that any bypass code that is generated by the help desk can be used + // **SCIM++ Properties:** + // - idcsMaxValue: 999 + // - idcsMinValue: 1 + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: integer + // - uniqueness: none + HelpDeskMaxUsage *int `mandatory:"true" json:"helpDeskMaxUsage"` +} + +func (m AuthenticationFactorSettingsBypassCodeSettings) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m AuthenticationFactorSettingsBypassCodeSettings) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factor_settings_client_app_settings.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factor_settings_client_app_settings.go new file mode 100644 index 00000000000..096512a6d60 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factor_settings_client_app_settings.go @@ -0,0 +1,324 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// AuthenticationFactorSettingsClientAppSettings Settings related to compliance, Personal Identification Number (PIN) policy, and so on +// **SCIM++ Properties:** +// - idcsSearchable: false +// - multiValued: false +// - mutability: readWrite +// - required: true +// - returned: default +// - type: complex +// - uniqueness: none +type AuthenticationFactorSettingsClientAppSettings struct { + + // Minimum length of the Personal Identification Number (PIN) + // **SCIM++ Properties:** + // - idcsMaxValue: 10 + // - idcsMinValue: 6 + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: integer + // - uniqueness: none + MinPinLength *int `mandatory:"true" json:"minPinLength"` + + // The maximum number of login failures that the system will allow before raising a warning and sending an alert via email + // **SCIM++ Properties:** + // - idcsMaxValue: 10 + // - idcsMinValue: 0 + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: integer + // - uniqueness: none + MaxFailuresBeforeWarning *int `mandatory:"true" json:"maxFailuresBeforeWarning"` + + // The maximum number of times that a particular user can fail to login before the system locks that user out of the service + // **SCIM++ Properties:** + // - idcsMaxValue: 10 + // - idcsMinValue: 5 + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: integer + // - uniqueness: none + MaxFailuresBeforeLockout *int `mandatory:"true" json:"maxFailuresBeforeLockout"` + + // The period of time in seconds that the system will lock a user out of the service after that user exceeds the maximum number of login failures + // **SCIM++ Properties:** + // - idcsMaxValue: 86400 + // - idcsMinValue: 30 + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: integer + // - uniqueness: none + InitialLockoutPeriodInSecs *int `mandatory:"true" json:"initialLockoutPeriodInSecs"` + + // The pattern of escalation that the system follows, in locking a particular user out of the service. + // **SCIM++ Properties:** + // - idcsCanonicalValueSourceFilter: attrName eq "lockoutEscalationPattern" and attrValues.value eq "$(lockoutEscalationPattern)" + // - idcsCanonicalValueSourceResourceType: AllowedValue + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + LockoutEscalationPattern *string `mandatory:"true" json:"lockoutEscalationPattern"` + + // The maximum period of time that the system will lock a particular user out of the service regardless of what the configured pattern of escalation would otherwise dictate + // **SCIM++ Properties:** + // - idcsMaxValue: 86400 + // - idcsMinValue: 30 + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: integer + // - uniqueness: none + MaxLockoutIntervalInSecs *int `mandatory:"true" json:"maxLockoutIntervalInSecs"` + + // Indicates which algorithm the system will use to sign requests + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + RequestSigningAlgo AuthenticationFactorSettingsClientAppSettingsRequestSigningAlgoEnum `mandatory:"true" json:"requestSigningAlgo"` + + // The period of time in days after which a client should refresh its policy by re-reading that policy from the server + // **SCIM++ Properties:** + // - idcsMaxValue: 999 + // - idcsMinValue: 1 + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: integer + // - uniqueness: none + PolicyUpdateFreqInDays *int `mandatory:"true" json:"policyUpdateFreqInDays"` + + // The size of the key that the system uses to generate the public-private key pair + // **SCIM++ Properties:** + // - idcsMaxValue: 4000 + // - idcsMinValue: 32 + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: integer + // - uniqueness: none + KeyPairLength *int `mandatory:"true" json:"keyPairLength"` + + // Indicates what protection policy that the system applies on a device. By default, the value is NONE, which indicates that the system applies no protection policy. A value of APP_PIN indicates that the system requires a Personal Identification Number (PIN). A value of DEVICE_BIOMETRIC_OR_APP_PIN indicates that either a PIN or a biometric authentication factor is required. + // **SCIM++ Properties:** + // - idcsCanonicalValueSourceFilter: attrName eq "deviceProtectionPolicy" and attrValues.value eq "$(deviceProtectionPolicy)" + // - idcsCanonicalValueSourceResourceType: AllowedValue + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + DeviceProtectionPolicy *string `mandatory:"true" json:"deviceProtectionPolicy"` + + // If true, indicates that the system should require the user to unlock the client app for each request. In order to unlock the App, the user must supply a Personal Identification Number (PIN) or a biometric authentication-factor. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: boolean + // - uniqueness: none + UnlockAppForEachRequestEnabled *bool `mandatory:"true" json:"unlockAppForEachRequestEnabled"` + + // If true, indicates that the system should require the user to unlock the client App whenever the App is started. In order to unlock the App, the user must supply a Personal Identification Number (PIN) or a biometric authentication-factor. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: boolean + // - uniqueness: none + UnlockOnAppStartEnabled *bool `mandatory:"true" json:"unlockOnAppStartEnabled"` + + // Specifies the period of time in seconds after which the client App should require the user to unlock the App. In order to unlock the App, the user must supply a Personal Identification Number (PIN) or a biometric authentication-factor. A value of zero means that it is disabled. + // **SCIM++ Properties:** + // - idcsMaxValue: 9999999 + // - idcsMinValue: 0 + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: integer + // - uniqueness: none + UnlockAppIntervalInSecs *int `mandatory:"true" json:"unlockAppIntervalInSecs"` + + // Indicates the type of encoding that the system should use to generate a shared secret + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + SharedSecretEncoding AuthenticationFactorSettingsClientAppSettingsSharedSecretEncodingEnum `mandatory:"true" json:"sharedSecretEncoding"` + + // If true, indicates that the system should require the user to unlock the client App, when the client App comes to the foreground in the display of the device. In order to unlock the App, the user must supply a Personal Identification Number (PIN) or a biometric authentication-factor. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: boolean + // - uniqueness: none + UnlockOnAppForegroundEnabled *bool `mandatory:"true" json:"unlockOnAppForegroundEnabled"` +} + +func (m AuthenticationFactorSettingsClientAppSettings) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m AuthenticationFactorSettingsClientAppSettings) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingAuthenticationFactorSettingsClientAppSettingsRequestSigningAlgoEnum(string(m.RequestSigningAlgo)); !ok && m.RequestSigningAlgo != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for RequestSigningAlgo: %s. Supported values are: %s.", m.RequestSigningAlgo, strings.Join(GetAuthenticationFactorSettingsClientAppSettingsRequestSigningAlgoEnumStringValues(), ","))) + } + if _, ok := GetMappingAuthenticationFactorSettingsClientAppSettingsSharedSecretEncodingEnum(string(m.SharedSecretEncoding)); !ok && m.SharedSecretEncoding != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for SharedSecretEncoding: %s. Supported values are: %s.", m.SharedSecretEncoding, strings.Join(GetAuthenticationFactorSettingsClientAppSettingsSharedSecretEncodingEnumStringValues(), ","))) + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// AuthenticationFactorSettingsClientAppSettingsRequestSigningAlgoEnum Enum with underlying type: string +type AuthenticationFactorSettingsClientAppSettingsRequestSigningAlgoEnum string + +// Set of constants representing the allowable values for AuthenticationFactorSettingsClientAppSettingsRequestSigningAlgoEnum +const ( + AuthenticationFactorSettingsClientAppSettingsRequestSigningAlgoSha256withrsa AuthenticationFactorSettingsClientAppSettingsRequestSigningAlgoEnum = "SHA256withRSA" + AuthenticationFactorSettingsClientAppSettingsRequestSigningAlgoSha384withrsa AuthenticationFactorSettingsClientAppSettingsRequestSigningAlgoEnum = "SHA384withRSA" + AuthenticationFactorSettingsClientAppSettingsRequestSigningAlgoSha512withrsa AuthenticationFactorSettingsClientAppSettingsRequestSigningAlgoEnum = "SHA512withRSA" +) + +var mappingAuthenticationFactorSettingsClientAppSettingsRequestSigningAlgoEnum = map[string]AuthenticationFactorSettingsClientAppSettingsRequestSigningAlgoEnum{ + "SHA256withRSA": AuthenticationFactorSettingsClientAppSettingsRequestSigningAlgoSha256withrsa, + "SHA384withRSA": AuthenticationFactorSettingsClientAppSettingsRequestSigningAlgoSha384withrsa, + "SHA512withRSA": AuthenticationFactorSettingsClientAppSettingsRequestSigningAlgoSha512withrsa, +} + +var mappingAuthenticationFactorSettingsClientAppSettingsRequestSigningAlgoEnumLowerCase = map[string]AuthenticationFactorSettingsClientAppSettingsRequestSigningAlgoEnum{ + "sha256withrsa": AuthenticationFactorSettingsClientAppSettingsRequestSigningAlgoSha256withrsa, + "sha384withrsa": AuthenticationFactorSettingsClientAppSettingsRequestSigningAlgoSha384withrsa, + "sha512withrsa": AuthenticationFactorSettingsClientAppSettingsRequestSigningAlgoSha512withrsa, +} + +// GetAuthenticationFactorSettingsClientAppSettingsRequestSigningAlgoEnumValues Enumerates the set of values for AuthenticationFactorSettingsClientAppSettingsRequestSigningAlgoEnum +func GetAuthenticationFactorSettingsClientAppSettingsRequestSigningAlgoEnumValues() []AuthenticationFactorSettingsClientAppSettingsRequestSigningAlgoEnum { + values := make([]AuthenticationFactorSettingsClientAppSettingsRequestSigningAlgoEnum, 0) + for _, v := range mappingAuthenticationFactorSettingsClientAppSettingsRequestSigningAlgoEnum { + values = append(values, v) + } + return values +} + +// GetAuthenticationFactorSettingsClientAppSettingsRequestSigningAlgoEnumStringValues Enumerates the set of values in String for AuthenticationFactorSettingsClientAppSettingsRequestSigningAlgoEnum +func GetAuthenticationFactorSettingsClientAppSettingsRequestSigningAlgoEnumStringValues() []string { + return []string{ + "SHA256withRSA", + "SHA384withRSA", + "SHA512withRSA", + } +} + +// GetMappingAuthenticationFactorSettingsClientAppSettingsRequestSigningAlgoEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingAuthenticationFactorSettingsClientAppSettingsRequestSigningAlgoEnum(val string) (AuthenticationFactorSettingsClientAppSettingsRequestSigningAlgoEnum, bool) { + enum, ok := mappingAuthenticationFactorSettingsClientAppSettingsRequestSigningAlgoEnumLowerCase[strings.ToLower(val)] + return enum, ok +} + +// AuthenticationFactorSettingsClientAppSettingsSharedSecretEncodingEnum Enum with underlying type: string +type AuthenticationFactorSettingsClientAppSettingsSharedSecretEncodingEnum string + +// Set of constants representing the allowable values for AuthenticationFactorSettingsClientAppSettingsSharedSecretEncodingEnum +const ( + AuthenticationFactorSettingsClientAppSettingsSharedSecretEncodingBase32 AuthenticationFactorSettingsClientAppSettingsSharedSecretEncodingEnum = "Base32" + AuthenticationFactorSettingsClientAppSettingsSharedSecretEncodingBase64 AuthenticationFactorSettingsClientAppSettingsSharedSecretEncodingEnum = "Base64" +) + +var mappingAuthenticationFactorSettingsClientAppSettingsSharedSecretEncodingEnum = map[string]AuthenticationFactorSettingsClientAppSettingsSharedSecretEncodingEnum{ + "Base32": AuthenticationFactorSettingsClientAppSettingsSharedSecretEncodingBase32, + "Base64": AuthenticationFactorSettingsClientAppSettingsSharedSecretEncodingBase64, +} + +var mappingAuthenticationFactorSettingsClientAppSettingsSharedSecretEncodingEnumLowerCase = map[string]AuthenticationFactorSettingsClientAppSettingsSharedSecretEncodingEnum{ + "base32": AuthenticationFactorSettingsClientAppSettingsSharedSecretEncodingBase32, + "base64": AuthenticationFactorSettingsClientAppSettingsSharedSecretEncodingBase64, +} + +// GetAuthenticationFactorSettingsClientAppSettingsSharedSecretEncodingEnumValues Enumerates the set of values for AuthenticationFactorSettingsClientAppSettingsSharedSecretEncodingEnum +func GetAuthenticationFactorSettingsClientAppSettingsSharedSecretEncodingEnumValues() []AuthenticationFactorSettingsClientAppSettingsSharedSecretEncodingEnum { + values := make([]AuthenticationFactorSettingsClientAppSettingsSharedSecretEncodingEnum, 0) + for _, v := range mappingAuthenticationFactorSettingsClientAppSettingsSharedSecretEncodingEnum { + values = append(values, v) + } + return values +} + +// GetAuthenticationFactorSettingsClientAppSettingsSharedSecretEncodingEnumStringValues Enumerates the set of values in String for AuthenticationFactorSettingsClientAppSettingsSharedSecretEncodingEnum +func GetAuthenticationFactorSettingsClientAppSettingsSharedSecretEncodingEnumStringValues() []string { + return []string{ + "Base32", + "Base64", + } +} + +// GetMappingAuthenticationFactorSettingsClientAppSettingsSharedSecretEncodingEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingAuthenticationFactorSettingsClientAppSettingsSharedSecretEncodingEnum(val string) (AuthenticationFactorSettingsClientAppSettingsSharedSecretEncodingEnum, bool) { + enum, ok := mappingAuthenticationFactorSettingsClientAppSettingsSharedSecretEncodingEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factor_settings_compliance_policy.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factor_settings_compliance_policy.go new file mode 100644 index 00000000000..a9a552836b8 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factor_settings_compliance_policy.go @@ -0,0 +1,123 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// AuthenticationFactorSettingsCompliancePolicy Compliance Policy that defines actions to be taken when a condition is violated +type AuthenticationFactorSettingsCompliancePolicy struct { + + // The name of the attribute being evaluated + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Name *string `mandatory:"true" json:"name"` + + // The action to be taken if the value of the attribute is not as expected + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Action AuthenticationFactorSettingsCompliancePolicyActionEnum `mandatory:"true" json:"action"` + + // The value of the attribute to be evaluated + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` +} + +func (m AuthenticationFactorSettingsCompliancePolicy) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m AuthenticationFactorSettingsCompliancePolicy) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingAuthenticationFactorSettingsCompliancePolicyActionEnum(string(m.Action)); !ok && m.Action != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Action: %s. Supported values are: %s.", m.Action, strings.Join(GetAuthenticationFactorSettingsCompliancePolicyActionEnumStringValues(), ","))) + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// AuthenticationFactorSettingsCompliancePolicyActionEnum Enum with underlying type: string +type AuthenticationFactorSettingsCompliancePolicyActionEnum string + +// Set of constants representing the allowable values for AuthenticationFactorSettingsCompliancePolicyActionEnum +const ( + AuthenticationFactorSettingsCompliancePolicyActionAllow AuthenticationFactorSettingsCompliancePolicyActionEnum = "Allow" + AuthenticationFactorSettingsCompliancePolicyActionBlock AuthenticationFactorSettingsCompliancePolicyActionEnum = "Block" + AuthenticationFactorSettingsCompliancePolicyActionNotify AuthenticationFactorSettingsCompliancePolicyActionEnum = "Notify" + AuthenticationFactorSettingsCompliancePolicyActionNone AuthenticationFactorSettingsCompliancePolicyActionEnum = "None" +) + +var mappingAuthenticationFactorSettingsCompliancePolicyActionEnum = map[string]AuthenticationFactorSettingsCompliancePolicyActionEnum{ + "Allow": AuthenticationFactorSettingsCompliancePolicyActionAllow, + "Block": AuthenticationFactorSettingsCompliancePolicyActionBlock, + "Notify": AuthenticationFactorSettingsCompliancePolicyActionNotify, + "None": AuthenticationFactorSettingsCompliancePolicyActionNone, +} + +var mappingAuthenticationFactorSettingsCompliancePolicyActionEnumLowerCase = map[string]AuthenticationFactorSettingsCompliancePolicyActionEnum{ + "allow": AuthenticationFactorSettingsCompliancePolicyActionAllow, + "block": AuthenticationFactorSettingsCompliancePolicyActionBlock, + "notify": AuthenticationFactorSettingsCompliancePolicyActionNotify, + "none": AuthenticationFactorSettingsCompliancePolicyActionNone, +} + +// GetAuthenticationFactorSettingsCompliancePolicyActionEnumValues Enumerates the set of values for AuthenticationFactorSettingsCompliancePolicyActionEnum +func GetAuthenticationFactorSettingsCompliancePolicyActionEnumValues() []AuthenticationFactorSettingsCompliancePolicyActionEnum { + values := make([]AuthenticationFactorSettingsCompliancePolicyActionEnum, 0) + for _, v := range mappingAuthenticationFactorSettingsCompliancePolicyActionEnum { + values = append(values, v) + } + return values +} + +// GetAuthenticationFactorSettingsCompliancePolicyActionEnumStringValues Enumerates the set of values in String for AuthenticationFactorSettingsCompliancePolicyActionEnum +func GetAuthenticationFactorSettingsCompliancePolicyActionEnumStringValues() []string { + return []string{ + "Allow", + "Block", + "Notify", + "None", + } +} + +// GetMappingAuthenticationFactorSettingsCompliancePolicyActionEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingAuthenticationFactorSettingsCompliancePolicyActionEnum(val string) (AuthenticationFactorSettingsCompliancePolicyActionEnum, bool) { + enum, ok := mappingAuthenticationFactorSettingsCompliancePolicyActionEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factor_settings_duo_security_settings.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factor_settings_duo_security_settings.go new file mode 100644 index 00000000000..55191f7bf3f --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factor_settings_duo_security_settings.go @@ -0,0 +1,155 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// AuthenticationFactorSettingsDuoSecuritySettings Settings related to Duo Security +// **Added In:** 19.2.1 +// **SCIM++ Properties:** +// - idcsSearchable: false +// - multiValued: false +// - mutability: readWrite +// - required: false +// - returned: default +// - type: complex +// - uniqueness: none +type AuthenticationFactorSettingsDuoSecuritySettings struct { + + // Integration key from Duo Security authenticator + // **Added In:** 19.2.1 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + IntegrationKey *string `mandatory:"true" json:"integrationKey"` + + // Secret key from Duo Security authenticator + // **Added In:** 19.2.1 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + SecretKey *string `mandatory:"true" json:"secretKey"` + + // Hostname to access the Duo security account + // **Added In:** 19.2.1 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + ApiHostname *string `mandatory:"true" json:"apiHostname"` + + // User attribute mapping value + // **Added In:** 19.2.1 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + UserMappingAttribute AuthenticationFactorSettingsDuoSecuritySettingsUserMappingAttributeEnum `mandatory:"true" json:"userMappingAttribute"` + + // Attestation key to attest the request and response between Duo Security + // **Added In:** 19.2.1 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: never + // - type: string + // - uniqueness: none + AttestationKey *string `mandatory:"false" json:"attestationKey"` +} + +func (m AuthenticationFactorSettingsDuoSecuritySettings) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m AuthenticationFactorSettingsDuoSecuritySettings) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingAuthenticationFactorSettingsDuoSecuritySettingsUserMappingAttributeEnum(string(m.UserMappingAttribute)); !ok && m.UserMappingAttribute != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for UserMappingAttribute: %s. Supported values are: %s.", m.UserMappingAttribute, strings.Join(GetAuthenticationFactorSettingsDuoSecuritySettingsUserMappingAttributeEnumStringValues(), ","))) + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// AuthenticationFactorSettingsDuoSecuritySettingsUserMappingAttributeEnum Enum with underlying type: string +type AuthenticationFactorSettingsDuoSecuritySettingsUserMappingAttributeEnum string + +// Set of constants representing the allowable values for AuthenticationFactorSettingsDuoSecuritySettingsUserMappingAttributeEnum +const ( + AuthenticationFactorSettingsDuoSecuritySettingsUserMappingAttributePrimaryemail AuthenticationFactorSettingsDuoSecuritySettingsUserMappingAttributeEnum = "primaryEmail" + AuthenticationFactorSettingsDuoSecuritySettingsUserMappingAttributeUsername AuthenticationFactorSettingsDuoSecuritySettingsUserMappingAttributeEnum = "userName" + AuthenticationFactorSettingsDuoSecuritySettingsUserMappingAttributeGivenname AuthenticationFactorSettingsDuoSecuritySettingsUserMappingAttributeEnum = "givenName" +) + +var mappingAuthenticationFactorSettingsDuoSecuritySettingsUserMappingAttributeEnum = map[string]AuthenticationFactorSettingsDuoSecuritySettingsUserMappingAttributeEnum{ + "primaryEmail": AuthenticationFactorSettingsDuoSecuritySettingsUserMappingAttributePrimaryemail, + "userName": AuthenticationFactorSettingsDuoSecuritySettingsUserMappingAttributeUsername, + "givenName": AuthenticationFactorSettingsDuoSecuritySettingsUserMappingAttributeGivenname, +} + +var mappingAuthenticationFactorSettingsDuoSecuritySettingsUserMappingAttributeEnumLowerCase = map[string]AuthenticationFactorSettingsDuoSecuritySettingsUserMappingAttributeEnum{ + "primaryemail": AuthenticationFactorSettingsDuoSecuritySettingsUserMappingAttributePrimaryemail, + "username": AuthenticationFactorSettingsDuoSecuritySettingsUserMappingAttributeUsername, + "givenname": AuthenticationFactorSettingsDuoSecuritySettingsUserMappingAttributeGivenname, +} + +// GetAuthenticationFactorSettingsDuoSecuritySettingsUserMappingAttributeEnumValues Enumerates the set of values for AuthenticationFactorSettingsDuoSecuritySettingsUserMappingAttributeEnum +func GetAuthenticationFactorSettingsDuoSecuritySettingsUserMappingAttributeEnumValues() []AuthenticationFactorSettingsDuoSecuritySettingsUserMappingAttributeEnum { + values := make([]AuthenticationFactorSettingsDuoSecuritySettingsUserMappingAttributeEnum, 0) + for _, v := range mappingAuthenticationFactorSettingsDuoSecuritySettingsUserMappingAttributeEnum { + values = append(values, v) + } + return values +} + +// GetAuthenticationFactorSettingsDuoSecuritySettingsUserMappingAttributeEnumStringValues Enumerates the set of values in String for AuthenticationFactorSettingsDuoSecuritySettingsUserMappingAttributeEnum +func GetAuthenticationFactorSettingsDuoSecuritySettingsUserMappingAttributeEnumStringValues() []string { + return []string{ + "primaryEmail", + "userName", + "givenName", + } +} + +// GetMappingAuthenticationFactorSettingsDuoSecuritySettingsUserMappingAttributeEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingAuthenticationFactorSettingsDuoSecuritySettingsUserMappingAttributeEnum(val string) (AuthenticationFactorSettingsDuoSecuritySettingsUserMappingAttributeEnum, bool) { + enum, ok := mappingAuthenticationFactorSettingsDuoSecuritySettingsUserMappingAttributeEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factor_settings_email_settings.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factor_settings_email_settings.go new file mode 100644 index 00000000000..421db326b63 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factor_settings_email_settings.go @@ -0,0 +1,70 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// AuthenticationFactorSettingsEmailSettings Settings related to Email Factor, such as enabled email magic link factor, custom url for Email Link +// **Added In:** 20.1.3 +// **SCIM++ Properties:** +// - idcsSearchable: false +// - multiValued: false +// - mutability: readWrite +// - required: false +// - returned: default +// - type: complex +// - uniqueness: none +type AuthenticationFactorSettingsEmailSettings struct { + + // Specifies whether Email link is enabled or not. + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: boolean + // - uniqueness: none + EmailLinkEnabled *bool `mandatory:"true" json:"emailLinkEnabled"` + + // Custom redirect Url which will be used in email link + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + EmailLinkCustomUrl *string `mandatory:"false" json:"emailLinkCustomUrl"` +} + +func (m AuthenticationFactorSettingsEmailSettings) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m AuthenticationFactorSettingsEmailSettings) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factor_settings_endpoint_restrictions.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factor_settings_endpoint_restrictions.go new file mode 100644 index 00000000000..00bd41c4d36 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factor_settings_endpoint_restrictions.go @@ -0,0 +1,108 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// AuthenticationFactorSettingsEndpointRestrictions Settings that describe the set of restrictions that the system should apply to devices and trusted endpoints of a user +// **SCIM++ Properties:** +// - idcsSearchable: false +// - multiValued: false +// - mutability: readWrite +// - required: true +// - returned: default +// - type: complex +// - uniqueness: none +type AuthenticationFactorSettingsEndpointRestrictions struct { + + // Maximum number of enrolled devices per user + // **SCIM++ Properties:** + // - idcsMaxValue: 20 + // - idcsMinValue: 1 + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: integer + // - uniqueness: none + MaxEnrolledDevices *int `mandatory:"true" json:"maxEnrolledDevices"` + + // Max number of trusted endpoints per user + // **SCIM++ Properties:** + // - idcsMaxValue: 20 + // - idcsMinValue: 1 + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: integer + // - uniqueness: none + MaxTrustedEndpoints *int `mandatory:"true" json:"maxTrustedEndpoints"` + + // Maximum number of days until an endpoint can be trusted + // **SCIM++ Properties:** + // - idcsMaxValue: 180 + // - idcsMinValue: 1 + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: integer + // - uniqueness: none + MaxEndpointTrustDurationInDays *int `mandatory:"true" json:"maxEndpointTrustDurationInDays"` + + // Specify if trusted endpoints are enabled + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: boolean + // - uniqueness: none + TrustedEndpointsEnabled *bool `mandatory:"true" json:"trustedEndpointsEnabled"` + + // An integer that represents the maximum number of failed MFA logins before an account is locked + // **SCIM++ Properties:** + // - idcsMaxValue: 20 + // - idcsMinValue: 5 + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: integer + // - uniqueness: none + MaxIncorrectAttempts *int `mandatory:"true" json:"maxIncorrectAttempts"` +} + +func (m AuthenticationFactorSettingsEndpointRestrictions) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m AuthenticationFactorSettingsEndpointRestrictions) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factor_settings_identity_store_settings.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factor_settings_identity_store_settings.go new file mode 100644 index 00000000000..0abb5e81731 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factor_settings_identity_store_settings.go @@ -0,0 +1,67 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// AuthenticationFactorSettingsIdentityStoreSettings Settings related to the use of a user's profile details from the identity store +// **SCIM++ Properties:** +// - idcsSearchable: false +// - multiValued: false +// - mutability: readWrite +// - required: false +// - returned: default +// - type: complex +// - uniqueness: none +type AuthenticationFactorSettingsIdentityStoreSettings struct { + + // If true, indicates that Multi-Factor Authentication should use the mobile number in the identity store + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + MobileNumberEnabled *bool `mandatory:"false" json:"mobileNumberEnabled"` + + // If true, indicates that the user can update the mobile number in the user's Multi-Factor Authentication profile + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + MobileNumberUpdateEnabled *bool `mandatory:"false" json:"mobileNumberUpdateEnabled"` +} + +func (m AuthenticationFactorSettingsIdentityStoreSettings) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m AuthenticationFactorSettingsIdentityStoreSettings) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factor_settings_notification_settings.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factor_settings_notification_settings.go new file mode 100644 index 00000000000..661bb06f731 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factor_settings_notification_settings.go @@ -0,0 +1,58 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// AuthenticationFactorSettingsNotificationSettings Settings related to the Mobile App Notification channel, such as pull +// **Added In:** 17.4.2 +// **SCIM++ Properties:** +// - idcsSearchable: false +// - multiValued: false +// - mutability: readWrite +// - required: true +// - returned: default +// - type: complex +// - uniqueness: none +type AuthenticationFactorSettingsNotificationSettings struct { + + // If true, indicates that the Mobile App Pull Notification channel is enabled for authentication + // **Added In:** 17.4.2 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: boolean + // - uniqueness: none + PullEnabled *bool `mandatory:"true" json:"pullEnabled"` +} + +func (m AuthenticationFactorSettingsNotificationSettings) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m AuthenticationFactorSettingsNotificationSettings) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factor_settings_search_request.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factor_settings_search_request.go new file mode 100644 index 00000000000..ab743b8b41d --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factor_settings_search_request.go @@ -0,0 +1,52 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// AuthenticationFactorSettingsSearchRequest Clients MAY execute queries without passing parameters on the URL by using the HTTP POST verb combined with the **.search** path extension. The inclusion of **.search** on the end of a valid SCIM endpoint SHALL be used to indicate the HTTP POST verb is intended to be a query operation. To create a new query result set, a SCIM client sends an HTTP POST request to the desired SCIM resource endpoint (ending in **.search**). The body of the POST request MAY include any of the parameters. +type AuthenticationFactorSettingsSearchRequest struct { + + // The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. Query requests MUST be identified using the following URI: "urn:ietf:params:scim:api:messages:2.0:SearchRequest" REQUIRED. + Schemas []string `mandatory:"true" json:"schemas"` + + // A multi-valued list of strings indicating the names of resource attributes to return in the response overriding the set of attributes that would be returned by default. Attribute names MUST be in standard attribute notation (Section 3.10 (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.10)) form. See (additional retrieval query parameters (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.9)). OPTIONAL. + Attributes []string `mandatory:"false" json:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If "attributes" query parameter is also available, union of the two is fetched. Valid values : all, always, never, request, default. Values are case-insensitive. OPTIONAL. + AttributeSets []AttributeSetsEnum `mandatory:"false" json:"attributeSets,omitempty"` +} + +func (m AuthenticationFactorSettingsSearchRequest) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m AuthenticationFactorSettingsSearchRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + for _, val := range m.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factor_settings_third_party_factor.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factor_settings_third_party_factor.go new file mode 100644 index 00000000000..87919a2a9ff --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factor_settings_third_party_factor.go @@ -0,0 +1,58 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// AuthenticationFactorSettingsThirdPartyFactor Settings related to third-party factor +// **Added In:** 19.2.1 +// **SCIM++ Properties:** +// - idcsSearchable: false +// - multiValued: false +// - mutability: readWrite +// - required: false +// - returned: default +// - type: complex +// - uniqueness: none +type AuthenticationFactorSettingsThirdPartyFactor struct { + + // To enable Duo Security factor + // **Added In:** 19.2.1 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: boolean + // - uniqueness: none + DuoSecurity *bool `mandatory:"true" json:"duoSecurity"` +} + +func (m AuthenticationFactorSettingsThirdPartyFactor) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m AuthenticationFactorSettingsThirdPartyFactor) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factor_settings_totp_settings.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factor_settings_totp_settings.go new file mode 100644 index 00000000000..2f2f2b1ca41 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factor_settings_totp_settings.go @@ -0,0 +1,232 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// AuthenticationFactorSettingsTotpSettings Settings related to Time-Based One-Time Passcodes (TOTP), such as hashing algo, totp time step, passcode length, and so on +// **SCIM++ Properties:** +// - idcsSearchable: false +// - multiValued: false +// - mutability: readWrite +// - required: true +// - returned: default +// - type: complex +// - uniqueness: none +type AuthenticationFactorSettingsTotpSettings struct { + + // The hashing algorithm to be used to calculate a One-Time Passcode. By default, the system uses SHA1. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + HashingAlgorithm AuthenticationFactorSettingsTotpSettingsHashingAlgorithmEnum `mandatory:"true" json:"hashingAlgorithm"` + + // Exact length of the One-Time Passcode that the system should generate + // **SCIM++ Properties:** + // - idcsMaxValue: 10 + // - idcsMinValue: 4 + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: integer + // - uniqueness: none + PasscodeLength *int `mandatory:"true" json:"passcodeLength"` + + // The duration of time (in days) after which the shared secret has to be refreshed + // **SCIM++ Properties:** + // - idcsMaxValue: 999 + // - idcsMinValue: 30 + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: integer + // - uniqueness: none + KeyRefreshIntervalInDays *int `mandatory:"true" json:"keyRefreshIntervalInDays"` + + // Time (in secs) to be used as the time step + // **SCIM++ Properties:** + // - idcsMaxValue: 300 + // - idcsMinValue: 30 + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: integer + // - uniqueness: none + TimeStepInSecs *int `mandatory:"true" json:"timeStepInSecs"` + + // The tolerance/step-size that the system should use when validating a One-Time Passcode + // **SCIM++ Properties:** + // - idcsMaxValue: 3 + // - idcsMinValue: 2 + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: integer + // - uniqueness: none + TimeStepTolerance *int `mandatory:"true" json:"timeStepTolerance"` + + // The period of time (in minutes) for which a One-Time Passcode that the system sends by Short Message Service (SMS) or by voice remains valid + // **SCIM++ Properties:** + // - idcsMaxValue: 60 + // - idcsMinValue: 2 + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: integer + // - uniqueness: none + SmsOtpValidityDurationInMins *int `mandatory:"true" json:"smsOtpValidityDurationInMins"` + + // The period of time (in seconds) that a JSON Web Token (JWT) is valid + // **SCIM++ Properties:** + // - idcsMaxValue: 99999 + // - idcsMinValue: 30 + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: integer + // - uniqueness: none + JwtValidityDurationInSecs *int `mandatory:"true" json:"jwtValidityDurationInSecs"` + + // Exact length of the Short Message Service (SMS) One-Time Passcode + // **SCIM++ Properties:** + // - idcsMaxValue: 10 + // - idcsMinValue: 4 + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: integer + // - uniqueness: none + SmsPasscodeLength *int `mandatory:"true" json:"smsPasscodeLength"` + + // The period of time (in minutes) that a one-time passcode remains valid that the system sends by email. + // **Added In:** 18.1.2 + // **SCIM++ Properties:** + // - idcsMaxValue: 60 + // - idcsMinValue: 2 + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: integer + // - uniqueness: none + EmailOtpValidityDurationInMins *int `mandatory:"true" json:"emailOtpValidityDurationInMins"` + + // Exact length of the email one-time passcode. + // **Added In:** 18.1.2 + // **SCIM++ Properties:** + // - idcsMaxValue: 10 + // - idcsMinValue: 4 + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: integer + // - uniqueness: none + EmailPasscodeLength *int `mandatory:"true" json:"emailPasscodeLength"` +} + +func (m AuthenticationFactorSettingsTotpSettings) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m AuthenticationFactorSettingsTotpSettings) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingAuthenticationFactorSettingsTotpSettingsHashingAlgorithmEnum(string(m.HashingAlgorithm)); !ok && m.HashingAlgorithm != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for HashingAlgorithm: %s. Supported values are: %s.", m.HashingAlgorithm, strings.Join(GetAuthenticationFactorSettingsTotpSettingsHashingAlgorithmEnumStringValues(), ","))) + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// AuthenticationFactorSettingsTotpSettingsHashingAlgorithmEnum Enum with underlying type: string +type AuthenticationFactorSettingsTotpSettingsHashingAlgorithmEnum string + +// Set of constants representing the allowable values for AuthenticationFactorSettingsTotpSettingsHashingAlgorithmEnum +const ( + AuthenticationFactorSettingsTotpSettingsHashingAlgorithmSha1 AuthenticationFactorSettingsTotpSettingsHashingAlgorithmEnum = "SHA1" + AuthenticationFactorSettingsTotpSettingsHashingAlgorithmSha256 AuthenticationFactorSettingsTotpSettingsHashingAlgorithmEnum = "SHA256" + AuthenticationFactorSettingsTotpSettingsHashingAlgorithmSha384 AuthenticationFactorSettingsTotpSettingsHashingAlgorithmEnum = "SHA384" + AuthenticationFactorSettingsTotpSettingsHashingAlgorithmSha512 AuthenticationFactorSettingsTotpSettingsHashingAlgorithmEnum = "SHA512" + AuthenticationFactorSettingsTotpSettingsHashingAlgorithmMd5 AuthenticationFactorSettingsTotpSettingsHashingAlgorithmEnum = "MD5" +) + +var mappingAuthenticationFactorSettingsTotpSettingsHashingAlgorithmEnum = map[string]AuthenticationFactorSettingsTotpSettingsHashingAlgorithmEnum{ + "SHA1": AuthenticationFactorSettingsTotpSettingsHashingAlgorithmSha1, + "SHA256": AuthenticationFactorSettingsTotpSettingsHashingAlgorithmSha256, + "SHA384": AuthenticationFactorSettingsTotpSettingsHashingAlgorithmSha384, + "SHA512": AuthenticationFactorSettingsTotpSettingsHashingAlgorithmSha512, + "MD5": AuthenticationFactorSettingsTotpSettingsHashingAlgorithmMd5, +} + +var mappingAuthenticationFactorSettingsTotpSettingsHashingAlgorithmEnumLowerCase = map[string]AuthenticationFactorSettingsTotpSettingsHashingAlgorithmEnum{ + "sha1": AuthenticationFactorSettingsTotpSettingsHashingAlgorithmSha1, + "sha256": AuthenticationFactorSettingsTotpSettingsHashingAlgorithmSha256, + "sha384": AuthenticationFactorSettingsTotpSettingsHashingAlgorithmSha384, + "sha512": AuthenticationFactorSettingsTotpSettingsHashingAlgorithmSha512, + "md5": AuthenticationFactorSettingsTotpSettingsHashingAlgorithmMd5, +} + +// GetAuthenticationFactorSettingsTotpSettingsHashingAlgorithmEnumValues Enumerates the set of values for AuthenticationFactorSettingsTotpSettingsHashingAlgorithmEnum +func GetAuthenticationFactorSettingsTotpSettingsHashingAlgorithmEnumValues() []AuthenticationFactorSettingsTotpSettingsHashingAlgorithmEnum { + values := make([]AuthenticationFactorSettingsTotpSettingsHashingAlgorithmEnum, 0) + for _, v := range mappingAuthenticationFactorSettingsTotpSettingsHashingAlgorithmEnum { + values = append(values, v) + } + return values +} + +// GetAuthenticationFactorSettingsTotpSettingsHashingAlgorithmEnumStringValues Enumerates the set of values in String for AuthenticationFactorSettingsTotpSettingsHashingAlgorithmEnum +func GetAuthenticationFactorSettingsTotpSettingsHashingAlgorithmEnumStringValues() []string { + return []string{ + "SHA1", + "SHA256", + "SHA384", + "SHA512", + "MD5", + } +} + +// GetMappingAuthenticationFactorSettingsTotpSettingsHashingAlgorithmEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingAuthenticationFactorSettingsTotpSettingsHashingAlgorithmEnum(val string) (AuthenticationFactorSettingsTotpSettingsHashingAlgorithmEnum, bool) { + enum, ok := mappingAuthenticationFactorSettingsTotpSettingsHashingAlgorithmEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factors_remover.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factors_remover.go new file mode 100644 index 00000000000..716600aa7f3 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factors_remover.go @@ -0,0 +1,234 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// AuthenticationFactorsRemover This schema defines the attributes of Authentication Factors Remover call. +type AuthenticationFactorsRemover struct { + + // REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: true + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Schemas []string `mandatory:"true" json:"schemas"` + + User *AuthenticationFactorsRemoverUser `mandatory:"true" json:"user"` + + // Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: always + // - type: string + // - uniqueness: global + Id *string `mandatory:"false" json:"id"` + + // Unique OCI identifier for the SCIM Resource. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: default + // - type: string + // - uniqueness: global + Ocid *string `mandatory:"false" json:"ocid"` + + Meta *Meta `mandatory:"false" json:"meta"` + + IdcsCreatedBy *IdcsCreatedBy `mandatory:"false" json:"idcsCreatedBy"` + + IdcsLastModifiedBy *IdcsLastModifiedBy `mandatory:"false" json:"idcsLastModifiedBy"` + + // Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsPreventedOperations []IdcsPreventedOperationsEnum `mandatory:"false" json:"idcsPreventedOperations,omitempty"` + + // A list of tags on this resource. + // **SCIM++ Properties:** + // - idcsCompositeKey: [key, value] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + Tags []Tags `mandatory:"false" json:"tags"` + + // A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + DeleteInProgress *bool `mandatory:"false" json:"deleteInProgress"` + + // The release number when the resource was upgraded. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsLastUpgradedInRelease *string `mandatory:"false" json:"idcsLastUpgradedInRelease"` + + // OCI Domain Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + DomainOcid *string `mandatory:"false" json:"domainOcid"` + + // OCI Compartment Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + CompartmentOcid *string `mandatory:"false" json:"compartmentOcid"` + + // OCI Tenant Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + TenancyOcid *string `mandatory:"false" json:"tenancyOcid"` + + // Specifies the type of factors to remove. Either MFA factors or AccountRecovery factors or All factors + // **SCIM++ Properties:** + // - type: string + // - multiValued: false + // - required: false + // - mutability: readWrite + // - returned: default + // - uniqueness: none + // - idcsSearchable: false + Type AuthenticationFactorsRemoverTypeEnum `mandatory:"false" json:"type,omitempty"` +} + +func (m AuthenticationFactorsRemover) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m AuthenticationFactorsRemover) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + for _, val := range m.IdcsPreventedOperations { + if _, ok := GetMappingIdcsPreventedOperationsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for IdcsPreventedOperations: %s. Supported values are: %s.", val, strings.Join(GetIdcsPreventedOperationsEnumStringValues(), ","))) + } + } + + if _, ok := GetMappingAuthenticationFactorsRemoverTypeEnum(string(m.Type)); !ok && m.Type != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Type: %s. Supported values are: %s.", m.Type, strings.Join(GetAuthenticationFactorsRemoverTypeEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// AuthenticationFactorsRemoverTypeEnum Enum with underlying type: string +type AuthenticationFactorsRemoverTypeEnum string + +// Set of constants representing the allowable values for AuthenticationFactorsRemoverTypeEnum +const ( + AuthenticationFactorsRemoverTypeKmsi AuthenticationFactorsRemoverTypeEnum = "KMSI" + AuthenticationFactorsRemoverTypeMfa AuthenticationFactorsRemoverTypeEnum = "MFA" + AuthenticationFactorsRemoverTypeAccountrecovery AuthenticationFactorsRemoverTypeEnum = "ACCOUNTRECOVERY" + AuthenticationFactorsRemoverTypeAll AuthenticationFactorsRemoverTypeEnum = "ALL" +) + +var mappingAuthenticationFactorsRemoverTypeEnum = map[string]AuthenticationFactorsRemoverTypeEnum{ + "KMSI": AuthenticationFactorsRemoverTypeKmsi, + "MFA": AuthenticationFactorsRemoverTypeMfa, + "ACCOUNTRECOVERY": AuthenticationFactorsRemoverTypeAccountrecovery, + "ALL": AuthenticationFactorsRemoverTypeAll, +} + +var mappingAuthenticationFactorsRemoverTypeEnumLowerCase = map[string]AuthenticationFactorsRemoverTypeEnum{ + "kmsi": AuthenticationFactorsRemoverTypeKmsi, + "mfa": AuthenticationFactorsRemoverTypeMfa, + "accountrecovery": AuthenticationFactorsRemoverTypeAccountrecovery, + "all": AuthenticationFactorsRemoverTypeAll, +} + +// GetAuthenticationFactorsRemoverTypeEnumValues Enumerates the set of values for AuthenticationFactorsRemoverTypeEnum +func GetAuthenticationFactorsRemoverTypeEnumValues() []AuthenticationFactorsRemoverTypeEnum { + values := make([]AuthenticationFactorsRemoverTypeEnum, 0) + for _, v := range mappingAuthenticationFactorsRemoverTypeEnum { + values = append(values, v) + } + return values +} + +// GetAuthenticationFactorsRemoverTypeEnumStringValues Enumerates the set of values in String for AuthenticationFactorsRemoverTypeEnum +func GetAuthenticationFactorsRemoverTypeEnumStringValues() []string { + return []string{ + "KMSI", + "MFA", + "ACCOUNTRECOVERY", + "ALL", + } +} + +// GetMappingAuthenticationFactorsRemoverTypeEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingAuthenticationFactorsRemoverTypeEnum(val string) (AuthenticationFactorsRemoverTypeEnum, bool) { + enum, ok := mappingAuthenticationFactorsRemoverTypeEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factors_remover_user.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factors_remover_user.go new file mode 100644 index 00000000000..a387f41889d --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/authentication_factors_remover_user.go @@ -0,0 +1,93 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// AuthenticationFactorsRemoverUser User for whom the authentication factors need to be deleted +// **SCIM++ Properties:** +// - caseExact: false +// - idcsSearchable: true +// - multiValued: false +// - mutability: readWrite +// - required: true +// - returned: default +// - type: complex +// - uniqueness: none +type AuthenticationFactorsRemoverUser struct { + + // The identifier of the user + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: always + // - type: string + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` + + // The URI that corresponds to the member Resource for whom the factors will be deleted + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` + + // User display name + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Display *string `mandatory:"false" json:"display"` + + // The OCID of the user + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: always + // - type: string + // - uniqueness: none + Ocid *string `mandatory:"false" json:"ocid"` +} + +func (m AuthenticationFactorsRemoverUser) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m AuthenticationFactorsRemoverUser) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_api_key_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_api_key_request_response.go new file mode 100644 index 00000000000..901911cf232 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_api_key_request_response.go @@ -0,0 +1,124 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// CreateApiKeyRequest wrapper for the CreateApiKey operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/CreateApiKey.go.html to see an example of how to use CreateApiKeyRequest. +type CreateApiKeyRequest struct { + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // ApiKey schema. + // Before you specify an attribute-value in a request to create a resource, please check the **'mutability'** property of that attribute in the resource-type schema below. Clicking on an attribute-row will expand that row to show the **SCIM++ Properties** of that attribute. + // - Your request to create, update or replace a resource may specify in its payload a value for any attribute that is defined as *mutability:readWrite* or *mutability:writeOnly* or *mutability:immutable*: + // - The SCIM APIs to create a resource will ignore silently any value that you specify for an attribute that is defined as *mutability:readOnly*. + // - The SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify a value for an attribute that is defined as *mutability:readOnly*. + // - Similarly, the SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify any value for an attribute that is defined as *mutability:immutable* and that already has a value in the specified resource. + // Also, before you use the query-parameter attributes to request specific attributes, please check the **'returned'** property of that attribute in the resource-type schema below: + // - Your request to read a resource (or to search a resource-type) can specify as the value of attributes any attributes that are defined as *returned:default* or *returned:request* or *returned:always*: + // - If you request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the set of attributes that you requested, as well as any attribute that is defined as *returned:always*. + // - If you do not request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the the set of attributes defined as *returned:default*, as well as any attribute that is defined as *returned:always*. + // - The SCIM APIs to read a resource (or to search a resource-type) will ignore silently any request to return an attribute that is defined as *returned:never*. + ApiKey `contributesTo:"body"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request CreateApiKeyRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request CreateApiKeyRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request CreateApiKeyRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request CreateApiKeyRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request CreateApiKeyRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// CreateApiKeyResponse wrapper for the CreateApiKey operation +type CreateApiKeyResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The ApiKey instance + ApiKey `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` +} + +func (response CreateApiKeyResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response CreateApiKeyResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_auth_token_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_auth_token_request_response.go new file mode 100644 index 00000000000..a6a50125dde --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_auth_token_request_response.go @@ -0,0 +1,124 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// CreateAuthTokenRequest wrapper for the CreateAuthToken operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/CreateAuthToken.go.html to see an example of how to use CreateAuthTokenRequest. +type CreateAuthTokenRequest struct { + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // AuthToken schema. + // Before you specify an attribute-value in a request to create a resource, please check the **'mutability'** property of that attribute in the resource-type schema below. Clicking on an attribute-row will expand that row to show the **SCIM++ Properties** of that attribute. + // - Your request to create, update or replace a resource may specify in its payload a value for any attribute that is defined as *mutability:readWrite* or *mutability:writeOnly* or *mutability:immutable*: + // - The SCIM APIs to create a resource will ignore silently any value that you specify for an attribute that is defined as *mutability:readOnly*. + // - The SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify a value for an attribute that is defined as *mutability:readOnly*. + // - Similarly, the SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify any value for an attribute that is defined as *mutability:immutable* and that already has a value in the specified resource. + // Also, before you use the query-parameter attributes to request specific attributes, please check the **'returned'** property of that attribute in the resource-type schema below: + // - Your request to read a resource (or to search a resource-type) can specify as the value of attributes any attributes that are defined as *returned:default* or *returned:request* or *returned:always*: + // - If you request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the set of attributes that you requested, as well as any attribute that is defined as *returned:always*. + // - If you do not request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the the set of attributes defined as *returned:default*, as well as any attribute that is defined as *returned:always*. + // - The SCIM APIs to read a resource (or to search a resource-type) will ignore silently any request to return an attribute that is defined as *returned:never*. + AuthToken `contributesTo:"body"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request CreateAuthTokenRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request CreateAuthTokenRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request CreateAuthTokenRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request CreateAuthTokenRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request CreateAuthTokenRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// CreateAuthTokenResponse wrapper for the CreateAuthToken operation +type CreateAuthTokenResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The AuthToken instance + AuthToken `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` +} + +func (response CreateAuthTokenResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response CreateAuthTokenResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_authentication_factors_remover_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_authentication_factors_remover_request_response.go new file mode 100644 index 00000000000..ae4fdd6f122 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_authentication_factors_remover_request_response.go @@ -0,0 +1,112 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// CreateAuthenticationFactorsRemoverRequest wrapper for the CreateAuthenticationFactorsRemover operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/CreateAuthenticationFactorsRemover.go.html to see an example of how to use CreateAuthenticationFactorsRemoverRequest. +type CreateAuthenticationFactorsRemoverRequest struct { + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // AuthenticationFactorsRemover schema. + // Before you specify an attribute-value in a request to create a resource, please check the **'mutability'** property of that attribute in the resource-type schema below. Clicking on an attribute-row will expand that row to show the **SCIM++ Properties** of that attribute. + // - Your request to create, update or replace a resource may specify in its payload a value for any attribute that is defined as *mutability:readWrite* or *mutability:writeOnly* or *mutability:immutable*: + // - The SCIM APIs to create a resource will ignore silently any value that you specify for an attribute that is defined as *mutability:readOnly*. + // - The SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify a value for an attribute that is defined as *mutability:readOnly*. + // - Similarly, the SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify any value for an attribute that is defined as *mutability:immutable* and that already has a value in the specified resource. + // Also, before you use the query-parameter attributes to request specific attributes, please check the **'returned'** property of that attribute in the resource-type schema below: + // - Your request to read a resource (or to search a resource-type) can specify as the value of attributes any attributes that are defined as *returned:default* or *returned:request* or *returned:always*: + // - If you request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the set of attributes that you requested, as well as any attribute that is defined as *returned:always*. + // - If you do not request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the the set of attributes defined as *returned:default*, as well as any attribute that is defined as *returned:always*. + // - The SCIM APIs to read a resource (or to search a resource-type) will ignore silently any request to return an attribute that is defined as *returned:never*. + AuthenticationFactorsRemover `contributesTo:"body"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request CreateAuthenticationFactorsRemoverRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request CreateAuthenticationFactorsRemoverRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request CreateAuthenticationFactorsRemoverRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request CreateAuthenticationFactorsRemoverRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request CreateAuthenticationFactorsRemoverRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// CreateAuthenticationFactorsRemoverResponse wrapper for the CreateAuthenticationFactorsRemover operation +type CreateAuthenticationFactorsRemoverResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The AuthenticationFactorsRemover instance + AuthenticationFactorsRemover `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` +} + +func (response CreateAuthenticationFactorsRemoverResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response CreateAuthenticationFactorsRemoverResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_customer_secret_key_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_customer_secret_key_request_response.go new file mode 100644 index 00000000000..7ee1da88579 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_customer_secret_key_request_response.go @@ -0,0 +1,124 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// CreateCustomerSecretKeyRequest wrapper for the CreateCustomerSecretKey operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/CreateCustomerSecretKey.go.html to see an example of how to use CreateCustomerSecretKeyRequest. +type CreateCustomerSecretKeyRequest struct { + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // CustomerSecretKey schema. + // Before you specify an attribute-value in a request to create a resource, please check the **'mutability'** property of that attribute in the resource-type schema below. Clicking on an attribute-row will expand that row to show the **SCIM++ Properties** of that attribute. + // - Your request to create, update or replace a resource may specify in its payload a value for any attribute that is defined as *mutability:readWrite* or *mutability:writeOnly* or *mutability:immutable*: + // - The SCIM APIs to create a resource will ignore silently any value that you specify for an attribute that is defined as *mutability:readOnly*. + // - The SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify a value for an attribute that is defined as *mutability:readOnly*. + // - Similarly, the SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify any value for an attribute that is defined as *mutability:immutable* and that already has a value in the specified resource. + // Also, before you use the query-parameter attributes to request specific attributes, please check the **'returned'** property of that attribute in the resource-type schema below: + // - Your request to read a resource (or to search a resource-type) can specify as the value of attributes any attributes that are defined as *returned:default* or *returned:request* or *returned:always*: + // - If you request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the set of attributes that you requested, as well as any attribute that is defined as *returned:always*. + // - If you do not request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the the set of attributes defined as *returned:default*, as well as any attribute that is defined as *returned:always*. + // - The SCIM APIs to read a resource (or to search a resource-type) will ignore silently any request to return an attribute that is defined as *returned:never*. + CustomerSecretKey `contributesTo:"body"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request CreateCustomerSecretKeyRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request CreateCustomerSecretKeyRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request CreateCustomerSecretKeyRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request CreateCustomerSecretKeyRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request CreateCustomerSecretKeyRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// CreateCustomerSecretKeyResponse wrapper for the CreateCustomerSecretKey operation +type CreateCustomerSecretKeyResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The CustomerSecretKey instance + CustomerSecretKey `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` +} + +func (response CreateCustomerSecretKeyResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response CreateCustomerSecretKeyResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_dynamic_resource_group_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_dynamic_resource_group_request_response.go new file mode 100644 index 00000000000..432e0c1045e --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_dynamic_resource_group_request_response.go @@ -0,0 +1,124 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// CreateDynamicResourceGroupRequest wrapper for the CreateDynamicResourceGroup operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/CreateDynamicResourceGroup.go.html to see an example of how to use CreateDynamicResourceGroupRequest. +type CreateDynamicResourceGroupRequest struct { + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // DynamicResourceGroup schema. + // Before you specify an attribute-value in a request to create a resource, please check the **'mutability'** property of that attribute in the resource-type schema below. Clicking on an attribute-row will expand that row to show the **SCIM++ Properties** of that attribute. + // - Your request to create, update or replace a resource may specify in its payload a value for any attribute that is defined as *mutability:readWrite* or *mutability:writeOnly* or *mutability:immutable*: + // - The SCIM APIs to create a resource will ignore silently any value that you specify for an attribute that is defined as *mutability:readOnly*. + // - The SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify a value for an attribute that is defined as *mutability:readOnly*. + // - Similarly, the SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify any value for an attribute that is defined as *mutability:immutable* and that already has a value in the specified resource. + // Also, before you use the query-parameter attributes to request specific attributes, please check the **'returned'** property of that attribute in the resource-type schema below: + // - Your request to read a resource (or to search a resource-type) can specify as the value of attributes any attributes that are defined as *returned:default* or *returned:request* or *returned:always*: + // - If you request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the set of attributes that you requested, as well as any attribute that is defined as *returned:always*. + // - If you do not request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the the set of attributes defined as *returned:default*, as well as any attribute that is defined as *returned:always*. + // - The SCIM APIs to read a resource (or to search a resource-type) will ignore silently any request to return an attribute that is defined as *returned:never*. + DynamicResourceGroup `contributesTo:"body"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request CreateDynamicResourceGroupRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request CreateDynamicResourceGroupRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request CreateDynamicResourceGroupRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request CreateDynamicResourceGroupRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request CreateDynamicResourceGroupRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// CreateDynamicResourceGroupResponse wrapper for the CreateDynamicResourceGroup operation +type CreateDynamicResourceGroupResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The DynamicResourceGroup instance + DynamicResourceGroup `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` +} + +func (response CreateDynamicResourceGroupResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response CreateDynamicResourceGroupResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_group_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_group_request_response.go new file mode 100644 index 00000000000..9af374cd758 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_group_request_response.go @@ -0,0 +1,124 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// CreateGroupRequest wrapper for the CreateGroup operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/CreateGroup.go.html to see an example of how to use CreateGroupRequest. +type CreateGroupRequest struct { + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // Group schema. + // Before you specify an attribute-value in a request to create a resource, please check the **'mutability'** property of that attribute in the resource-type schema below. Clicking on an attribute-row will expand that row to show the **SCIM++ Properties** of that attribute. + // - Your request to create, update or replace a resource may specify in its payload a value for any attribute that is defined as *mutability:readWrite* or *mutability:writeOnly* or *mutability:immutable*: + // - The SCIM APIs to create a resource will ignore silently any value that you specify for an attribute that is defined as *mutability:readOnly*. + // - The SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify a value for an attribute that is defined as *mutability:readOnly*. + // - Similarly, the SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify any value for an attribute that is defined as *mutability:immutable* and that already has a value in the specified resource. + // Also, before you use the query-parameter attributes to request specific attributes, please check the **'returned'** property of that attribute in the resource-type schema below: + // - Your request to read a resource (or to search a resource-type) can specify as the value of attributes any attributes that are defined as *returned:default* or *returned:request* or *returned:always*: + // - If you request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the set of attributes that you requested, as well as any attribute that is defined as *returned:always*. + // - If you do not request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the the set of attributes defined as *returned:default*, as well as any attribute that is defined as *returned:always*. + // - The SCIM APIs to read a resource (or to search a resource-type) will ignore silently any request to return an attribute that is defined as *returned:never*. + Group `contributesTo:"body"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request CreateGroupRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request CreateGroupRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request CreateGroupRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request CreateGroupRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request CreateGroupRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// CreateGroupResponse wrapper for the CreateGroup operation +type CreateGroupResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The Group instance + Group `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` +} + +func (response CreateGroupResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response CreateGroupResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_identity_provider_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_identity_provider_request_response.go new file mode 100644 index 00000000000..646f083c360 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_identity_provider_request_response.go @@ -0,0 +1,124 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// CreateIdentityProviderRequest wrapper for the CreateIdentityProvider operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/CreateIdentityProvider.go.html to see an example of how to use CreateIdentityProviderRequest. +type CreateIdentityProviderRequest struct { + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // IdentityProvider schema. + // Before you specify an attribute-value in a request to create a resource, please check the **'mutability'** property of that attribute in the resource-type schema below. Clicking on an attribute-row will expand that row to show the **SCIM++ Properties** of that attribute. + // - Your request to create, update or replace a resource may specify in its payload a value for any attribute that is defined as *mutability:readWrite* or *mutability:writeOnly* or *mutability:immutable*: + // - The SCIM APIs to create a resource will ignore silently any value that you specify for an attribute that is defined as *mutability:readOnly*. + // - The SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify a value for an attribute that is defined as *mutability:readOnly*. + // - Similarly, the SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify any value for an attribute that is defined as *mutability:immutable* and that already has a value in the specified resource. + // Also, before you use the query-parameter attributes to request specific attributes, please check the **'returned'** property of that attribute in the resource-type schema below: + // - Your request to read a resource (or to search a resource-type) can specify as the value of attributes any attributes that are defined as *returned:default* or *returned:request* or *returned:always*: + // - If you request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the set of attributes that you requested, as well as any attribute that is defined as *returned:always*. + // - If you do not request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the the set of attributes defined as *returned:default*, as well as any attribute that is defined as *returned:always*. + // - The SCIM APIs to read a resource (or to search a resource-type) will ignore silently any request to return an attribute that is defined as *returned:never*. + IdentityProvider `contributesTo:"body"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request CreateIdentityProviderRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request CreateIdentityProviderRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request CreateIdentityProviderRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request CreateIdentityProviderRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request CreateIdentityProviderRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// CreateIdentityProviderResponse wrapper for the CreateIdentityProvider operation +type CreateIdentityProviderResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The IdentityProvider instance + IdentityProvider `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` +} + +func (response CreateIdentityProviderResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response CreateIdentityProviderResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_me_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_me_request_response.go new file mode 100644 index 00000000000..0e8eff912c3 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_me_request_response.go @@ -0,0 +1,124 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// CreateMeRequest wrapper for the CreateMe operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/CreateMe.go.html to see an example of how to use CreateMeRequest. +type CreateMeRequest struct { + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // Me schema. + // Before you specify an attribute-value in a request to create a resource, please check the **'mutability'** property of that attribute in the resource-type schema below. Clicking on an attribute-row will expand that row to show the **SCIM++ Properties** of that attribute. + // - Your request to create, update or replace a resource may specify in its payload a value for any attribute that is defined as *mutability:readWrite* or *mutability:writeOnly* or *mutability:immutable*: + // - The SCIM APIs to create a resource will ignore silently any value that you specify for an attribute that is defined as *mutability:readOnly*. + // - The SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify a value for an attribute that is defined as *mutability:readOnly*. + // - Similarly, the SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify any value for an attribute that is defined as *mutability:immutable* and that already has a value in the specified resource. + // Also, before you use the query-parameter attributes to request specific attributes, please check the **'returned'** property of that attribute in the resource-type schema below: + // - Your request to read a resource (or to search a resource-type) can specify as the value of attributes any attributes that are defined as *returned:default* or *returned:request* or *returned:always*: + // - If you request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the set of attributes that you requested, as well as any attribute that is defined as *returned:always*. + // - If you do not request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the the set of attributes defined as *returned:default*, as well as any attribute that is defined as *returned:always*. + // - The SCIM APIs to read a resource (or to search a resource-type) will ignore silently any request to return an attribute that is defined as *returned:never*. + Me `contributesTo:"body"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request CreateMeRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request CreateMeRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request CreateMeRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request CreateMeRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request CreateMeRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// CreateMeResponse wrapper for the CreateMe operation +type CreateMeResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The Me instance + Me `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` +} + +func (response CreateMeResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response CreateMeResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_my_api_key_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_my_api_key_request_response.go new file mode 100644 index 00000000000..1b8627da283 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_my_api_key_request_response.go @@ -0,0 +1,112 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// CreateMyApiKeyRequest wrapper for the CreateMyApiKey operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/CreateMyApiKey.go.html to see an example of how to use CreateMyApiKeyRequest. +type CreateMyApiKeyRequest struct { + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // MyApiKey schema. + // Before you specify an attribute-value in a request to create a resource, please check the **'mutability'** property of that attribute in the resource-type schema below. Clicking on an attribute-row will expand that row to show the **SCIM++ Properties** of that attribute. + // - Your request to create, update or replace a resource may specify in its payload a value for any attribute that is defined as *mutability:readWrite* or *mutability:writeOnly* or *mutability:immutable*: + // - The SCIM APIs to create a resource will ignore silently any value that you specify for an attribute that is defined as *mutability:readOnly*. + // - The SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify a value for an attribute that is defined as *mutability:readOnly*. + // - Similarly, the SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify any value for an attribute that is defined as *mutability:immutable* and that already has a value in the specified resource. + // Also, before you use the query-parameter attributes to request specific attributes, please check the **'returned'** property of that attribute in the resource-type schema below: + // - Your request to read a resource (or to search a resource-type) can specify as the value of attributes any attributes that are defined as *returned:default* or *returned:request* or *returned:always*: + // - If you request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the set of attributes that you requested, as well as any attribute that is defined as *returned:always*. + // - If you do not request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the the set of attributes defined as *returned:default*, as well as any attribute that is defined as *returned:always*. + // - The SCIM APIs to read a resource (or to search a resource-type) will ignore silently any request to return an attribute that is defined as *returned:never*. + MyApiKey `contributesTo:"body"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request CreateMyApiKeyRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request CreateMyApiKeyRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request CreateMyApiKeyRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request CreateMyApiKeyRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request CreateMyApiKeyRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// CreateMyApiKeyResponse wrapper for the CreateMyApiKey operation +type CreateMyApiKeyResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The MyApiKey instance + MyApiKey `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` +} + +func (response CreateMyApiKeyResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response CreateMyApiKeyResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_my_auth_token_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_my_auth_token_request_response.go new file mode 100644 index 00000000000..f50a7d4da00 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_my_auth_token_request_response.go @@ -0,0 +1,112 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// CreateMyAuthTokenRequest wrapper for the CreateMyAuthToken operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/CreateMyAuthToken.go.html to see an example of how to use CreateMyAuthTokenRequest. +type CreateMyAuthTokenRequest struct { + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // MyAuthToken schema. + // Before you specify an attribute-value in a request to create a resource, please check the **'mutability'** property of that attribute in the resource-type schema below. Clicking on an attribute-row will expand that row to show the **SCIM++ Properties** of that attribute. + // - Your request to create, update or replace a resource may specify in its payload a value for any attribute that is defined as *mutability:readWrite* or *mutability:writeOnly* or *mutability:immutable*: + // - The SCIM APIs to create a resource will ignore silently any value that you specify for an attribute that is defined as *mutability:readOnly*. + // - The SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify a value for an attribute that is defined as *mutability:readOnly*. + // - Similarly, the SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify any value for an attribute that is defined as *mutability:immutable* and that already has a value in the specified resource. + // Also, before you use the query-parameter attributes to request specific attributes, please check the **'returned'** property of that attribute in the resource-type schema below: + // - Your request to read a resource (or to search a resource-type) can specify as the value of attributes any attributes that are defined as *returned:default* or *returned:request* or *returned:always*: + // - If you request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the set of attributes that you requested, as well as any attribute that is defined as *returned:always*. + // - If you do not request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the the set of attributes defined as *returned:default*, as well as any attribute that is defined as *returned:always*. + // - The SCIM APIs to read a resource (or to search a resource-type) will ignore silently any request to return an attribute that is defined as *returned:never*. + MyAuthToken `contributesTo:"body"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request CreateMyAuthTokenRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request CreateMyAuthTokenRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request CreateMyAuthTokenRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request CreateMyAuthTokenRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request CreateMyAuthTokenRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// CreateMyAuthTokenResponse wrapper for the CreateMyAuthToken operation +type CreateMyAuthTokenResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The MyAuthToken instance + MyAuthToken `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` +} + +func (response CreateMyAuthTokenResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response CreateMyAuthTokenResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_my_authentication_factor_initiator_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_my_authentication_factor_initiator_request_response.go new file mode 100644 index 00000000000..63abf385ae4 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_my_authentication_factor_initiator_request_response.go @@ -0,0 +1,112 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// CreateMyAuthenticationFactorInitiatorRequest wrapper for the CreateMyAuthenticationFactorInitiator operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/CreateMyAuthenticationFactorInitiator.go.html to see an example of how to use CreateMyAuthenticationFactorInitiatorRequest. +type CreateMyAuthenticationFactorInitiatorRequest struct { + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // MyAuthenticationFactorInitiator schema. + // Before you specify an attribute-value in a request to create a resource, please check the **'mutability'** property of that attribute in the resource-type schema below. Clicking on an attribute-row will expand that row to show the **SCIM++ Properties** of that attribute. + // - Your request to create, update or replace a resource may specify in its payload a value for any attribute that is defined as *mutability:readWrite* or *mutability:writeOnly* or *mutability:immutable*: + // - The SCIM APIs to create a resource will ignore silently any value that you specify for an attribute that is defined as *mutability:readOnly*. + // - The SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify a value for an attribute that is defined as *mutability:readOnly*. + // - Similarly, the SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify any value for an attribute that is defined as *mutability:immutable* and that already has a value in the specified resource. + // Also, before you use the query-parameter attributes to request specific attributes, please check the **'returned'** property of that attribute in the resource-type schema below: + // - Your request to read a resource (or to search a resource-type) can specify as the value of attributes any attributes that are defined as *returned:default* or *returned:request* or *returned:always*: + // - If you request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the set of attributes that you requested, as well as any attribute that is defined as *returned:always*. + // - If you do not request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the the set of attributes defined as *returned:default*, as well as any attribute that is defined as *returned:always*. + // - The SCIM APIs to read a resource (or to search a resource-type) will ignore silently any request to return an attribute that is defined as *returned:never*. + MyAuthenticationFactorInitiator `contributesTo:"body"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request CreateMyAuthenticationFactorInitiatorRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request CreateMyAuthenticationFactorInitiatorRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request CreateMyAuthenticationFactorInitiatorRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request CreateMyAuthenticationFactorInitiatorRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request CreateMyAuthenticationFactorInitiatorRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// CreateMyAuthenticationFactorInitiatorResponse wrapper for the CreateMyAuthenticationFactorInitiator operation +type CreateMyAuthenticationFactorInitiatorResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The MyAuthenticationFactorInitiator instance + MyAuthenticationFactorInitiator `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` +} + +func (response CreateMyAuthenticationFactorInitiatorResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response CreateMyAuthenticationFactorInitiatorResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_my_authentication_factor_validator_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_my_authentication_factor_validator_request_response.go new file mode 100644 index 00000000000..721037e003d --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_my_authentication_factor_validator_request_response.go @@ -0,0 +1,112 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// CreateMyAuthenticationFactorValidatorRequest wrapper for the CreateMyAuthenticationFactorValidator operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/CreateMyAuthenticationFactorValidator.go.html to see an example of how to use CreateMyAuthenticationFactorValidatorRequest. +type CreateMyAuthenticationFactorValidatorRequest struct { + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // MyAuthenticationFactorValidator schema. + // Before you specify an attribute-value in a request to create a resource, please check the **'mutability'** property of that attribute in the resource-type schema below. Clicking on an attribute-row will expand that row to show the **SCIM++ Properties** of that attribute. + // - Your request to create, update or replace a resource may specify in its payload a value for any attribute that is defined as *mutability:readWrite* or *mutability:writeOnly* or *mutability:immutable*: + // - The SCIM APIs to create a resource will ignore silently any value that you specify for an attribute that is defined as *mutability:readOnly*. + // - The SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify a value for an attribute that is defined as *mutability:readOnly*. + // - Similarly, the SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify any value for an attribute that is defined as *mutability:immutable* and that already has a value in the specified resource. + // Also, before you use the query-parameter attributes to request specific attributes, please check the **'returned'** property of that attribute in the resource-type schema below: + // - Your request to read a resource (or to search a resource-type) can specify as the value of attributes any attributes that are defined as *returned:default* or *returned:request* or *returned:always*: + // - If you request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the set of attributes that you requested, as well as any attribute that is defined as *returned:always*. + // - If you do not request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the the set of attributes defined as *returned:default*, as well as any attribute that is defined as *returned:always*. + // - The SCIM APIs to read a resource (or to search a resource-type) will ignore silently any request to return an attribute that is defined as *returned:never*. + MyAuthenticationFactorValidator `contributesTo:"body"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request CreateMyAuthenticationFactorValidatorRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request CreateMyAuthenticationFactorValidatorRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request CreateMyAuthenticationFactorValidatorRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request CreateMyAuthenticationFactorValidatorRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request CreateMyAuthenticationFactorValidatorRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// CreateMyAuthenticationFactorValidatorResponse wrapper for the CreateMyAuthenticationFactorValidator operation +type CreateMyAuthenticationFactorValidatorResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The MyAuthenticationFactorValidator instance + MyAuthenticationFactorValidator `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` +} + +func (response CreateMyAuthenticationFactorValidatorResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response CreateMyAuthenticationFactorValidatorResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_my_authentication_factors_remover_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_my_authentication_factors_remover_request_response.go new file mode 100644 index 00000000000..bf055c7b62d --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_my_authentication_factors_remover_request_response.go @@ -0,0 +1,112 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// CreateMyAuthenticationFactorsRemoverRequest wrapper for the CreateMyAuthenticationFactorsRemover operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/CreateMyAuthenticationFactorsRemover.go.html to see an example of how to use CreateMyAuthenticationFactorsRemoverRequest. +type CreateMyAuthenticationFactorsRemoverRequest struct { + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // MyAuthenticationFactorsRemover schema. + // Before you specify an attribute-value in a request to create a resource, please check the **'mutability'** property of that attribute in the resource-type schema below. Clicking on an attribute-row will expand that row to show the **SCIM++ Properties** of that attribute. + // - Your request to create, update or replace a resource may specify in its payload a value for any attribute that is defined as *mutability:readWrite* or *mutability:writeOnly* or *mutability:immutable*: + // - The SCIM APIs to create a resource will ignore silently any value that you specify for an attribute that is defined as *mutability:readOnly*. + // - The SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify a value for an attribute that is defined as *mutability:readOnly*. + // - Similarly, the SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify any value for an attribute that is defined as *mutability:immutable* and that already has a value in the specified resource. + // Also, before you use the query-parameter attributes to request specific attributes, please check the **'returned'** property of that attribute in the resource-type schema below: + // - Your request to read a resource (or to search a resource-type) can specify as the value of attributes any attributes that are defined as *returned:default* or *returned:request* or *returned:always*: + // - If you request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the set of attributes that you requested, as well as any attribute that is defined as *returned:always*. + // - If you do not request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the the set of attributes defined as *returned:default*, as well as any attribute that is defined as *returned:always*. + // - The SCIM APIs to read a resource (or to search a resource-type) will ignore silently any request to return an attribute that is defined as *returned:never*. + MyAuthenticationFactorsRemover `contributesTo:"body"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request CreateMyAuthenticationFactorsRemoverRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request CreateMyAuthenticationFactorsRemoverRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request CreateMyAuthenticationFactorsRemoverRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request CreateMyAuthenticationFactorsRemoverRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request CreateMyAuthenticationFactorsRemoverRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// CreateMyAuthenticationFactorsRemoverResponse wrapper for the CreateMyAuthenticationFactorsRemover operation +type CreateMyAuthenticationFactorsRemoverResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The MyAuthenticationFactorsRemover instance + MyAuthenticationFactorsRemover `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` +} + +func (response CreateMyAuthenticationFactorsRemoverResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response CreateMyAuthenticationFactorsRemoverResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_my_customer_secret_key_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_my_customer_secret_key_request_response.go new file mode 100644 index 00000000000..08c9b9e1b62 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_my_customer_secret_key_request_response.go @@ -0,0 +1,112 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// CreateMyCustomerSecretKeyRequest wrapper for the CreateMyCustomerSecretKey operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/CreateMyCustomerSecretKey.go.html to see an example of how to use CreateMyCustomerSecretKeyRequest. +type CreateMyCustomerSecretKeyRequest struct { + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // MyCustomerSecretKey schema. + // Before you specify an attribute-value in a request to create a resource, please check the **'mutability'** property of that attribute in the resource-type schema below. Clicking on an attribute-row will expand that row to show the **SCIM++ Properties** of that attribute. + // - Your request to create, update or replace a resource may specify in its payload a value for any attribute that is defined as *mutability:readWrite* or *mutability:writeOnly* or *mutability:immutable*: + // - The SCIM APIs to create a resource will ignore silently any value that you specify for an attribute that is defined as *mutability:readOnly*. + // - The SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify a value for an attribute that is defined as *mutability:readOnly*. + // - Similarly, the SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify any value for an attribute that is defined as *mutability:immutable* and that already has a value in the specified resource. + // Also, before you use the query-parameter attributes to request specific attributes, please check the **'returned'** property of that attribute in the resource-type schema below: + // - Your request to read a resource (or to search a resource-type) can specify as the value of attributes any attributes that are defined as *returned:default* or *returned:request* or *returned:always*: + // - If you request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the set of attributes that you requested, as well as any attribute that is defined as *returned:always*. + // - If you do not request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the the set of attributes defined as *returned:default*, as well as any attribute that is defined as *returned:always*. + // - The SCIM APIs to read a resource (or to search a resource-type) will ignore silently any request to return an attribute that is defined as *returned:never*. + MyCustomerSecretKey `contributesTo:"body"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request CreateMyCustomerSecretKeyRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request CreateMyCustomerSecretKeyRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request CreateMyCustomerSecretKeyRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request CreateMyCustomerSecretKeyRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request CreateMyCustomerSecretKeyRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// CreateMyCustomerSecretKeyResponse wrapper for the CreateMyCustomerSecretKey operation +type CreateMyCustomerSecretKeyResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The MyCustomerSecretKey instance + MyCustomerSecretKey `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` +} + +func (response CreateMyCustomerSecretKeyResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response CreateMyCustomerSecretKeyResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_my_o_auth2_client_credential_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_my_o_auth2_client_credential_request_response.go new file mode 100644 index 00000000000..9264b68d23e --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_my_o_auth2_client_credential_request_response.go @@ -0,0 +1,112 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// CreateMyOAuth2ClientCredentialRequest wrapper for the CreateMyOAuth2ClientCredential operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/CreateMyOAuth2ClientCredential.go.html to see an example of how to use CreateMyOAuth2ClientCredentialRequest. +type CreateMyOAuth2ClientCredentialRequest struct { + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // MyOAuth2ClientCredential schema. + // Before you specify an attribute-value in a request to create a resource, please check the **'mutability'** property of that attribute in the resource-type schema below. Clicking on an attribute-row will expand that row to show the **SCIM++ Properties** of that attribute. + // - Your request to create, update or replace a resource may specify in its payload a value for any attribute that is defined as *mutability:readWrite* or *mutability:writeOnly* or *mutability:immutable*: + // - The SCIM APIs to create a resource will ignore silently any value that you specify for an attribute that is defined as *mutability:readOnly*. + // - The SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify a value for an attribute that is defined as *mutability:readOnly*. + // - Similarly, the SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify any value for an attribute that is defined as *mutability:immutable* and that already has a value in the specified resource. + // Also, before you use the query-parameter attributes to request specific attributes, please check the **'returned'** property of that attribute in the resource-type schema below: + // - Your request to read a resource (or to search a resource-type) can specify as the value of attributes any attributes that are defined as *returned:default* or *returned:request* or *returned:always*: + // - If you request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the set of attributes that you requested, as well as any attribute that is defined as *returned:always*. + // - If you do not request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the the set of attributes defined as *returned:default*, as well as any attribute that is defined as *returned:always*. + // - The SCIM APIs to read a resource (or to search a resource-type) will ignore silently any request to return an attribute that is defined as *returned:never*. + MyOAuth2ClientCredential `contributesTo:"body"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request CreateMyOAuth2ClientCredentialRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request CreateMyOAuth2ClientCredentialRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request CreateMyOAuth2ClientCredentialRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request CreateMyOAuth2ClientCredentialRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request CreateMyOAuth2ClientCredentialRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// CreateMyOAuth2ClientCredentialResponse wrapper for the CreateMyOAuth2ClientCredential operation +type CreateMyOAuth2ClientCredentialResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The MyOAuth2ClientCredential instance + MyOAuth2ClientCredential `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` +} + +func (response CreateMyOAuth2ClientCredentialResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response CreateMyOAuth2ClientCredentialResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_my_smtp_credential_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_my_smtp_credential_request_response.go new file mode 100644 index 00000000000..b8f95a98e1b --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_my_smtp_credential_request_response.go @@ -0,0 +1,112 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// CreateMySmtpCredentialRequest wrapper for the CreateMySmtpCredential operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/CreateMySmtpCredential.go.html to see an example of how to use CreateMySmtpCredentialRequest. +type CreateMySmtpCredentialRequest struct { + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // MySmtpCredential schema. + // Before you specify an attribute-value in a request to create a resource, please check the **'mutability'** property of that attribute in the resource-type schema below. Clicking on an attribute-row will expand that row to show the **SCIM++ Properties** of that attribute. + // - Your request to create, update or replace a resource may specify in its payload a value for any attribute that is defined as *mutability:readWrite* or *mutability:writeOnly* or *mutability:immutable*: + // - The SCIM APIs to create a resource will ignore silently any value that you specify for an attribute that is defined as *mutability:readOnly*. + // - The SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify a value for an attribute that is defined as *mutability:readOnly*. + // - Similarly, the SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify any value for an attribute that is defined as *mutability:immutable* and that already has a value in the specified resource. + // Also, before you use the query-parameter attributes to request specific attributes, please check the **'returned'** property of that attribute in the resource-type schema below: + // - Your request to read a resource (or to search a resource-type) can specify as the value of attributes any attributes that are defined as *returned:default* or *returned:request* or *returned:always*: + // - If you request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the set of attributes that you requested, as well as any attribute that is defined as *returned:always*. + // - If you do not request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the the set of attributes defined as *returned:default*, as well as any attribute that is defined as *returned:always*. + // - The SCIM APIs to read a resource (or to search a resource-type) will ignore silently any request to return an attribute that is defined as *returned:never*. + MySmtpCredential `contributesTo:"body"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request CreateMySmtpCredentialRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request CreateMySmtpCredentialRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request CreateMySmtpCredentialRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request CreateMySmtpCredentialRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request CreateMySmtpCredentialRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// CreateMySmtpCredentialResponse wrapper for the CreateMySmtpCredential operation +type CreateMySmtpCredentialResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The MySmtpCredential instance + MySmtpCredential `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` +} + +func (response CreateMySmtpCredentialResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response CreateMySmtpCredentialResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_my_support_account_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_my_support_account_request_response.go new file mode 100644 index 00000000000..669718fbd3a --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_my_support_account_request_response.go @@ -0,0 +1,112 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// CreateMySupportAccountRequest wrapper for the CreateMySupportAccount operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/CreateMySupportAccount.go.html to see an example of how to use CreateMySupportAccountRequest. +type CreateMySupportAccountRequest struct { + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // MySupportAccount schema. + // Before you specify an attribute-value in a request to create a resource, please check the **'mutability'** property of that attribute in the resource-type schema below. Clicking on an attribute-row will expand that row to show the **SCIM++ Properties** of that attribute. + // - Your request to create, update or replace a resource may specify in its payload a value for any attribute that is defined as *mutability:readWrite* or *mutability:writeOnly* or *mutability:immutable*: + // - The SCIM APIs to create a resource will ignore silently any value that you specify for an attribute that is defined as *mutability:readOnly*. + // - The SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify a value for an attribute that is defined as *mutability:readOnly*. + // - Similarly, the SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify any value for an attribute that is defined as *mutability:immutable* and that already has a value in the specified resource. + // Also, before you use the query-parameter attributes to request specific attributes, please check the **'returned'** property of that attribute in the resource-type schema below: + // - Your request to read a resource (or to search a resource-type) can specify as the value of attributes any attributes that are defined as *returned:default* or *returned:request* or *returned:always*: + // - If you request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the set of attributes that you requested, as well as any attribute that is defined as *returned:always*. + // - If you do not request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the the set of attributes defined as *returned:default*, as well as any attribute that is defined as *returned:always*. + // - The SCIM APIs to read a resource (or to search a resource-type) will ignore silently any request to return an attribute that is defined as *returned:never*. + MySupportAccount `contributesTo:"body"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request CreateMySupportAccountRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request CreateMySupportAccountRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request CreateMySupportAccountRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request CreateMySupportAccountRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request CreateMySupportAccountRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// CreateMySupportAccountResponse wrapper for the CreateMySupportAccount operation +type CreateMySupportAccountResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The MySupportAccount instance + MySupportAccount `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` +} + +func (response CreateMySupportAccountResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response CreateMySupportAccountResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_my_user_db_credential_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_my_user_db_credential_request_response.go new file mode 100644 index 00000000000..c36bafca22d --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_my_user_db_credential_request_response.go @@ -0,0 +1,112 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// CreateMyUserDbCredentialRequest wrapper for the CreateMyUserDbCredential operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/CreateMyUserDbCredential.go.html to see an example of how to use CreateMyUserDbCredentialRequest. +type CreateMyUserDbCredentialRequest struct { + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // MyUserDbCredentials schema. + // Before you specify an attribute-value in a request to create a resource, please check the **'mutability'** property of that attribute in the resource-type schema below. Clicking on an attribute-row will expand that row to show the **SCIM++ Properties** of that attribute. + // - Your request to create, update or replace a resource may specify in its payload a value for any attribute that is defined as *mutability:readWrite* or *mutability:writeOnly* or *mutability:immutable*: + // - The SCIM APIs to create a resource will ignore silently any value that you specify for an attribute that is defined as *mutability:readOnly*. + // - The SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify a value for an attribute that is defined as *mutability:readOnly*. + // - Similarly, the SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify any value for an attribute that is defined as *mutability:immutable* and that already has a value in the specified resource. + // Also, before you use the query-parameter attributes to request specific attributes, please check the **'returned'** property of that attribute in the resource-type schema below: + // - Your request to read a resource (or to search a resource-type) can specify as the value of attributes any attributes that are defined as *returned:default* or *returned:request* or *returned:always*: + // - If you request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the set of attributes that you requested, as well as any attribute that is defined as *returned:always*. + // - If you do not request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the the set of attributes defined as *returned:default*, as well as any attribute that is defined as *returned:always*. + // - The SCIM APIs to read a resource (or to search a resource-type) will ignore silently any request to return an attribute that is defined as *returned:never*. + MyUserDbCredential `contributesTo:"body"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request CreateMyUserDbCredentialRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request CreateMyUserDbCredentialRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request CreateMyUserDbCredentialRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request CreateMyUserDbCredentialRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request CreateMyUserDbCredentialRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// CreateMyUserDbCredentialResponse wrapper for the CreateMyUserDbCredential operation +type CreateMyUserDbCredentialResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The MyUserDbCredential instance + MyUserDbCredential `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` +} + +func (response CreateMyUserDbCredentialResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response CreateMyUserDbCredentialResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_o_auth2_client_credential_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_o_auth2_client_credential_request_response.go new file mode 100644 index 00000000000..ba13602ef11 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_o_auth2_client_credential_request_response.go @@ -0,0 +1,124 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// CreateOAuth2ClientCredentialRequest wrapper for the CreateOAuth2ClientCredential operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/CreateOAuth2ClientCredential.go.html to see an example of how to use CreateOAuth2ClientCredentialRequest. +type CreateOAuth2ClientCredentialRequest struct { + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // OAuth2ClientCredential schema. + // Before you specify an attribute-value in a request to create a resource, please check the **'mutability'** property of that attribute in the resource-type schema below. Clicking on an attribute-row will expand that row to show the **SCIM++ Properties** of that attribute. + // - Your request to create, update or replace a resource may specify in its payload a value for any attribute that is defined as *mutability:readWrite* or *mutability:writeOnly* or *mutability:immutable*: + // - The SCIM APIs to create a resource will ignore silently any value that you specify for an attribute that is defined as *mutability:readOnly*. + // - The SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify a value for an attribute that is defined as *mutability:readOnly*. + // - Similarly, the SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify any value for an attribute that is defined as *mutability:immutable* and that already has a value in the specified resource. + // Also, before you use the query-parameter attributes to request specific attributes, please check the **'returned'** property of that attribute in the resource-type schema below: + // - Your request to read a resource (or to search a resource-type) can specify as the value of attributes any attributes that are defined as *returned:default* or *returned:request* or *returned:always*: + // - If you request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the set of attributes that you requested, as well as any attribute that is defined as *returned:always*. + // - If you do not request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the the set of attributes defined as *returned:default*, as well as any attribute that is defined as *returned:always*. + // - The SCIM APIs to read a resource (or to search a resource-type) will ignore silently any request to return an attribute that is defined as *returned:never*. + OAuth2ClientCredential `contributesTo:"body"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request CreateOAuth2ClientCredentialRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request CreateOAuth2ClientCredentialRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request CreateOAuth2ClientCredentialRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request CreateOAuth2ClientCredentialRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request CreateOAuth2ClientCredentialRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// CreateOAuth2ClientCredentialResponse wrapper for the CreateOAuth2ClientCredential operation +type CreateOAuth2ClientCredentialResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The OAuth2ClientCredential instance + OAuth2ClientCredential `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` +} + +func (response CreateOAuth2ClientCredentialResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response CreateOAuth2ClientCredentialResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_password_policy_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_password_policy_request_response.go new file mode 100644 index 00000000000..92838e221d3 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_password_policy_request_response.go @@ -0,0 +1,124 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// CreatePasswordPolicyRequest wrapper for the CreatePasswordPolicy operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/CreatePasswordPolicy.go.html to see an example of how to use CreatePasswordPolicyRequest. +type CreatePasswordPolicyRequest struct { + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // PasswordPolicy schema. + // Before you specify an attribute-value in a request to create a resource, please check the **'mutability'** property of that attribute in the resource-type schema below. Clicking on an attribute-row will expand that row to show the **SCIM++ Properties** of that attribute. + // - Your request to create, update or replace a resource may specify in its payload a value for any attribute that is defined as *mutability:readWrite* or *mutability:writeOnly* or *mutability:immutable*: + // - The SCIM APIs to create a resource will ignore silently any value that you specify for an attribute that is defined as *mutability:readOnly*. + // - The SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify a value for an attribute that is defined as *mutability:readOnly*. + // - Similarly, the SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify any value for an attribute that is defined as *mutability:immutable* and that already has a value in the specified resource. + // Also, before you use the query-parameter attributes to request specific attributes, please check the **'returned'** property of that attribute in the resource-type schema below: + // - Your request to read a resource (or to search a resource-type) can specify as the value of attributes any attributes that are defined as *returned:default* or *returned:request* or *returned:always*: + // - If you request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the set of attributes that you requested, as well as any attribute that is defined as *returned:always*. + // - If you do not request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the the set of attributes defined as *returned:default*, as well as any attribute that is defined as *returned:always*. + // - The SCIM APIs to read a resource (or to search a resource-type) will ignore silently any request to return an attribute that is defined as *returned:never*. + PasswordPolicy `contributesTo:"body"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request CreatePasswordPolicyRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request CreatePasswordPolicyRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request CreatePasswordPolicyRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request CreatePasswordPolicyRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request CreatePasswordPolicyRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// CreatePasswordPolicyResponse wrapper for the CreatePasswordPolicy operation +type CreatePasswordPolicyResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The PasswordPolicy instance + PasswordPolicy `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` +} + +func (response CreatePasswordPolicyResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response CreatePasswordPolicyResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_smtp_credential_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_smtp_credential_request_response.go new file mode 100644 index 00000000000..9ca38df9730 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_smtp_credential_request_response.go @@ -0,0 +1,124 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// CreateSmtpCredentialRequest wrapper for the CreateSmtpCredential operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/CreateSmtpCredential.go.html to see an example of how to use CreateSmtpCredentialRequest. +type CreateSmtpCredentialRequest struct { + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // SmtpCredential schema. + // Before you specify an attribute-value in a request to create a resource, please check the **'mutability'** property of that attribute in the resource-type schema below. Clicking on an attribute-row will expand that row to show the **SCIM++ Properties** of that attribute. + // - Your request to create, update or replace a resource may specify in its payload a value for any attribute that is defined as *mutability:readWrite* or *mutability:writeOnly* or *mutability:immutable*: + // - The SCIM APIs to create a resource will ignore silently any value that you specify for an attribute that is defined as *mutability:readOnly*. + // - The SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify a value for an attribute that is defined as *mutability:readOnly*. + // - Similarly, the SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify any value for an attribute that is defined as *mutability:immutable* and that already has a value in the specified resource. + // Also, before you use the query-parameter attributes to request specific attributes, please check the **'returned'** property of that attribute in the resource-type schema below: + // - Your request to read a resource (or to search a resource-type) can specify as the value of attributes any attributes that are defined as *returned:default* or *returned:request* or *returned:always*: + // - If you request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the set of attributes that you requested, as well as any attribute that is defined as *returned:always*. + // - If you do not request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the the set of attributes defined as *returned:default*, as well as any attribute that is defined as *returned:always*. + // - The SCIM APIs to read a resource (or to search a resource-type) will ignore silently any request to return an attribute that is defined as *returned:never*. + SmtpCredential `contributesTo:"body"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request CreateSmtpCredentialRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request CreateSmtpCredentialRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request CreateSmtpCredentialRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request CreateSmtpCredentialRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request CreateSmtpCredentialRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// CreateSmtpCredentialResponse wrapper for the CreateSmtpCredential operation +type CreateSmtpCredentialResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The SmtpCredential instance + SmtpCredential `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` +} + +func (response CreateSmtpCredentialResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response CreateSmtpCredentialResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_user_db_credential_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_user_db_credential_request_response.go new file mode 100644 index 00000000000..3d21c7f139b --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_user_db_credential_request_response.go @@ -0,0 +1,124 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// CreateUserDbCredentialRequest wrapper for the CreateUserDbCredential operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/CreateUserDbCredential.go.html to see an example of how to use CreateUserDbCredentialRequest. +type CreateUserDbCredentialRequest struct { + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // UserDbCredentials schema. + // Before you specify an attribute-value in a request to create a resource, please check the **'mutability'** property of that attribute in the resource-type schema below. Clicking on an attribute-row will expand that row to show the **SCIM++ Properties** of that attribute. + // - Your request to create, update or replace a resource may specify in its payload a value for any attribute that is defined as *mutability:readWrite* or *mutability:writeOnly* or *mutability:immutable*: + // - The SCIM APIs to create a resource will ignore silently any value that you specify for an attribute that is defined as *mutability:readOnly*. + // - The SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify a value for an attribute that is defined as *mutability:readOnly*. + // - Similarly, the SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify any value for an attribute that is defined as *mutability:immutable* and that already has a value in the specified resource. + // Also, before you use the query-parameter attributes to request specific attributes, please check the **'returned'** property of that attribute in the resource-type schema below: + // - Your request to read a resource (or to search a resource-type) can specify as the value of attributes any attributes that are defined as *returned:default* or *returned:request* or *returned:always*: + // - If you request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the set of attributes that you requested, as well as any attribute that is defined as *returned:always*. + // - If you do not request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the the set of attributes defined as *returned:default*, as well as any attribute that is defined as *returned:always*. + // - The SCIM APIs to read a resource (or to search a resource-type) will ignore silently any request to return an attribute that is defined as *returned:never*. + UserDbCredential `contributesTo:"body"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request CreateUserDbCredentialRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request CreateUserDbCredentialRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request CreateUserDbCredentialRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request CreateUserDbCredentialRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request CreateUserDbCredentialRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// CreateUserDbCredentialResponse wrapper for the CreateUserDbCredential operation +type CreateUserDbCredentialResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The UserDbCredential instance + UserDbCredential `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` +} + +func (response CreateUserDbCredentialResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response CreateUserDbCredentialResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_user_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_user_request_response.go new file mode 100644 index 00000000000..ce0c2040d1e --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/create_user_request_response.go @@ -0,0 +1,124 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// CreateUserRequest wrapper for the CreateUser operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/CreateUser.go.html to see an example of how to use CreateUserRequest. +type CreateUserRequest struct { + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // User schema. + // Before you specify an attribute-value in a request to create a resource, please check the **'mutability'** property of that attribute in the resource-type schema below. Clicking on an attribute-row will expand that row to show the **SCIM++ Properties** of that attribute. + // - Your request to create, update or replace a resource may specify in its payload a value for any attribute that is defined as *mutability:readWrite* or *mutability:writeOnly* or *mutability:immutable*: + // - The SCIM APIs to create a resource will ignore silently any value that you specify for an attribute that is defined as *mutability:readOnly*. + // - The SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify a value for an attribute that is defined as *mutability:readOnly*. + // - Similarly, the SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify any value for an attribute that is defined as *mutability:immutable* and that already has a value in the specified resource. + // Also, before you use the query-parameter attributes to request specific attributes, please check the **'returned'** property of that attribute in the resource-type schema below: + // - Your request to read a resource (or to search a resource-type) can specify as the value of attributes any attributes that are defined as *returned:default* or *returned:request* or *returned:always*: + // - If you request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the set of attributes that you requested, as well as any attribute that is defined as *returned:always*. + // - If you do not request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the the set of attributes defined as *returned:default*, as well as any attribute that is defined as *returned:always*. + // - The SCIM APIs to read a resource (or to search a resource-type) will ignore silently any request to return an attribute that is defined as *returned:never*. + User `contributesTo:"body"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request CreateUserRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request CreateUserRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request CreateUserRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request CreateUserRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request CreateUserRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// CreateUserResponse wrapper for the CreateUser operation +type CreateUserResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The User instance + User `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` +} + +func (response CreateUserResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response CreateUserResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/customer_secret_key.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/customer_secret_key.go new file mode 100644 index 00000000000..2da4b3f6b74 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/customer_secret_key.go @@ -0,0 +1,270 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// CustomerSecretKey User's customer secret key +type CustomerSecretKey struct { + + // REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: true + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Schemas []string `mandatory:"true" json:"schemas"` + + // Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: always + // - type: string + // - uniqueness: global + Id *string `mandatory:"false" json:"id"` + + // Unique OCI identifier for the SCIM Resource. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: default + // - type: string + // - uniqueness: global + Ocid *string `mandatory:"false" json:"ocid"` + + Meta *Meta `mandatory:"false" json:"meta"` + + IdcsCreatedBy *IdcsCreatedBy `mandatory:"false" json:"idcsCreatedBy"` + + IdcsLastModifiedBy *IdcsLastModifiedBy `mandatory:"false" json:"idcsLastModifiedBy"` + + // Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsPreventedOperations []IdcsPreventedOperationsEnum `mandatory:"false" json:"idcsPreventedOperations,omitempty"` + + // A list of tags on this resource. + // **SCIM++ Properties:** + // - idcsCompositeKey: [key, value] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + Tags []Tags `mandatory:"false" json:"tags"` + + // A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + DeleteInProgress *bool `mandatory:"false" json:"deleteInProgress"` + + // The release number when the resource was upgraded. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsLastUpgradedInRelease *string `mandatory:"false" json:"idcsLastUpgradedInRelease"` + + // OCI Domain Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + DomainOcid *string `mandatory:"false" json:"domainOcid"` + + // OCI Compartment Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + CompartmentOcid *string `mandatory:"false" json:"compartmentOcid"` + + // OCI Tenant Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + TenancyOcid *string `mandatory:"false" json:"tenancyOcid"` + + // Display Name + // **SCIM++ Properties:** + // - caseExact: false + // - type: string + // - mutability: readWrite + // - required: false + // - returned: default + DisplayName *string `mandatory:"false" json:"displayName"` + + // Description + // **SCIM++ Properties:** + // - caseExact: false + // - type: string + // - mutability: readWrite + // - required: false + // - returned: default + Description *string `mandatory:"false" json:"description"` + + // User credential status + // **Added In:** 2109090424 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: never + // - type: string + // - uniqueness: none + Status CustomerSecretKeyStatusEnum `mandatory:"false" json:"status,omitempty"` + + // User credential expires on + // **Added In:** 2109090424 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: default + // - type: dateTime + // - uniqueness: none + ExpiresOn *string `mandatory:"false" json:"expiresOn"` + + // Access key + // **SCIM++ Properties:** + // - caseExact: true + // - type: string + // - mutability: readOnly + // - required: false + // - returned: default + AccessKey *string `mandatory:"false" json:"accessKey"` + + User *CustomerSecretKeyUser `mandatory:"false" json:"user"` + + UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser *ExtensionSelfChangeUser `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:selfChange:User"` +} + +func (m CustomerSecretKey) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m CustomerSecretKey) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + for _, val := range m.IdcsPreventedOperations { + if _, ok := GetMappingIdcsPreventedOperationsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for IdcsPreventedOperations: %s. Supported values are: %s.", val, strings.Join(GetIdcsPreventedOperationsEnumStringValues(), ","))) + } + } + + if _, ok := GetMappingCustomerSecretKeyStatusEnum(string(m.Status)); !ok && m.Status != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Status: %s. Supported values are: %s.", m.Status, strings.Join(GetCustomerSecretKeyStatusEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// CustomerSecretKeyStatusEnum Enum with underlying type: string +type CustomerSecretKeyStatusEnum string + +// Set of constants representing the allowable values for CustomerSecretKeyStatusEnum +const ( + CustomerSecretKeyStatusActive CustomerSecretKeyStatusEnum = "ACTIVE" + CustomerSecretKeyStatusInactive CustomerSecretKeyStatusEnum = "INACTIVE" +) + +var mappingCustomerSecretKeyStatusEnum = map[string]CustomerSecretKeyStatusEnum{ + "ACTIVE": CustomerSecretKeyStatusActive, + "INACTIVE": CustomerSecretKeyStatusInactive, +} + +var mappingCustomerSecretKeyStatusEnumLowerCase = map[string]CustomerSecretKeyStatusEnum{ + "active": CustomerSecretKeyStatusActive, + "inactive": CustomerSecretKeyStatusInactive, +} + +// GetCustomerSecretKeyStatusEnumValues Enumerates the set of values for CustomerSecretKeyStatusEnum +func GetCustomerSecretKeyStatusEnumValues() []CustomerSecretKeyStatusEnum { + values := make([]CustomerSecretKeyStatusEnum, 0) + for _, v := range mappingCustomerSecretKeyStatusEnum { + values = append(values, v) + } + return values +} + +// GetCustomerSecretKeyStatusEnumStringValues Enumerates the set of values in String for CustomerSecretKeyStatusEnum +func GetCustomerSecretKeyStatusEnumStringValues() []string { + return []string{ + "ACTIVE", + "INACTIVE", + } +} + +// GetMappingCustomerSecretKeyStatusEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingCustomerSecretKeyStatusEnum(val string) (CustomerSecretKeyStatusEnum, bool) { + enum, ok := mappingCustomerSecretKeyStatusEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/customer_secret_key_search_request.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/customer_secret_key_search_request.go new file mode 100644 index 00000000000..7913b0960dd --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/customer_secret_key_search_request.go @@ -0,0 +1,70 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// CustomerSecretKeySearchRequest Clients MAY execute queries without passing parameters on the URL by using the HTTP POST verb combined with the **.search** path extension. The inclusion of **.search** on the end of a valid SCIM endpoint SHALL be used to indicate the HTTP POST verb is intended to be a query operation. To create a new query result set, a SCIM client sends an HTTP POST request to the desired SCIM resource endpoint (ending in **.search**). The body of the POST request MAY include any of the parameters. +type CustomerSecretKeySearchRequest struct { + + // The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. Query requests MUST be identified using the following URI: "urn:ietf:params:scim:api:messages:2.0:SearchRequest" REQUIRED. + Schemas []string `mandatory:"true" json:"schemas"` + + // A multi-valued list of strings indicating the names of resource attributes to return in the response overriding the set of attributes that would be returned by default. Attribute names MUST be in standard attribute notation (Section 3.10 (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.10)) form. See (additional retrieval query parameters (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.9)). OPTIONAL. + Attributes []string `mandatory:"false" json:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If "attributes" query parameter is also available, union of the two is fetched. Valid values : all, always, never, request, default. Values are case-insensitive. OPTIONAL. + AttributeSets []AttributeSetsEnum `mandatory:"false" json:"attributeSets,omitempty"` + + // The filter string that is used to request a subset of resources. The filter string MUST be a valid filter expression. See Section 3.4.2.2 (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.2). OPTIONAL. + Filter *string `mandatory:"false" json:"filter"` + + // A string that indicates the attribute whose value SHALL be used to order the returned responses. The sortBy attribute MUST be in standard attribute notation (Section 3.10 (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.10)) form. See Sorting section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.3). OPTIONAL. + SortBy *string `mandatory:"false" json:"sortBy"` + + // A string that indicates the order in which the sortBy parameter is applied. Allowed values are "ascending" and "descending". See (Sorting Section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.3)). OPTIONAL. + SortOrder SortOrderEnum `mandatory:"false" json:"sortOrder,omitempty"` + + // An integer that indicates the 1-based index of the first query result. See Pagination Section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.4). OPTIONAL. + StartIndex *int `mandatory:"false" json:"startIndex"` + + // An integer that indicates the desired maximum number of query results per page. 1000 is the largest value that you can use. See the Pagination section of the System for Cross-Domain Identity Management Protocol specification for more information. (Section 3.4.2.4 (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.4)). OPTIONAL. + Count *int `mandatory:"false" json:"count"` +} + +func (m CustomerSecretKeySearchRequest) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m CustomerSecretKeySearchRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + for _, val := range m.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if _, ok := GetMappingSortOrderEnum(string(m.SortOrder)); !ok && m.SortOrder != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for SortOrder: %s. Supported values are: %s.", m.SortOrder, strings.Join(GetSortOrderEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/customer_secret_key_user.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/customer_secret_key_user.go new file mode 100644 index 00000000000..be43da2d5f1 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/customer_secret_key_user.go @@ -0,0 +1,106 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// CustomerSecretKeyUser User linked to customer secret key +// **SCIM++ Properties:** +// - caseExact: false +// - idcsSearchable: true +// - multiValued: false +// - mutability: immutable +// - required: false +// - returned: default +// - type: complex +// - uniqueness: none +type CustomerSecretKeyUser struct { + + // User's id + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: always + // - type: string + // - uniqueness: none + Value *string `mandatory:"false" json:"value"` + + // User's ocid + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: always + // - type: string + // - uniqueness: none + Ocid *string `mandatory:"false" json:"ocid"` + + // The URI that corresponds to the user linked to this credential + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` + + // User display name + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Display *string `mandatory:"false" json:"display"` + + // User name + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Name *string `mandatory:"false" json:"name"` +} + +func (m CustomerSecretKeyUser) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m CustomerSecretKeyUser) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/customer_secret_keys.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/customer_secret_keys.go new file mode 100644 index 00000000000..f5c0889fd61 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/customer_secret_keys.go @@ -0,0 +1,52 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// CustomerSecretKeys The SCIM protocol defines a standard set of query parameters that can be used to filter, sort, and paginate to return zero or more resources in a query response. Queries MAY be made against a single resource or a resource type endpoint (e.g., /Users), or the service provider Base URI. +type CustomerSecretKeys struct { + + // The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. REQUIRED. + Schemas []string `mandatory:"true" json:"schemas"` + + // The total number of results returned by the list or query operation. The value may be larger than the number of resources returned such as when returning a single page of results where multiple pages are available. REQUIRED. + TotalResults *int `mandatory:"true" json:"totalResults"` + + // A multi-valued list of complex objects containing the requested resources. This MAY be a subset of the full set of resources if pagination is requested. REQUIRED if "totalResults" is non-zero. + Resources []CustomerSecretKey `mandatory:"true" json:"Resources"` + + // The 1-based index of the first result in the current set of list results. REQUIRED when partial results returned due to pagination. + StartIndex *int `mandatory:"true" json:"startIndex"` + + // The number of resources returned in a list response page. REQUIRED when partial results returned due to pagination. + ItemsPerPage *int `mandatory:"true" json:"itemsPerPage"` +} + +func (m CustomerSecretKeys) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m CustomerSecretKeys) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/defined_tags.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/defined_tags.go new file mode 100644 index 00000000000..5d0cda472eb --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/defined_tags.go @@ -0,0 +1,82 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// DefinedTags OCI Defined Tags +// **Added In:** 2011192329 +// **SCIM++ Properties:** +// - idcsCompositeKey: [namespace, key, value] +// - type: complex +// - idcsSearchable: true +// - required: false +// - mutability: readWrite +// - multiValued: true +// - returned: default +type DefinedTags struct { + + // OCI Tag namespace + // **Added In:** 2011192329 + // **SCIM++ Properties:** + // - caseExact: false + // - type: string + // - required: true + // - mutability: readWrite + // - returned: default + // - idcsSearchable: true + // - uniqueness: none + Namespace *string `mandatory:"true" json:"namespace"` + + // OCI Tag key + // **Added In:** 2011192329 + // **SCIM++ Properties:** + // - caseExact: false + // - type: string + // - required: true + // - mutability: readWrite + // - returned: default + // - idcsSearchable: true + // - uniqueness: none + Key *string `mandatory:"true" json:"key"` + + // OCI Tag value + // **Added In:** 2011192329 + // **SCIM++ Properties:** + // - caseExact: false + // - required: true + // - mutability: readWrite + // - returned: default + // - type: string + // - idcsSearchable: true + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` +} + +func (m DefinedTags) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m DefinedTags) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_api_key_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_api_key_request_response.go new file mode 100644 index 00000000000..abf46619729 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_api_key_request_response.go @@ -0,0 +1,102 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// DeleteApiKeyRequest wrapper for the DeleteApiKey operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/DeleteApiKey.go.html to see an example of how to use DeleteApiKeyRequest. +type DeleteApiKeyRequest struct { + + // ID of the resource + ApiKeyId *string `mandatory:"true" contributesTo:"path" name:"apiKeyId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // To force delete the resource and all its references (if any). + ForceDelete *bool `mandatory:"false" contributesTo:"query" name:"forceDelete"` + + // Used to make the request conditional on an ETag + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request DeleteApiKeyRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request DeleteApiKeyRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request DeleteApiKeyRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request DeleteApiKeyRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request DeleteApiKeyRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// DeleteApiKeyResponse wrapper for the DeleteApiKey operation +type DeleteApiKeyResponse struct { + + // The underlying http response + RawResponse *http.Response + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response DeleteApiKeyResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response DeleteApiKeyResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_auth_token_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_auth_token_request_response.go new file mode 100644 index 00000000000..3204201265e --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_auth_token_request_response.go @@ -0,0 +1,102 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// DeleteAuthTokenRequest wrapper for the DeleteAuthToken operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/DeleteAuthToken.go.html to see an example of how to use DeleteAuthTokenRequest. +type DeleteAuthTokenRequest struct { + + // ID of the resource + AuthTokenId *string `mandatory:"true" contributesTo:"path" name:"authTokenId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // To force delete the resource and all its references (if any). + ForceDelete *bool `mandatory:"false" contributesTo:"query" name:"forceDelete"` + + // Used to make the request conditional on an ETag + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request DeleteAuthTokenRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request DeleteAuthTokenRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request DeleteAuthTokenRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request DeleteAuthTokenRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request DeleteAuthTokenRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// DeleteAuthTokenResponse wrapper for the DeleteAuthToken operation +type DeleteAuthTokenResponse struct { + + // The underlying http response + RawResponse *http.Response + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response DeleteAuthTokenResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response DeleteAuthTokenResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_customer_secret_key_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_customer_secret_key_request_response.go new file mode 100644 index 00000000000..8507d5ae707 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_customer_secret_key_request_response.go @@ -0,0 +1,102 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// DeleteCustomerSecretKeyRequest wrapper for the DeleteCustomerSecretKey operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/DeleteCustomerSecretKey.go.html to see an example of how to use DeleteCustomerSecretKeyRequest. +type DeleteCustomerSecretKeyRequest struct { + + // ID of the resource + CustomerSecretKeyId *string `mandatory:"true" contributesTo:"path" name:"customerSecretKeyId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // To force delete the resource and all its references (if any). + ForceDelete *bool `mandatory:"false" contributesTo:"query" name:"forceDelete"` + + // Used to make the request conditional on an ETag + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request DeleteCustomerSecretKeyRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request DeleteCustomerSecretKeyRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request DeleteCustomerSecretKeyRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request DeleteCustomerSecretKeyRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request DeleteCustomerSecretKeyRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// DeleteCustomerSecretKeyResponse wrapper for the DeleteCustomerSecretKey operation +type DeleteCustomerSecretKeyResponse struct { + + // The underlying http response + RawResponse *http.Response + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response DeleteCustomerSecretKeyResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response DeleteCustomerSecretKeyResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_dynamic_resource_group_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_dynamic_resource_group_request_response.go new file mode 100644 index 00000000000..dbfdf032951 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_dynamic_resource_group_request_response.go @@ -0,0 +1,102 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// DeleteDynamicResourceGroupRequest wrapper for the DeleteDynamicResourceGroup operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/DeleteDynamicResourceGroup.go.html to see an example of how to use DeleteDynamicResourceGroupRequest. +type DeleteDynamicResourceGroupRequest struct { + + // ID of the resource + DynamicResourceGroupId *string `mandatory:"true" contributesTo:"path" name:"dynamicResourceGroupId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // To force delete the resource and all its references (if any). + ForceDelete *bool `mandatory:"false" contributesTo:"query" name:"forceDelete"` + + // Used to make the request conditional on an ETag + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request DeleteDynamicResourceGroupRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request DeleteDynamicResourceGroupRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request DeleteDynamicResourceGroupRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request DeleteDynamicResourceGroupRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request DeleteDynamicResourceGroupRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// DeleteDynamicResourceGroupResponse wrapper for the DeleteDynamicResourceGroup operation +type DeleteDynamicResourceGroupResponse struct { + + // The underlying http response + RawResponse *http.Response + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response DeleteDynamicResourceGroupResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response DeleteDynamicResourceGroupResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_group_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_group_request_response.go new file mode 100644 index 00000000000..9da41a5efd0 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_group_request_response.go @@ -0,0 +1,102 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// DeleteGroupRequest wrapper for the DeleteGroup operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/DeleteGroup.go.html to see an example of how to use DeleteGroupRequest. +type DeleteGroupRequest struct { + + // ID of the resource + GroupId *string `mandatory:"true" contributesTo:"path" name:"groupId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // To force delete the resource and all its references (if any). + ForceDelete *bool `mandatory:"false" contributesTo:"query" name:"forceDelete"` + + // Used to make the request conditional on an ETag + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request DeleteGroupRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request DeleteGroupRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request DeleteGroupRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request DeleteGroupRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request DeleteGroupRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// DeleteGroupResponse wrapper for the DeleteGroup operation +type DeleteGroupResponse struct { + + // The underlying http response + RawResponse *http.Response + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response DeleteGroupResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response DeleteGroupResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_identity_provider_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_identity_provider_request_response.go new file mode 100644 index 00000000000..c251c4e4015 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_identity_provider_request_response.go @@ -0,0 +1,102 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// DeleteIdentityProviderRequest wrapper for the DeleteIdentityProvider operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/DeleteIdentityProvider.go.html to see an example of how to use DeleteIdentityProviderRequest. +type DeleteIdentityProviderRequest struct { + + // ID of the resource + IdentityProviderId *string `mandatory:"true" contributesTo:"path" name:"identityProviderId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // To force delete the resource and all its references (if any). + ForceDelete *bool `mandatory:"false" contributesTo:"query" name:"forceDelete"` + + // Used to make the request conditional on an ETag + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request DeleteIdentityProviderRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request DeleteIdentityProviderRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request DeleteIdentityProviderRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request DeleteIdentityProviderRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request DeleteIdentityProviderRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// DeleteIdentityProviderResponse wrapper for the DeleteIdentityProvider operation +type DeleteIdentityProviderResponse struct { + + // The underlying http response + RawResponse *http.Response + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response DeleteIdentityProviderResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response DeleteIdentityProviderResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_my_api_key_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_my_api_key_request_response.go new file mode 100644 index 00000000000..41d4837c19e --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_my_api_key_request_response.go @@ -0,0 +1,102 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// DeleteMyApiKeyRequest wrapper for the DeleteMyApiKey operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/DeleteMyApiKey.go.html to see an example of how to use DeleteMyApiKeyRequest. +type DeleteMyApiKeyRequest struct { + + // ID of the resource + MyApiKeyId *string `mandatory:"true" contributesTo:"path" name:"myApiKeyId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // To force delete the resource and all its references (if any). + ForceDelete *bool `mandatory:"false" contributesTo:"query" name:"forceDelete"` + + // Used to make the request conditional on an ETag + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request DeleteMyApiKeyRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request DeleteMyApiKeyRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request DeleteMyApiKeyRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request DeleteMyApiKeyRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request DeleteMyApiKeyRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// DeleteMyApiKeyResponse wrapper for the DeleteMyApiKey operation +type DeleteMyApiKeyResponse struct { + + // The underlying http response + RawResponse *http.Response + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response DeleteMyApiKeyResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response DeleteMyApiKeyResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_my_auth_token_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_my_auth_token_request_response.go new file mode 100644 index 00000000000..4e671ac7dc5 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_my_auth_token_request_response.go @@ -0,0 +1,102 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// DeleteMyAuthTokenRequest wrapper for the DeleteMyAuthToken operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/DeleteMyAuthToken.go.html to see an example of how to use DeleteMyAuthTokenRequest. +type DeleteMyAuthTokenRequest struct { + + // ID of the resource + MyAuthTokenId *string `mandatory:"true" contributesTo:"path" name:"myAuthTokenId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // To force delete the resource and all its references (if any). + ForceDelete *bool `mandatory:"false" contributesTo:"query" name:"forceDelete"` + + // Used to make the request conditional on an ETag + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request DeleteMyAuthTokenRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request DeleteMyAuthTokenRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request DeleteMyAuthTokenRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request DeleteMyAuthTokenRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request DeleteMyAuthTokenRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// DeleteMyAuthTokenResponse wrapper for the DeleteMyAuthToken operation +type DeleteMyAuthTokenResponse struct { + + // The underlying http response + RawResponse *http.Response + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response DeleteMyAuthTokenResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response DeleteMyAuthTokenResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_my_customer_secret_key_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_my_customer_secret_key_request_response.go new file mode 100644 index 00000000000..c865cba46c1 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_my_customer_secret_key_request_response.go @@ -0,0 +1,102 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// DeleteMyCustomerSecretKeyRequest wrapper for the DeleteMyCustomerSecretKey operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/DeleteMyCustomerSecretKey.go.html to see an example of how to use DeleteMyCustomerSecretKeyRequest. +type DeleteMyCustomerSecretKeyRequest struct { + + // ID of the resource + MyCustomerSecretKeyId *string `mandatory:"true" contributesTo:"path" name:"myCustomerSecretKeyId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // To force delete the resource and all its references (if any). + ForceDelete *bool `mandatory:"false" contributesTo:"query" name:"forceDelete"` + + // Used to make the request conditional on an ETag + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request DeleteMyCustomerSecretKeyRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request DeleteMyCustomerSecretKeyRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request DeleteMyCustomerSecretKeyRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request DeleteMyCustomerSecretKeyRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request DeleteMyCustomerSecretKeyRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// DeleteMyCustomerSecretKeyResponse wrapper for the DeleteMyCustomerSecretKey operation +type DeleteMyCustomerSecretKeyResponse struct { + + // The underlying http response + RawResponse *http.Response + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response DeleteMyCustomerSecretKeyResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response DeleteMyCustomerSecretKeyResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_my_device_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_my_device_request_response.go new file mode 100644 index 00000000000..338003d2b2d --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_my_device_request_response.go @@ -0,0 +1,102 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// DeleteMyDeviceRequest wrapper for the DeleteMyDevice operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/DeleteMyDevice.go.html to see an example of how to use DeleteMyDeviceRequest. +type DeleteMyDeviceRequest struct { + + // ID of the resource + MyDeviceId *string `mandatory:"true" contributesTo:"path" name:"myDeviceId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // To force delete the resource and all its references (if any). + ForceDelete *bool `mandatory:"false" contributesTo:"query" name:"forceDelete"` + + // Used to make the request conditional on an ETag + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request DeleteMyDeviceRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request DeleteMyDeviceRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request DeleteMyDeviceRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request DeleteMyDeviceRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request DeleteMyDeviceRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// DeleteMyDeviceResponse wrapper for the DeleteMyDevice operation +type DeleteMyDeviceResponse struct { + + // The underlying http response + RawResponse *http.Response + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response DeleteMyDeviceResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response DeleteMyDeviceResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_my_o_auth2_client_credential_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_my_o_auth2_client_credential_request_response.go new file mode 100644 index 00000000000..a370560df42 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_my_o_auth2_client_credential_request_response.go @@ -0,0 +1,102 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// DeleteMyOAuth2ClientCredentialRequest wrapper for the DeleteMyOAuth2ClientCredential operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/DeleteMyOAuth2ClientCredential.go.html to see an example of how to use DeleteMyOAuth2ClientCredentialRequest. +type DeleteMyOAuth2ClientCredentialRequest struct { + + // ID of the resource + MyOAuth2ClientCredentialId *string `mandatory:"true" contributesTo:"path" name:"myOAuth2ClientCredentialId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // To force delete the resource and all its references (if any). + ForceDelete *bool `mandatory:"false" contributesTo:"query" name:"forceDelete"` + + // Used to make the request conditional on an ETag + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request DeleteMyOAuth2ClientCredentialRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request DeleteMyOAuth2ClientCredentialRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request DeleteMyOAuth2ClientCredentialRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request DeleteMyOAuth2ClientCredentialRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request DeleteMyOAuth2ClientCredentialRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// DeleteMyOAuth2ClientCredentialResponse wrapper for the DeleteMyOAuth2ClientCredential operation +type DeleteMyOAuth2ClientCredentialResponse struct { + + // The underlying http response + RawResponse *http.Response + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response DeleteMyOAuth2ClientCredentialResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response DeleteMyOAuth2ClientCredentialResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_my_smtp_credential_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_my_smtp_credential_request_response.go new file mode 100644 index 00000000000..45c3b526df5 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_my_smtp_credential_request_response.go @@ -0,0 +1,102 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// DeleteMySmtpCredentialRequest wrapper for the DeleteMySmtpCredential operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/DeleteMySmtpCredential.go.html to see an example of how to use DeleteMySmtpCredentialRequest. +type DeleteMySmtpCredentialRequest struct { + + // ID of the resource + MySmtpCredentialId *string `mandatory:"true" contributesTo:"path" name:"mySmtpCredentialId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // To force delete the resource and all its references (if any). + ForceDelete *bool `mandatory:"false" contributesTo:"query" name:"forceDelete"` + + // Used to make the request conditional on an ETag + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request DeleteMySmtpCredentialRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request DeleteMySmtpCredentialRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request DeleteMySmtpCredentialRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request DeleteMySmtpCredentialRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request DeleteMySmtpCredentialRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// DeleteMySmtpCredentialResponse wrapper for the DeleteMySmtpCredential operation +type DeleteMySmtpCredentialResponse struct { + + // The underlying http response + RawResponse *http.Response + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response DeleteMySmtpCredentialResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response DeleteMySmtpCredentialResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_my_support_account_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_my_support_account_request_response.go new file mode 100644 index 00000000000..cae696a3865 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_my_support_account_request_response.go @@ -0,0 +1,102 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// DeleteMySupportAccountRequest wrapper for the DeleteMySupportAccount operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/DeleteMySupportAccount.go.html to see an example of how to use DeleteMySupportAccountRequest. +type DeleteMySupportAccountRequest struct { + + // ID of the resource + MySupportAccountId *string `mandatory:"true" contributesTo:"path" name:"mySupportAccountId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // To force delete the resource and all its references (if any). + ForceDelete *bool `mandatory:"false" contributesTo:"query" name:"forceDelete"` + + // Used to make the request conditional on an ETag + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request DeleteMySupportAccountRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request DeleteMySupportAccountRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request DeleteMySupportAccountRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request DeleteMySupportAccountRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request DeleteMySupportAccountRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// DeleteMySupportAccountResponse wrapper for the DeleteMySupportAccount operation +type DeleteMySupportAccountResponse struct { + + // The underlying http response + RawResponse *http.Response + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response DeleteMySupportAccountResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response DeleteMySupportAccountResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_my_trusted_user_agent_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_my_trusted_user_agent_request_response.go new file mode 100644 index 00000000000..2d868cbeea4 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_my_trusted_user_agent_request_response.go @@ -0,0 +1,102 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// DeleteMyTrustedUserAgentRequest wrapper for the DeleteMyTrustedUserAgent operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/DeleteMyTrustedUserAgent.go.html to see an example of how to use DeleteMyTrustedUserAgentRequest. +type DeleteMyTrustedUserAgentRequest struct { + + // ID of the resource + MyTrustedUserAgentId *string `mandatory:"true" contributesTo:"path" name:"myTrustedUserAgentId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // To force delete the resource and all its references (if any). + ForceDelete *bool `mandatory:"false" contributesTo:"query" name:"forceDelete"` + + // Used to make the request conditional on an ETag + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request DeleteMyTrustedUserAgentRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request DeleteMyTrustedUserAgentRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request DeleteMyTrustedUserAgentRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request DeleteMyTrustedUserAgentRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request DeleteMyTrustedUserAgentRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// DeleteMyTrustedUserAgentResponse wrapper for the DeleteMyTrustedUserAgent operation +type DeleteMyTrustedUserAgentResponse struct { + + // The underlying http response + RawResponse *http.Response + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response DeleteMyTrustedUserAgentResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response DeleteMyTrustedUserAgentResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_my_user_db_credential_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_my_user_db_credential_request_response.go new file mode 100644 index 00000000000..297178a7742 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_my_user_db_credential_request_response.go @@ -0,0 +1,102 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// DeleteMyUserDbCredentialRequest wrapper for the DeleteMyUserDbCredential operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/DeleteMyUserDbCredential.go.html to see an example of how to use DeleteMyUserDbCredentialRequest. +type DeleteMyUserDbCredentialRequest struct { + + // ID of the resource + MyUserDbCredentialId *string `mandatory:"true" contributesTo:"path" name:"myUserDbCredentialId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // To force delete the resource and all its references (if any). + ForceDelete *bool `mandatory:"false" contributesTo:"query" name:"forceDelete"` + + // Used to make the request conditional on an ETag + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request DeleteMyUserDbCredentialRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request DeleteMyUserDbCredentialRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request DeleteMyUserDbCredentialRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request DeleteMyUserDbCredentialRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request DeleteMyUserDbCredentialRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// DeleteMyUserDbCredentialResponse wrapper for the DeleteMyUserDbCredential operation +type DeleteMyUserDbCredentialResponse struct { + + // The underlying http response + RawResponse *http.Response + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response DeleteMyUserDbCredentialResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response DeleteMyUserDbCredentialResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_o_auth2_client_credential_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_o_auth2_client_credential_request_response.go new file mode 100644 index 00000000000..6cb6feaaa6f --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_o_auth2_client_credential_request_response.go @@ -0,0 +1,102 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// DeleteOAuth2ClientCredentialRequest wrapper for the DeleteOAuth2ClientCredential operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/DeleteOAuth2ClientCredential.go.html to see an example of how to use DeleteOAuth2ClientCredentialRequest. +type DeleteOAuth2ClientCredentialRequest struct { + + // ID of the resource + OAuth2ClientCredentialId *string `mandatory:"true" contributesTo:"path" name:"oAuth2ClientCredentialId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // To force delete the resource and all its references (if any). + ForceDelete *bool `mandatory:"false" contributesTo:"query" name:"forceDelete"` + + // Used to make the request conditional on an ETag + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request DeleteOAuth2ClientCredentialRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request DeleteOAuth2ClientCredentialRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request DeleteOAuth2ClientCredentialRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request DeleteOAuth2ClientCredentialRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request DeleteOAuth2ClientCredentialRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// DeleteOAuth2ClientCredentialResponse wrapper for the DeleteOAuth2ClientCredential operation +type DeleteOAuth2ClientCredentialResponse struct { + + // The underlying http response + RawResponse *http.Response + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response DeleteOAuth2ClientCredentialResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response DeleteOAuth2ClientCredentialResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_password_policy_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_password_policy_request_response.go new file mode 100644 index 00000000000..c575d635d46 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_password_policy_request_response.go @@ -0,0 +1,102 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// DeletePasswordPolicyRequest wrapper for the DeletePasswordPolicy operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/DeletePasswordPolicy.go.html to see an example of how to use DeletePasswordPolicyRequest. +type DeletePasswordPolicyRequest struct { + + // ID of the resource + PasswordPolicyId *string `mandatory:"true" contributesTo:"path" name:"passwordPolicyId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // To force delete the resource and all its references (if any). + ForceDelete *bool `mandatory:"false" contributesTo:"query" name:"forceDelete"` + + // Used to make the request conditional on an ETag + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request DeletePasswordPolicyRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request DeletePasswordPolicyRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request DeletePasswordPolicyRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request DeletePasswordPolicyRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request DeletePasswordPolicyRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// DeletePasswordPolicyResponse wrapper for the DeletePasswordPolicy operation +type DeletePasswordPolicyResponse struct { + + // The underlying http response + RawResponse *http.Response + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response DeletePasswordPolicyResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response DeletePasswordPolicyResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_smtp_credential_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_smtp_credential_request_response.go new file mode 100644 index 00000000000..91cc64f21cb --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_smtp_credential_request_response.go @@ -0,0 +1,102 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// DeleteSmtpCredentialRequest wrapper for the DeleteSmtpCredential operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/DeleteSmtpCredential.go.html to see an example of how to use DeleteSmtpCredentialRequest. +type DeleteSmtpCredentialRequest struct { + + // ID of the resource + SmtpCredentialId *string `mandatory:"true" contributesTo:"path" name:"smtpCredentialId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // To force delete the resource and all its references (if any). + ForceDelete *bool `mandatory:"false" contributesTo:"query" name:"forceDelete"` + + // Used to make the request conditional on an ETag + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request DeleteSmtpCredentialRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request DeleteSmtpCredentialRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request DeleteSmtpCredentialRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request DeleteSmtpCredentialRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request DeleteSmtpCredentialRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// DeleteSmtpCredentialResponse wrapper for the DeleteSmtpCredential operation +type DeleteSmtpCredentialResponse struct { + + // The underlying http response + RawResponse *http.Response + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response DeleteSmtpCredentialResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response DeleteSmtpCredentialResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_user_db_credential_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_user_db_credential_request_response.go new file mode 100644 index 00000000000..1b51ab81c6f --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_user_db_credential_request_response.go @@ -0,0 +1,102 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// DeleteUserDbCredentialRequest wrapper for the DeleteUserDbCredential operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/DeleteUserDbCredential.go.html to see an example of how to use DeleteUserDbCredentialRequest. +type DeleteUserDbCredentialRequest struct { + + // ID of the resource + UserDbCredentialId *string `mandatory:"true" contributesTo:"path" name:"userDbCredentialId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // To force delete the resource and all its references (if any). + ForceDelete *bool `mandatory:"false" contributesTo:"query" name:"forceDelete"` + + // Used to make the request conditional on an ETag + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request DeleteUserDbCredentialRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request DeleteUserDbCredentialRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request DeleteUserDbCredentialRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request DeleteUserDbCredentialRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request DeleteUserDbCredentialRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// DeleteUserDbCredentialResponse wrapper for the DeleteUserDbCredential operation +type DeleteUserDbCredentialResponse struct { + + // The underlying http response + RawResponse *http.Response + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response DeleteUserDbCredentialResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response DeleteUserDbCredentialResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_user_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_user_request_response.go new file mode 100644 index 00000000000..8db52d1b12d --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/delete_user_request_response.go @@ -0,0 +1,102 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// DeleteUserRequest wrapper for the DeleteUser operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/DeleteUser.go.html to see an example of how to use DeleteUserRequest. +type DeleteUserRequest struct { + + // ID of the resource + UserId *string `mandatory:"true" contributesTo:"path" name:"userId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // To force delete the resource and all its references (if any). + ForceDelete *bool `mandatory:"false" contributesTo:"query" name:"forceDelete"` + + // Used to make the request conditional on an ETag + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request DeleteUserRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request DeleteUserRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request DeleteUserRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request DeleteUserRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request DeleteUserRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// DeleteUserResponse wrapper for the DeleteUser operation +type DeleteUserResponse struct { + + // The underlying http response + RawResponse *http.Response + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response DeleteUserResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response DeleteUserResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/dynamic_resource_group.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/dynamic_resource_group.go new file mode 100644 index 00000000000..b40e101cf2f --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/dynamic_resource_group.go @@ -0,0 +1,233 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// DynamicResourceGroup Schema for DynamicResourceGroup resource. +type DynamicResourceGroup struct { + + // REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: true + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Schemas []string `mandatory:"true" json:"schemas"` + + // Store as a string the matching-rule for this Dynamic Resource Group. This may match any number of Apps in this Domain, as well as matching any number of OCI resources that are not in any Domain but that are in the OCI Compartment that contains this Domain. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: request + // - type: string + // - uniqueness: none + MatchingRule *string `mandatory:"true" json:"matchingRule"` + + // User-friendly, mutable identifier + // **SCIM++ Properties:** + // - idcsCsvAttributeName: Display Name + // - idcsCsvAttributeNameMappings: [[columnHeaderName:Name, deprecatedColumnHeaderName:Display Name]] + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: always + // - type: string + // - uniqueness: global + DisplayName *string `mandatory:"true" json:"displayName"` + + // Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: always + // - type: string + // - uniqueness: global + Id *string `mandatory:"false" json:"id"` + + // Unique OCI identifier for the SCIM Resource. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: default + // - type: string + // - uniqueness: global + Ocid *string `mandatory:"false" json:"ocid"` + + Meta *Meta `mandatory:"false" json:"meta"` + + IdcsCreatedBy *IdcsCreatedBy `mandatory:"false" json:"idcsCreatedBy"` + + IdcsLastModifiedBy *IdcsLastModifiedBy `mandatory:"false" json:"idcsLastModifiedBy"` + + // Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsPreventedOperations []IdcsPreventedOperationsEnum `mandatory:"false" json:"idcsPreventedOperations,omitempty"` + + // A list of tags on this resource. + // **SCIM++ Properties:** + // - idcsCompositeKey: [key, value] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + Tags []Tags `mandatory:"false" json:"tags"` + + // A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + DeleteInProgress *bool `mandatory:"false" json:"deleteInProgress"` + + // The release number when the resource was upgraded. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsLastUpgradedInRelease *string `mandatory:"false" json:"idcsLastUpgradedInRelease"` + + // OCI Domain Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + DomainOcid *string `mandatory:"false" json:"domainOcid"` + + // OCI Compartment Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + CompartmentOcid *string `mandatory:"false" json:"compartmentOcid"` + + // OCI Tenant Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + TenancyOcid *string `mandatory:"false" json:"tenancyOcid"` + + // text that explains the purpose of this Dynamic Resource Group + // **SCIM++ Properties:** + // - caseExact: false + // - idcsCsvAttributeName: Description + // - idcsCsvAttributeNameMappings: [[columnHeaderName:Description]] + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: always + // - type: string + // - uniqueness: none + Description *string `mandatory:"false" json:"description"` + + // Grants assigned to group + // **SCIM++ Properties:** + // - idcsAddedSinceVersion: 3 + // - idcsSearchable: true + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + Grants []DynamicResourceGroupGrants `mandatory:"false" json:"grants"` + + // A list of appRoles that are currently granted to this Dynamic Resource Group. The Identity service will assert these AppRoles for any resource that satisfies the matching-rule of this DynamicResourceGroup. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsCompositeKey: [value] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + DynamicGroupAppRoles []DynamicResourceGroupDynamicGroupAppRoles `mandatory:"false" json:"dynamicGroupAppRoles"` + + UrnIetfParamsScimSchemasOracleIdcsExtensionOciTags *ExtensionOciTags `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:OCITags"` +} + +func (m DynamicResourceGroup) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m DynamicResourceGroup) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + for _, val := range m.IdcsPreventedOperations { + if _, ok := GetMappingIdcsPreventedOperationsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for IdcsPreventedOperations: %s. Supported values are: %s.", val, strings.Join(GetIdcsPreventedOperationsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/dynamic_resource_group_dynamic_group_app_roles.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/dynamic_resource_group_dynamic_group_app_roles.go new file mode 100644 index 00000000000..58aa8bcc75c --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/dynamic_resource_group_dynamic_group_app_roles.go @@ -0,0 +1,120 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// DynamicResourceGroupDynamicGroupAppRoles A list of appRoles that are currently granted to this Dynamic Resource Group. The Identity service will assert these AppRoles for any resource that satisfies the matching-rule of this DynamicResourceGroup. +type DynamicResourceGroupDynamicGroupAppRoles struct { + + // The identifier of the appRole + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: true + // - returned: always + // - type: string + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` + + // The URI of the corresponding appRole resource to which the user belongs + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` + + // A human readable name, primarily used for display purposes. READ-ONLY. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + Display *string `mandatory:"false" json:"display"` + + // ID of parent App. READ-ONLY. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + AppId *string `mandatory:"false" json:"appId"` + + // Name of parent App. READ-ONLY. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + AppName *string `mandatory:"false" json:"appName"` + + // If true, then the role provides administrative access privileges. READ-ONLY. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: boolean + // - uniqueness: none + AdminRole *bool `mandatory:"false" json:"adminRole"` + + // The name of the legacy group associated with this AppRole. + // **SCIM++ Properties:** + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + LegacyGroupName *string `mandatory:"false" json:"legacyGroupName"` +} + +func (m DynamicResourceGroupDynamicGroupAppRoles) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m DynamicResourceGroupDynamicGroupAppRoles) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/dynamic_resource_group_grants.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/dynamic_resource_group_grants.go new file mode 100644 index 00000000000..0310ac988c8 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/dynamic_resource_group_grants.go @@ -0,0 +1,161 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// DynamicResourceGroupGrants Grants assigned to group +type DynamicResourceGroupGrants struct { + + // Grant identifier + // **SCIM++ Properties:** + // - caseExact: true + // - idcsAddedSinceVersion: 3 + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Value *string `mandatory:"false" json:"value"` + + // Grant URI + // **SCIM++ Properties:** + // - idcsAddedSinceVersion: 3 + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` + + // App identifier + // **SCIM++ Properties:** + // - caseExact: true + // - idcsAddedSinceVersion: 3 + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + AppId *string `mandatory:"false" json:"appId"` + + // Each value of grantMechanism indicates how (or by what component) some App (or App-Entitlement) was granted.\nA customer or the UI should use only grantMechanism values that start with 'ADMINISTRATOR':\n - 'ADMINISTRATOR_TO_USER' is for a direct grant to a specific User.\n - 'ADMINISTRATOR_TO_GROUP' is for a grant to a specific Group, which results in indirect grants to Users who are members of that Group.\n - 'ADMINISTRATOR_TO_APP' is for a grant to a specific App. The grantee (client) App gains access to the granted (server) App. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsAddedSinceVersion: 3 + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + GrantMechanism DynamicResourceGroupGrantsGrantMechanismEnum `mandatory:"false" json:"grantMechanism,omitempty"` +} + +func (m DynamicResourceGroupGrants) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m DynamicResourceGroupGrants) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if _, ok := GetMappingDynamicResourceGroupGrantsGrantMechanismEnum(string(m.GrantMechanism)); !ok && m.GrantMechanism != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for GrantMechanism: %s. Supported values are: %s.", m.GrantMechanism, strings.Join(GetDynamicResourceGroupGrantsGrantMechanismEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// DynamicResourceGroupGrantsGrantMechanismEnum Enum with underlying type: string +type DynamicResourceGroupGrantsGrantMechanismEnum string + +// Set of constants representing the allowable values for DynamicResourceGroupGrantsGrantMechanismEnum +const ( + DynamicResourceGroupGrantsGrantMechanismImportApproleMembers DynamicResourceGroupGrantsGrantMechanismEnum = "IMPORT_APPROLE_MEMBERS" + DynamicResourceGroupGrantsGrantMechanismAdministratorToDynamicResourceGroup DynamicResourceGroupGrantsGrantMechanismEnum = "ADMINISTRATOR_TO_DYNAMIC_RESOURCE_GROUP" + DynamicResourceGroupGrantsGrantMechanismAdministratorToUser DynamicResourceGroupGrantsGrantMechanismEnum = "ADMINISTRATOR_TO_USER" + DynamicResourceGroupGrantsGrantMechanismAdministratorToGroup DynamicResourceGroupGrantsGrantMechanismEnum = "ADMINISTRATOR_TO_GROUP" + DynamicResourceGroupGrantsGrantMechanismServiceManagerToUser DynamicResourceGroupGrantsGrantMechanismEnum = "SERVICE_MANAGER_TO_USER" + DynamicResourceGroupGrantsGrantMechanismAdministratorToApp DynamicResourceGroupGrantsGrantMechanismEnum = "ADMINISTRATOR_TO_APP" + DynamicResourceGroupGrantsGrantMechanismServiceManagerToApp DynamicResourceGroupGrantsGrantMechanismEnum = "SERVICE_MANAGER_TO_APP" + DynamicResourceGroupGrantsGrantMechanismOpcInfraToApp DynamicResourceGroupGrantsGrantMechanismEnum = "OPC_INFRA_TO_APP" + DynamicResourceGroupGrantsGrantMechanismGroupMembership DynamicResourceGroupGrantsGrantMechanismEnum = "GROUP_MEMBERSHIP" +) + +var mappingDynamicResourceGroupGrantsGrantMechanismEnum = map[string]DynamicResourceGroupGrantsGrantMechanismEnum{ + "IMPORT_APPROLE_MEMBERS": DynamicResourceGroupGrantsGrantMechanismImportApproleMembers, + "ADMINISTRATOR_TO_DYNAMIC_RESOURCE_GROUP": DynamicResourceGroupGrantsGrantMechanismAdministratorToDynamicResourceGroup, + "ADMINISTRATOR_TO_USER": DynamicResourceGroupGrantsGrantMechanismAdministratorToUser, + "ADMINISTRATOR_TO_GROUP": DynamicResourceGroupGrantsGrantMechanismAdministratorToGroup, + "SERVICE_MANAGER_TO_USER": DynamicResourceGroupGrantsGrantMechanismServiceManagerToUser, + "ADMINISTRATOR_TO_APP": DynamicResourceGroupGrantsGrantMechanismAdministratorToApp, + "SERVICE_MANAGER_TO_APP": DynamicResourceGroupGrantsGrantMechanismServiceManagerToApp, + "OPC_INFRA_TO_APP": DynamicResourceGroupGrantsGrantMechanismOpcInfraToApp, + "GROUP_MEMBERSHIP": DynamicResourceGroupGrantsGrantMechanismGroupMembership, +} + +var mappingDynamicResourceGroupGrantsGrantMechanismEnumLowerCase = map[string]DynamicResourceGroupGrantsGrantMechanismEnum{ + "import_approle_members": DynamicResourceGroupGrantsGrantMechanismImportApproleMembers, + "administrator_to_dynamic_resource_group": DynamicResourceGroupGrantsGrantMechanismAdministratorToDynamicResourceGroup, + "administrator_to_user": DynamicResourceGroupGrantsGrantMechanismAdministratorToUser, + "administrator_to_group": DynamicResourceGroupGrantsGrantMechanismAdministratorToGroup, + "service_manager_to_user": DynamicResourceGroupGrantsGrantMechanismServiceManagerToUser, + "administrator_to_app": DynamicResourceGroupGrantsGrantMechanismAdministratorToApp, + "service_manager_to_app": DynamicResourceGroupGrantsGrantMechanismServiceManagerToApp, + "opc_infra_to_app": DynamicResourceGroupGrantsGrantMechanismOpcInfraToApp, + "group_membership": DynamicResourceGroupGrantsGrantMechanismGroupMembership, +} + +// GetDynamicResourceGroupGrantsGrantMechanismEnumValues Enumerates the set of values for DynamicResourceGroupGrantsGrantMechanismEnum +func GetDynamicResourceGroupGrantsGrantMechanismEnumValues() []DynamicResourceGroupGrantsGrantMechanismEnum { + values := make([]DynamicResourceGroupGrantsGrantMechanismEnum, 0) + for _, v := range mappingDynamicResourceGroupGrantsGrantMechanismEnum { + values = append(values, v) + } + return values +} + +// GetDynamicResourceGroupGrantsGrantMechanismEnumStringValues Enumerates the set of values in String for DynamicResourceGroupGrantsGrantMechanismEnum +func GetDynamicResourceGroupGrantsGrantMechanismEnumStringValues() []string { + return []string{ + "IMPORT_APPROLE_MEMBERS", + "ADMINISTRATOR_TO_DYNAMIC_RESOURCE_GROUP", + "ADMINISTRATOR_TO_USER", + "ADMINISTRATOR_TO_GROUP", + "SERVICE_MANAGER_TO_USER", + "ADMINISTRATOR_TO_APP", + "SERVICE_MANAGER_TO_APP", + "OPC_INFRA_TO_APP", + "GROUP_MEMBERSHIP", + } +} + +// GetMappingDynamicResourceGroupGrantsGrantMechanismEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingDynamicResourceGroupGrantsGrantMechanismEnum(val string) (DynamicResourceGroupGrantsGrantMechanismEnum, bool) { + enum, ok := mappingDynamicResourceGroupGrantsGrantMechanismEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/dynamic_resource_group_search_request.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/dynamic_resource_group_search_request.go new file mode 100644 index 00000000000..5d6269d52d0 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/dynamic_resource_group_search_request.go @@ -0,0 +1,70 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// DynamicResourceGroupSearchRequest Clients MAY execute queries without passing parameters on the URL by using the HTTP POST verb combined with the **.search** path extension. The inclusion of **.search** on the end of a valid SCIM endpoint SHALL be used to indicate the HTTP POST verb is intended to be a query operation. To create a new query result set, a SCIM client sends an HTTP POST request to the desired SCIM resource endpoint (ending in **.search**). The body of the POST request MAY include any of the parameters. +type DynamicResourceGroupSearchRequest struct { + + // The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. Query requests MUST be identified using the following URI: "urn:ietf:params:scim:api:messages:2.0:SearchRequest" REQUIRED. + Schemas []string `mandatory:"true" json:"schemas"` + + // A multi-valued list of strings indicating the names of resource attributes to return in the response overriding the set of attributes that would be returned by default. Attribute names MUST be in standard attribute notation (Section 3.10 (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.10)) form. See (additional retrieval query parameters (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.9)). OPTIONAL. + Attributes []string `mandatory:"false" json:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If "attributes" query parameter is also available, union of the two is fetched. Valid values : all, always, never, request, default. Values are case-insensitive. OPTIONAL. + AttributeSets []AttributeSetsEnum `mandatory:"false" json:"attributeSets,omitempty"` + + // The filter string that is used to request a subset of resources. The filter string MUST be a valid filter expression. See Section 3.4.2.2 (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.2). OPTIONAL. + Filter *string `mandatory:"false" json:"filter"` + + // A string that indicates the attribute whose value SHALL be used to order the returned responses. The sortBy attribute MUST be in standard attribute notation (Section 3.10 (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.10)) form. See Sorting section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.3). OPTIONAL. + SortBy *string `mandatory:"false" json:"sortBy"` + + // A string that indicates the order in which the sortBy parameter is applied. Allowed values are "ascending" and "descending". See (Sorting Section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.3)). OPTIONAL. + SortOrder SortOrderEnum `mandatory:"false" json:"sortOrder,omitempty"` + + // An integer that indicates the 1-based index of the first query result. See Pagination Section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.4). OPTIONAL. + StartIndex *int `mandatory:"false" json:"startIndex"` + + // An integer that indicates the desired maximum number of query results per page. 1000 is the largest value that you can use. See the Pagination section of the System for Cross-Domain Identity Management Protocol specification for more information. (Section 3.4.2.4 (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.4)). OPTIONAL. + Count *int `mandatory:"false" json:"count"` +} + +func (m DynamicResourceGroupSearchRequest) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m DynamicResourceGroupSearchRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + for _, val := range m.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if _, ok := GetMappingSortOrderEnum(string(m.SortOrder)); !ok && m.SortOrder != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for SortOrder: %s. Supported values are: %s.", m.SortOrder, strings.Join(GetSortOrderEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/dynamic_resource_groups.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/dynamic_resource_groups.go new file mode 100644 index 00000000000..fc6720cda3e --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/dynamic_resource_groups.go @@ -0,0 +1,52 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// DynamicResourceGroups The SCIM protocol defines a standard set of query parameters that can be used to filter, sort, and paginate to return zero or more resources in a query response. Queries MAY be made against a single resource or a resource type endpoint (e.g., /Users), or the service provider Base URI. +type DynamicResourceGroups struct { + + // The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. REQUIRED. + Schemas []string `mandatory:"true" json:"schemas"` + + // The total number of results returned by the list or query operation. The value may be larger than the number of resources returned such as when returning a single page of results where multiple pages are available. REQUIRED. + TotalResults *int `mandatory:"true" json:"totalResults"` + + // A multi-valued list of complex objects containing the requested resources. This MAY be a subset of the full set of resources if pagination is requested. REQUIRED if "totalResults" is non-zero. + Resources []DynamicResourceGroup `mandatory:"true" json:"Resources"` + + // The 1-based index of the first result in the current set of list results. REQUIRED when partial results returned due to pagination. + StartIndex *int `mandatory:"true" json:"startIndex"` + + // The number of resources returned in a list response page. REQUIRED when partial results returned due to pagination. + ItemsPerPage *int `mandatory:"true" json:"itemsPerPage"` +} + +func (m DynamicResourceGroups) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m DynamicResourceGroups) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_adaptive_user.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_adaptive_user.go new file mode 100644 index 00000000000..9b3ad33d4cc --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_adaptive_user.go @@ -0,0 +1,111 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// ExtensionAdaptiveUser This extension defines attributes to manage user's risk score. +type ExtensionAdaptiveUser struct { + + // Risk Level + // **Added In:** 18.1.6 + // **SCIM++ Properties:** + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + RiskLevel ExtensionAdaptiveUserRiskLevelEnum `mandatory:"false" json:"riskLevel,omitempty"` + + // The risk score pertaining to the user. + // **Added In:** 18.1.6 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsCompositeKey: [value] + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + RiskScores []UserExtRiskScores `mandatory:"false" json:"riskScores"` +} + +func (m ExtensionAdaptiveUser) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m ExtensionAdaptiveUser) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if _, ok := GetMappingExtensionAdaptiveUserRiskLevelEnum(string(m.RiskLevel)); !ok && m.RiskLevel != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for RiskLevel: %s. Supported values are: %s.", m.RiskLevel, strings.Join(GetExtensionAdaptiveUserRiskLevelEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// ExtensionAdaptiveUserRiskLevelEnum Enum with underlying type: string +type ExtensionAdaptiveUserRiskLevelEnum string + +// Set of constants representing the allowable values for ExtensionAdaptiveUserRiskLevelEnum +const ( + ExtensionAdaptiveUserRiskLevelLow ExtensionAdaptiveUserRiskLevelEnum = "LOW" + ExtensionAdaptiveUserRiskLevelMedium ExtensionAdaptiveUserRiskLevelEnum = "MEDIUM" + ExtensionAdaptiveUserRiskLevelHigh ExtensionAdaptiveUserRiskLevelEnum = "HIGH" +) + +var mappingExtensionAdaptiveUserRiskLevelEnum = map[string]ExtensionAdaptiveUserRiskLevelEnum{ + "LOW": ExtensionAdaptiveUserRiskLevelLow, + "MEDIUM": ExtensionAdaptiveUserRiskLevelMedium, + "HIGH": ExtensionAdaptiveUserRiskLevelHigh, +} + +var mappingExtensionAdaptiveUserRiskLevelEnumLowerCase = map[string]ExtensionAdaptiveUserRiskLevelEnum{ + "low": ExtensionAdaptiveUserRiskLevelLow, + "medium": ExtensionAdaptiveUserRiskLevelMedium, + "high": ExtensionAdaptiveUserRiskLevelHigh, +} + +// GetExtensionAdaptiveUserRiskLevelEnumValues Enumerates the set of values for ExtensionAdaptiveUserRiskLevelEnum +func GetExtensionAdaptiveUserRiskLevelEnumValues() []ExtensionAdaptiveUserRiskLevelEnum { + values := make([]ExtensionAdaptiveUserRiskLevelEnum, 0) + for _, v := range mappingExtensionAdaptiveUserRiskLevelEnum { + values = append(values, v) + } + return values +} + +// GetExtensionAdaptiveUserRiskLevelEnumStringValues Enumerates the set of values in String for ExtensionAdaptiveUserRiskLevelEnum +func GetExtensionAdaptiveUserRiskLevelEnumStringValues() []string { + return []string{ + "LOW", + "MEDIUM", + "HIGH", + } +} + +// GetMappingExtensionAdaptiveUserRiskLevelEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingExtensionAdaptiveUserRiskLevelEnum(val string) (ExtensionAdaptiveUserRiskLevelEnum, bool) { + enum, ok := mappingExtensionAdaptiveUserRiskLevelEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_capabilities_user.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_capabilities_user.go new file mode 100644 index 00000000000..a13e96dd523 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_capabilities_user.go @@ -0,0 +1,128 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// ExtensionCapabilitiesUser User's Capabilities +type ExtensionCapabilitiesUser struct { + + // Indicates weather a user can use api keys + // **Added In:** 2012271618 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + CanUseApiKeys *bool `mandatory:"false" json:"canUseApiKeys"` + + // Indicates weather a user can use auth tokens + // **Added In:** 2012271618 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + CanUseAuthTokens *bool `mandatory:"false" json:"canUseAuthTokens"` + + // Indicates weather a user can use console password + // **Added In:** 2012271618 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + CanUseConsolePassword *bool `mandatory:"false" json:"canUseConsolePassword"` + + // Indicates weather a user can use customer secret keys + // **Added In:** 2012271618 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + CanUseCustomerSecretKeys *bool `mandatory:"false" json:"canUseCustomerSecretKeys"` + + // Indicates weather a user can use oauth2 client credentials + // **Added In:** 2012271618 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + CanUseOAuth2ClientCredentials *bool `mandatory:"false" json:"canUseOAuth2ClientCredentials"` + + // Indicates weather a user can use smtp credentials + // **Added In:** 2012271618 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + CanUseSmtpCredentials *bool `mandatory:"false" json:"canUseSmtpCredentials"` + + // Indicates weather a user can use db credentials + // **Added In:** 2012271618 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + CanUseDbCredentials *bool `mandatory:"false" json:"canUseDbCredentials"` +} + +func (m ExtensionCapabilitiesUser) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m ExtensionCapabilitiesUser) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_db_credentials_user.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_db_credentials_user.go new file mode 100644 index 00000000000..670eaf1e240 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_db_credentials_user.go @@ -0,0 +1,62 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// ExtensionDbCredentialsUser Db Credentials User extension +type ExtensionDbCredentialsUser struct { + + // The Database User Name + // **Added In:** 2102181953 + // **SCIM++ Properties:** + // - multiValued: false + // - mutability: readWrite + // - required: false + // - type: string + // - returned: request + // - caseExact: false + // - uniqueness: none + // - idcsSearchable: true + DbUserName *string `mandatory:"false" json:"dbUserName"` + + // The number of failed login attempts. The value is reset to 0 after a successful login. + // **Added In:** 2102181953 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: integer + // - uniqueness: none + DbLoginAttempts *int `mandatory:"false" json:"dbLoginAttempts"` +} + +func (m ExtensionDbCredentialsUser) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m ExtensionDbCredentialsUser) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_db_user_user.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_db_user_user.go new file mode 100644 index 00000000000..3d3988ee212 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_db_user_user.go @@ -0,0 +1,102 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// ExtensionDbUserUser DB User extension +type ExtensionDbUserUser struct { + + // If true, indicates this is a database user. + // **Added In:** 18.2.2 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: boolean + // - uniqueness: none + IsDbUser *bool `mandatory:"false" json:"isDbUser"` + + // Password Verifiers for DB User. + // **Added In:** 18.2.2 + // **SCIM++ Properties:** + // - idcsCompositeKey: [type] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + PasswordVerifiers []UserExtPasswordVerifiers `mandatory:"false" json:"passwordVerifiers"` + + // DB domain level schema to which the user is granted access. + // **Added In:** 18.2.2 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - idcsSensitive: none + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + DomainLevelSchema *string `mandatory:"false" json:"domainLevelSchema"` + + // DB instance level schema to which the user is granted access. + // **Added In:** 18.2.2 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - idcsSensitive: none + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + InstanceLevelSchema *string `mandatory:"false" json:"instanceLevelSchema"` + + // DB global roles to which the user is granted access. + // **Added In:** 18.2.2 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - idcsSensitive: none + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + DbGlobalRoles []string `mandatory:"false" json:"dbGlobalRoles"` +} + +func (m ExtensionDbUserUser) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m ExtensionDbUserUser) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_dbcs_group.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_dbcs_group.go new file mode 100644 index 00000000000..9f03a12f5ad --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_dbcs_group.go @@ -0,0 +1,87 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// ExtensionDbcsGroup Schema for Database Service Resource +type ExtensionDbcsGroup struct { + + // DBCS instance-level schema-names. Each schema-name is specific to a DB Instance. + // **Added In:** 18.2.4 + // **SCIM++ Properties:** + // - idcsCompositeKey: [dbInstanceId, schemaName] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: complex + InstanceLevelSchemaNames []GroupExtInstanceLevelSchemaNames `mandatory:"false" json:"instanceLevelSchemaNames"` + + // DBCS Domain-level schema-names. Each value is specific to a DB Domain. + // **Added In:** 18.2.4 + // **SCIM++ Properties:** + // - idcsCompositeKey: [domainName, schemaName] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: complex + DomainLevelSchemaNames []GroupExtDomainLevelSchemaNames `mandatory:"false" json:"domainLevelSchemaNames"` + + // DBCS Domain-level schema-name. This attribute refers implicitly to a value of 'domainLevelSchemaNames' for a particular DB Domain. + // **Added In:** 18.2.4 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - idcsSensitive: none + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + DomainLevelSchema *string `mandatory:"false" json:"domainLevelSchema"` + + // DBCS instance-level schema-name. This attribute refers implicitly to a value of 'instanceLevelSchemaNames' for a particular DB Instance. + // **Added In:** 18.2.4 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - idcsSensitive: none + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + InstanceLevelSchema *string `mandatory:"false" json:"instanceLevelSchema"` +} + +func (m ExtensionDbcsGroup) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m ExtensionDbcsGroup) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_dynamic_group.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_dynamic_group.go new file mode 100644 index 00000000000..5311266bf2c --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_dynamic_group.go @@ -0,0 +1,108 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// ExtensionDynamicGroup Dynamic Group +type ExtensionDynamicGroup struct { + + // Membership type + // **Added In:** 19.2.1 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: always + // - type: string + // - uniqueness: none + MembershipType ExtensionDynamicGroupMembershipTypeEnum `mandatory:"false" json:"membershipType,omitempty"` + + // Membership rule + // **Added In:** 19.2.1 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + MembershipRule *string `mandatory:"false" json:"membershipRule"` +} + +func (m ExtensionDynamicGroup) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m ExtensionDynamicGroup) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if _, ok := GetMappingExtensionDynamicGroupMembershipTypeEnum(string(m.MembershipType)); !ok && m.MembershipType != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for MembershipType: %s. Supported values are: %s.", m.MembershipType, strings.Join(GetExtensionDynamicGroupMembershipTypeEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// ExtensionDynamicGroupMembershipTypeEnum Enum with underlying type: string +type ExtensionDynamicGroupMembershipTypeEnum string + +// Set of constants representing the allowable values for ExtensionDynamicGroupMembershipTypeEnum +const ( + ExtensionDynamicGroupMembershipTypeStatic ExtensionDynamicGroupMembershipTypeEnum = "static" + ExtensionDynamicGroupMembershipTypeDynamic ExtensionDynamicGroupMembershipTypeEnum = "dynamic" +) + +var mappingExtensionDynamicGroupMembershipTypeEnum = map[string]ExtensionDynamicGroupMembershipTypeEnum{ + "static": ExtensionDynamicGroupMembershipTypeStatic, + "dynamic": ExtensionDynamicGroupMembershipTypeDynamic, +} + +var mappingExtensionDynamicGroupMembershipTypeEnumLowerCase = map[string]ExtensionDynamicGroupMembershipTypeEnum{ + "static": ExtensionDynamicGroupMembershipTypeStatic, + "dynamic": ExtensionDynamicGroupMembershipTypeDynamic, +} + +// GetExtensionDynamicGroupMembershipTypeEnumValues Enumerates the set of values for ExtensionDynamicGroupMembershipTypeEnum +func GetExtensionDynamicGroupMembershipTypeEnumValues() []ExtensionDynamicGroupMembershipTypeEnum { + values := make([]ExtensionDynamicGroupMembershipTypeEnum, 0) + for _, v := range mappingExtensionDynamicGroupMembershipTypeEnum { + values = append(values, v) + } + return values +} + +// GetExtensionDynamicGroupMembershipTypeEnumStringValues Enumerates the set of values in String for ExtensionDynamicGroupMembershipTypeEnum +func GetExtensionDynamicGroupMembershipTypeEnumStringValues() []string { + return []string{ + "static", + "dynamic", + } +} + +// GetMappingExtensionDynamicGroupMembershipTypeEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingExtensionDynamicGroupMembershipTypeEnum(val string) (ExtensionDynamicGroupMembershipTypeEnum, bool) { + enum, ok := mappingExtensionDynamicGroupMembershipTypeEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_enterprise20_user.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_enterprise20_user.go new file mode 100644 index 00000000000..2c7529ff091 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_enterprise20_user.go @@ -0,0 +1,114 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// ExtensionEnterprise20User Enterprise User +type ExtensionEnterprise20User struct { + + // Numeric or alphanumeric identifier assigned to a person, typically based on order of hire or association with an organization. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsCsvAttributeName: Employee Number + // - idcsCsvAttributeNameMappings: [[columnHeaderName:Employee Number]] + // - idcsPii: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + EmployeeNumber *string `mandatory:"false" json:"employeeNumber"` + + // Identifies the name of a cost center. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsCsvAttributeName: Cost Center + // - idcsCsvAttributeNameMappings: [[columnHeaderName:Cost Center]] + // - idcsPii: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + CostCenter *string `mandatory:"false" json:"costCenter"` + + // Identifies the name of an organization. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsCsvAttributeName: Organization + // - idcsCsvAttributeNameMappings: [[columnHeaderName:Organization Name, deprecatedColumnHeaderName:Organization]] + // - idcsPii: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Organization *string `mandatory:"false" json:"organization"` + + // Identifies the name of a division. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsCsvAttributeName: Division + // - idcsCsvAttributeNameMappings: [[columnHeaderName:Division]] + // - idcsPii: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Division *string `mandatory:"false" json:"division"` + + // Identifies the name of a department. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsCsvAttributeName: Department + // - idcsCsvAttributeNameMappings: [[columnHeaderName:Department]] + // - idcsPii: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Department *string `mandatory:"false" json:"department"` + + Manager *UserExtManager `mandatory:"false" json:"manager"` +} + +func (m ExtensionEnterprise20User) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m ExtensionEnterprise20User) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_fido_authentication_factor_settings.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_fido_authentication_factor_settings.go new file mode 100644 index 00000000000..a1eda4f7045 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_fido_authentication_factor_settings.go @@ -0,0 +1,400 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// ExtensionFidoAuthenticationFactorSettings This extension defines attributes used to manage Multi-Factor Authentication settings of fido authentication +type ExtensionFidoAuthenticationFactorSettings struct { + + // Attribute used to define the type of attestation required. + // **Added In:** 2009232244 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Attestation ExtensionFidoAuthenticationFactorSettingsAttestationEnum `mandatory:"true" json:"attestation"` + + // Attribute used to define authenticator selection attachment. + // **Added In:** 2009232244 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + AuthenticatorSelectionAttachment ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionAttachmentEnum `mandatory:"true" json:"authenticatorSelectionAttachment"` + + // Attribute used to define authenticator selection verification. + // **Added In:** 2009232244 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + AuthenticatorSelectionUserVerification ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionUserVerificationEnum `mandatory:"true" json:"authenticatorSelectionUserVerification"` + + // Attribute used to define authenticator selection resident key requirement. + // **Added In:** 2009232244 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + AuthenticatorSelectionResidentKey ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionResidentKeyEnum `mandatory:"true" json:"authenticatorSelectionResidentKey"` + + // Timeout for the fido authentication to complete + // **Added In:** 2009232244 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - idcsMaxValue: 600000 + // - idcsMinValue: 10000 + // - required: true + // - returned: default + // - type: integer + // - uniqueness: none + Timeout *int `mandatory:"true" json:"timeout"` + + // Flag used to indicate authenticator selection is required or not + // **Added In:** 2009232244 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: boolean + // - uniqueness: none + AuthenticatorSelectionRequireResidentKey *bool `mandatory:"true" json:"authenticatorSelectionRequireResidentKey"` + + // List of server supported public key algorithms + // **Added In:** 2009232244 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: true + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + PublicKeyTypes []ExtensionFidoAuthenticationFactorSettingsPublicKeyTypesEnum `mandatory:"true" json:"publicKeyTypes"` + + // Flag used to indicate whether we need to restrict creation of multiple credentials in same authenticator + // **Added In:** 2009232244 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: boolean + // - uniqueness: none + ExcludeCredentials *bool `mandatory:"true" json:"excludeCredentials"` + + // Number of domain levels IDCS should use for origin comparision + // **Added In:** 2109020413 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - idcsMaxValue: 2 + // - idcsMinValue: 0 + // - required: false + // - returned: default + // - type: integer + // - uniqueness: none + DomainValidationLevel *int `mandatory:"false" json:"domainValidationLevel"` +} + +func (m ExtensionFidoAuthenticationFactorSettings) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m ExtensionFidoAuthenticationFactorSettings) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingExtensionFidoAuthenticationFactorSettingsAttestationEnum(string(m.Attestation)); !ok && m.Attestation != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Attestation: %s. Supported values are: %s.", m.Attestation, strings.Join(GetExtensionFidoAuthenticationFactorSettingsAttestationEnumStringValues(), ","))) + } + if _, ok := GetMappingExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionAttachmentEnum(string(m.AuthenticatorSelectionAttachment)); !ok && m.AuthenticatorSelectionAttachment != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AuthenticatorSelectionAttachment: %s. Supported values are: %s.", m.AuthenticatorSelectionAttachment, strings.Join(GetExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionAttachmentEnumStringValues(), ","))) + } + if _, ok := GetMappingExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionUserVerificationEnum(string(m.AuthenticatorSelectionUserVerification)); !ok && m.AuthenticatorSelectionUserVerification != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AuthenticatorSelectionUserVerification: %s. Supported values are: %s.", m.AuthenticatorSelectionUserVerification, strings.Join(GetExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionUserVerificationEnumStringValues(), ","))) + } + if _, ok := GetMappingExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionResidentKeyEnum(string(m.AuthenticatorSelectionResidentKey)); !ok && m.AuthenticatorSelectionResidentKey != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AuthenticatorSelectionResidentKey: %s. Supported values are: %s.", m.AuthenticatorSelectionResidentKey, strings.Join(GetExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionResidentKeyEnumStringValues(), ","))) + } + for _, val := range m.PublicKeyTypes { + if _, ok := GetMappingExtensionFidoAuthenticationFactorSettingsPublicKeyTypesEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for PublicKeyTypes: %s. Supported values are: %s.", val, strings.Join(GetExtensionFidoAuthenticationFactorSettingsPublicKeyTypesEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// ExtensionFidoAuthenticationFactorSettingsAttestationEnum Enum with underlying type: string +type ExtensionFidoAuthenticationFactorSettingsAttestationEnum string + +// Set of constants representing the allowable values for ExtensionFidoAuthenticationFactorSettingsAttestationEnum +const ( + ExtensionFidoAuthenticationFactorSettingsAttestationNone ExtensionFidoAuthenticationFactorSettingsAttestationEnum = "NONE" + ExtensionFidoAuthenticationFactorSettingsAttestationDirect ExtensionFidoAuthenticationFactorSettingsAttestationEnum = "DIRECT" + ExtensionFidoAuthenticationFactorSettingsAttestationIndirect ExtensionFidoAuthenticationFactorSettingsAttestationEnum = "INDIRECT" +) + +var mappingExtensionFidoAuthenticationFactorSettingsAttestationEnum = map[string]ExtensionFidoAuthenticationFactorSettingsAttestationEnum{ + "NONE": ExtensionFidoAuthenticationFactorSettingsAttestationNone, + "DIRECT": ExtensionFidoAuthenticationFactorSettingsAttestationDirect, + "INDIRECT": ExtensionFidoAuthenticationFactorSettingsAttestationIndirect, +} + +var mappingExtensionFidoAuthenticationFactorSettingsAttestationEnumLowerCase = map[string]ExtensionFidoAuthenticationFactorSettingsAttestationEnum{ + "none": ExtensionFidoAuthenticationFactorSettingsAttestationNone, + "direct": ExtensionFidoAuthenticationFactorSettingsAttestationDirect, + "indirect": ExtensionFidoAuthenticationFactorSettingsAttestationIndirect, +} + +// GetExtensionFidoAuthenticationFactorSettingsAttestationEnumValues Enumerates the set of values for ExtensionFidoAuthenticationFactorSettingsAttestationEnum +func GetExtensionFidoAuthenticationFactorSettingsAttestationEnumValues() []ExtensionFidoAuthenticationFactorSettingsAttestationEnum { + values := make([]ExtensionFidoAuthenticationFactorSettingsAttestationEnum, 0) + for _, v := range mappingExtensionFidoAuthenticationFactorSettingsAttestationEnum { + values = append(values, v) + } + return values +} + +// GetExtensionFidoAuthenticationFactorSettingsAttestationEnumStringValues Enumerates the set of values in String for ExtensionFidoAuthenticationFactorSettingsAttestationEnum +func GetExtensionFidoAuthenticationFactorSettingsAttestationEnumStringValues() []string { + return []string{ + "NONE", + "DIRECT", + "INDIRECT", + } +} + +// GetMappingExtensionFidoAuthenticationFactorSettingsAttestationEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingExtensionFidoAuthenticationFactorSettingsAttestationEnum(val string) (ExtensionFidoAuthenticationFactorSettingsAttestationEnum, bool) { + enum, ok := mappingExtensionFidoAuthenticationFactorSettingsAttestationEnumLowerCase[strings.ToLower(val)] + return enum, ok +} + +// ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionAttachmentEnum Enum with underlying type: string +type ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionAttachmentEnum string + +// Set of constants representing the allowable values for ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionAttachmentEnum +const ( + ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionAttachmentPlatform ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionAttachmentEnum = "PLATFORM" + ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionAttachmentCrossPlatform ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionAttachmentEnum = "CROSS-PLATFORM" + ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionAttachmentBoth ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionAttachmentEnum = "BOTH" +) + +var mappingExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionAttachmentEnum = map[string]ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionAttachmentEnum{ + "PLATFORM": ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionAttachmentPlatform, + "CROSS-PLATFORM": ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionAttachmentCrossPlatform, + "BOTH": ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionAttachmentBoth, +} + +var mappingExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionAttachmentEnumLowerCase = map[string]ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionAttachmentEnum{ + "platform": ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionAttachmentPlatform, + "cross-platform": ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionAttachmentCrossPlatform, + "both": ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionAttachmentBoth, +} + +// GetExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionAttachmentEnumValues Enumerates the set of values for ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionAttachmentEnum +func GetExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionAttachmentEnumValues() []ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionAttachmentEnum { + values := make([]ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionAttachmentEnum, 0) + for _, v := range mappingExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionAttachmentEnum { + values = append(values, v) + } + return values +} + +// GetExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionAttachmentEnumStringValues Enumerates the set of values in String for ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionAttachmentEnum +func GetExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionAttachmentEnumStringValues() []string { + return []string{ + "PLATFORM", + "CROSS-PLATFORM", + "BOTH", + } +} + +// GetMappingExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionAttachmentEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionAttachmentEnum(val string) (ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionAttachmentEnum, bool) { + enum, ok := mappingExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionAttachmentEnumLowerCase[strings.ToLower(val)] + return enum, ok +} + +// ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionUserVerificationEnum Enum with underlying type: string +type ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionUserVerificationEnum string + +// Set of constants representing the allowable values for ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionUserVerificationEnum +const ( + ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionUserVerificationRequired ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionUserVerificationEnum = "REQUIRED" + ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionUserVerificationPreferred ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionUserVerificationEnum = "PREFERRED" + ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionUserVerificationDiscouraged ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionUserVerificationEnum = "DISCOURAGED" +) + +var mappingExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionUserVerificationEnum = map[string]ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionUserVerificationEnum{ + "REQUIRED": ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionUserVerificationRequired, + "PREFERRED": ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionUserVerificationPreferred, + "DISCOURAGED": ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionUserVerificationDiscouraged, +} + +var mappingExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionUserVerificationEnumLowerCase = map[string]ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionUserVerificationEnum{ + "required": ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionUserVerificationRequired, + "preferred": ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionUserVerificationPreferred, + "discouraged": ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionUserVerificationDiscouraged, +} + +// GetExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionUserVerificationEnumValues Enumerates the set of values for ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionUserVerificationEnum +func GetExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionUserVerificationEnumValues() []ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionUserVerificationEnum { + values := make([]ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionUserVerificationEnum, 0) + for _, v := range mappingExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionUserVerificationEnum { + values = append(values, v) + } + return values +} + +// GetExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionUserVerificationEnumStringValues Enumerates the set of values in String for ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionUserVerificationEnum +func GetExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionUserVerificationEnumStringValues() []string { + return []string{ + "REQUIRED", + "PREFERRED", + "DISCOURAGED", + } +} + +// GetMappingExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionUserVerificationEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionUserVerificationEnum(val string) (ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionUserVerificationEnum, bool) { + enum, ok := mappingExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionUserVerificationEnumLowerCase[strings.ToLower(val)] + return enum, ok +} + +// ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionResidentKeyEnum Enum with underlying type: string +type ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionResidentKeyEnum string + +// Set of constants representing the allowable values for ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionResidentKeyEnum +const ( + ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionResidentKeyRequired ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionResidentKeyEnum = "REQUIRED" + ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionResidentKeyPreferred ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionResidentKeyEnum = "PREFERRED" + ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionResidentKeyDiscouraged ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionResidentKeyEnum = "DISCOURAGED" + ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionResidentKeyNone ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionResidentKeyEnum = "NONE" +) + +var mappingExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionResidentKeyEnum = map[string]ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionResidentKeyEnum{ + "REQUIRED": ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionResidentKeyRequired, + "PREFERRED": ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionResidentKeyPreferred, + "DISCOURAGED": ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionResidentKeyDiscouraged, + "NONE": ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionResidentKeyNone, +} + +var mappingExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionResidentKeyEnumLowerCase = map[string]ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionResidentKeyEnum{ + "required": ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionResidentKeyRequired, + "preferred": ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionResidentKeyPreferred, + "discouraged": ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionResidentKeyDiscouraged, + "none": ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionResidentKeyNone, +} + +// GetExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionResidentKeyEnumValues Enumerates the set of values for ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionResidentKeyEnum +func GetExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionResidentKeyEnumValues() []ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionResidentKeyEnum { + values := make([]ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionResidentKeyEnum, 0) + for _, v := range mappingExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionResidentKeyEnum { + values = append(values, v) + } + return values +} + +// GetExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionResidentKeyEnumStringValues Enumerates the set of values in String for ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionResidentKeyEnum +func GetExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionResidentKeyEnumStringValues() []string { + return []string{ + "REQUIRED", + "PREFERRED", + "DISCOURAGED", + "NONE", + } +} + +// GetMappingExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionResidentKeyEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionResidentKeyEnum(val string) (ExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionResidentKeyEnum, bool) { + enum, ok := mappingExtensionFidoAuthenticationFactorSettingsAuthenticatorSelectionResidentKeyEnumLowerCase[strings.ToLower(val)] + return enum, ok +} + +// ExtensionFidoAuthenticationFactorSettingsPublicKeyTypesEnum Enum with underlying type: string +type ExtensionFidoAuthenticationFactorSettingsPublicKeyTypesEnum string + +// Set of constants representing the allowable values for ExtensionFidoAuthenticationFactorSettingsPublicKeyTypesEnum +const ( + ExtensionFidoAuthenticationFactorSettingsPublicKeyTypesRs1 ExtensionFidoAuthenticationFactorSettingsPublicKeyTypesEnum = "RS1" + ExtensionFidoAuthenticationFactorSettingsPublicKeyTypesRs256 ExtensionFidoAuthenticationFactorSettingsPublicKeyTypesEnum = "RS256" + ExtensionFidoAuthenticationFactorSettingsPublicKeyTypesEs256 ExtensionFidoAuthenticationFactorSettingsPublicKeyTypesEnum = "ES256" +) + +var mappingExtensionFidoAuthenticationFactorSettingsPublicKeyTypesEnum = map[string]ExtensionFidoAuthenticationFactorSettingsPublicKeyTypesEnum{ + "RS1": ExtensionFidoAuthenticationFactorSettingsPublicKeyTypesRs1, + "RS256": ExtensionFidoAuthenticationFactorSettingsPublicKeyTypesRs256, + "ES256": ExtensionFidoAuthenticationFactorSettingsPublicKeyTypesEs256, +} + +var mappingExtensionFidoAuthenticationFactorSettingsPublicKeyTypesEnumLowerCase = map[string]ExtensionFidoAuthenticationFactorSettingsPublicKeyTypesEnum{ + "rs1": ExtensionFidoAuthenticationFactorSettingsPublicKeyTypesRs1, + "rs256": ExtensionFidoAuthenticationFactorSettingsPublicKeyTypesRs256, + "es256": ExtensionFidoAuthenticationFactorSettingsPublicKeyTypesEs256, +} + +// GetExtensionFidoAuthenticationFactorSettingsPublicKeyTypesEnumValues Enumerates the set of values for ExtensionFidoAuthenticationFactorSettingsPublicKeyTypesEnum +func GetExtensionFidoAuthenticationFactorSettingsPublicKeyTypesEnumValues() []ExtensionFidoAuthenticationFactorSettingsPublicKeyTypesEnum { + values := make([]ExtensionFidoAuthenticationFactorSettingsPublicKeyTypesEnum, 0) + for _, v := range mappingExtensionFidoAuthenticationFactorSettingsPublicKeyTypesEnum { + values = append(values, v) + } + return values +} + +// GetExtensionFidoAuthenticationFactorSettingsPublicKeyTypesEnumStringValues Enumerates the set of values in String for ExtensionFidoAuthenticationFactorSettingsPublicKeyTypesEnum +func GetExtensionFidoAuthenticationFactorSettingsPublicKeyTypesEnumStringValues() []string { + return []string{ + "RS1", + "RS256", + "ES256", + } +} + +// GetMappingExtensionFidoAuthenticationFactorSettingsPublicKeyTypesEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingExtensionFidoAuthenticationFactorSettingsPublicKeyTypesEnum(val string) (ExtensionFidoAuthenticationFactorSettingsPublicKeyTypesEnum, bool) { + enum, ok := mappingExtensionFidoAuthenticationFactorSettingsPublicKeyTypesEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_group_group.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_group_group.go new file mode 100644 index 00000000000..74bceed1c51 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_group_group.go @@ -0,0 +1,166 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// ExtensionGroupGroup Idcs Group +type ExtensionGroupGroup struct { + + // Group description + // **SCIM++ Properties:** + // - caseExact: false + // - idcsCsvAttributeName: Description + // - idcsCsvAttributeNameMappings: [[columnHeaderName:Description]] + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Description *string `mandatory:"false" json:"description"` + + // Source from which this group got created. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsCsvAttributeNameMappings: [[defaultValue:import]] + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + CreationMechanism ExtensionGroupGroupCreationMechanismEnum `mandatory:"false" json:"creationMechanism,omitempty"` + + PasswordPolicy *GroupExtPasswordPolicy `mandatory:"false" json:"passwordPolicy"` + + SyncedFromApp *GroupExtSyncedFromApp `mandatory:"false" json:"syncedFromApp"` + + // Grants assigned to group + // **SCIM++ Properties:** + // - idcsSearchable: true + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + Grants []GroupExtGrants `mandatory:"false" json:"grants"` + + // Group owners + // **SCIM++ Properties:** + // - caseExact: false + // - idcsCompositeKey: [value, type] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + Owners []GroupExtOwners `mandatory:"false" json:"owners"` + + // A list of appRoles that the user belongs to, either thorough direct membership, nested groups, or dynamically calculated + // **SCIM++ Properties:** + // - caseExact: false + // - idcsCompositeKey: [value] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + AppRoles []GroupExtAppRoles `mandatory:"false" json:"appRoles"` +} + +func (m ExtensionGroupGroup) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m ExtensionGroupGroup) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if _, ok := GetMappingExtensionGroupGroupCreationMechanismEnum(string(m.CreationMechanism)); !ok && m.CreationMechanism != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for CreationMechanism: %s. Supported values are: %s.", m.CreationMechanism, strings.Join(GetExtensionGroupGroupCreationMechanismEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// ExtensionGroupGroupCreationMechanismEnum Enum with underlying type: string +type ExtensionGroupGroupCreationMechanismEnum string + +// Set of constants representing the allowable values for ExtensionGroupGroupCreationMechanismEnum +const ( + ExtensionGroupGroupCreationMechanismBulk ExtensionGroupGroupCreationMechanismEnum = "bulk" + ExtensionGroupGroupCreationMechanismApi ExtensionGroupGroupCreationMechanismEnum = "api" + ExtensionGroupGroupCreationMechanismAdsync ExtensionGroupGroupCreationMechanismEnum = "adsync" + ExtensionGroupGroupCreationMechanismAuthsync ExtensionGroupGroupCreationMechanismEnum = "authsync" + ExtensionGroupGroupCreationMechanismIdcsui ExtensionGroupGroupCreationMechanismEnum = "idcsui" + ExtensionGroupGroupCreationMechanismImport ExtensionGroupGroupCreationMechanismEnum = "import" +) + +var mappingExtensionGroupGroupCreationMechanismEnum = map[string]ExtensionGroupGroupCreationMechanismEnum{ + "bulk": ExtensionGroupGroupCreationMechanismBulk, + "api": ExtensionGroupGroupCreationMechanismApi, + "adsync": ExtensionGroupGroupCreationMechanismAdsync, + "authsync": ExtensionGroupGroupCreationMechanismAuthsync, + "idcsui": ExtensionGroupGroupCreationMechanismIdcsui, + "import": ExtensionGroupGroupCreationMechanismImport, +} + +var mappingExtensionGroupGroupCreationMechanismEnumLowerCase = map[string]ExtensionGroupGroupCreationMechanismEnum{ + "bulk": ExtensionGroupGroupCreationMechanismBulk, + "api": ExtensionGroupGroupCreationMechanismApi, + "adsync": ExtensionGroupGroupCreationMechanismAdsync, + "authsync": ExtensionGroupGroupCreationMechanismAuthsync, + "idcsui": ExtensionGroupGroupCreationMechanismIdcsui, + "import": ExtensionGroupGroupCreationMechanismImport, +} + +// GetExtensionGroupGroupCreationMechanismEnumValues Enumerates the set of values for ExtensionGroupGroupCreationMechanismEnum +func GetExtensionGroupGroupCreationMechanismEnumValues() []ExtensionGroupGroupCreationMechanismEnum { + values := make([]ExtensionGroupGroupCreationMechanismEnum, 0) + for _, v := range mappingExtensionGroupGroupCreationMechanismEnum { + values = append(values, v) + } + return values +} + +// GetExtensionGroupGroupCreationMechanismEnumStringValues Enumerates the set of values in String for ExtensionGroupGroupCreationMechanismEnum +func GetExtensionGroupGroupCreationMechanismEnumStringValues() []string { + return []string{ + "bulk", + "api", + "adsync", + "authsync", + "idcsui", + "import", + } +} + +// GetMappingExtensionGroupGroupCreationMechanismEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingExtensionGroupGroupCreationMechanismEnum(val string) (ExtensionGroupGroupCreationMechanismEnum, bool) { + enum, ok := mappingExtensionGroupGroupCreationMechanismEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_kerberos_user_user.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_kerberos_user_user.go new file mode 100644 index 00000000000..ad9c4517a80 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_kerberos_user_user.go @@ -0,0 +1,48 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// ExtensionKerberosUserUser Kerberos User extension +type ExtensionKerberosUserUser struct { + + // A list of kerberos realm users for an OCI IAM User + // **SCIM++ Properties:** + // - idcsCompositeKey: [value] + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + RealmUsers []UserExtRealmUsers `mandatory:"false" json:"realmUsers"` +} + +func (m ExtensionKerberosUserUser) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m ExtensionKerberosUserUser) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_me_user.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_me_user.go new file mode 100644 index 00000000000..d384c582042 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_me_user.go @@ -0,0 +1,49 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// ExtensionMeUser OCI IAM self service schema extension +type ExtensionMeUser struct { + + // The current password is required if the user attempts to change the values of attributes that are used in recovering or verifying the user's own identity. If the current password is specified, it will be used to authenticate the user regardless of any change in these attribute values + // **SCIM++ Properties:** + // - idcsSearchable: false + // - idcsSensitive: hash + // - multiValued: false + // - mutability: writeOnly + // - required: false + // - returned: never + // - type: string + // - uniqueness: none + CurrentPassword *string `mandatory:"false" json:"currentPassword"` +} + +func (m ExtensionMeUser) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m ExtensionMeUser) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_messages_error.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_messages_error.go new file mode 100644 index 00000000000..ae3c08144f1 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_messages_error.go @@ -0,0 +1,44 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// ExtensionMessagesError Extension schema for error messages providing more details with the exception status. +// Returns messageId corresponding to the detailed error message and optionally additional data related to the error condition - for example reason for authentication failure such as user is disabled or locked. +type ExtensionMessagesError struct { + + // Internal error keyword pointing to the exception status message. REQUIRED. + MessageId *string `mandatory:"false" json:"messageId"` + + // Contains Map based additional data for the exception message (as key-value pair). All keys and values are in string format. + AdditionalData *interface{} `mandatory:"false" json:"additionalData"` +} + +func (m ExtensionMessagesError) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m ExtensionMessagesError) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_mfa_user.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_mfa_user.go new file mode 100644 index 00000000000..037f0ac3d4b --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_mfa_user.go @@ -0,0 +1,302 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// ExtensionMfaUser This extension defines attributes used to manage Multi-Factor Authentication within a service provider. The extension is typically applied to a User resource, but MAY be applied to other resources that use MFA. +type ExtensionMfaUser struct { + + // Preferred Authentication Factor Type + // **Added In:** 18.3.6 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + PreferredAuthenticationFactor ExtensionMfaUserPreferredAuthenticationFactorEnum `mandatory:"false" json:"preferredAuthenticationFactor,omitempty"` + + // User Opted for MFA + // **Added In:** 18.3.6 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + MfaStatus ExtensionMfaUserMfaStatusEnum `mandatory:"false" json:"mfaStatus,omitempty"` + + // Preferred Third party vendor name + // **Added In:** 19.2.1 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + PreferredThirdPartyVendor *string `mandatory:"false" json:"preferredThirdPartyVendor"` + + // Preferred Authentication method + // **Added In:** 2009232244 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + PreferredAuthenticationMethod *string `mandatory:"false" json:"preferredAuthenticationMethod"` + + // Number of incorrect Multi Factor Authentication login attempts made by this user. The user gets locked, if this reaches the threshold specified in the maxIncorrectAttempts attribute in AuthenticationFactorSettings + // **Added In:** 18.3.6 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: integer + // - uniqueness: none + LoginAttempts *int `mandatory:"false" json:"loginAttempts"` + + // This represents the date when the user enrolled for multi factor authentication. This will be set to null, when the user resets his factors. + // **Added In:** 18.3.6 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: request + // - type: dateTime + // - uniqueness: none + MfaEnabledOn *string `mandatory:"false" json:"mfaEnabledOn"` + + // User MFA Ignored Apps Identifiers + // **Added In:** 19.2.1 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + MfaIgnoredApps []string `mandatory:"false" json:"mfaIgnoredApps"` + + PreferredDevice *UserExtPreferredDevice `mandatory:"false" json:"preferredDevice"` + + // A list of devices enrolled by the user. + // **Added In:** 18.3.6 + // **SCIM++ Properties:** + // - idcsCompositeKey: [value] + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + Devices []UserExtDevices `mandatory:"false" json:"devices"` + + // A list of bypass codes belongs to user + // **Added In:** 18.3.6 + // **SCIM++ Properties:** + // - idcsCompositeKey: [value] + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + BypassCodes []UserExtBypassCodes `mandatory:"false" json:"bypassCodes"` + + // A list of trusted User Agents owned by this user. Multi-Factored Authentication uses Trusted User Agents to authenticate users. A User Agent is software application that a user uses to issue requests. For example, a User Agent could be a particular browser (possibly one of several executing on a desktop or laptop) or a particular mobile application (again, oneof several executing on a particular mobile device). A User Agent is trusted once the Multi-Factor Authentication has verified it in some way. + // **Added In:** 18.3.6 + // **SCIM++ Properties:** + // - idcsCompositeKey: [value] + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + TrustedUserAgents []UserExtTrustedUserAgents `mandatory:"false" json:"trustedUserAgents"` +} + +func (m ExtensionMfaUser) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m ExtensionMfaUser) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if _, ok := GetMappingExtensionMfaUserPreferredAuthenticationFactorEnum(string(m.PreferredAuthenticationFactor)); !ok && m.PreferredAuthenticationFactor != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for PreferredAuthenticationFactor: %s. Supported values are: %s.", m.PreferredAuthenticationFactor, strings.Join(GetExtensionMfaUserPreferredAuthenticationFactorEnumStringValues(), ","))) + } + if _, ok := GetMappingExtensionMfaUserMfaStatusEnum(string(m.MfaStatus)); !ok && m.MfaStatus != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for MfaStatus: %s. Supported values are: %s.", m.MfaStatus, strings.Join(GetExtensionMfaUserMfaStatusEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// ExtensionMfaUserPreferredAuthenticationFactorEnum Enum with underlying type: string +type ExtensionMfaUserPreferredAuthenticationFactorEnum string + +// Set of constants representing the allowable values for ExtensionMfaUserPreferredAuthenticationFactorEnum +const ( + ExtensionMfaUserPreferredAuthenticationFactorEmail ExtensionMfaUserPreferredAuthenticationFactorEnum = "EMAIL" + ExtensionMfaUserPreferredAuthenticationFactorSms ExtensionMfaUserPreferredAuthenticationFactorEnum = "SMS" + ExtensionMfaUserPreferredAuthenticationFactorTotp ExtensionMfaUserPreferredAuthenticationFactorEnum = "TOTP" + ExtensionMfaUserPreferredAuthenticationFactorPush ExtensionMfaUserPreferredAuthenticationFactorEnum = "PUSH" + ExtensionMfaUserPreferredAuthenticationFactorOfflinetotp ExtensionMfaUserPreferredAuthenticationFactorEnum = "OFFLINETOTP" + ExtensionMfaUserPreferredAuthenticationFactorUsernamePassword ExtensionMfaUserPreferredAuthenticationFactorEnum = "USERNAME_PASSWORD" + ExtensionMfaUserPreferredAuthenticationFactorSecurityQuestions ExtensionMfaUserPreferredAuthenticationFactorEnum = "SECURITY_QUESTIONS" + ExtensionMfaUserPreferredAuthenticationFactorVoice ExtensionMfaUserPreferredAuthenticationFactorEnum = "VOICE" + ExtensionMfaUserPreferredAuthenticationFactorPhoneCall ExtensionMfaUserPreferredAuthenticationFactorEnum = "PHONE_CALL" + ExtensionMfaUserPreferredAuthenticationFactorThirdparty ExtensionMfaUserPreferredAuthenticationFactorEnum = "THIRDPARTY" + ExtensionMfaUserPreferredAuthenticationFactorFidoAuthenticator ExtensionMfaUserPreferredAuthenticationFactorEnum = "FIDO_AUTHENTICATOR" + ExtensionMfaUserPreferredAuthenticationFactorYubicoOtp ExtensionMfaUserPreferredAuthenticationFactorEnum = "YUBICO_OTP" +) + +var mappingExtensionMfaUserPreferredAuthenticationFactorEnum = map[string]ExtensionMfaUserPreferredAuthenticationFactorEnum{ + "EMAIL": ExtensionMfaUserPreferredAuthenticationFactorEmail, + "SMS": ExtensionMfaUserPreferredAuthenticationFactorSms, + "TOTP": ExtensionMfaUserPreferredAuthenticationFactorTotp, + "PUSH": ExtensionMfaUserPreferredAuthenticationFactorPush, + "OFFLINETOTP": ExtensionMfaUserPreferredAuthenticationFactorOfflinetotp, + "USERNAME_PASSWORD": ExtensionMfaUserPreferredAuthenticationFactorUsernamePassword, + "SECURITY_QUESTIONS": ExtensionMfaUserPreferredAuthenticationFactorSecurityQuestions, + "VOICE": ExtensionMfaUserPreferredAuthenticationFactorVoice, + "PHONE_CALL": ExtensionMfaUserPreferredAuthenticationFactorPhoneCall, + "THIRDPARTY": ExtensionMfaUserPreferredAuthenticationFactorThirdparty, + "FIDO_AUTHENTICATOR": ExtensionMfaUserPreferredAuthenticationFactorFidoAuthenticator, + "YUBICO_OTP": ExtensionMfaUserPreferredAuthenticationFactorYubicoOtp, +} + +var mappingExtensionMfaUserPreferredAuthenticationFactorEnumLowerCase = map[string]ExtensionMfaUserPreferredAuthenticationFactorEnum{ + "email": ExtensionMfaUserPreferredAuthenticationFactorEmail, + "sms": ExtensionMfaUserPreferredAuthenticationFactorSms, + "totp": ExtensionMfaUserPreferredAuthenticationFactorTotp, + "push": ExtensionMfaUserPreferredAuthenticationFactorPush, + "offlinetotp": ExtensionMfaUserPreferredAuthenticationFactorOfflinetotp, + "username_password": ExtensionMfaUserPreferredAuthenticationFactorUsernamePassword, + "security_questions": ExtensionMfaUserPreferredAuthenticationFactorSecurityQuestions, + "voice": ExtensionMfaUserPreferredAuthenticationFactorVoice, + "phone_call": ExtensionMfaUserPreferredAuthenticationFactorPhoneCall, + "thirdparty": ExtensionMfaUserPreferredAuthenticationFactorThirdparty, + "fido_authenticator": ExtensionMfaUserPreferredAuthenticationFactorFidoAuthenticator, + "yubico_otp": ExtensionMfaUserPreferredAuthenticationFactorYubicoOtp, +} + +// GetExtensionMfaUserPreferredAuthenticationFactorEnumValues Enumerates the set of values for ExtensionMfaUserPreferredAuthenticationFactorEnum +func GetExtensionMfaUserPreferredAuthenticationFactorEnumValues() []ExtensionMfaUserPreferredAuthenticationFactorEnum { + values := make([]ExtensionMfaUserPreferredAuthenticationFactorEnum, 0) + for _, v := range mappingExtensionMfaUserPreferredAuthenticationFactorEnum { + values = append(values, v) + } + return values +} + +// GetExtensionMfaUserPreferredAuthenticationFactorEnumStringValues Enumerates the set of values in String for ExtensionMfaUserPreferredAuthenticationFactorEnum +func GetExtensionMfaUserPreferredAuthenticationFactorEnumStringValues() []string { + return []string{ + "EMAIL", + "SMS", + "TOTP", + "PUSH", + "OFFLINETOTP", + "USERNAME_PASSWORD", + "SECURITY_QUESTIONS", + "VOICE", + "PHONE_CALL", + "THIRDPARTY", + "FIDO_AUTHENTICATOR", + "YUBICO_OTP", + } +} + +// GetMappingExtensionMfaUserPreferredAuthenticationFactorEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingExtensionMfaUserPreferredAuthenticationFactorEnum(val string) (ExtensionMfaUserPreferredAuthenticationFactorEnum, bool) { + enum, ok := mappingExtensionMfaUserPreferredAuthenticationFactorEnumLowerCase[strings.ToLower(val)] + return enum, ok +} + +// ExtensionMfaUserMfaStatusEnum Enum with underlying type: string +type ExtensionMfaUserMfaStatusEnum string + +// Set of constants representing the allowable values for ExtensionMfaUserMfaStatusEnum +const ( + ExtensionMfaUserMfaStatusEnrolled ExtensionMfaUserMfaStatusEnum = "ENROLLED" + ExtensionMfaUserMfaStatusIgnored ExtensionMfaUserMfaStatusEnum = "IGNORED" + ExtensionMfaUserMfaStatusUnEnrolled ExtensionMfaUserMfaStatusEnum = "UN_ENROLLED" + ExtensionMfaUserMfaStatusDisabled ExtensionMfaUserMfaStatusEnum = "DISABLED" +) + +var mappingExtensionMfaUserMfaStatusEnum = map[string]ExtensionMfaUserMfaStatusEnum{ + "ENROLLED": ExtensionMfaUserMfaStatusEnrolled, + "IGNORED": ExtensionMfaUserMfaStatusIgnored, + "UN_ENROLLED": ExtensionMfaUserMfaStatusUnEnrolled, + "DISABLED": ExtensionMfaUserMfaStatusDisabled, +} + +var mappingExtensionMfaUserMfaStatusEnumLowerCase = map[string]ExtensionMfaUserMfaStatusEnum{ + "enrolled": ExtensionMfaUserMfaStatusEnrolled, + "ignored": ExtensionMfaUserMfaStatusIgnored, + "un_enrolled": ExtensionMfaUserMfaStatusUnEnrolled, + "disabled": ExtensionMfaUserMfaStatusDisabled, +} + +// GetExtensionMfaUserMfaStatusEnumValues Enumerates the set of values for ExtensionMfaUserMfaStatusEnum +func GetExtensionMfaUserMfaStatusEnumValues() []ExtensionMfaUserMfaStatusEnum { + values := make([]ExtensionMfaUserMfaStatusEnum, 0) + for _, v := range mappingExtensionMfaUserMfaStatusEnum { + values = append(values, v) + } + return values +} + +// GetExtensionMfaUserMfaStatusEnumStringValues Enumerates the set of values in String for ExtensionMfaUserMfaStatusEnum +func GetExtensionMfaUserMfaStatusEnumStringValues() []string { + return []string{ + "ENROLLED", + "IGNORED", + "UN_ENROLLED", + "DISABLED", + } +} + +// GetMappingExtensionMfaUserMfaStatusEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingExtensionMfaUserMfaStatusEnum(val string) (ExtensionMfaUserMfaStatusEnum, bool) { + enum, ok := mappingExtensionMfaUserMfaStatusEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_oci_tags.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_oci_tags.go new file mode 100644 index 00000000000..4b09a97f15e --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_oci_tags.go @@ -0,0 +1,69 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// ExtensionOciTags OCI Tags. +type ExtensionOciTags struct { + + // OCI Freeform Tags + // **Added In:** 2011192329 + // **SCIM++ Properties:** + // - idcsCompositeKey: [key, value] + // - idcsSearchable: true + // - type: complex + // - required: false + // - mutability: readWrite + // - returned: default + // - multiValued: true + FreeformTags []FreeformTags `mandatory:"false" json:"freeformTags"` + + // OCI Defined Tags + // **Added In:** 2011192329 + // **SCIM++ Properties:** + // - idcsCompositeKey: [namespace, key, value] + // - type: complex + // - idcsSearchable: true + // - required: false + // - mutability: readWrite + // - multiValued: true + // - returned: default + DefinedTags []DefinedTags `mandatory:"false" json:"definedTags"` + + // OCI Tag slug + // **Added In:** 2011192329 + // **SCIM++ Properties:** + // - type: binary + // - mutability: readOnly + // - returned: request + TagSlug *interface{} `mandatory:"false" json:"tagSlug"` +} + +func (m ExtensionOciTags) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m ExtensionOciTags) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_password_state_user.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_password_state_user.go new file mode 100644 index 00000000000..486790da55f --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_password_state_user.go @@ -0,0 +1,118 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// ExtensionPasswordStateUser This extension defines attributes used to manage account passwords within a Service Provider. The extension is typically applied to a User resource, but MAY be applied to other resources that use passwords. +type ExtensionPasswordStateUser struct { + + // A DateTime that specifies the date and time when the current password was set + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: dateTime + // - uniqueness: none + LastSuccessfulSetDate *string `mandatory:"false" json:"lastSuccessfulSetDate"` + + // Indicates that the current password MAY NOT be changed and all other password expiry settings SHALL be ignored + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: boolean + // - uniqueness: none + CantChange *bool `mandatory:"false" json:"cantChange"` + + // Indicates that the password expiry policy will not be applied for the current Resource + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: boolean + // - uniqueness: none + CantExpire *bool `mandatory:"false" json:"cantExpire"` + + // Indicates that the subject password value MUST change on next login. If not changed, typically the account is locked. The value may be set indirectly when the subject's current password expires or directly set by an administrator. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: boolean + // - uniqueness: none + MustChange *bool `mandatory:"false" json:"mustChange"` + + // Indicates that the password has expired + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: boolean + // - uniqueness: none + Expired *bool `mandatory:"false" json:"expired"` + + // A DateTime that specifies the date and time when last successful password validation was set + // **Added In:** 2011192329 + // **SCIM++ Properties:** + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: dateTime + // - uniqueness: none + LastSuccessfulValidationDate *string `mandatory:"false" json:"lastSuccessfulValidationDate"` + + // A DateTime that specifies the date and time when last failed password validation was set + // **Added In:** 2011192329 + // **SCIM++ Properties:** + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: dateTime + // - uniqueness: none + LastFailedValidationDate *string `mandatory:"false" json:"lastFailedValidationDate"` + + ApplicablePasswordPolicy *UserExtApplicablePasswordPolicy `mandatory:"false" json:"applicablePasswordPolicy"` +} + +func (m ExtensionPasswordStateUser) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m ExtensionPasswordStateUser) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_passwordless_user.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_passwordless_user.go new file mode 100644 index 00000000000..3c363195c0c --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_passwordless_user.go @@ -0,0 +1,146 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// ExtensionPasswordlessUser This extension defines attributes used to manage Passwordless-Factor Authentication within a service provider. The extension is typically applied to a User resource, but MAY be applied to other resources that use MFA. +type ExtensionPasswordlessUser struct { + + // Authentication Factor Type + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + FactorType ExtensionPasswordlessUserFactorTypeEnum `mandatory:"false" json:"factorType,omitempty"` + + // Authentication Factor Method + // **Added In:** 2009232244 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + FactorMethod *string `mandatory:"false" json:"factorMethod"` + + FactorIdentifier *UserExtFactorIdentifier `mandatory:"false" json:"factorIdentifier"` +} + +func (m ExtensionPasswordlessUser) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m ExtensionPasswordlessUser) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if _, ok := GetMappingExtensionPasswordlessUserFactorTypeEnum(string(m.FactorType)); !ok && m.FactorType != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for FactorType: %s. Supported values are: %s.", m.FactorType, strings.Join(GetExtensionPasswordlessUserFactorTypeEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// ExtensionPasswordlessUserFactorTypeEnum Enum with underlying type: string +type ExtensionPasswordlessUserFactorTypeEnum string + +// Set of constants representing the allowable values for ExtensionPasswordlessUserFactorTypeEnum +const ( + ExtensionPasswordlessUserFactorTypeEmail ExtensionPasswordlessUserFactorTypeEnum = "EMAIL" + ExtensionPasswordlessUserFactorTypeSms ExtensionPasswordlessUserFactorTypeEnum = "SMS" + ExtensionPasswordlessUserFactorTypePhoneCall ExtensionPasswordlessUserFactorTypeEnum = "PHONE_CALL" + ExtensionPasswordlessUserFactorTypeTotp ExtensionPasswordlessUserFactorTypeEnum = "TOTP" + ExtensionPasswordlessUserFactorTypePush ExtensionPasswordlessUserFactorTypeEnum = "PUSH" + ExtensionPasswordlessUserFactorTypeOfflinetotp ExtensionPasswordlessUserFactorTypeEnum = "OFFLINETOTP" + ExtensionPasswordlessUserFactorTypeSecurityQuestions ExtensionPasswordlessUserFactorTypeEnum = "SECURITY_QUESTIONS" + ExtensionPasswordlessUserFactorTypeVoice ExtensionPasswordlessUserFactorTypeEnum = "VOICE" + ExtensionPasswordlessUserFactorTypeUsernamePassword ExtensionPasswordlessUserFactorTypeEnum = "USERNAME_PASSWORD" + ExtensionPasswordlessUserFactorTypeThirdparty ExtensionPasswordlessUserFactorTypeEnum = "THIRDPARTY" + ExtensionPasswordlessUserFactorTypeFidoAuthenticator ExtensionPasswordlessUserFactorTypeEnum = "FIDO_AUTHENTICATOR" +) + +var mappingExtensionPasswordlessUserFactorTypeEnum = map[string]ExtensionPasswordlessUserFactorTypeEnum{ + "EMAIL": ExtensionPasswordlessUserFactorTypeEmail, + "SMS": ExtensionPasswordlessUserFactorTypeSms, + "PHONE_CALL": ExtensionPasswordlessUserFactorTypePhoneCall, + "TOTP": ExtensionPasswordlessUserFactorTypeTotp, + "PUSH": ExtensionPasswordlessUserFactorTypePush, + "OFFLINETOTP": ExtensionPasswordlessUserFactorTypeOfflinetotp, + "SECURITY_QUESTIONS": ExtensionPasswordlessUserFactorTypeSecurityQuestions, + "VOICE": ExtensionPasswordlessUserFactorTypeVoice, + "USERNAME_PASSWORD": ExtensionPasswordlessUserFactorTypeUsernamePassword, + "THIRDPARTY": ExtensionPasswordlessUserFactorTypeThirdparty, + "FIDO_AUTHENTICATOR": ExtensionPasswordlessUserFactorTypeFidoAuthenticator, +} + +var mappingExtensionPasswordlessUserFactorTypeEnumLowerCase = map[string]ExtensionPasswordlessUserFactorTypeEnum{ + "email": ExtensionPasswordlessUserFactorTypeEmail, + "sms": ExtensionPasswordlessUserFactorTypeSms, + "phone_call": ExtensionPasswordlessUserFactorTypePhoneCall, + "totp": ExtensionPasswordlessUserFactorTypeTotp, + "push": ExtensionPasswordlessUserFactorTypePush, + "offlinetotp": ExtensionPasswordlessUserFactorTypeOfflinetotp, + "security_questions": ExtensionPasswordlessUserFactorTypeSecurityQuestions, + "voice": ExtensionPasswordlessUserFactorTypeVoice, + "username_password": ExtensionPasswordlessUserFactorTypeUsernamePassword, + "thirdparty": ExtensionPasswordlessUserFactorTypeThirdparty, + "fido_authenticator": ExtensionPasswordlessUserFactorTypeFidoAuthenticator, +} + +// GetExtensionPasswordlessUserFactorTypeEnumValues Enumerates the set of values for ExtensionPasswordlessUserFactorTypeEnum +func GetExtensionPasswordlessUserFactorTypeEnumValues() []ExtensionPasswordlessUserFactorTypeEnum { + values := make([]ExtensionPasswordlessUserFactorTypeEnum, 0) + for _, v := range mappingExtensionPasswordlessUserFactorTypeEnum { + values = append(values, v) + } + return values +} + +// GetExtensionPasswordlessUserFactorTypeEnumStringValues Enumerates the set of values in String for ExtensionPasswordlessUserFactorTypeEnum +func GetExtensionPasswordlessUserFactorTypeEnumStringValues() []string { + return []string{ + "EMAIL", + "SMS", + "PHONE_CALL", + "TOTP", + "PUSH", + "OFFLINETOTP", + "SECURITY_QUESTIONS", + "VOICE", + "USERNAME_PASSWORD", + "THIRDPARTY", + "FIDO_AUTHENTICATOR", + } +} + +// GetMappingExtensionPasswordlessUserFactorTypeEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingExtensionPasswordlessUserFactorTypeEnum(val string) (ExtensionPasswordlessUserFactorTypeEnum, bool) { + enum, ok := mappingExtensionPasswordlessUserFactorTypeEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_posix_group.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_posix_group.go new file mode 100644 index 00000000000..5fe62d50dce --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_posix_group.go @@ -0,0 +1,48 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// ExtensionPosixGroup POSIX Group extension +type ExtensionPosixGroup struct { + + // Integer uniquely identifying a group in a POSIX administrative domain + // **SCIM++ Properties:** + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: request + // - type: integer + // - uniqueness: server + GidNumber *int `mandatory:"false" json:"gidNumber"` +} + +func (m ExtensionPosixGroup) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m ExtensionPosixGroup) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_posix_user.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_posix_user.go new file mode 100644 index 00000000000..3fa0ef483f1 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_posix_user.go @@ -0,0 +1,92 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// ExtensionPosixUser POSIX User extension +type ExtensionPosixUser struct { + + // Integer uniquely identifying a user in a POSIX administrative domain + // **SCIM++ Properties:** + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: request + // - type: integer + // - uniqueness: server + UidNumber *int `mandatory:"false" json:"uidNumber"` + + // Primary Group identifier of the POSIX user + // **SCIM++ Properties:** + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: request + // - type: integer + // - uniqueness: none + GidNumber *int `mandatory:"false" json:"gidNumber"` + + // General information about the POSIX account such as their real name and phone number + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + Gecos *string `mandatory:"false" json:"gecos"` + + // The absolute path to the home directory of the POSIX account + // **SCIM++ Properties:** + // - caseExact: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + HomeDirectory *string `mandatory:"false" json:"homeDirectory"` + + // The path to the login shell of the POSIX account + // **SCIM++ Properties:** + // - caseExact: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + LoginShell *string `mandatory:"false" json:"loginShell"` +} + +func (m ExtensionPosixUser) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m ExtensionPosixUser) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_requestable_group.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_requestable_group.go new file mode 100644 index 00000000000..24d82010327 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_requestable_group.go @@ -0,0 +1,51 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// ExtensionRequestableGroup Requestable Group +type ExtensionRequestableGroup struct { + + // Flag controlling whether group membership can be request by user through self service console. + // **Added In:** 17.3.4 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - idcsCsvAttributeNameMappings: [[columnHeaderName:Requestable, mapsTo:requestable]] + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: request + // - type: boolean + // - uniqueness: none + Requestable *bool `mandatory:"false" json:"requestable"` +} + +func (m ExtensionRequestableGroup) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m ExtensionRequestableGroup) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_security_questions_user.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_security_questions_user.go new file mode 100644 index 00000000000..ee02770c18f --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_security_questions_user.go @@ -0,0 +1,48 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// ExtensionSecurityQuestionsUser This extension defines attributes used to store Security Questions of User. +type ExtensionSecurityQuestionsUser struct { + + // Security question and answers provided by end-user for Account recovery and/or MFA. While setting up security questions, end-user can also provide hint along with answer. + // **SCIM++ Properties:** + // - idcsCompositeKey: [value] + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + SecQuestions []UserExtSecQuestions `mandatory:"false" json:"secQuestions"` +} + +func (m ExtensionSecurityQuestionsUser) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m ExtensionSecurityQuestionsUser) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_self_change_user.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_self_change_user.go new file mode 100644 index 00000000000..54607d01e1b --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_self_change_user.go @@ -0,0 +1,49 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// ExtensionSelfChangeUser Controls whether a user can update themselves or not via User related APIs +type ExtensionSelfChangeUser struct { + + // If true, allows requesting user to update themselves. If false, requesting user can't update themself (default). + // **Added In:** 2205182039 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: writeOnly + // - required: false + // - returned: never + // - type: boolean + // - uniqueness: none + AllowSelfChange *bool `mandatory:"false" json:"allowSelfChange"` +} + +func (m ExtensionSelfChangeUser) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m ExtensionSelfChangeUser) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_self_registration_user.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_self_registration_user.go new file mode 100644 index 00000000000..23bce92eed1 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_self_registration_user.go @@ -0,0 +1,61 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// ExtensionSelfRegistrationUser This extension defines attributes used to manage self registration profile linked to the user. +type ExtensionSelfRegistrationUser struct { + SelfRegistrationProfile *UserExtSelfRegistrationProfile `mandatory:"true" json:"selfRegistrationProfile"` + + // A boolean value that indicates whether the consent is granted. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + ConsentGranted *bool `mandatory:"false" json:"consentGranted"` + + // User token used for auto-login. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + UserToken *string `mandatory:"false" json:"userToken"` +} + +func (m ExtensionSelfRegistrationUser) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m ExtensionSelfRegistrationUser) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_sff_user.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_sff_user.go new file mode 100644 index 00000000000..487ae203b9b --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_sff_user.go @@ -0,0 +1,48 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// ExtensionSffUser SFF Auth Keys User extension +type ExtensionSffUser struct { + + // SFF auth keys clob + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + SffAuthKeys *string `mandatory:"false" json:"sffAuthKeys"` +} + +func (m ExtensionSffUser) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m ExtensionSffUser) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_social_account_user.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_social_account_user.go new file mode 100644 index 00000000000..4e35bb057ae --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_social_account_user.go @@ -0,0 +1,50 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// ExtensionSocialAccountUser Social User extension +type ExtensionSocialAccountUser struct { + + // Description: + // **SCIM++ Properties:** + // - idcsCompositeKey: [value] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - idcsPii: true + // - type: complex + // - uniqueness: none + SocialAccounts []UserExtSocialAccounts `mandatory:"false" json:"socialAccounts"` +} + +func (m ExtensionSocialAccountUser) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m ExtensionSocialAccountUser) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_social_identity_provider.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_social_identity_provider.go new file mode 100644 index 00000000000..80e29a395c6 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_social_identity_provider.go @@ -0,0 +1,290 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// ExtensionSocialIdentityProvider Social Identity Provider Extension Schema +type ExtensionSocialIdentityProvider struct { + + // Whether account linking is enabled + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: boolean + // - uniqueness: none + AccountLinkingEnabled *bool `mandatory:"true" json:"accountLinkingEnabled"` + + // Whether registration is enabled + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: boolean + // - uniqueness: none + RegistrationEnabled *bool `mandatory:"true" json:"registrationEnabled"` + + // Social IDP Client Application Client ID + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + ConsumerKey *string `mandatory:"true" json:"consumerKey"` + + // Social IDP Client Application Client Secret + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - idcsSensitive: encrypt + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + ConsumerSecret *string `mandatory:"true" json:"consumerSecret"` + + // Service Provider Name + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + ServiceProviderName *string `mandatory:"true" json:"serviceProviderName"` + + // Status + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Status ExtensionSocialIdentityProviderStatusEnum `mandatory:"false" json:"status,omitempty"` + + // Social IDP Authorization URL + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + AuthzUrl *string `mandatory:"false" json:"authzUrl"` + + // Social IDP Access token URL + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + AccessTokenUrl *string `mandatory:"false" json:"accessTokenUrl"` + + // Social IDP User profile URL + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + ProfileUrl *string `mandatory:"false" json:"profileUrl"` + + // Scope to request + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Scope []string `mandatory:"false" json:"scope"` + + // Admin scope to request + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + AdminScope []string `mandatory:"false" json:"adminScope"` + + // Social IDP allowed clock skew time + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: integer + // - uniqueness: none + ClockSkewInSeconds *int `mandatory:"false" json:"clockSkewInSeconds"` + + // redirect URL for social idp + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + RedirectUrl *string `mandatory:"false" json:"redirectUrl"` + + // Discovery URL + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + DiscoveryUrl *string `mandatory:"false" json:"discoveryUrl"` + + // Whether the client credential is contained in payload + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + ClientCredentialInPayload *bool `mandatory:"false" json:"clientCredentialInPayload"` + + // Id attribute used for account linking + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + IdAttribute *string `mandatory:"false" json:"idAttribute"` +} + +func (m ExtensionSocialIdentityProvider) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m ExtensionSocialIdentityProvider) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if _, ok := GetMappingExtensionSocialIdentityProviderStatusEnum(string(m.Status)); !ok && m.Status != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Status: %s. Supported values are: %s.", m.Status, strings.Join(GetExtensionSocialIdentityProviderStatusEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// ExtensionSocialIdentityProviderStatusEnum Enum with underlying type: string +type ExtensionSocialIdentityProviderStatusEnum string + +// Set of constants representing the allowable values for ExtensionSocialIdentityProviderStatusEnum +const ( + ExtensionSocialIdentityProviderStatusCreated ExtensionSocialIdentityProviderStatusEnum = "created" + ExtensionSocialIdentityProviderStatusDeleted ExtensionSocialIdentityProviderStatusEnum = "deleted" +) + +var mappingExtensionSocialIdentityProviderStatusEnum = map[string]ExtensionSocialIdentityProviderStatusEnum{ + "created": ExtensionSocialIdentityProviderStatusCreated, + "deleted": ExtensionSocialIdentityProviderStatusDeleted, +} + +var mappingExtensionSocialIdentityProviderStatusEnumLowerCase = map[string]ExtensionSocialIdentityProviderStatusEnum{ + "created": ExtensionSocialIdentityProviderStatusCreated, + "deleted": ExtensionSocialIdentityProviderStatusDeleted, +} + +// GetExtensionSocialIdentityProviderStatusEnumValues Enumerates the set of values for ExtensionSocialIdentityProviderStatusEnum +func GetExtensionSocialIdentityProviderStatusEnumValues() []ExtensionSocialIdentityProviderStatusEnum { + values := make([]ExtensionSocialIdentityProviderStatusEnum, 0) + for _, v := range mappingExtensionSocialIdentityProviderStatusEnum { + values = append(values, v) + } + return values +} + +// GetExtensionSocialIdentityProviderStatusEnumStringValues Enumerates the set of values in String for ExtensionSocialIdentityProviderStatusEnum +func GetExtensionSocialIdentityProviderStatusEnumStringValues() []string { + return []string{ + "created", + "deleted", + } +} + +// GetMappingExtensionSocialIdentityProviderStatusEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingExtensionSocialIdentityProviderStatusEnum(val string) (ExtensionSocialIdentityProviderStatusEnum, bool) { + enum, ok := mappingExtensionSocialIdentityProviderStatusEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_terms_of_use_user.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_terms_of_use_user.go new file mode 100644 index 00000000000..5b887c806be --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_terms_of_use_user.go @@ -0,0 +1,50 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// ExtensionTermsOfUseUser Terms Of Use extension +type ExtensionTermsOfUseUser struct { + + // Description: + // **Added In:** 18.2.6 + // **SCIM++ Properties:** + // - idcsCompositeKey: [value] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + TermsOfUseConsents []UserExtTermsOfUseConsents `mandatory:"false" json:"termsOfUseConsents"` +} + +func (m ExtensionTermsOfUseUser) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m ExtensionTermsOfUseUser) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_third_party_authentication_factor_settings.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_third_party_authentication_factor_settings.go new file mode 100644 index 00000000000..ff18704c2bf --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_third_party_authentication_factor_settings.go @@ -0,0 +1,38 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// ExtensionThirdPartyAuthenticationFactorSettings This extension defines attributes used to manage Multi-Factor Authentication settings of third party provider +type ExtensionThirdPartyAuthenticationFactorSettings struct { + DuoSecuritySettings *AuthenticationFactorSettingsDuoSecuritySettings `mandatory:"false" json:"duoSecuritySettings"` +} + +func (m ExtensionThirdPartyAuthenticationFactorSettings) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m ExtensionThirdPartyAuthenticationFactorSettings) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_user_credentials_user.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_user_credentials_user.go new file mode 100644 index 00000000000..9416b6d6d27 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_user_credentials_user.go @@ -0,0 +1,115 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// ExtensionUserCredentialsUser User's credentials +type ExtensionUserCredentialsUser struct { + + // A list of db credentials corresponding to user. + // **Added In:** 2102181953 + // **SCIM++ Properties:** + // - idcsCompositeKey: [value] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + DbCredentials []UserExtDbCredentials `mandatory:"false" json:"dbCredentials"` + + // A list of customer secret keys corresponding to user. + // **Added In:** 2102181953 + // **SCIM++ Properties:** + // - idcsCompositeKey: [value] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + CustomerSecretKeys []UserExtCustomerSecretKeys `mandatory:"false" json:"customerSecretKeys"` + + // A list of auth tokens corresponding to user. + // **Added In:** 2012271618 + // **SCIM++ Properties:** + // - idcsCompositeKey: [value] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + AuthTokens []UserExtAuthTokens `mandatory:"false" json:"authTokens"` + + // A list of smtp credentials corresponding to user. + // **Added In:** 2012271618 + // **SCIM++ Properties:** + // - idcsCompositeKey: [value] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + SmtpCredentials []UserExtSmtpCredentials `mandatory:"false" json:"smtpCredentials"` + + // A list of api keys corresponding to user. + // **Added In:** 2012271618 + // **SCIM++ Properties:** + // - idcsCompositeKey: [value] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + ApiKeys []UserExtApiKeys `mandatory:"false" json:"apiKeys"` + + // A list of oauth2 client credentials corresponding to user. + // **Added In:** 2012271618 + // **SCIM++ Properties:** + // - idcsCompositeKey: [value] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + OAuth2ClientCredentials []UserExtOAuth2ClientCredentials `mandatory:"false" json:"oAuth2ClientCredentials"` +} + +func (m ExtensionUserCredentialsUser) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m ExtensionUserCredentialsUser) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_user_state_user.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_user_state_user.go new file mode 100644 index 00000000000..6a563a0e12e --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_user_state_user.go @@ -0,0 +1,127 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// ExtensionUserStateUser This extension defines attributes used to manage account passwords within a service provider. The extension is typically applied to a User resource, but MAY be applied to other resources that use passwords. +type ExtensionUserStateUser struct { + + // The last successful login date + // **SCIM++ Properties:** + // - idcsSearchable: true + // - idcsAllowUpdatesInReadOnlyMode: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: dateTime + // - uniqueness: none + LastSuccessfulLoginDate *string `mandatory:"false" json:"lastSuccessfulLoginDate"` + + // The previous successful login date + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: dateTime + // - uniqueness: none + PreviousSuccessfulLoginDate *string `mandatory:"false" json:"previousSuccessfulLoginDate"` + + // The last failed login date + // **SCIM++ Properties:** + // - idcsSearchable: false + // - idcsAllowUpdatesInReadOnlyMode: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: dateTime + // - uniqueness: none + LastFailedLoginDate *string `mandatory:"false" json:"lastFailedLoginDate"` + + // The number of failed login attempts. The value is reset to 0 after a successful login. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - idcsAllowUpdatesInReadOnlyMode: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: integer + // - uniqueness: none + LoginAttempts *int `mandatory:"false" json:"loginAttempts"` + + // The number of failed recovery attempts. The value is reset to 0 after a successful login. + // **Added In:** 19.1.4 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: integer + // - uniqueness: none + RecoveryAttempts *int `mandatory:"false" json:"recoveryAttempts"` + + // The number of failed account recovery enrollment attempts. + // **Added In:** 19.1.4 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: integer + // - uniqueness: none + RecoveryEnrollAttempts *int `mandatory:"false" json:"recoveryEnrollAttempts"` + + // Maximum number of concurrent sessions for a User + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsMaxValue: 999 + // - idcsMinValue: 1 + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: integer + // - uniqueness: none + MaxConcurrentSessions *int `mandatory:"false" json:"maxConcurrentSessions"` + + RecoveryLocked *UserExtRecoveryLocked `mandatory:"false" json:"recoveryLocked"` + + Locked *UserExtLocked `mandatory:"false" json:"locked"` +} + +func (m ExtensionUserStateUser) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m ExtensionUserStateUser) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_user_user.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_user_user.go new file mode 100644 index 00000000000..6a03df361af --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_user_user.go @@ -0,0 +1,436 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// ExtensionUserUser OCI IAM User +type ExtensionUserUser struct { + + // A Boolean value indicating whether or not the user is federated. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsCsvAttributeName: Federated + // - idcsCsvAttributeNameMappings: [[columnHeaderName:Federated]] + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + IsFederatedUser *bool `mandatory:"false" json:"isFederatedUser"` + + // A Boolean value indicating whether or not authentication request by this user should be delegated to a remote app. This value should be true only when the User was originally synced from an app which is enabled for delegated authentication + // **Added In:** 17.4.6 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: never + // - type: boolean + // - uniqueness: none + IsAuthenticationDelegated *bool `mandatory:"false" json:"isAuthenticationDelegated"` + + // A supplemental status indicating the reason why a user is disabled + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + Status ExtensionUserUserStatusEnum `mandatory:"false" json:"status,omitempty"` + + // Registration provider + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Provider ExtensionUserUserProviderEnum `mandatory:"false" json:"provider,omitempty"` + + // User creation mechanism + // **SCIM++ Properties:** + // - caseExact: false + // - idcsCsvAttributeNameMappings: [[defaultValue:import]] + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + CreationMechanism ExtensionUserUserCreationMechanismEnum `mandatory:"false" json:"creationMechanism,omitempty"` + + // A Boolean value indicating whether or not to hide the getting started page + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + DoNotShowGettingStarted *bool `mandatory:"false" json:"doNotShowGettingStarted"` + + // A Boolean value indicating whether or not to send email notification after creating the user. This attribute is not used in update/replace operations. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsCsvAttributeNameMappings: [[columnHeaderName:ByPass Notification]] + // - idcsSearchable: false + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: never + // - type: boolean + // - uniqueness: none + BypassNotification *bool `mandatory:"false" json:"bypassNotification"` + + // A Boolean value indicating whether or not a user is enrolled for account recovery + // **Added In:** 19.1.4 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: boolean + // - uniqueness: none + IsAccountRecoveryEnrolled *bool `mandatory:"false" json:"isAccountRecoveryEnrolled"` + + // Boolean value to prompt user to setup account recovery during login. + // **Added In:** 19.1.4 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: request + // - type: boolean + // - uniqueness: none + AccountRecoveryRequired *bool `mandatory:"false" json:"accountRecoveryRequired"` + + // A Boolean value indicating whether to bypass notification and return user token to be used by an external client to control the user flow. + // **Added In:** 18.4.2 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: never + // - type: boolean + // - uniqueness: none + UserFlowControlledByExternalClient *bool `mandatory:"false" json:"userFlowControlledByExternalClient"` + + // A Boolean value indicating whether or not group membership is normalized for this user. + // **Deprecated Since: 19.3.3** + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: never + // - type: boolean + // - uniqueness: none + IsGroupMembershipNormalized *bool `mandatory:"false" json:"isGroupMembershipNormalized"` + + // A Boolean value Indicates whether this User's group membership has been sync'ed from Group.members to UsersGroups. + // **Added In:** 19.3.3 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: never + // - type: boolean + // - uniqueness: none + IsGroupMembershipSyncedToUsersGroups *bool `mandatory:"false" json:"isGroupMembershipSyncedToUsersGroups"` + + // Specifies the EmailTemplate to be used when sending notification to the user this request is for. If specified, it overrides the default EmailTemplate for this event. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: writeOnly + // - required: false + // - returned: never + // - type: string + // - uniqueness: none + NotificationEmailTemplateId *string `mandatory:"false" json:"notificationEmailTemplateId"` + + // A list of Support Accounts corresponding to user. + // **Added In:** 2103141444 + // **SCIM++ Properties:** + // - idcsCompositeKey: [value] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + SupportAccounts []UserExtSupportAccounts `mandatory:"false" json:"supportAccounts"` + + // Description: + // **Added In:** 19.2.1 + // **SCIM++ Properties:** + // - idcsCompositeKey: [value, idcsAppRoleId] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: complex + IdcsAppRolesLimitedToGroups []UserExtIdcsAppRolesLimitedToGroups `mandatory:"false" json:"idcsAppRolesLimitedToGroups"` + + UserToken *UserExtUserToken `mandatory:"false" json:"userToken"` + + SyncedFromApp *UserExtSyncedFromApp `mandatory:"false" json:"syncedFromApp"` + + ApplicableAuthenticationTargetApp *UserExtApplicableAuthenticationTargetApp `mandatory:"false" json:"applicableAuthenticationTargetApp"` + + DelegatedAuthenticationTargetApp *UserExtDelegatedAuthenticationTargetApp `mandatory:"false" json:"delegatedAuthenticationTargetApp"` + + // Accounts assigned to this User. Each value of this attribute refers to an app-specific identity that is owned by this User. Therefore, this attribute is a convenience that allows one to see on each User the Apps to which that User has access. + // **SCIM++ Properties:** + // - idcsPii: true + // - idcsSearchable: true + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + Accounts []UserExtAccounts `mandatory:"false" json:"accounts"` + + // Grants to this User. Each value of this attribute refers to a Grant to this User of some App (and optionally of some entitlement). Therefore, this attribute is a convenience that allows one to see on each User all of the Grants to that User. + // **SCIM++ Properties:** + // - idcsSearchable: true + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + Grants []UserExtGrants `mandatory:"false" json:"grants"` + + // A list of all AppRoles to which this User belongs directly, indirectly or implicitly. The User could belong directly because the User is a member of the AppRole, could belong indirectly because the User is a member of a Group that is a member of the AppRole, or could belong implicitly because the AppRole is public. + // **SCIM++ Properties:** + // - idcsCompositeKey: [value] + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + AppRoles []UserExtAppRoles `mandatory:"false" json:"appRoles"` +} + +func (m ExtensionUserUser) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m ExtensionUserUser) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if _, ok := GetMappingExtensionUserUserStatusEnum(string(m.Status)); !ok && m.Status != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Status: %s. Supported values are: %s.", m.Status, strings.Join(GetExtensionUserUserStatusEnumStringValues(), ","))) + } + if _, ok := GetMappingExtensionUserUserProviderEnum(string(m.Provider)); !ok && m.Provider != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Provider: %s. Supported values are: %s.", m.Provider, strings.Join(GetExtensionUserUserProviderEnumStringValues(), ","))) + } + if _, ok := GetMappingExtensionUserUserCreationMechanismEnum(string(m.CreationMechanism)); !ok && m.CreationMechanism != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for CreationMechanism: %s. Supported values are: %s.", m.CreationMechanism, strings.Join(GetExtensionUserUserCreationMechanismEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// ExtensionUserUserStatusEnum Enum with underlying type: string +type ExtensionUserUserStatusEnum string + +// Set of constants representing the allowable values for ExtensionUserUserStatusEnum +const ( + ExtensionUserUserStatusPendingverification ExtensionUserUserStatusEnum = "pendingVerification" + ExtensionUserUserStatusVerified ExtensionUserUserStatusEnum = "verified" +) + +var mappingExtensionUserUserStatusEnum = map[string]ExtensionUserUserStatusEnum{ + "pendingVerification": ExtensionUserUserStatusPendingverification, + "verified": ExtensionUserUserStatusVerified, +} + +var mappingExtensionUserUserStatusEnumLowerCase = map[string]ExtensionUserUserStatusEnum{ + "pendingverification": ExtensionUserUserStatusPendingverification, + "verified": ExtensionUserUserStatusVerified, +} + +// GetExtensionUserUserStatusEnumValues Enumerates the set of values for ExtensionUserUserStatusEnum +func GetExtensionUserUserStatusEnumValues() []ExtensionUserUserStatusEnum { + values := make([]ExtensionUserUserStatusEnum, 0) + for _, v := range mappingExtensionUserUserStatusEnum { + values = append(values, v) + } + return values +} + +// GetExtensionUserUserStatusEnumStringValues Enumerates the set of values in String for ExtensionUserUserStatusEnum +func GetExtensionUserUserStatusEnumStringValues() []string { + return []string{ + "pendingVerification", + "verified", + } +} + +// GetMappingExtensionUserUserStatusEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingExtensionUserUserStatusEnum(val string) (ExtensionUserUserStatusEnum, bool) { + enum, ok := mappingExtensionUserUserStatusEnumLowerCase[strings.ToLower(val)] + return enum, ok +} + +// ExtensionUserUserProviderEnum Enum with underlying type: string +type ExtensionUserUserProviderEnum string + +// Set of constants representing the allowable values for ExtensionUserUserProviderEnum +const ( + ExtensionUserUserProviderFacebook ExtensionUserUserProviderEnum = "facebook" + ExtensionUserUserProviderGoogle ExtensionUserUserProviderEnum = "google" + ExtensionUserUserProviderIdcs ExtensionUserUserProviderEnum = "IDCS" + ExtensionUserUserProviderTwitter ExtensionUserUserProviderEnum = "twitter" +) + +var mappingExtensionUserUserProviderEnum = map[string]ExtensionUserUserProviderEnum{ + "facebook": ExtensionUserUserProviderFacebook, + "google": ExtensionUserUserProviderGoogle, + "IDCS": ExtensionUserUserProviderIdcs, + "twitter": ExtensionUserUserProviderTwitter, +} + +var mappingExtensionUserUserProviderEnumLowerCase = map[string]ExtensionUserUserProviderEnum{ + "facebook": ExtensionUserUserProviderFacebook, + "google": ExtensionUserUserProviderGoogle, + "idcs": ExtensionUserUserProviderIdcs, + "twitter": ExtensionUserUserProviderTwitter, +} + +// GetExtensionUserUserProviderEnumValues Enumerates the set of values for ExtensionUserUserProviderEnum +func GetExtensionUserUserProviderEnumValues() []ExtensionUserUserProviderEnum { + values := make([]ExtensionUserUserProviderEnum, 0) + for _, v := range mappingExtensionUserUserProviderEnum { + values = append(values, v) + } + return values +} + +// GetExtensionUserUserProviderEnumStringValues Enumerates the set of values in String for ExtensionUserUserProviderEnum +func GetExtensionUserUserProviderEnumStringValues() []string { + return []string{ + "facebook", + "google", + "IDCS", + "twitter", + } +} + +// GetMappingExtensionUserUserProviderEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingExtensionUserUserProviderEnum(val string) (ExtensionUserUserProviderEnum, bool) { + enum, ok := mappingExtensionUserUserProviderEnumLowerCase[strings.ToLower(val)] + return enum, ok +} + +// ExtensionUserUserCreationMechanismEnum Enum with underlying type: string +type ExtensionUserUserCreationMechanismEnum string + +// Set of constants representing the allowable values for ExtensionUserUserCreationMechanismEnum +const ( + ExtensionUserUserCreationMechanismBulk ExtensionUserUserCreationMechanismEnum = "bulk" + ExtensionUserUserCreationMechanismApi ExtensionUserUserCreationMechanismEnum = "api" + ExtensionUserUserCreationMechanismAdsync ExtensionUserUserCreationMechanismEnum = "adsync" + ExtensionUserUserCreationMechanismIdcsui ExtensionUserUserCreationMechanismEnum = "idcsui" + ExtensionUserUserCreationMechanismImport ExtensionUserUserCreationMechanismEnum = "import" + ExtensionUserUserCreationMechanismAuthsync ExtensionUserUserCreationMechanismEnum = "authsync" + ExtensionUserUserCreationMechanismSelfreg ExtensionUserUserCreationMechanismEnum = "selfreg" + ExtensionUserUserCreationMechanismSamljit ExtensionUserUserCreationMechanismEnum = "samljit" +) + +var mappingExtensionUserUserCreationMechanismEnum = map[string]ExtensionUserUserCreationMechanismEnum{ + "bulk": ExtensionUserUserCreationMechanismBulk, + "api": ExtensionUserUserCreationMechanismApi, + "adsync": ExtensionUserUserCreationMechanismAdsync, + "idcsui": ExtensionUserUserCreationMechanismIdcsui, + "import": ExtensionUserUserCreationMechanismImport, + "authsync": ExtensionUserUserCreationMechanismAuthsync, + "selfreg": ExtensionUserUserCreationMechanismSelfreg, + "samljit": ExtensionUserUserCreationMechanismSamljit, +} + +var mappingExtensionUserUserCreationMechanismEnumLowerCase = map[string]ExtensionUserUserCreationMechanismEnum{ + "bulk": ExtensionUserUserCreationMechanismBulk, + "api": ExtensionUserUserCreationMechanismApi, + "adsync": ExtensionUserUserCreationMechanismAdsync, + "idcsui": ExtensionUserUserCreationMechanismIdcsui, + "import": ExtensionUserUserCreationMechanismImport, + "authsync": ExtensionUserUserCreationMechanismAuthsync, + "selfreg": ExtensionUserUserCreationMechanismSelfreg, + "samljit": ExtensionUserUserCreationMechanismSamljit, +} + +// GetExtensionUserUserCreationMechanismEnumValues Enumerates the set of values for ExtensionUserUserCreationMechanismEnum +func GetExtensionUserUserCreationMechanismEnumValues() []ExtensionUserUserCreationMechanismEnum { + values := make([]ExtensionUserUserCreationMechanismEnum, 0) + for _, v := range mappingExtensionUserUserCreationMechanismEnum { + values = append(values, v) + } + return values +} + +// GetExtensionUserUserCreationMechanismEnumStringValues Enumerates the set of values in String for ExtensionUserUserCreationMechanismEnum +func GetExtensionUserUserCreationMechanismEnumStringValues() []string { + return []string{ + "bulk", + "api", + "adsync", + "idcsui", + "import", + "authsync", + "selfreg", + "samljit", + } +} + +// GetMappingExtensionUserUserCreationMechanismEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingExtensionUserUserCreationMechanismEnum(val string) (ExtensionUserUserCreationMechanismEnum, bool) { + enum, ok := mappingExtensionUserUserCreationMechanismEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_x509_identity_provider.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_x509_identity_provider.go new file mode 100644 index 00000000000..b71a6cc947d --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/extension_x509_identity_provider.go @@ -0,0 +1,232 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// ExtensionX509IdentityProvider X509 Identity Provider Extension Schema +type ExtensionX509IdentityProvider struct { + + // X509 Certificate Matching Attribute + // **Added In:** 2010242156 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + CertMatchAttribute *string `mandatory:"true" json:"certMatchAttribute"` + + // This property specifies the userstore attribute value that must match the incoming certificate attribute. + // **Added In:** 2010242156 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + UserMatchAttribute *string `mandatory:"true" json:"userMatchAttribute"` + + // Certificate alias list to create a chain for the incoming client certificate + // **Added In:** 2010242156 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: true + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + SigningCertificateChain []string `mandatory:"true" json:"signingCertificateChain"` + + // Check for specific conditions of other certificate attributes + // **Added In:** 2010242156 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + OtherCertMatchAttribute *string `mandatory:"false" json:"otherCertMatchAttribute"` + + // Set to true to enable OCSP Validation + // **Added In:** 2010242156 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + OcspEnabled *bool `mandatory:"false" json:"ocspEnabled"` + + // This property specifies the OCSP Server alias name + // **Added In:** 2010242156 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + OcspServerName *string `mandatory:"false" json:"ocspServerName"` + + // This property specifies OCSP Responder URL. + // **Added In:** 2010242156 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + OcspResponderURL *string `mandatory:"false" json:"ocspResponderURL"` + + // Allow access if OCSP response is UNKNOWN or OCSP Responder does not respond within the timeout duration + // **Added In:** 2010242156 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + OcspAllowUnknownResponseStatus *bool `mandatory:"false" json:"ocspAllowUnknownResponseStatus"` + + // Revalidate OCSP status for user after X hours + // **Added In:** 2010242156 + // **SCIM++ Properties:** + // - idcsMaxValue: 24 + // - idcsMinValue: 0 + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: integer + // - uniqueness: none + OcspRevalidateTime *int `mandatory:"false" json:"ocspRevalidateTime"` + + // Describes if the OCSP response is signed + // **Added In:** 2010242156 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + OcspEnableSignedResponse *bool `mandatory:"false" json:"ocspEnableSignedResponse"` + + // OCSP Trusted Certificate Chain + // **Added In:** 2010242156 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + OcspTrustCertChain []string `mandatory:"false" json:"ocspTrustCertChain"` + + // Set to true to enable CRL Validation + // **Added In:** 2010242156 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + CrlEnabled *bool `mandatory:"false" json:"crlEnabled"` + + // Fallback on CRL Validation if OCSP fails. + // **Added In:** 2010242156 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + CrlCheckOnOCSPFailureEnabled *bool `mandatory:"false" json:"crlCheckOnOCSPFailureEnabled"` + + // CRL Location URL + // **Added In:** 2010242156 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + CrlLocation *string `mandatory:"false" json:"crlLocation"` + + // Fetch the CRL contents every X minutes + // **Added In:** 2010242156 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: integer + // - uniqueness: none + CrlReloadDuration *int `mandatory:"false" json:"crlReloadDuration"` +} + +func (m ExtensionX509IdentityProvider) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m ExtensionX509IdentityProvider) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/freeform_tags.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/freeform_tags.go new file mode 100644 index 00000000000..0fa3385a5e2 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/freeform_tags.go @@ -0,0 +1,70 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// FreeformTags OCI Freeform Tags +// **Added In:** 2011192329 +// **SCIM++ Properties:** +// - idcsCompositeKey: [key, value] +// - idcsSearchable: true +// - type: complex +// - required: false +// - mutability: readWrite +// - returned: default +// - multiValued: true +type FreeformTags struct { + + // OCI Tag key + // **Added In:** 2011192329 + // **SCIM++ Properties:** + // - caseExact: false + // - type: string + // - required: true + // - mutability: readWrite + // - returned: default + // - idcsSearchable: true + // - uniqueness: none + Key *string `mandatory:"true" json:"key"` + + // OCI Tag value + // **Added In:** 2011192329 + // **SCIM++ Properties:** + // - caseExact: false + // - required: true + // - mutability: readWrite + // - returned: default + // - type: string + // - idcsSearchable: true + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` +} + +func (m FreeformTags) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m FreeformTags) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_api_key_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_api_key_request_response.go new file mode 100644 index 00000000000..e2b2276ff7c --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_api_key_request_response.go @@ -0,0 +1,111 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// GetApiKeyRequest wrapper for the GetApiKey operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/GetApiKey.go.html to see an example of how to use GetApiKeyRequest. +type GetApiKeyRequest struct { + + // ID of the resource + ApiKeyId *string `mandatory:"true" contributesTo:"path" name:"apiKeyId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request GetApiKeyRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request GetApiKeyRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request GetApiKeyRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request GetApiKeyRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request GetApiKeyRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// GetApiKeyResponse wrapper for the GetApiKey operation +type GetApiKeyResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The ApiKey instance + ApiKey `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response GetApiKeyResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response GetApiKeyResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_auth_token_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_auth_token_request_response.go new file mode 100644 index 00000000000..c305f54364e --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_auth_token_request_response.go @@ -0,0 +1,111 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// GetAuthTokenRequest wrapper for the GetAuthToken operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/GetAuthToken.go.html to see an example of how to use GetAuthTokenRequest. +type GetAuthTokenRequest struct { + + // ID of the resource + AuthTokenId *string `mandatory:"true" contributesTo:"path" name:"authTokenId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request GetAuthTokenRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request GetAuthTokenRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request GetAuthTokenRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request GetAuthTokenRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request GetAuthTokenRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// GetAuthTokenResponse wrapper for the GetAuthToken operation +type GetAuthTokenResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The AuthToken instance + AuthToken `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response GetAuthTokenResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response GetAuthTokenResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_authentication_factor_setting_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_authentication_factor_setting_request_response.go new file mode 100644 index 00000000000..22e9cca8eb7 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_authentication_factor_setting_request_response.go @@ -0,0 +1,111 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// GetAuthenticationFactorSettingRequest wrapper for the GetAuthenticationFactorSetting operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/GetAuthenticationFactorSetting.go.html to see an example of how to use GetAuthenticationFactorSettingRequest. +type GetAuthenticationFactorSettingRequest struct { + + // ID of the resource + AuthenticationFactorSettingId *string `mandatory:"true" contributesTo:"path" name:"authenticationFactorSettingId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request GetAuthenticationFactorSettingRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request GetAuthenticationFactorSettingRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request GetAuthenticationFactorSettingRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request GetAuthenticationFactorSettingRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request GetAuthenticationFactorSettingRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// GetAuthenticationFactorSettingResponse wrapper for the GetAuthenticationFactorSetting operation +type GetAuthenticationFactorSettingResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The AuthenticationFactorSetting instance + AuthenticationFactorSetting `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response GetAuthenticationFactorSettingResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response GetAuthenticationFactorSettingResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_customer_secret_key_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_customer_secret_key_request_response.go new file mode 100644 index 00000000000..32fa511e2a8 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_customer_secret_key_request_response.go @@ -0,0 +1,111 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// GetCustomerSecretKeyRequest wrapper for the GetCustomerSecretKey operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/GetCustomerSecretKey.go.html to see an example of how to use GetCustomerSecretKeyRequest. +type GetCustomerSecretKeyRequest struct { + + // ID of the resource + CustomerSecretKeyId *string `mandatory:"true" contributesTo:"path" name:"customerSecretKeyId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request GetCustomerSecretKeyRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request GetCustomerSecretKeyRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request GetCustomerSecretKeyRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request GetCustomerSecretKeyRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request GetCustomerSecretKeyRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// GetCustomerSecretKeyResponse wrapper for the GetCustomerSecretKey operation +type GetCustomerSecretKeyResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The CustomerSecretKey instance + CustomerSecretKey `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response GetCustomerSecretKeyResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response GetCustomerSecretKeyResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_dynamic_resource_group_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_dynamic_resource_group_request_response.go new file mode 100644 index 00000000000..ca4f9c99397 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_dynamic_resource_group_request_response.go @@ -0,0 +1,111 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// GetDynamicResourceGroupRequest wrapper for the GetDynamicResourceGroup operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/GetDynamicResourceGroup.go.html to see an example of how to use GetDynamicResourceGroupRequest. +type GetDynamicResourceGroupRequest struct { + + // ID of the resource + DynamicResourceGroupId *string `mandatory:"true" contributesTo:"path" name:"dynamicResourceGroupId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request GetDynamicResourceGroupRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request GetDynamicResourceGroupRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request GetDynamicResourceGroupRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request GetDynamicResourceGroupRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request GetDynamicResourceGroupRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// GetDynamicResourceGroupResponse wrapper for the GetDynamicResourceGroup operation +type GetDynamicResourceGroupResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The DynamicResourceGroup instance + DynamicResourceGroup `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response GetDynamicResourceGroupResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response GetDynamicResourceGroupResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_group_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_group_request_response.go new file mode 100644 index 00000000000..ae2428cf42f --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_group_request_response.go @@ -0,0 +1,111 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// GetGroupRequest wrapper for the GetGroup operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/GetGroup.go.html to see an example of how to use GetGroupRequest. +type GetGroupRequest struct { + + // ID of the resource + GroupId *string `mandatory:"true" contributesTo:"path" name:"groupId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request GetGroupRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request GetGroupRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request GetGroupRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request GetGroupRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request GetGroupRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// GetGroupResponse wrapper for the GetGroup operation +type GetGroupResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The Group instance + Group `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response GetGroupResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response GetGroupResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_identity_provider_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_identity_provider_request_response.go new file mode 100644 index 00000000000..db6b1c338fb --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_identity_provider_request_response.go @@ -0,0 +1,111 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// GetIdentityProviderRequest wrapper for the GetIdentityProvider operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/GetIdentityProvider.go.html to see an example of how to use GetIdentityProviderRequest. +type GetIdentityProviderRequest struct { + + // ID of the resource + IdentityProviderId *string `mandatory:"true" contributesTo:"path" name:"identityProviderId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request GetIdentityProviderRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request GetIdentityProviderRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request GetIdentityProviderRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request GetIdentityProviderRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request GetIdentityProviderRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// GetIdentityProviderResponse wrapper for the GetIdentityProvider operation +type GetIdentityProviderResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The IdentityProvider instance + IdentityProvider `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response GetIdentityProviderResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response GetIdentityProviderResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_kmsi_setting_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_kmsi_setting_request_response.go new file mode 100644 index 00000000000..8d25598773b --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_kmsi_setting_request_response.go @@ -0,0 +1,111 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// GetKmsiSettingRequest wrapper for the GetKmsiSetting operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/GetKmsiSetting.go.html to see an example of how to use GetKmsiSettingRequest. +type GetKmsiSettingRequest struct { + + // ID of the resource + KmsiSettingId *string `mandatory:"true" contributesTo:"path" name:"kmsiSettingId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request GetKmsiSettingRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request GetKmsiSettingRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request GetKmsiSettingRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request GetKmsiSettingRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request GetKmsiSettingRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// GetKmsiSettingResponse wrapper for the GetKmsiSetting operation +type GetKmsiSettingResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The KmsiSetting instance + KmsiSetting `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response GetKmsiSettingResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response GetKmsiSettingResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_me_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_me_request_response.go new file mode 100644 index 00000000000..c8e180fa480 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_me_request_response.go @@ -0,0 +1,108 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// GetMeRequest wrapper for the GetMe operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/GetMe.go.html to see an example of how to use GetMeRequest. +type GetMeRequest struct { + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request GetMeRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request GetMeRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request GetMeRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request GetMeRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request GetMeRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// GetMeResponse wrapper for the GetMe operation +type GetMeResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The Me instance + Me `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response GetMeResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response GetMeResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_my_api_key_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_my_api_key_request_response.go new file mode 100644 index 00000000000..9393a66a952 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_my_api_key_request_response.go @@ -0,0 +1,99 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// GetMyApiKeyRequest wrapper for the GetMyApiKey operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/GetMyApiKey.go.html to see an example of how to use GetMyApiKeyRequest. +type GetMyApiKeyRequest struct { + + // ID of the resource + MyApiKeyId *string `mandatory:"true" contributesTo:"path" name:"myApiKeyId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request GetMyApiKeyRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request GetMyApiKeyRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request GetMyApiKeyRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request GetMyApiKeyRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request GetMyApiKeyRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// GetMyApiKeyResponse wrapper for the GetMyApiKey operation +type GetMyApiKeyResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The MyApiKey instance + MyApiKey `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response GetMyApiKeyResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response GetMyApiKeyResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_my_auth_token_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_my_auth_token_request_response.go new file mode 100644 index 00000000000..773c3f8368a --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_my_auth_token_request_response.go @@ -0,0 +1,99 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// GetMyAuthTokenRequest wrapper for the GetMyAuthToken operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/GetMyAuthToken.go.html to see an example of how to use GetMyAuthTokenRequest. +type GetMyAuthTokenRequest struct { + + // ID of the resource + MyAuthTokenId *string `mandatory:"true" contributesTo:"path" name:"myAuthTokenId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request GetMyAuthTokenRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request GetMyAuthTokenRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request GetMyAuthTokenRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request GetMyAuthTokenRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request GetMyAuthTokenRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// GetMyAuthTokenResponse wrapper for the GetMyAuthToken operation +type GetMyAuthTokenResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The MyAuthToken instance + MyAuthToken `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response GetMyAuthTokenResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response GetMyAuthTokenResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_my_customer_secret_key_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_my_customer_secret_key_request_response.go new file mode 100644 index 00000000000..f8ed5e2b1fd --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_my_customer_secret_key_request_response.go @@ -0,0 +1,99 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// GetMyCustomerSecretKeyRequest wrapper for the GetMyCustomerSecretKey operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/GetMyCustomerSecretKey.go.html to see an example of how to use GetMyCustomerSecretKeyRequest. +type GetMyCustomerSecretKeyRequest struct { + + // ID of the resource + MyCustomerSecretKeyId *string `mandatory:"true" contributesTo:"path" name:"myCustomerSecretKeyId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request GetMyCustomerSecretKeyRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request GetMyCustomerSecretKeyRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request GetMyCustomerSecretKeyRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request GetMyCustomerSecretKeyRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request GetMyCustomerSecretKeyRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// GetMyCustomerSecretKeyResponse wrapper for the GetMyCustomerSecretKey operation +type GetMyCustomerSecretKeyResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The MyCustomerSecretKey instance + MyCustomerSecretKey `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response GetMyCustomerSecretKeyResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response GetMyCustomerSecretKeyResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_my_device_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_my_device_request_response.go new file mode 100644 index 00000000000..5cefb7cb976 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_my_device_request_response.go @@ -0,0 +1,111 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// GetMyDeviceRequest wrapper for the GetMyDevice operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/GetMyDevice.go.html to see an example of how to use GetMyDeviceRequest. +type GetMyDeviceRequest struct { + + // ID of the resource + MyDeviceId *string `mandatory:"true" contributesTo:"path" name:"myDeviceId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request GetMyDeviceRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request GetMyDeviceRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request GetMyDeviceRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request GetMyDeviceRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request GetMyDeviceRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// GetMyDeviceResponse wrapper for the GetMyDevice operation +type GetMyDeviceResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The MyDevice instance + MyDevice `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response GetMyDeviceResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response GetMyDeviceResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_my_o_auth2_client_credential_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_my_o_auth2_client_credential_request_response.go new file mode 100644 index 00000000000..40418b33331 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_my_o_auth2_client_credential_request_response.go @@ -0,0 +1,99 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// GetMyOAuth2ClientCredentialRequest wrapper for the GetMyOAuth2ClientCredential operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/GetMyOAuth2ClientCredential.go.html to see an example of how to use GetMyOAuth2ClientCredentialRequest. +type GetMyOAuth2ClientCredentialRequest struct { + + // ID of the resource + MyOAuth2ClientCredentialId *string `mandatory:"true" contributesTo:"path" name:"myOAuth2ClientCredentialId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request GetMyOAuth2ClientCredentialRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request GetMyOAuth2ClientCredentialRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request GetMyOAuth2ClientCredentialRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request GetMyOAuth2ClientCredentialRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request GetMyOAuth2ClientCredentialRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// GetMyOAuth2ClientCredentialResponse wrapper for the GetMyOAuth2ClientCredential operation +type GetMyOAuth2ClientCredentialResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The MyOAuth2ClientCredential instance + MyOAuth2ClientCredential `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response GetMyOAuth2ClientCredentialResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response GetMyOAuth2ClientCredentialResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_my_smtp_credential_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_my_smtp_credential_request_response.go new file mode 100644 index 00000000000..eca108aaf48 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_my_smtp_credential_request_response.go @@ -0,0 +1,99 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// GetMySmtpCredentialRequest wrapper for the GetMySmtpCredential operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/GetMySmtpCredential.go.html to see an example of how to use GetMySmtpCredentialRequest. +type GetMySmtpCredentialRequest struct { + + // ID of the resource + MySmtpCredentialId *string `mandatory:"true" contributesTo:"path" name:"mySmtpCredentialId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request GetMySmtpCredentialRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request GetMySmtpCredentialRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request GetMySmtpCredentialRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request GetMySmtpCredentialRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request GetMySmtpCredentialRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// GetMySmtpCredentialResponse wrapper for the GetMySmtpCredential operation +type GetMySmtpCredentialResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The MySmtpCredential instance + MySmtpCredential `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response GetMySmtpCredentialResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response GetMySmtpCredentialResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_my_support_account_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_my_support_account_request_response.go new file mode 100644 index 00000000000..fba8a7c339c --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_my_support_account_request_response.go @@ -0,0 +1,99 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// GetMySupportAccountRequest wrapper for the GetMySupportAccount operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/GetMySupportAccount.go.html to see an example of how to use GetMySupportAccountRequest. +type GetMySupportAccountRequest struct { + + // ID of the resource + MySupportAccountId *string `mandatory:"true" contributesTo:"path" name:"mySupportAccountId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request GetMySupportAccountRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request GetMySupportAccountRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request GetMySupportAccountRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request GetMySupportAccountRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request GetMySupportAccountRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// GetMySupportAccountResponse wrapper for the GetMySupportAccount operation +type GetMySupportAccountResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The MySupportAccount instance + MySupportAccount `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response GetMySupportAccountResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response GetMySupportAccountResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_my_trusted_user_agent_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_my_trusted_user_agent_request_response.go new file mode 100644 index 00000000000..9e4bb6fac44 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_my_trusted_user_agent_request_response.go @@ -0,0 +1,111 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// GetMyTrustedUserAgentRequest wrapper for the GetMyTrustedUserAgent operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/GetMyTrustedUserAgent.go.html to see an example of how to use GetMyTrustedUserAgentRequest. +type GetMyTrustedUserAgentRequest struct { + + // ID of the resource + MyTrustedUserAgentId *string `mandatory:"true" contributesTo:"path" name:"myTrustedUserAgentId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request GetMyTrustedUserAgentRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request GetMyTrustedUserAgentRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request GetMyTrustedUserAgentRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request GetMyTrustedUserAgentRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request GetMyTrustedUserAgentRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// GetMyTrustedUserAgentResponse wrapper for the GetMyTrustedUserAgent operation +type GetMyTrustedUserAgentResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The MyTrustedUserAgent instance + MyTrustedUserAgent `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response GetMyTrustedUserAgentResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response GetMyTrustedUserAgentResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_my_user_db_credential_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_my_user_db_credential_request_response.go new file mode 100644 index 00000000000..2a3401df94c --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_my_user_db_credential_request_response.go @@ -0,0 +1,99 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// GetMyUserDbCredentialRequest wrapper for the GetMyUserDbCredential operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/GetMyUserDbCredential.go.html to see an example of how to use GetMyUserDbCredentialRequest. +type GetMyUserDbCredentialRequest struct { + + // ID of the resource + MyUserDbCredentialId *string `mandatory:"true" contributesTo:"path" name:"myUserDbCredentialId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request GetMyUserDbCredentialRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request GetMyUserDbCredentialRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request GetMyUserDbCredentialRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request GetMyUserDbCredentialRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request GetMyUserDbCredentialRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// GetMyUserDbCredentialResponse wrapper for the GetMyUserDbCredential operation +type GetMyUserDbCredentialResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The MyUserDbCredential instance + MyUserDbCredential `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response GetMyUserDbCredentialResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response GetMyUserDbCredentialResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_o_auth2_client_credential_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_o_auth2_client_credential_request_response.go new file mode 100644 index 00000000000..604aa539a70 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_o_auth2_client_credential_request_response.go @@ -0,0 +1,111 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// GetOAuth2ClientCredentialRequest wrapper for the GetOAuth2ClientCredential operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/GetOAuth2ClientCredential.go.html to see an example of how to use GetOAuth2ClientCredentialRequest. +type GetOAuth2ClientCredentialRequest struct { + + // ID of the resource + OAuth2ClientCredentialId *string `mandatory:"true" contributesTo:"path" name:"oAuth2ClientCredentialId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request GetOAuth2ClientCredentialRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request GetOAuth2ClientCredentialRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request GetOAuth2ClientCredentialRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request GetOAuth2ClientCredentialRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request GetOAuth2ClientCredentialRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// GetOAuth2ClientCredentialResponse wrapper for the GetOAuth2ClientCredential operation +type GetOAuth2ClientCredentialResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The OAuth2ClientCredential instance + OAuth2ClientCredential `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response GetOAuth2ClientCredentialResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response GetOAuth2ClientCredentialResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_password_policy_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_password_policy_request_response.go new file mode 100644 index 00000000000..b2c25027f04 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_password_policy_request_response.go @@ -0,0 +1,111 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// GetPasswordPolicyRequest wrapper for the GetPasswordPolicy operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/GetPasswordPolicy.go.html to see an example of how to use GetPasswordPolicyRequest. +type GetPasswordPolicyRequest struct { + + // ID of the resource + PasswordPolicyId *string `mandatory:"true" contributesTo:"path" name:"passwordPolicyId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request GetPasswordPolicyRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request GetPasswordPolicyRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request GetPasswordPolicyRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request GetPasswordPolicyRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request GetPasswordPolicyRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// GetPasswordPolicyResponse wrapper for the GetPasswordPolicy operation +type GetPasswordPolicyResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The PasswordPolicy instance + PasswordPolicy `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response GetPasswordPolicyResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response GetPasswordPolicyResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_smtp_credential_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_smtp_credential_request_response.go new file mode 100644 index 00000000000..afac1e496f8 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_smtp_credential_request_response.go @@ -0,0 +1,111 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// GetSmtpCredentialRequest wrapper for the GetSmtpCredential operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/GetSmtpCredential.go.html to see an example of how to use GetSmtpCredentialRequest. +type GetSmtpCredentialRequest struct { + + // ID of the resource + SmtpCredentialId *string `mandatory:"true" contributesTo:"path" name:"smtpCredentialId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request GetSmtpCredentialRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request GetSmtpCredentialRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request GetSmtpCredentialRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request GetSmtpCredentialRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request GetSmtpCredentialRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// GetSmtpCredentialResponse wrapper for the GetSmtpCredential operation +type GetSmtpCredentialResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The SmtpCredential instance + SmtpCredential `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response GetSmtpCredentialResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response GetSmtpCredentialResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_user_db_credential_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_user_db_credential_request_response.go new file mode 100644 index 00000000000..38f1583e98a --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_user_db_credential_request_response.go @@ -0,0 +1,111 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// GetUserDbCredentialRequest wrapper for the GetUserDbCredential operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/GetUserDbCredential.go.html to see an example of how to use GetUserDbCredentialRequest. +type GetUserDbCredentialRequest struct { + + // ID of the resource + UserDbCredentialId *string `mandatory:"true" contributesTo:"path" name:"userDbCredentialId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request GetUserDbCredentialRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request GetUserDbCredentialRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request GetUserDbCredentialRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request GetUserDbCredentialRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request GetUserDbCredentialRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// GetUserDbCredentialResponse wrapper for the GetUserDbCredential operation +type GetUserDbCredentialResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The UserDbCredential instance + UserDbCredential `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response GetUserDbCredentialResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response GetUserDbCredentialResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_user_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_user_request_response.go new file mode 100644 index 00000000000..dfd026f0ca6 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/get_user_request_response.go @@ -0,0 +1,111 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// GetUserRequest wrapper for the GetUser operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/GetUser.go.html to see an example of how to use GetUserRequest. +type GetUserRequest struct { + + // ID of the resource + UserId *string `mandatory:"true" contributesTo:"path" name:"userId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request GetUserRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request GetUserRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request GetUserRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request GetUserRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request GetUserRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// GetUserResponse wrapper for the GetUser operation +type GetUserResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The User instance + User `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` +} + +func (response GetUserResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response GetUserResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/group.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/group.go new file mode 100644 index 00000000000..df74aca3da0 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/group.go @@ -0,0 +1,234 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// Group Group resource. +type Group struct { + + // REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: true + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Schemas []string `mandatory:"true" json:"schemas"` + + // Group display name + // **SCIM++ Properties:** + // - caseExact: false + // - idcsCsvAttributeName: Display Name + // - idcsCsvAttributeNameMappings: [[columnHeaderName:Name, deprecatedColumnHeaderName:Display Name]] + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: always + // - type: string + // - uniqueness: global + DisplayName *string `mandatory:"true" json:"displayName"` + + // Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: always + // - type: string + // - uniqueness: global + Id *string `mandatory:"false" json:"id"` + + // Unique OCI identifier for the SCIM Resource. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: default + // - type: string + // - uniqueness: global + Ocid *string `mandatory:"false" json:"ocid"` + + Meta *Meta `mandatory:"false" json:"meta"` + + IdcsCreatedBy *IdcsCreatedBy `mandatory:"false" json:"idcsCreatedBy"` + + IdcsLastModifiedBy *IdcsLastModifiedBy `mandatory:"false" json:"idcsLastModifiedBy"` + + // Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsPreventedOperations []IdcsPreventedOperationsEnum `mandatory:"false" json:"idcsPreventedOperations,omitempty"` + + // A list of tags on this resource. + // **SCIM++ Properties:** + // - idcsCompositeKey: [key, value] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + Tags []Tags `mandatory:"false" json:"tags"` + + // A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + DeleteInProgress *bool `mandatory:"false" json:"deleteInProgress"` + + // The release number when the resource was upgraded. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsLastUpgradedInRelease *string `mandatory:"false" json:"idcsLastUpgradedInRelease"` + + // OCI Domain Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + DomainOcid *string `mandatory:"false" json:"domainOcid"` + + // OCI Compartment Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + CompartmentOcid *string `mandatory:"false" json:"compartmentOcid"` + + // OCI Tenant Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + TenancyOcid *string `mandatory:"false" json:"tenancyOcid"` + + // An identifier for the Resource as defined by the Service Consumer. The externalId may simplify identification of the Resource between Service Consumer and Service Provider by allowing the Consumer to refer to the Resource with its own identifier, obviating the need to store a local mapping between the local identifier of the Resource and the identifier used by the Service Provider. Each Resource MAY include a non-empty externalId value. The value of the externalId attribute is always issued by the Service Consumer and can never be specified by the Service Provider. The Service Provider MUST always interpret the externalId as scoped to the Service Consumer's tenant. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + ExternalId *string `mandatory:"false" json:"externalId"` + + // A human readable name for Group as defined by the Service Consumer + // **Added In:** 2011192329 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsCsvAttributeName: Non-Unique Display Name + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: always + // - type: string + NonUniqueDisplayName *string `mandatory:"false" json:"nonUniqueDisplayName"` + + // Group members - when requesting members attribute, a max of 10,000 members will be returned in a single request. It is recommended to use startIndex and count to return members in pages instead of in a single response, eg : #attributes=members[startIndex=1%26count=10] + // **SCIM++ Properties:** + // - caseExact: false + // - idcsCompositeKey: [value] + // - idcsCsvAttributeNameMappings: [[columnHeaderName:User Members, mapsTo:members[User].value, multiValueDelimiter:;]] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: request + // - idcsPaginateResponse: true + // - type: complex + // - uniqueness: none + Members []GroupMembers `mandatory:"false" json:"members"` + + UrnIetfParamsScimSchemasOracleIdcsExtensionGroupGroup *ExtensionGroupGroup `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:group:Group"` + + UrnIetfParamsScimSchemasOracleIdcsExtensionPosixGroup *ExtensionPosixGroup `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:posix:Group"` + + UrnIetfParamsScimSchemasOracleIdcsExtensionRequestableGroup *ExtensionRequestableGroup `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:requestable:Group"` + + UrnIetfParamsScimSchemasOracleIdcsExtensionDbcsGroup *ExtensionDbcsGroup `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:dbcs:Group"` + + UrnIetfParamsScimSchemasOracleIdcsExtensionDynamicGroup *ExtensionDynamicGroup `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:dynamic:Group"` + + UrnIetfParamsScimSchemasOracleIdcsExtensionOciTags *ExtensionOciTags `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:OCITags"` +} + +func (m Group) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m Group) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + for _, val := range m.IdcsPreventedOperations { + if _, ok := GetMappingIdcsPreventedOperationsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for IdcsPreventedOperations: %s. Supported values are: %s.", val, strings.Join(GetIdcsPreventedOperationsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/group_ext_app_roles.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/group_ext_app_roles.go new file mode 100644 index 00000000000..e705af66add --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/group_ext_app_roles.go @@ -0,0 +1,187 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// GroupExtAppRoles A list of appRoles that the user belongs to, either thorough direct membership, nested groups, or dynamically calculated +// **SCIM++ Properties:** +// - caseExact: false +// - idcsCompositeKey: [value] +// - idcsSearchable: true +// - multiValued: true +// - mutability: readOnly +// - required: false +// - returned: request +// - type: complex +// - uniqueness: none +type GroupExtAppRoles struct { + + // The identifier of the appRole + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: true + // - returned: always + // - type: string + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` + + // The URI of the corresponding appRole resource to which the user belongs + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` + + // A human readable name, primarily used for display purposes. READ-ONLY. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + Display *string `mandatory:"false" json:"display"` + + // A label indicating the attribute's function; e.g., 'direct' or 'indirect'. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + Type GroupExtAppRolesTypeEnum `mandatory:"false" json:"type,omitempty"` + + // ID of parent App. READ-ONLY. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + AppId *string `mandatory:"false" json:"appId"` + + // Name of parent App. READ-ONLY. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + AppName *string `mandatory:"false" json:"appName"` + + // If true, then the role provides administrative access privileges. READ-ONLY. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: boolean + // - uniqueness: none + AdminRole *bool `mandatory:"false" json:"adminRole"` + + // The name of the legacy group associated with this AppRole. + // **SCIM++ Properties:** + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + LegacyGroupName *string `mandatory:"false" json:"legacyGroupName"` +} + +func (m GroupExtAppRoles) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m GroupExtAppRoles) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if _, ok := GetMappingGroupExtAppRolesTypeEnum(string(m.Type)); !ok && m.Type != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Type: %s. Supported values are: %s.", m.Type, strings.Join(GetGroupExtAppRolesTypeEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// GroupExtAppRolesTypeEnum Enum with underlying type: string +type GroupExtAppRolesTypeEnum string + +// Set of constants representing the allowable values for GroupExtAppRolesTypeEnum +const ( + GroupExtAppRolesTypeDirect GroupExtAppRolesTypeEnum = "direct" + GroupExtAppRolesTypeIndirect GroupExtAppRolesTypeEnum = "indirect" +) + +var mappingGroupExtAppRolesTypeEnum = map[string]GroupExtAppRolesTypeEnum{ + "direct": GroupExtAppRolesTypeDirect, + "indirect": GroupExtAppRolesTypeIndirect, +} + +var mappingGroupExtAppRolesTypeEnumLowerCase = map[string]GroupExtAppRolesTypeEnum{ + "direct": GroupExtAppRolesTypeDirect, + "indirect": GroupExtAppRolesTypeIndirect, +} + +// GetGroupExtAppRolesTypeEnumValues Enumerates the set of values for GroupExtAppRolesTypeEnum +func GetGroupExtAppRolesTypeEnumValues() []GroupExtAppRolesTypeEnum { + values := make([]GroupExtAppRolesTypeEnum, 0) + for _, v := range mappingGroupExtAppRolesTypeEnum { + values = append(values, v) + } + return values +} + +// GetGroupExtAppRolesTypeEnumStringValues Enumerates the set of values in String for GroupExtAppRolesTypeEnum +func GetGroupExtAppRolesTypeEnumStringValues() []string { + return []string{ + "direct", + "indirect", + } +} + +// GetMappingGroupExtAppRolesTypeEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingGroupExtAppRolesTypeEnum(val string) (GroupExtAppRolesTypeEnum, bool) { + enum, ok := mappingGroupExtAppRolesTypeEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/group_ext_domain_level_schema_names.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/group_ext_domain_level_schema_names.go new file mode 100644 index 00000000000..494f6a535ec --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/group_ext_domain_level_schema_names.go @@ -0,0 +1,72 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// GroupExtDomainLevelSchemaNames DBCS Domain-level schema-names. Each value is specific to a DB Domain. +// **Added In:** 18.2.4 +// **SCIM++ Properties:** +// - idcsCompositeKey: [domainName, schemaName] +// - idcsSearchable: true +// - multiValued: true +// - mutability: readOnly +// - required: false +// - returned: request +// - type: complex +type GroupExtDomainLevelSchemaNames struct { + + // DBCS Domain Name + // **Added In:** 18.2.4 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + DomainName *string `mandatory:"true" json:"domainName"` + + // The DBCS schema-name granted to this group in the DB domain that 'domainName' specifies. + // **Added In:** 18.2.4 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + SchemaName *string `mandatory:"true" json:"schemaName"` +} + +func (m GroupExtDomainLevelSchemaNames) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m GroupExtDomainLevelSchemaNames) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/group_ext_grants.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/group_ext_grants.go new file mode 100644 index 00000000000..75eeb3432a1 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/group_ext_grants.go @@ -0,0 +1,161 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// GroupExtGrants Grants assigned to group +// **SCIM++ Properties:** +// - idcsSearchable: true +// - multiValued: true +// - mutability: readOnly +// - required: false +// - returned: request +// - type: complex +// - uniqueness: none +type GroupExtGrants struct { + + // Grant identifier + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Value *string `mandatory:"false" json:"value"` + + // Grant URI + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` + + // App identifier + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + AppId *string `mandatory:"false" json:"appId"` + + // Each value of grantMechanism indicates how (or by what component) some App (or App-Entitlement) was granted.\nA customer or the UI should use only grantMechanism values that start with 'ADMINISTRATOR':\n - 'ADMINISTRATOR_TO_USER' is for a direct grant to a specific User.\n - 'ADMINISTRATOR_TO_GROUP' is for a grant to a specific Group, which results in indirect grants to Users who are members of that Group.\n - 'ADMINISTRATOR_TO_APP' is for a grant to a specific App. The grantee (client) App gains access to the granted (server) App. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + GrantMechanism GroupExtGrantsGrantMechanismEnum `mandatory:"false" json:"grantMechanism,omitempty"` +} + +func (m GroupExtGrants) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m GroupExtGrants) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if _, ok := GetMappingGroupExtGrantsGrantMechanismEnum(string(m.GrantMechanism)); !ok && m.GrantMechanism != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for GrantMechanism: %s. Supported values are: %s.", m.GrantMechanism, strings.Join(GetGroupExtGrantsGrantMechanismEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// GroupExtGrantsGrantMechanismEnum Enum with underlying type: string +type GroupExtGrantsGrantMechanismEnum string + +// Set of constants representing the allowable values for GroupExtGrantsGrantMechanismEnum +const ( + GroupExtGrantsGrantMechanismImportApproleMembers GroupExtGrantsGrantMechanismEnum = "IMPORT_APPROLE_MEMBERS" + GroupExtGrantsGrantMechanismAdministratorToUser GroupExtGrantsGrantMechanismEnum = "ADMINISTRATOR_TO_USER" + GroupExtGrantsGrantMechanismAdministratorToGroup GroupExtGrantsGrantMechanismEnum = "ADMINISTRATOR_TO_GROUP" + GroupExtGrantsGrantMechanismServiceManagerToUser GroupExtGrantsGrantMechanismEnum = "SERVICE_MANAGER_TO_USER" + GroupExtGrantsGrantMechanismAdministratorToApp GroupExtGrantsGrantMechanismEnum = "ADMINISTRATOR_TO_APP" + GroupExtGrantsGrantMechanismServiceManagerToApp GroupExtGrantsGrantMechanismEnum = "SERVICE_MANAGER_TO_APP" + GroupExtGrantsGrantMechanismOpcInfraToApp GroupExtGrantsGrantMechanismEnum = "OPC_INFRA_TO_APP" + GroupExtGrantsGrantMechanismGroupMembership GroupExtGrantsGrantMechanismEnum = "GROUP_MEMBERSHIP" +) + +var mappingGroupExtGrantsGrantMechanismEnum = map[string]GroupExtGrantsGrantMechanismEnum{ + "IMPORT_APPROLE_MEMBERS": GroupExtGrantsGrantMechanismImportApproleMembers, + "ADMINISTRATOR_TO_USER": GroupExtGrantsGrantMechanismAdministratorToUser, + "ADMINISTRATOR_TO_GROUP": GroupExtGrantsGrantMechanismAdministratorToGroup, + "SERVICE_MANAGER_TO_USER": GroupExtGrantsGrantMechanismServiceManagerToUser, + "ADMINISTRATOR_TO_APP": GroupExtGrantsGrantMechanismAdministratorToApp, + "SERVICE_MANAGER_TO_APP": GroupExtGrantsGrantMechanismServiceManagerToApp, + "OPC_INFRA_TO_APP": GroupExtGrantsGrantMechanismOpcInfraToApp, + "GROUP_MEMBERSHIP": GroupExtGrantsGrantMechanismGroupMembership, +} + +var mappingGroupExtGrantsGrantMechanismEnumLowerCase = map[string]GroupExtGrantsGrantMechanismEnum{ + "import_approle_members": GroupExtGrantsGrantMechanismImportApproleMembers, + "administrator_to_user": GroupExtGrantsGrantMechanismAdministratorToUser, + "administrator_to_group": GroupExtGrantsGrantMechanismAdministratorToGroup, + "service_manager_to_user": GroupExtGrantsGrantMechanismServiceManagerToUser, + "administrator_to_app": GroupExtGrantsGrantMechanismAdministratorToApp, + "service_manager_to_app": GroupExtGrantsGrantMechanismServiceManagerToApp, + "opc_infra_to_app": GroupExtGrantsGrantMechanismOpcInfraToApp, + "group_membership": GroupExtGrantsGrantMechanismGroupMembership, +} + +// GetGroupExtGrantsGrantMechanismEnumValues Enumerates the set of values for GroupExtGrantsGrantMechanismEnum +func GetGroupExtGrantsGrantMechanismEnumValues() []GroupExtGrantsGrantMechanismEnum { + values := make([]GroupExtGrantsGrantMechanismEnum, 0) + for _, v := range mappingGroupExtGrantsGrantMechanismEnum { + values = append(values, v) + } + return values +} + +// GetGroupExtGrantsGrantMechanismEnumStringValues Enumerates the set of values in String for GroupExtGrantsGrantMechanismEnum +func GetGroupExtGrantsGrantMechanismEnumStringValues() []string { + return []string{ + "IMPORT_APPROLE_MEMBERS", + "ADMINISTRATOR_TO_USER", + "ADMINISTRATOR_TO_GROUP", + "SERVICE_MANAGER_TO_USER", + "ADMINISTRATOR_TO_APP", + "SERVICE_MANAGER_TO_APP", + "OPC_INFRA_TO_APP", + "GROUP_MEMBERSHIP", + } +} + +// GetMappingGroupExtGrantsGrantMechanismEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingGroupExtGrantsGrantMechanismEnum(val string) (GroupExtGrantsGrantMechanismEnum, bool) { + enum, ok := mappingGroupExtGrantsGrantMechanismEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/group_ext_instance_level_schema_names.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/group_ext_instance_level_schema_names.go new file mode 100644 index 00000000000..1cc09c4a6d0 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/group_ext_instance_level_schema_names.go @@ -0,0 +1,72 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// GroupExtInstanceLevelSchemaNames DBCS instance-level schema-names. Each schema-name is specific to a DB Instance. +// **Added In:** 18.2.4 +// **SCIM++ Properties:** +// - idcsCompositeKey: [dbInstanceId, schemaName] +// - idcsSearchable: true +// - multiValued: true +// - mutability: readOnly +// - required: false +// - returned: request +// - type: complex +type GroupExtInstanceLevelSchemaNames struct { + + // App Id of DBCS App instance + // **Added In:** 18.2.4 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + DbInstanceId *string `mandatory:"true" json:"dbInstanceId"` + + // The DBCS schema-name granted to this Group for the DB instance that 'dbInstanceId' specifies. + // **Added In:** 18.2.4 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + SchemaName *string `mandatory:"true" json:"schemaName"` +} + +func (m GroupExtInstanceLevelSchemaNames) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m GroupExtInstanceLevelSchemaNames) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/group_ext_owners.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/group_ext_owners.go new file mode 100644 index 00000000000..64bee9be761 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/group_ext_owners.go @@ -0,0 +1,141 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// GroupExtOwners Group owners +// **SCIM++ Properties:** +// - caseExact: false +// - idcsCompositeKey: [value, type] +// - idcsSearchable: true +// - multiValued: true +// - mutability: readWrite +// - required: false +// - returned: request +// - type: complex +// - uniqueness: none +type GroupExtOwners struct { + + // ID of the owner of this Group + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: always + // - type: string + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` + + // Indicates the type of resource--for example, User or Group + // **SCIM++ Properties:** + // - caseExact: true + // - idcsDefaultValue: User + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Type GroupExtOwnersTypeEnum `mandatory:"true" json:"type"` + + // The URI that corresponds to the owning Resource of this Group + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` + + // Owner display name + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Display *string `mandatory:"false" json:"display"` +} + +func (m GroupExtOwners) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m GroupExtOwners) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingGroupExtOwnersTypeEnum(string(m.Type)); !ok && m.Type != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Type: %s. Supported values are: %s.", m.Type, strings.Join(GetGroupExtOwnersTypeEnumStringValues(), ","))) + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// GroupExtOwnersTypeEnum Enum with underlying type: string +type GroupExtOwnersTypeEnum string + +// Set of constants representing the allowable values for GroupExtOwnersTypeEnum +const ( + GroupExtOwnersTypeUser GroupExtOwnersTypeEnum = "User" + GroupExtOwnersTypeApp GroupExtOwnersTypeEnum = "App" +) + +var mappingGroupExtOwnersTypeEnum = map[string]GroupExtOwnersTypeEnum{ + "User": GroupExtOwnersTypeUser, + "App": GroupExtOwnersTypeApp, +} + +var mappingGroupExtOwnersTypeEnumLowerCase = map[string]GroupExtOwnersTypeEnum{ + "user": GroupExtOwnersTypeUser, + "app": GroupExtOwnersTypeApp, +} + +// GetGroupExtOwnersTypeEnumValues Enumerates the set of values for GroupExtOwnersTypeEnum +func GetGroupExtOwnersTypeEnumValues() []GroupExtOwnersTypeEnum { + values := make([]GroupExtOwnersTypeEnum, 0) + for _, v := range mappingGroupExtOwnersTypeEnum { + values = append(values, v) + } + return values +} + +// GetGroupExtOwnersTypeEnumStringValues Enumerates the set of values in String for GroupExtOwnersTypeEnum +func GetGroupExtOwnersTypeEnumStringValues() []string { + return []string{ + "User", + "App", + } +} + +// GetMappingGroupExtOwnersTypeEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingGroupExtOwnersTypeEnum(val string) (GroupExtOwnersTypeEnum, bool) { + enum, ok := mappingGroupExtOwnersTypeEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/group_ext_password_policy.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/group_ext_password_policy.go new file mode 100644 index 00000000000..b22ee1fae75 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/group_ext_password_policy.go @@ -0,0 +1,97 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// GroupExtPasswordPolicy Password Policy associated with this Group. +// **Added In:** 20.1.3 +// **SCIM++ Properties:** +// - caseExact: false +// - idcsCompositeKey: [value] +// - idcsSearchable: true +// - multiValued: false +// - mutability: readOnly +// - required: false +// - returned: request +// - type: complex +// - uniqueness: none +type GroupExtPasswordPolicy struct { + + // The ID of the PasswordPolicy. + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: true + // - returned: always + // - type: string + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` + + // PasswordPolicy URI + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` + + // PasswordPolicy Name + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Name *string `mandatory:"false" json:"name"` + + // PasswordPolicy priority + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: integer + // - uniqueness: none + Priority *int `mandatory:"false" json:"priority"` +} + +func (m GroupExtPasswordPolicy) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m GroupExtPasswordPolicy) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/group_ext_synced_from_app.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/group_ext_synced_from_app.go new file mode 100644 index 00000000000..7e8805ff509 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/group_ext_synced_from_app.go @@ -0,0 +1,138 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// GroupExtSyncedFromApp The entity that created this Group. +// **Added In:** 18.4.2 +// **SCIM++ Properties:** +// - idcsCompositeKey: [value] +// - idcsSearchable: true +// - multiValued: false +// - mutability: readOnly +// - required: false +// - returned: request +// - type: complex +// - uniqueness: none +type GroupExtSyncedFromApp struct { + + // The ID of the App. + // **Added In:** 18.4.2 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` + + // The type of the entity that created this Group. + // **Added In:** 18.4.2 + // **SCIM++ Properties:** + // - idcsDefaultValue: App + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Type GroupExtSyncedFromAppTypeEnum `mandatory:"true" json:"type"` + + // App URI + // **Added In:** 18.4.2 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` + + // App Display Name + // **Added In:** 18.4.2 + // **SCIM++ Properties:** + // - caseExact: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Display *string `mandatory:"false" json:"display"` +} + +func (m GroupExtSyncedFromApp) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m GroupExtSyncedFromApp) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingGroupExtSyncedFromAppTypeEnum(string(m.Type)); !ok && m.Type != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Type: %s. Supported values are: %s.", m.Type, strings.Join(GetGroupExtSyncedFromAppTypeEnumStringValues(), ","))) + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// GroupExtSyncedFromAppTypeEnum Enum with underlying type: string +type GroupExtSyncedFromAppTypeEnum string + +// Set of constants representing the allowable values for GroupExtSyncedFromAppTypeEnum +const ( + GroupExtSyncedFromAppTypeApp GroupExtSyncedFromAppTypeEnum = "App" +) + +var mappingGroupExtSyncedFromAppTypeEnum = map[string]GroupExtSyncedFromAppTypeEnum{ + "App": GroupExtSyncedFromAppTypeApp, +} + +var mappingGroupExtSyncedFromAppTypeEnumLowerCase = map[string]GroupExtSyncedFromAppTypeEnum{ + "app": GroupExtSyncedFromAppTypeApp, +} + +// GetGroupExtSyncedFromAppTypeEnumValues Enumerates the set of values for GroupExtSyncedFromAppTypeEnum +func GetGroupExtSyncedFromAppTypeEnumValues() []GroupExtSyncedFromAppTypeEnum { + values := make([]GroupExtSyncedFromAppTypeEnum, 0) + for _, v := range mappingGroupExtSyncedFromAppTypeEnum { + values = append(values, v) + } + return values +} + +// GetGroupExtSyncedFromAppTypeEnumStringValues Enumerates the set of values in String for GroupExtSyncedFromAppTypeEnum +func GetGroupExtSyncedFromAppTypeEnumStringValues() []string { + return []string{ + "App", + } +} + +// GetMappingGroupExtSyncedFromAppTypeEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingGroupExtSyncedFromAppTypeEnum(val string) (GroupExtSyncedFromAppTypeEnum, bool) { + enum, ok := mappingGroupExtSyncedFromAppTypeEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/group_members.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/group_members.go new file mode 100644 index 00000000000..554439c4336 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/group_members.go @@ -0,0 +1,176 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// GroupMembers Group members - when requesting members attribute, a max of 10,000 members will be returned in a single request. It is recommended to use startIndex and count to return members in pages instead of in a single response, eg : #attributes=members[startIndex=1%26count=10] +type GroupMembers struct { + + // ID of the member of this Group + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: always + // - type: string + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` + + // Indicates the type of resource--for example, User or Group + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - idcsDefaultValue: User + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Type GroupMembersTypeEnum `mandatory:"true" json:"type"` + + // The DateTime the member was added to the Group. + // **Added In:** 2012271618 + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readOnly + // - returned: default + // - type: dateTime + // - uniqueness: none + DateAdded *string `mandatory:"false" json:"dateAdded"` + + // OCID of the member of this Group + // **Added In:** 2012271618 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: always + // - type: string + // - uniqueness: none + Ocid *string `mandatory:"false" json:"ocid"` + + // Membership Ocid + // **Added In:** 2102181953 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + MembershipOcid *string `mandatory:"false" json:"membershipOcid"` + + // The URI that corresponds to the member Resource of this Group + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` + + // Member display name + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Display *string `mandatory:"false" json:"display"` + + // Member name + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Name *string `mandatory:"false" json:"name"` +} + +func (m GroupMembers) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m GroupMembers) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingGroupMembersTypeEnum(string(m.Type)); !ok && m.Type != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Type: %s. Supported values are: %s.", m.Type, strings.Join(GetGroupMembersTypeEnumStringValues(), ","))) + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// GroupMembersTypeEnum Enum with underlying type: string +type GroupMembersTypeEnum string + +// Set of constants representing the allowable values for GroupMembersTypeEnum +const ( + GroupMembersTypeUser GroupMembersTypeEnum = "User" +) + +var mappingGroupMembersTypeEnum = map[string]GroupMembersTypeEnum{ + "User": GroupMembersTypeUser, +} + +var mappingGroupMembersTypeEnumLowerCase = map[string]GroupMembersTypeEnum{ + "user": GroupMembersTypeUser, +} + +// GetGroupMembersTypeEnumValues Enumerates the set of values for GroupMembersTypeEnum +func GetGroupMembersTypeEnumValues() []GroupMembersTypeEnum { + values := make([]GroupMembersTypeEnum, 0) + for _, v := range mappingGroupMembersTypeEnum { + values = append(values, v) + } + return values +} + +// GetGroupMembersTypeEnumStringValues Enumerates the set of values in String for GroupMembersTypeEnum +func GetGroupMembersTypeEnumStringValues() []string { + return []string{ + "User", + } +} + +// GetMappingGroupMembersTypeEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingGroupMembersTypeEnum(val string) (GroupMembersTypeEnum, bool) { + enum, ok := mappingGroupMembersTypeEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/group_search_request.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/group_search_request.go new file mode 100644 index 00000000000..9a36c72df24 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/group_search_request.go @@ -0,0 +1,70 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// GroupSearchRequest Clients MAY execute queries without passing parameters on the URL by using the HTTP POST verb combined with the **.search** path extension. The inclusion of **.search** on the end of a valid SCIM endpoint SHALL be used to indicate the HTTP POST verb is intended to be a query operation. To create a new query result set, a SCIM client sends an HTTP POST request to the desired SCIM resource endpoint (ending in **.search**). The body of the POST request MAY include any of the parameters. +type GroupSearchRequest struct { + + // The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. Query requests MUST be identified using the following URI: "urn:ietf:params:scim:api:messages:2.0:SearchRequest" REQUIRED. + Schemas []string `mandatory:"true" json:"schemas"` + + // A multi-valued list of strings indicating the names of resource attributes to return in the response overriding the set of attributes that would be returned by default. Attribute names MUST be in standard attribute notation (Section 3.10 (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.10)) form. See (additional retrieval query parameters (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.9)). OPTIONAL. + Attributes []string `mandatory:"false" json:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If "attributes" query parameter is also available, union of the two is fetched. Valid values : all, always, never, request, default. Values are case-insensitive. OPTIONAL. + AttributeSets []AttributeSetsEnum `mandatory:"false" json:"attributeSets,omitempty"` + + // The filter string that is used to request a subset of resources. The filter string MUST be a valid filter expression. See Section 3.4.2.2 (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.2). OPTIONAL. + Filter *string `mandatory:"false" json:"filter"` + + // A string that indicates the attribute whose value SHALL be used to order the returned responses. The sortBy attribute MUST be in standard attribute notation (Section 3.10 (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.10)) form. See Sorting section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.3). OPTIONAL. + SortBy *string `mandatory:"false" json:"sortBy"` + + // A string that indicates the order in which the sortBy parameter is applied. Allowed values are "ascending" and "descending". See (Sorting Section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.3)). OPTIONAL. + SortOrder SortOrderEnum `mandatory:"false" json:"sortOrder,omitempty"` + + // An integer that indicates the 1-based index of the first query result. See Pagination Section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.4). OPTIONAL. + StartIndex *int `mandatory:"false" json:"startIndex"` + + // An integer that indicates the desired maximum number of query results per page. 1000 is the largest value that you can use. See the Pagination section of the System for Cross-Domain Identity Management Protocol specification for more information. (Section 3.4.2.4 (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.4)). OPTIONAL. + Count *int `mandatory:"false" json:"count"` +} + +func (m GroupSearchRequest) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m GroupSearchRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + for _, val := range m.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if _, ok := GetMappingSortOrderEnum(string(m.SortOrder)); !ok && m.SortOrder != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for SortOrder: %s. Supported values are: %s.", m.SortOrder, strings.Join(GetSortOrderEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/groups.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/groups.go new file mode 100644 index 00000000000..a6c35f32baf --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/groups.go @@ -0,0 +1,52 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// Groups The SCIM protocol defines a standard set of query parameters that can be used to filter, sort, and paginate to return zero or more resources in a query response. Queries MAY be made against a single resource or a resource type endpoint (e.g., /Users), or the service provider Base URI. +type Groups struct { + + // The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. REQUIRED. + Schemas []string `mandatory:"true" json:"schemas"` + + // The total number of results returned by the list or query operation. The value may be larger than the number of resources returned such as when returning a single page of results where multiple pages are available. REQUIRED. + TotalResults *int `mandatory:"true" json:"totalResults"` + + // A multi-valued list of complex objects containing the requested resources. This MAY be a subset of the full set of resources if pagination is requested. REQUIRED if "totalResults" is non-zero. + Resources []Group `mandatory:"true" json:"Resources"` + + // The 1-based index of the first result in the current set of list results. REQUIRED when partial results returned due to pagination. + StartIndex *int `mandatory:"true" json:"startIndex"` + + // The number of resources returned in a list response page. REQUIRED when partial results returned due to pagination. + ItemsPerPage *int `mandatory:"true" json:"itemsPerPage"` +} + +func (m Groups) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m Groups) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/idcs_created_by.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/idcs_created_by.go new file mode 100644 index 00000000000..72701866501 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/idcs_created_by.go @@ -0,0 +1,148 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// IdcsCreatedBy The User or App who created the Resource +// **SCIM++ Properties:** +// - idcsSearchable: true +// - multiValued: false +// - mutability: readOnly +// - required: true +// - returned: default +// - type: complex +type IdcsCreatedBy struct { + + // The ID of the SCIM resource that represents the User or App who created this Resource + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` + + // The URI of the SCIM resource that represents the User or App who created this Resource + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` + + // The type of resource, User or App, that created this Resource + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Type IdcsCreatedByTypeEnum `mandatory:"false" json:"type,omitempty"` + + // The displayName of the User or App who created this Resource + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Display *string `mandatory:"false" json:"display"` + + // The OCID of the SCIM resource that represents the User or App who created this Resource + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - returned: default + // - type: string + // - uniqueness: none + Ocid *string `mandatory:"false" json:"ocid"` +} + +func (m IdcsCreatedBy) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m IdcsCreatedBy) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if _, ok := GetMappingIdcsCreatedByTypeEnum(string(m.Type)); !ok && m.Type != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Type: %s. Supported values are: %s.", m.Type, strings.Join(GetIdcsCreatedByTypeEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// IdcsCreatedByTypeEnum Enum with underlying type: string +type IdcsCreatedByTypeEnum string + +// Set of constants representing the allowable values for IdcsCreatedByTypeEnum +const ( + IdcsCreatedByTypeUser IdcsCreatedByTypeEnum = "User" + IdcsCreatedByTypeApp IdcsCreatedByTypeEnum = "App" +) + +var mappingIdcsCreatedByTypeEnum = map[string]IdcsCreatedByTypeEnum{ + "User": IdcsCreatedByTypeUser, + "App": IdcsCreatedByTypeApp, +} + +var mappingIdcsCreatedByTypeEnumLowerCase = map[string]IdcsCreatedByTypeEnum{ + "user": IdcsCreatedByTypeUser, + "app": IdcsCreatedByTypeApp, +} + +// GetIdcsCreatedByTypeEnumValues Enumerates the set of values for IdcsCreatedByTypeEnum +func GetIdcsCreatedByTypeEnumValues() []IdcsCreatedByTypeEnum { + values := make([]IdcsCreatedByTypeEnum, 0) + for _, v := range mappingIdcsCreatedByTypeEnum { + values = append(values, v) + } + return values +} + +// GetIdcsCreatedByTypeEnumStringValues Enumerates the set of values in String for IdcsCreatedByTypeEnum +func GetIdcsCreatedByTypeEnumStringValues() []string { + return []string{ + "User", + "App", + } +} + +// GetMappingIdcsCreatedByTypeEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingIdcsCreatedByTypeEnum(val string) (IdcsCreatedByTypeEnum, bool) { + enum, ok := mappingIdcsCreatedByTypeEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/idcs_last_modified_by.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/idcs_last_modified_by.go new file mode 100644 index 00000000000..4e36a04e1db --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/idcs_last_modified_by.go @@ -0,0 +1,148 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// IdcsLastModifiedBy The User or App who modified the Resource +// **SCIM++ Properties:** +// - idcsSearchable: true +// - multiValued: false +// - mutability: readOnly +// - required: false +// - returned: default +// - type: complex +type IdcsLastModifiedBy struct { + + // The ID of the SCIM resource that represents the User or App who modified this Resource + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` + + // The URI of the SCIM resource that represents the User or App who modified this Resource + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` + + // The type of resource, User or App, that modified this Resource + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Type IdcsLastModifiedByTypeEnum `mandatory:"false" json:"type,omitempty"` + + // The displayName of the User or App who modified this Resource + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Display *string `mandatory:"false" json:"display"` + + // The OCID of the SCIM resource that represents the User or App who modified this Resource + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - returned: default + // - type: string + // - uniqueness: none + Ocid *string `mandatory:"false" json:"ocid"` +} + +func (m IdcsLastModifiedBy) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m IdcsLastModifiedBy) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if _, ok := GetMappingIdcsLastModifiedByTypeEnum(string(m.Type)); !ok && m.Type != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Type: %s. Supported values are: %s.", m.Type, strings.Join(GetIdcsLastModifiedByTypeEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// IdcsLastModifiedByTypeEnum Enum with underlying type: string +type IdcsLastModifiedByTypeEnum string + +// Set of constants representing the allowable values for IdcsLastModifiedByTypeEnum +const ( + IdcsLastModifiedByTypeUser IdcsLastModifiedByTypeEnum = "User" + IdcsLastModifiedByTypeApp IdcsLastModifiedByTypeEnum = "App" +) + +var mappingIdcsLastModifiedByTypeEnum = map[string]IdcsLastModifiedByTypeEnum{ + "User": IdcsLastModifiedByTypeUser, + "App": IdcsLastModifiedByTypeApp, +} + +var mappingIdcsLastModifiedByTypeEnumLowerCase = map[string]IdcsLastModifiedByTypeEnum{ + "user": IdcsLastModifiedByTypeUser, + "app": IdcsLastModifiedByTypeApp, +} + +// GetIdcsLastModifiedByTypeEnumValues Enumerates the set of values for IdcsLastModifiedByTypeEnum +func GetIdcsLastModifiedByTypeEnumValues() []IdcsLastModifiedByTypeEnum { + values := make([]IdcsLastModifiedByTypeEnum, 0) + for _, v := range mappingIdcsLastModifiedByTypeEnum { + values = append(values, v) + } + return values +} + +// GetIdcsLastModifiedByTypeEnumStringValues Enumerates the set of values in String for IdcsLastModifiedByTypeEnum +func GetIdcsLastModifiedByTypeEnumStringValues() []string { + return []string{ + "User", + "App", + } +} + +// GetMappingIdcsLastModifiedByTypeEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingIdcsLastModifiedByTypeEnum(val string) (IdcsLastModifiedByTypeEnum, bool) { + enum, ok := mappingIdcsLastModifiedByTypeEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/idcs_prevented_operations.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/idcs_prevented_operations.go new file mode 100644 index 00000000000..1c66c654aa9 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/idcs_prevented_operations.go @@ -0,0 +1,61 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "strings" +) + +// IdcsPreventedOperationsEnum Enum with underlying type: string +type IdcsPreventedOperationsEnum string + +// Set of constants representing the allowable values for IdcsPreventedOperationsEnum +const ( + IdcsPreventedOperationsReplace IdcsPreventedOperationsEnum = "replace" + IdcsPreventedOperationsUpdate IdcsPreventedOperationsEnum = "update" + IdcsPreventedOperationsDelete IdcsPreventedOperationsEnum = "delete" +) + +var mappingIdcsPreventedOperationsEnum = map[string]IdcsPreventedOperationsEnum{ + "replace": IdcsPreventedOperationsReplace, + "update": IdcsPreventedOperationsUpdate, + "delete": IdcsPreventedOperationsDelete, +} + +var mappingIdcsPreventedOperationsEnumLowerCase = map[string]IdcsPreventedOperationsEnum{ + "replace": IdcsPreventedOperationsReplace, + "update": IdcsPreventedOperationsUpdate, + "delete": IdcsPreventedOperationsDelete, +} + +// GetIdcsPreventedOperationsEnumValues Enumerates the set of values for IdcsPreventedOperationsEnum +func GetIdcsPreventedOperationsEnumValues() []IdcsPreventedOperationsEnum { + values := make([]IdcsPreventedOperationsEnum, 0) + for _, v := range mappingIdcsPreventedOperationsEnum { + values = append(values, v) + } + return values +} + +// GetIdcsPreventedOperationsEnumStringValues Enumerates the set of values in String for IdcsPreventedOperationsEnum +func GetIdcsPreventedOperationsEnumStringValues() []string { + return []string{ + "replace", + "update", + "delete", + } +} + +// GetMappingIdcsPreventedOperationsEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingIdcsPreventedOperationsEnum(val string) (IdcsPreventedOperationsEnum, bool) { + enum, ok := mappingIdcsPreventedOperationsEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/identity_provider.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/identity_provider.go new file mode 100644 index 00000000000..891485d7384 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/identity_provider.go @@ -0,0 +1,1021 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// IdentityProvider Federation trusted partner Identity Provider +type IdentityProvider struct { + + // REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: true + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Schemas []string `mandatory:"true" json:"schemas"` + + // Unique name of the trusted Identity Provider. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: always + // - type: string + // - uniqueness: server + PartnerName *string `mandatory:"true" json:"partnerName"` + + // Set to true to indicate Partner enabled. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: boolean + // - uniqueness: none + Enabled *bool `mandatory:"true" json:"enabled"` + + // Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: always + // - type: string + // - uniqueness: global + Id *string `mandatory:"false" json:"id"` + + // Unique OCI identifier for the SCIM Resource. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: default + // - type: string + // - uniqueness: global + Ocid *string `mandatory:"false" json:"ocid"` + + Meta *Meta `mandatory:"false" json:"meta"` + + IdcsCreatedBy *IdcsCreatedBy `mandatory:"false" json:"idcsCreatedBy"` + + IdcsLastModifiedBy *IdcsLastModifiedBy `mandatory:"false" json:"idcsLastModifiedBy"` + + // Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsPreventedOperations []IdcsPreventedOperationsEnum `mandatory:"false" json:"idcsPreventedOperations,omitempty"` + + // A list of tags on this resource. + // **SCIM++ Properties:** + // - idcsCompositeKey: [key, value] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + Tags []Tags `mandatory:"false" json:"tags"` + + // A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + DeleteInProgress *bool `mandatory:"false" json:"deleteInProgress"` + + // The release number when the resource was upgraded. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsLastUpgradedInRelease *string `mandatory:"false" json:"idcsLastUpgradedInRelease"` + + // OCI Domain Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + DomainOcid *string `mandatory:"false" json:"domainOcid"` + + // OCI Compartment Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + CompartmentOcid *string `mandatory:"false" json:"compartmentOcid"` + + // OCI Tenant Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + TenancyOcid *string `mandatory:"false" json:"tenancyOcid"` + + // An identifier for the Resource as defined by the Service Consumer. The externalId may simplify identification of the Resource between Service Consumer and Service Provider by allowing the Consumer to refer to the Resource with its own identifier, obviating the need to store a local mapping between the local identifier of the Resource and the identifier used by the Service Provider. Each Resource MAY include a non-empty externalId value. The value of the externalId attribute is always issued by the Service Consumer and can never be specified by the Service Provider. The Service Provider MUST always interpret the externalId as scoped to the Service Consumer's tenant. + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + ExternalId *string `mandatory:"false" json:"externalId"` + + // Description + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Description *string `mandatory:"false" json:"description"` + + // Metadata + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Metadata *string `mandatory:"false" json:"metadata"` + + // Provider ID + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: server + PartnerProviderId *string `mandatory:"false" json:"partnerProviderId"` + + // The alternate Provider ID to be used as the Oracle Identity Cloud Service providerID (instead of the one in SamlSettings) when interacting with this IdP. + // **Added In:** 19.2.1 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + TenantProviderId *string `mandatory:"false" json:"tenantProviderId"` + + // Succinct ID + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: server + SuccinctId *string `mandatory:"false" json:"succinctId"` + + // Identity Provider SSO URL + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + IdpSsoUrl *string `mandatory:"false" json:"idpSsoUrl"` + + // Logout request URL + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + LogoutRequestUrl *string `mandatory:"false" json:"logoutRequestUrl"` + + // Logout response URL + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + LogoutResponseUrl *string `mandatory:"false" json:"logoutResponseUrl"` + + // Signing certificate + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + SigningCertificate *string `mandatory:"false" json:"signingCertificate"` + + // Encryption certificate + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + EncryptionCertificate *string `mandatory:"false" json:"encryptionCertificate"` + + // Default authentication request name ID format. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + NameIdFormat *string `mandatory:"false" json:"nameIdFormat"` + + // Set to true to include the signing certificate in the signature. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + IncludeSigningCertInSignature *bool `mandatory:"false" json:"includeSigningCertInSignature"` + + // HTTP binding to use for authentication requests. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + AuthnRequestBinding IdentityProviderAuthnRequestBindingEnum `mandatory:"false" json:"authnRequestBinding,omitempty"` + + // HTTP binding to use for logout. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + LogoutBinding IdentityProviderLogoutBindingEnum `mandatory:"false" json:"logoutBinding,omitempty"` + + // Set to true to enable logout. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + LogoutEnabled *bool `mandatory:"false" json:"logoutEnabled"` + + // Signature hash algorithm. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + SignatureHashAlgorithm IdentityProviderSignatureHashAlgorithmEnum `mandatory:"false" json:"signatureHashAlgorithm,omitempty"` + + // Identity Provider Icon URL. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + IconUrl *string `mandatory:"false" json:"iconUrl"` + + // Set to true to indicate whether to show IdP in login page or not. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + ShownOnLoginPage *bool `mandatory:"false" json:"shownOnLoginPage"` + + // Set to true to indicate JIT User Provisioning is enabled + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + JitUserProvEnabled *bool `mandatory:"false" json:"jitUserProvEnabled"` + + // Set to true to indicate JIT User Provisioning Groups should be assigned based on assertion attribute + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + JitUserProvGroupAssertionAttributeEnabled *bool `mandatory:"false" json:"jitUserProvGroupAssertionAttributeEnabled"` + + // Set to true to indicate JIT User Provisioning Groups should be assigned from a static list + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + JitUserProvGroupStaticListEnabled *bool `mandatory:"false" json:"jitUserProvGroupStaticListEnabled"` + + // Set to true to indicate JIT User Creation is enabled + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + JitUserProvCreateUserEnabled *bool `mandatory:"false" json:"jitUserProvCreateUserEnabled"` + + // Set to true to indicate JIT User Creation is enabled + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + JitUserProvAttributeUpdateEnabled *bool `mandatory:"false" json:"jitUserProvAttributeUpdateEnabled"` + + // The default value is 'Overwrite', which tells Just-In-Time user-provisioning to replace any current group-assignments for a User with those assigned by assertions and/or those assigned statically. Specify 'Merge' if you want Just-In-Time user-provisioning to combine its group-assignments with those the user already has. + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + JitUserProvGroupAssignmentMethod IdentityProviderJitUserProvGroupAssignmentMethodEnum `mandatory:"false" json:"jitUserProvGroupAssignmentMethod,omitempty"` + + // Property to indicate the mode of group mapping + // **Added In:** 2205120021 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + JitUserProvGroupMappingMode IdentityProviderJitUserProvGroupMappingModeEnum `mandatory:"false" json:"jitUserProvGroupMappingMode,omitempty"` + + // The list of mappings between the Identity Domain Group and the IDP group. + // **Added In:** 2205120021 + // **SCIM++ Properties:** + // - idcsCompositeKey: [idpGroup] + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: default + // - type: complex + // - uniqueness: none + JitUserProvGroupMappings []IdentityProviderJitUserProvGroupMappings `mandatory:"false" json:"jitUserProvGroupMappings"` + + // Name of the assertion attribute containing the users groups + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + JitUserProvGroupSAMLAttributeName *string `mandatory:"false" json:"jitUserProvGroupSAMLAttributeName"` + + // The serviceInstanceIdentifier of the App that hosts this IdP. This value will match the opcServiceInstanceGUID of any service-instance that the IdP represents. + // **Added In:** 18.2.6 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: never + // - type: string + // - uniqueness: server + ServiceInstanceIdentifier *string `mandatory:"false" json:"serviceInstanceIdentifier"` + + // User mapping method. + // **Deprecated Since: 20.1.3** + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + // - idcsValuePersistedInOtherAttribute: true + UserMappingMethod IdentityProviderUserMappingMethodEnum `mandatory:"false" json:"userMappingMethod,omitempty"` + + // This property specifies the userstore attribute value that must match the incoming assertion attribute value or the incoming nameid attribute value in order to identify the user during SSO.
You can construct the userMappingStoreAttribute value by specifying attributes from the Oracle Identity Cloud Service Core Users schema. For examples of how to construct the userMappingStoreAttribute value, see the Example of a Request Body section of the Examples tab for the POST and PUT methods of the /IdentityProviders endpoint. + // **Deprecated Since: 20.1.3** + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + // - idcsValuePersistedInOtherAttribute: true + UserMappingStoreAttribute *string `mandatory:"false" json:"userMappingStoreAttribute"` + + // Assertion attribute name. + // **Deprecated Since: 20.1.3** + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + // - idcsValuePersistedInOtherAttribute: true + AssertionAttribute *string `mandatory:"false" json:"assertionAttribute"` + + // Identity Provider Type + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: always + // - type: string + // - uniqueness: none + Type IdentityProviderTypeEnum `mandatory:"false" json:"type,omitempty"` + + // This SP requires requests SAML IdP to enforce re-authentication. + // **Added In:** 2102181953 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + RequireForceAuthn *bool `mandatory:"false" json:"requireForceAuthn"` + + // SAML SP must accept encrypted assertion only. + // **Added In:** 2102181953 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + RequiresEncryptedAssertion *bool `mandatory:"false" json:"requiresEncryptedAssertion"` + + // SAML SP HoK Enabled. + // **Added In:** 2102181953 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + SamlHoKRequired *bool `mandatory:"false" json:"samlHoKRequired"` + + // SAML SP authentication type. + // **Added In:** 2102181953 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + RequestedAuthenticationContext []string `mandatory:"false" json:"requestedAuthenticationContext"` + + // Set to true to indicate ignoring absence of group while provisioning + // **Added In:** 2111112015 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsAddedSinceVersion: 30 + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + JitUserProvIgnoreErrorOnAbsentGroups *bool `mandatory:"false" json:"jitUserProvIgnoreErrorOnAbsentGroups"` + + JitUserProvAttributes *IdentityProviderJitUserProvAttributes `mandatory:"false" json:"jitUserProvAttributes"` + + // Refers to every group of which a JIT-provisioned User should be a member. Just-in-Time user-provisioning applies this static list when jitUserProvGroupStaticListEnabled:true. + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - idcsCompositeKey: [value] + // - idcsSearchable: false + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: default + // - type: complex + // - uniqueness: none + JitUserProvAssignedGroups []IdentityProviderJitUserProvAssignedGroups `mandatory:"false" json:"jitUserProvAssignedGroups"` + + CorrelationPolicy *IdentityProviderCorrelationPolicy `mandatory:"false" json:"correlationPolicy"` + + UrnIetfParamsScimSchemasOracleIdcsExtensionSocialIdentityProvider *ExtensionSocialIdentityProvider `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:social:IdentityProvider"` + + UrnIetfParamsScimSchemasOracleIdcsExtensionX509IdentityProvider *ExtensionX509IdentityProvider `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:x509:IdentityProvider"` +} + +func (m IdentityProvider) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m IdentityProvider) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + for _, val := range m.IdcsPreventedOperations { + if _, ok := GetMappingIdcsPreventedOperationsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for IdcsPreventedOperations: %s. Supported values are: %s.", val, strings.Join(GetIdcsPreventedOperationsEnumStringValues(), ","))) + } + } + + if _, ok := GetMappingIdentityProviderAuthnRequestBindingEnum(string(m.AuthnRequestBinding)); !ok && m.AuthnRequestBinding != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AuthnRequestBinding: %s. Supported values are: %s.", m.AuthnRequestBinding, strings.Join(GetIdentityProviderAuthnRequestBindingEnumStringValues(), ","))) + } + if _, ok := GetMappingIdentityProviderLogoutBindingEnum(string(m.LogoutBinding)); !ok && m.LogoutBinding != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for LogoutBinding: %s. Supported values are: %s.", m.LogoutBinding, strings.Join(GetIdentityProviderLogoutBindingEnumStringValues(), ","))) + } + if _, ok := GetMappingIdentityProviderSignatureHashAlgorithmEnum(string(m.SignatureHashAlgorithm)); !ok && m.SignatureHashAlgorithm != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for SignatureHashAlgorithm: %s. Supported values are: %s.", m.SignatureHashAlgorithm, strings.Join(GetIdentityProviderSignatureHashAlgorithmEnumStringValues(), ","))) + } + if _, ok := GetMappingIdentityProviderJitUserProvGroupAssignmentMethodEnum(string(m.JitUserProvGroupAssignmentMethod)); !ok && m.JitUserProvGroupAssignmentMethod != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for JitUserProvGroupAssignmentMethod: %s. Supported values are: %s.", m.JitUserProvGroupAssignmentMethod, strings.Join(GetIdentityProviderJitUserProvGroupAssignmentMethodEnumStringValues(), ","))) + } + if _, ok := GetMappingIdentityProviderJitUserProvGroupMappingModeEnum(string(m.JitUserProvGroupMappingMode)); !ok && m.JitUserProvGroupMappingMode != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for JitUserProvGroupMappingMode: %s. Supported values are: %s.", m.JitUserProvGroupMappingMode, strings.Join(GetIdentityProviderJitUserProvGroupMappingModeEnumStringValues(), ","))) + } + if _, ok := GetMappingIdentityProviderUserMappingMethodEnum(string(m.UserMappingMethod)); !ok && m.UserMappingMethod != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for UserMappingMethod: %s. Supported values are: %s.", m.UserMappingMethod, strings.Join(GetIdentityProviderUserMappingMethodEnumStringValues(), ","))) + } + if _, ok := GetMappingIdentityProviderTypeEnum(string(m.Type)); !ok && m.Type != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Type: %s. Supported values are: %s.", m.Type, strings.Join(GetIdentityProviderTypeEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// IdentityProviderAuthnRequestBindingEnum Enum with underlying type: string +type IdentityProviderAuthnRequestBindingEnum string + +// Set of constants representing the allowable values for IdentityProviderAuthnRequestBindingEnum +const ( + IdentityProviderAuthnRequestBindingRedirect IdentityProviderAuthnRequestBindingEnum = "Redirect" + IdentityProviderAuthnRequestBindingPost IdentityProviderAuthnRequestBindingEnum = "Post" +) + +var mappingIdentityProviderAuthnRequestBindingEnum = map[string]IdentityProviderAuthnRequestBindingEnum{ + "Redirect": IdentityProviderAuthnRequestBindingRedirect, + "Post": IdentityProviderAuthnRequestBindingPost, +} + +var mappingIdentityProviderAuthnRequestBindingEnumLowerCase = map[string]IdentityProviderAuthnRequestBindingEnum{ + "redirect": IdentityProviderAuthnRequestBindingRedirect, + "post": IdentityProviderAuthnRequestBindingPost, +} + +// GetIdentityProviderAuthnRequestBindingEnumValues Enumerates the set of values for IdentityProviderAuthnRequestBindingEnum +func GetIdentityProviderAuthnRequestBindingEnumValues() []IdentityProviderAuthnRequestBindingEnum { + values := make([]IdentityProviderAuthnRequestBindingEnum, 0) + for _, v := range mappingIdentityProviderAuthnRequestBindingEnum { + values = append(values, v) + } + return values +} + +// GetIdentityProviderAuthnRequestBindingEnumStringValues Enumerates the set of values in String for IdentityProviderAuthnRequestBindingEnum +func GetIdentityProviderAuthnRequestBindingEnumStringValues() []string { + return []string{ + "Redirect", + "Post", + } +} + +// GetMappingIdentityProviderAuthnRequestBindingEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingIdentityProviderAuthnRequestBindingEnum(val string) (IdentityProviderAuthnRequestBindingEnum, bool) { + enum, ok := mappingIdentityProviderAuthnRequestBindingEnumLowerCase[strings.ToLower(val)] + return enum, ok +} + +// IdentityProviderLogoutBindingEnum Enum with underlying type: string +type IdentityProviderLogoutBindingEnum string + +// Set of constants representing the allowable values for IdentityProviderLogoutBindingEnum +const ( + IdentityProviderLogoutBindingRedirect IdentityProviderLogoutBindingEnum = "Redirect" + IdentityProviderLogoutBindingPost IdentityProviderLogoutBindingEnum = "Post" +) + +var mappingIdentityProviderLogoutBindingEnum = map[string]IdentityProviderLogoutBindingEnum{ + "Redirect": IdentityProviderLogoutBindingRedirect, + "Post": IdentityProviderLogoutBindingPost, +} + +var mappingIdentityProviderLogoutBindingEnumLowerCase = map[string]IdentityProviderLogoutBindingEnum{ + "redirect": IdentityProviderLogoutBindingRedirect, + "post": IdentityProviderLogoutBindingPost, +} + +// GetIdentityProviderLogoutBindingEnumValues Enumerates the set of values for IdentityProviderLogoutBindingEnum +func GetIdentityProviderLogoutBindingEnumValues() []IdentityProviderLogoutBindingEnum { + values := make([]IdentityProviderLogoutBindingEnum, 0) + for _, v := range mappingIdentityProviderLogoutBindingEnum { + values = append(values, v) + } + return values +} + +// GetIdentityProviderLogoutBindingEnumStringValues Enumerates the set of values in String for IdentityProviderLogoutBindingEnum +func GetIdentityProviderLogoutBindingEnumStringValues() []string { + return []string{ + "Redirect", + "Post", + } +} + +// GetMappingIdentityProviderLogoutBindingEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingIdentityProviderLogoutBindingEnum(val string) (IdentityProviderLogoutBindingEnum, bool) { + enum, ok := mappingIdentityProviderLogoutBindingEnumLowerCase[strings.ToLower(val)] + return enum, ok +} + +// IdentityProviderSignatureHashAlgorithmEnum Enum with underlying type: string +type IdentityProviderSignatureHashAlgorithmEnum string + +// Set of constants representing the allowable values for IdentityProviderSignatureHashAlgorithmEnum +const ( + IdentityProviderSignatureHashAlgorithm1 IdentityProviderSignatureHashAlgorithmEnum = "SHA-1" + IdentityProviderSignatureHashAlgorithm256 IdentityProviderSignatureHashAlgorithmEnum = "SHA-256" +) + +var mappingIdentityProviderSignatureHashAlgorithmEnum = map[string]IdentityProviderSignatureHashAlgorithmEnum{ + "SHA-1": IdentityProviderSignatureHashAlgorithm1, + "SHA-256": IdentityProviderSignatureHashAlgorithm256, +} + +var mappingIdentityProviderSignatureHashAlgorithmEnumLowerCase = map[string]IdentityProviderSignatureHashAlgorithmEnum{ + "sha-1": IdentityProviderSignatureHashAlgorithm1, + "sha-256": IdentityProviderSignatureHashAlgorithm256, +} + +// GetIdentityProviderSignatureHashAlgorithmEnumValues Enumerates the set of values for IdentityProviderSignatureHashAlgorithmEnum +func GetIdentityProviderSignatureHashAlgorithmEnumValues() []IdentityProviderSignatureHashAlgorithmEnum { + values := make([]IdentityProviderSignatureHashAlgorithmEnum, 0) + for _, v := range mappingIdentityProviderSignatureHashAlgorithmEnum { + values = append(values, v) + } + return values +} + +// GetIdentityProviderSignatureHashAlgorithmEnumStringValues Enumerates the set of values in String for IdentityProviderSignatureHashAlgorithmEnum +func GetIdentityProviderSignatureHashAlgorithmEnumStringValues() []string { + return []string{ + "SHA-1", + "SHA-256", + } +} + +// GetMappingIdentityProviderSignatureHashAlgorithmEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingIdentityProviderSignatureHashAlgorithmEnum(val string) (IdentityProviderSignatureHashAlgorithmEnum, bool) { + enum, ok := mappingIdentityProviderSignatureHashAlgorithmEnumLowerCase[strings.ToLower(val)] + return enum, ok +} + +// IdentityProviderJitUserProvGroupAssignmentMethodEnum Enum with underlying type: string +type IdentityProviderJitUserProvGroupAssignmentMethodEnum string + +// Set of constants representing the allowable values for IdentityProviderJitUserProvGroupAssignmentMethodEnum +const ( + IdentityProviderJitUserProvGroupAssignmentMethodOverwrite IdentityProviderJitUserProvGroupAssignmentMethodEnum = "Overwrite" + IdentityProviderJitUserProvGroupAssignmentMethodMerge IdentityProviderJitUserProvGroupAssignmentMethodEnum = "Merge" +) + +var mappingIdentityProviderJitUserProvGroupAssignmentMethodEnum = map[string]IdentityProviderJitUserProvGroupAssignmentMethodEnum{ + "Overwrite": IdentityProviderJitUserProvGroupAssignmentMethodOverwrite, + "Merge": IdentityProviderJitUserProvGroupAssignmentMethodMerge, +} + +var mappingIdentityProviderJitUserProvGroupAssignmentMethodEnumLowerCase = map[string]IdentityProviderJitUserProvGroupAssignmentMethodEnum{ + "overwrite": IdentityProviderJitUserProvGroupAssignmentMethodOverwrite, + "merge": IdentityProviderJitUserProvGroupAssignmentMethodMerge, +} + +// GetIdentityProviderJitUserProvGroupAssignmentMethodEnumValues Enumerates the set of values for IdentityProviderJitUserProvGroupAssignmentMethodEnum +func GetIdentityProviderJitUserProvGroupAssignmentMethodEnumValues() []IdentityProviderJitUserProvGroupAssignmentMethodEnum { + values := make([]IdentityProviderJitUserProvGroupAssignmentMethodEnum, 0) + for _, v := range mappingIdentityProviderJitUserProvGroupAssignmentMethodEnum { + values = append(values, v) + } + return values +} + +// GetIdentityProviderJitUserProvGroupAssignmentMethodEnumStringValues Enumerates the set of values in String for IdentityProviderJitUserProvGroupAssignmentMethodEnum +func GetIdentityProviderJitUserProvGroupAssignmentMethodEnumStringValues() []string { + return []string{ + "Overwrite", + "Merge", + } +} + +// GetMappingIdentityProviderJitUserProvGroupAssignmentMethodEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingIdentityProviderJitUserProvGroupAssignmentMethodEnum(val string) (IdentityProviderJitUserProvGroupAssignmentMethodEnum, bool) { + enum, ok := mappingIdentityProviderJitUserProvGroupAssignmentMethodEnumLowerCase[strings.ToLower(val)] + return enum, ok +} + +// IdentityProviderJitUserProvGroupMappingModeEnum Enum with underlying type: string +type IdentityProviderJitUserProvGroupMappingModeEnum string + +// Set of constants representing the allowable values for IdentityProviderJitUserProvGroupMappingModeEnum +const ( + IdentityProviderJitUserProvGroupMappingModeImplicit IdentityProviderJitUserProvGroupMappingModeEnum = "implicit" + IdentityProviderJitUserProvGroupMappingModeExplicit IdentityProviderJitUserProvGroupMappingModeEnum = "explicit" +) + +var mappingIdentityProviderJitUserProvGroupMappingModeEnum = map[string]IdentityProviderJitUserProvGroupMappingModeEnum{ + "implicit": IdentityProviderJitUserProvGroupMappingModeImplicit, + "explicit": IdentityProviderJitUserProvGroupMappingModeExplicit, +} + +var mappingIdentityProviderJitUserProvGroupMappingModeEnumLowerCase = map[string]IdentityProviderJitUserProvGroupMappingModeEnum{ + "implicit": IdentityProviderJitUserProvGroupMappingModeImplicit, + "explicit": IdentityProviderJitUserProvGroupMappingModeExplicit, +} + +// GetIdentityProviderJitUserProvGroupMappingModeEnumValues Enumerates the set of values for IdentityProviderJitUserProvGroupMappingModeEnum +func GetIdentityProviderJitUserProvGroupMappingModeEnumValues() []IdentityProviderJitUserProvGroupMappingModeEnum { + values := make([]IdentityProviderJitUserProvGroupMappingModeEnum, 0) + for _, v := range mappingIdentityProviderJitUserProvGroupMappingModeEnum { + values = append(values, v) + } + return values +} + +// GetIdentityProviderJitUserProvGroupMappingModeEnumStringValues Enumerates the set of values in String for IdentityProviderJitUserProvGroupMappingModeEnum +func GetIdentityProviderJitUserProvGroupMappingModeEnumStringValues() []string { + return []string{ + "implicit", + "explicit", + } +} + +// GetMappingIdentityProviderJitUserProvGroupMappingModeEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingIdentityProviderJitUserProvGroupMappingModeEnum(val string) (IdentityProviderJitUserProvGroupMappingModeEnum, bool) { + enum, ok := mappingIdentityProviderJitUserProvGroupMappingModeEnumLowerCase[strings.ToLower(val)] + return enum, ok +} + +// IdentityProviderUserMappingMethodEnum Enum with underlying type: string +type IdentityProviderUserMappingMethodEnum string + +// Set of constants representing the allowable values for IdentityProviderUserMappingMethodEnum +const ( + IdentityProviderUserMappingMethodNameidtouserattribute IdentityProviderUserMappingMethodEnum = "NameIDToUserAttribute" + IdentityProviderUserMappingMethodAssertionattributetouserattribute IdentityProviderUserMappingMethodEnum = "AssertionAttributeToUserAttribute" + IdentityProviderUserMappingMethodCorrelationpolicyrule IdentityProviderUserMappingMethodEnum = "CorrelationPolicyRule" +) + +var mappingIdentityProviderUserMappingMethodEnum = map[string]IdentityProviderUserMappingMethodEnum{ + "NameIDToUserAttribute": IdentityProviderUserMappingMethodNameidtouserattribute, + "AssertionAttributeToUserAttribute": IdentityProviderUserMappingMethodAssertionattributetouserattribute, + "CorrelationPolicyRule": IdentityProviderUserMappingMethodCorrelationpolicyrule, +} + +var mappingIdentityProviderUserMappingMethodEnumLowerCase = map[string]IdentityProviderUserMappingMethodEnum{ + "nameidtouserattribute": IdentityProviderUserMappingMethodNameidtouserattribute, + "assertionattributetouserattribute": IdentityProviderUserMappingMethodAssertionattributetouserattribute, + "correlationpolicyrule": IdentityProviderUserMappingMethodCorrelationpolicyrule, +} + +// GetIdentityProviderUserMappingMethodEnumValues Enumerates the set of values for IdentityProviderUserMappingMethodEnum +func GetIdentityProviderUserMappingMethodEnumValues() []IdentityProviderUserMappingMethodEnum { + values := make([]IdentityProviderUserMappingMethodEnum, 0) + for _, v := range mappingIdentityProviderUserMappingMethodEnum { + values = append(values, v) + } + return values +} + +// GetIdentityProviderUserMappingMethodEnumStringValues Enumerates the set of values in String for IdentityProviderUserMappingMethodEnum +func GetIdentityProviderUserMappingMethodEnumStringValues() []string { + return []string{ + "NameIDToUserAttribute", + "AssertionAttributeToUserAttribute", + "CorrelationPolicyRule", + } +} + +// GetMappingIdentityProviderUserMappingMethodEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingIdentityProviderUserMappingMethodEnum(val string) (IdentityProviderUserMappingMethodEnum, bool) { + enum, ok := mappingIdentityProviderUserMappingMethodEnumLowerCase[strings.ToLower(val)] + return enum, ok +} + +// IdentityProviderTypeEnum Enum with underlying type: string +type IdentityProviderTypeEnum string + +// Set of constants representing the allowable values for IdentityProviderTypeEnum +const ( + IdentityProviderTypeSaml IdentityProviderTypeEnum = "SAML" + IdentityProviderTypeSocial IdentityProviderTypeEnum = "SOCIAL" + IdentityProviderTypeIwa IdentityProviderTypeEnum = "IWA" + IdentityProviderTypeX509 IdentityProviderTypeEnum = "X509" + IdentityProviderTypeLocal IdentityProviderTypeEnum = "LOCAL" +) + +var mappingIdentityProviderTypeEnum = map[string]IdentityProviderTypeEnum{ + "SAML": IdentityProviderTypeSaml, + "SOCIAL": IdentityProviderTypeSocial, + "IWA": IdentityProviderTypeIwa, + "X509": IdentityProviderTypeX509, + "LOCAL": IdentityProviderTypeLocal, +} + +var mappingIdentityProviderTypeEnumLowerCase = map[string]IdentityProviderTypeEnum{ + "saml": IdentityProviderTypeSaml, + "social": IdentityProviderTypeSocial, + "iwa": IdentityProviderTypeIwa, + "x509": IdentityProviderTypeX509, + "local": IdentityProviderTypeLocal, +} + +// GetIdentityProviderTypeEnumValues Enumerates the set of values for IdentityProviderTypeEnum +func GetIdentityProviderTypeEnumValues() []IdentityProviderTypeEnum { + values := make([]IdentityProviderTypeEnum, 0) + for _, v := range mappingIdentityProviderTypeEnum { + values = append(values, v) + } + return values +} + +// GetIdentityProviderTypeEnumStringValues Enumerates the set of values in String for IdentityProviderTypeEnum +func GetIdentityProviderTypeEnumStringValues() []string { + return []string{ + "SAML", + "SOCIAL", + "IWA", + "X509", + "LOCAL", + } +} + +// GetMappingIdentityProviderTypeEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingIdentityProviderTypeEnum(val string) (IdentityProviderTypeEnum, bool) { + enum, ok := mappingIdentityProviderTypeEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/identity_provider_correlation_policy.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/identity_provider_correlation_policy.go new file mode 100644 index 00000000000..2149bb78bb9 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/identity_provider_correlation_policy.go @@ -0,0 +1,138 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// IdentityProviderCorrelationPolicy Correlation policy +// **Added In:** 20.1.3 +// **SCIM++ Properties:** +// - caseExact: true +// - idcsSearchable: false +// - multiValued: false +// - mutability: immutable +// - required: false +// - returned: default +// - type: complex +// - uniqueness: none +type IdentityProviderCorrelationPolicy struct { + + // A label that indicates the type that this references. + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - idcsDefaultValue: Policy + // - idcsSearchable: false + // - multiValued: false + // - mutability: immutable + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Type IdentityProviderCorrelationPolicyTypeEnum `mandatory:"true" json:"type"` + + // Policy identifier + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` + + // Policy URI + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` + + // Policy display name + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Display *string `mandatory:"false" json:"display"` +} + +func (m IdentityProviderCorrelationPolicy) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m IdentityProviderCorrelationPolicy) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingIdentityProviderCorrelationPolicyTypeEnum(string(m.Type)); !ok && m.Type != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Type: %s. Supported values are: %s.", m.Type, strings.Join(GetIdentityProviderCorrelationPolicyTypeEnumStringValues(), ","))) + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// IdentityProviderCorrelationPolicyTypeEnum Enum with underlying type: string +type IdentityProviderCorrelationPolicyTypeEnum string + +// Set of constants representing the allowable values for IdentityProviderCorrelationPolicyTypeEnum +const ( + IdentityProviderCorrelationPolicyTypePolicy IdentityProviderCorrelationPolicyTypeEnum = "Policy" +) + +var mappingIdentityProviderCorrelationPolicyTypeEnum = map[string]IdentityProviderCorrelationPolicyTypeEnum{ + "Policy": IdentityProviderCorrelationPolicyTypePolicy, +} + +var mappingIdentityProviderCorrelationPolicyTypeEnumLowerCase = map[string]IdentityProviderCorrelationPolicyTypeEnum{ + "policy": IdentityProviderCorrelationPolicyTypePolicy, +} + +// GetIdentityProviderCorrelationPolicyTypeEnumValues Enumerates the set of values for IdentityProviderCorrelationPolicyTypeEnum +func GetIdentityProviderCorrelationPolicyTypeEnumValues() []IdentityProviderCorrelationPolicyTypeEnum { + values := make([]IdentityProviderCorrelationPolicyTypeEnum, 0) + for _, v := range mappingIdentityProviderCorrelationPolicyTypeEnum { + values = append(values, v) + } + return values +} + +// GetIdentityProviderCorrelationPolicyTypeEnumStringValues Enumerates the set of values in String for IdentityProviderCorrelationPolicyTypeEnum +func GetIdentityProviderCorrelationPolicyTypeEnumStringValues() []string { + return []string{ + "Policy", + } +} + +// GetMappingIdentityProviderCorrelationPolicyTypeEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingIdentityProviderCorrelationPolicyTypeEnum(val string) (IdentityProviderCorrelationPolicyTypeEnum, bool) { + enum, ok := mappingIdentityProviderCorrelationPolicyTypeEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/identity_provider_jit_user_prov_assigned_groups.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/identity_provider_jit_user_prov_assigned_groups.go new file mode 100644 index 00000000000..52b7f295b01 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/identity_provider_jit_user_prov_assigned_groups.go @@ -0,0 +1,74 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// IdentityProviderJitUserProvAssignedGroups Refers to every group of which a JIT-provisioned User should be a member. Just-in-Time user-provisioning applies this static list when jitUserProvGroupStaticListEnabled:true. +type IdentityProviderJitUserProvAssignedGroups struct { + + // Group identifier + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` + + // Group URI + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` + + // A human readable name, primarily used for display purposes. READ-ONLY. + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Display *string `mandatory:"false" json:"display"` +} + +func (m IdentityProviderJitUserProvAssignedGroups) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m IdentityProviderJitUserProvAssignedGroups) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/identity_provider_jit_user_prov_attributes.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/identity_provider_jit_user_prov_attributes.go new file mode 100644 index 00000000000..68cf27713bf --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/identity_provider_jit_user_prov_attributes.go @@ -0,0 +1,70 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// IdentityProviderJitUserProvAttributes Assertion To User Mapping +// **Added In:** 20.1.3 +// **SCIM++ Properties:** +// - caseExact: false +// - idcsCompositeKey: [value] +// - idcsSearchable: false +// - mutability: immutable +// - required: false +// - returned: default +// - type: complex +// - uniqueness: none +type IdentityProviderJitUserProvAttributes struct { + + // Mapped Attribute identifier + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - mutability: immutable + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` + + // Mapped Attribute URI + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - mutability: immutable + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` +} + +func (m IdentityProviderJitUserProvAttributes) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m IdentityProviderJitUserProvAttributes) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/identity_provider_jit_user_prov_group_mappings.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/identity_provider_jit_user_prov_group_mappings.go new file mode 100644 index 00000000000..56d0bdd3c5e --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/identity_provider_jit_user_prov_group_mappings.go @@ -0,0 +1,67 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// IdentityProviderJitUserProvGroupMappings The list of mappings between the Identity Domain Group and the IDP group. +type IdentityProviderJitUserProvGroupMappings struct { + + // Domain Group + // **Added In:** 2205120021 + // **SCIM++ Properties:** + // - multiValued: false + // - mutability: readWrite + // - required: true + // - idcsSearchable: true + // - type: string + Value *string `mandatory:"true" json:"value"` + + // Group URI + // **Added In:** 2205120021 + // **SCIM++ Properties:** + // - multiValued: false + // - mutability: readOnly + // - required: true + // - returned: default + // - type: reference + Ref *string `mandatory:"true" json:"$ref"` + + // IDP Group Name + // **Added In:** 2205120021 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - type: string + IdpGroup *string `mandatory:"true" json:"idpGroup"` +} + +func (m IdentityProviderJitUserProvGroupMappings) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m IdentityProviderJitUserProvGroupMappings) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/identity_provider_search_request.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/identity_provider_search_request.go new file mode 100644 index 00000000000..e58d8ba7112 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/identity_provider_search_request.go @@ -0,0 +1,70 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// IdentityProviderSearchRequest Clients MAY execute queries without passing parameters on the URL by using the HTTP POST verb combined with the **.search** path extension. The inclusion of **.search** on the end of a valid SCIM endpoint SHALL be used to indicate the HTTP POST verb is intended to be a query operation. To create a new query result set, a SCIM client sends an HTTP POST request to the desired SCIM resource endpoint (ending in **.search**). The body of the POST request MAY include any of the parameters. +type IdentityProviderSearchRequest struct { + + // The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. Query requests MUST be identified using the following URI: "urn:ietf:params:scim:api:messages:2.0:SearchRequest" REQUIRED. + Schemas []string `mandatory:"true" json:"schemas"` + + // A multi-valued list of strings indicating the names of resource attributes to return in the response overriding the set of attributes that would be returned by default. Attribute names MUST be in standard attribute notation (Section 3.10 (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.10)) form. See (additional retrieval query parameters (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.9)). OPTIONAL. + Attributes []string `mandatory:"false" json:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If "attributes" query parameter is also available, union of the two is fetched. Valid values : all, always, never, request, default. Values are case-insensitive. OPTIONAL. + AttributeSets []AttributeSetsEnum `mandatory:"false" json:"attributeSets,omitempty"` + + // The filter string that is used to request a subset of resources. The filter string MUST be a valid filter expression. See Section 3.4.2.2 (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.2). OPTIONAL. + Filter *string `mandatory:"false" json:"filter"` + + // A string that indicates the attribute whose value SHALL be used to order the returned responses. The sortBy attribute MUST be in standard attribute notation (Section 3.10 (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.10)) form. See Sorting section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.3). OPTIONAL. + SortBy *string `mandatory:"false" json:"sortBy"` + + // A string that indicates the order in which the sortBy parameter is applied. Allowed values are "ascending" and "descending". See (Sorting Section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.3)). OPTIONAL. + SortOrder SortOrderEnum `mandatory:"false" json:"sortOrder,omitempty"` + + // An integer that indicates the 1-based index of the first query result. See Pagination Section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.4). OPTIONAL. + StartIndex *int `mandatory:"false" json:"startIndex"` + + // An integer that indicates the desired maximum number of query results per page. 1000 is the largest value that you can use. See the Pagination section of the System for Cross-Domain Identity Management Protocol specification for more information. (Section 3.4.2.4 (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.4)). OPTIONAL. + Count *int `mandatory:"false" json:"count"` +} + +func (m IdentityProviderSearchRequest) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m IdentityProviderSearchRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + for _, val := range m.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if _, ok := GetMappingSortOrderEnum(string(m.SortOrder)); !ok && m.SortOrder != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for SortOrder: %s. Supported values are: %s.", m.SortOrder, strings.Join(GetSortOrderEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/identity_providers.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/identity_providers.go new file mode 100644 index 00000000000..ea0f2ac3c5a --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/identity_providers.go @@ -0,0 +1,52 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// IdentityProviders The SCIM protocol defines a standard set of query parameters that can be used to filter, sort, and paginate to return zero or more resources in a query response. Queries MAY be made against a single resource or a resource type endpoint (e.g., /Users), or the service provider Base URI. +type IdentityProviders struct { + + // The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. REQUIRED. + Schemas []string `mandatory:"true" json:"schemas"` + + // The total number of results returned by the list or query operation. The value may be larger than the number of resources returned such as when returning a single page of results where multiple pages are available. REQUIRED. + TotalResults *int `mandatory:"true" json:"totalResults"` + + // A multi-valued list of complex objects containing the requested resources. This MAY be a subset of the full set of resources if pagination is requested. REQUIRED if "totalResults" is non-zero. + Resources []IdentityProvider `mandatory:"true" json:"Resources"` + + // The 1-based index of the first result in the current set of list results. REQUIRED when partial results returned due to pagination. + StartIndex *int `mandatory:"true" json:"startIndex"` + + // The number of resources returned in a list response page. REQUIRED when partial results returned due to pagination. + ItemsPerPage *int `mandatory:"true" json:"itemsPerPage"` +} + +func (m IdentityProviders) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m IdentityProviders) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/identitydomains_client.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/identitydomains_client.go new file mode 100644 index 00000000000..b32ed4f814c --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/identitydomains_client.go @@ -0,0 +1,8387 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "context" + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "github.com/oracle/oci-go-sdk/v65/common/auth" + "net/http" +) + +//IdentityDomainsClient a client for IdentityDomains +type IdentityDomainsClient struct { + common.BaseClient + config *common.ConfigurationProvider +} + +// NewIdentityDomainsClientWithConfigurationProvider Creates a new default IdentityDomains client with the given configuration provider. +// the configuration provider will be used for the default signer +func NewIdentityDomainsClientWithConfigurationProvider(configProvider common.ConfigurationProvider, endpoint string) (client IdentityDomainsClient, err error) { + provider, err := auth.GetGenericConfigurationProvider(configProvider) + if err != nil { + return client, err + } + baseClient, e := common.NewClientWithConfig(provider) + if e != nil { + return client, e + } + return newIdentityDomainsClientFromBaseClient(baseClient, provider, endpoint) +} + +// NewIdentityDomainsClientWithOboToken Creates a new default IdentityDomains client with the given configuration provider. +// The obotoken will be added to default headers and signed; the configuration provider will be used for the signer +// +func NewIdentityDomainsClientWithOboToken(configProvider common.ConfigurationProvider, oboToken string, endpoint string) (client IdentityDomainsClient, err error) { + baseClient, err := common.NewClientWithOboToken(configProvider, oboToken) + if err != nil { + return client, err + } + + return newIdentityDomainsClientFromBaseClient(baseClient, configProvider, endpoint) +} + +func newIdentityDomainsClientFromBaseClient(baseClient common.BaseClient, configProvider common.ConfigurationProvider, endpoint string) (client IdentityDomainsClient, err error) { + // IdentityDomains service default circuit breaker is enabled + baseClient.Configuration.CircuitBreaker = common.NewCircuitBreaker(common.DefaultCircuitBreakerSettingWithServiceName("IdentityDomains")) + common.ConfigCircuitBreakerFromEnvVar(&baseClient) + common.ConfigCircuitBreakerFromGlobalVar(&baseClient) + + client = IdentityDomainsClient{BaseClient: baseClient} + client.BasePath = "admin/v1" + client.Host = endpoint + err = client.setConfigurationProvider(configProvider) + return +} + +// SetConfigurationProvider sets the configuration provider including the region, returns an error if is not valid +func (client *IdentityDomainsClient) setConfigurationProvider(configProvider common.ConfigurationProvider) error { + if ok, err := common.IsConfigurationProviderValid(configProvider); !ok { + return err + } + + client.config = &configProvider + return nil +} + +// ConfigurationProvider the ConfigurationProvider used in this client, or null if none set +func (client *IdentityDomainsClient) ConfigurationProvider() *common.ConfigurationProvider { + return client.config +} + +// CreateApiKey Add a user's api key +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/CreateApiKey.go.html to see an example of how to use CreateApiKey API. +func (client IdentityDomainsClient) CreateApiKey(ctx context.Context, request CreateApiKeyRequest) (response CreateApiKeyResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.createApiKey, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = CreateApiKeyResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = CreateApiKeyResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(CreateApiKeyResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into CreateApiKeyResponse") + } + return +} + +// createApiKey implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) createApiKey(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPost, "/ApiKeys", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response CreateApiKeyResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "CreateApiKey", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// CreateAuthToken Add a user's auth token +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/CreateAuthToken.go.html to see an example of how to use CreateAuthToken API. +func (client IdentityDomainsClient) CreateAuthToken(ctx context.Context, request CreateAuthTokenRequest) (response CreateAuthTokenResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.createAuthToken, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = CreateAuthTokenResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = CreateAuthTokenResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(CreateAuthTokenResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into CreateAuthTokenResponse") + } + return +} + +// createAuthToken implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) createAuthToken(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPost, "/AuthTokens", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response CreateAuthTokenResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "CreateAuthToken", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// CreateAuthenticationFactorsRemover Remove All Authentication Factor Channels for a User +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/CreateAuthenticationFactorsRemover.go.html to see an example of how to use CreateAuthenticationFactorsRemover API. +func (client IdentityDomainsClient) CreateAuthenticationFactorsRemover(ctx context.Context, request CreateAuthenticationFactorsRemoverRequest) (response CreateAuthenticationFactorsRemoverResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.createAuthenticationFactorsRemover, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = CreateAuthenticationFactorsRemoverResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = CreateAuthenticationFactorsRemoverResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(CreateAuthenticationFactorsRemoverResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into CreateAuthenticationFactorsRemoverResponse") + } + return +} + +// createAuthenticationFactorsRemover implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) createAuthenticationFactorsRemover(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPost, "/AuthenticationFactorsRemover", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response CreateAuthenticationFactorsRemoverResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "CreateAuthenticationFactorsRemover", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// CreateCustomerSecretKey Add a user's customer secret key +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/CreateCustomerSecretKey.go.html to see an example of how to use CreateCustomerSecretKey API. +func (client IdentityDomainsClient) CreateCustomerSecretKey(ctx context.Context, request CreateCustomerSecretKeyRequest) (response CreateCustomerSecretKeyResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.createCustomerSecretKey, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = CreateCustomerSecretKeyResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = CreateCustomerSecretKeyResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(CreateCustomerSecretKeyResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into CreateCustomerSecretKeyResponse") + } + return +} + +// createCustomerSecretKey implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) createCustomerSecretKey(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPost, "/CustomerSecretKeys", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response CreateCustomerSecretKeyResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "CreateCustomerSecretKey", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// CreateDynamicResourceGroup Create a DynamicResourceGroup +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/CreateDynamicResourceGroup.go.html to see an example of how to use CreateDynamicResourceGroup API. +func (client IdentityDomainsClient) CreateDynamicResourceGroup(ctx context.Context, request CreateDynamicResourceGroupRequest) (response CreateDynamicResourceGroupResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.createDynamicResourceGroup, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = CreateDynamicResourceGroupResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = CreateDynamicResourceGroupResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(CreateDynamicResourceGroupResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into CreateDynamicResourceGroupResponse") + } + return +} + +// createDynamicResourceGroup implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) createDynamicResourceGroup(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPost, "/DynamicResourceGroups", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response CreateDynamicResourceGroupResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "CreateDynamicResourceGroup", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// CreateGroup Create a Group +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/CreateGroup.go.html to see an example of how to use CreateGroup API. +func (client IdentityDomainsClient) CreateGroup(ctx context.Context, request CreateGroupRequest) (response CreateGroupResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.createGroup, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = CreateGroupResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = CreateGroupResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(CreateGroupResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into CreateGroupResponse") + } + return +} + +// createGroup implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) createGroup(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPost, "/Groups", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response CreateGroupResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "CreateGroup", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// CreateIdentityProvider Create an Identity Provider +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/CreateIdentityProvider.go.html to see an example of how to use CreateIdentityProvider API. +func (client IdentityDomainsClient) CreateIdentityProvider(ctx context.Context, request CreateIdentityProviderRequest) (response CreateIdentityProviderResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.createIdentityProvider, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = CreateIdentityProviderResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = CreateIdentityProviderResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(CreateIdentityProviderResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into CreateIdentityProviderResponse") + } + return +} + +// createIdentityProvider implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) createIdentityProvider(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPost, "/IdentityProviders", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response CreateIdentityProviderResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "CreateIdentityProvider", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// CreateMe Self Register +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/CreateMe.go.html to see an example of how to use CreateMe API. +func (client IdentityDomainsClient) CreateMe(ctx context.Context, request CreateMeRequest) (response CreateMeResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.createMe, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = CreateMeResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = CreateMeResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(CreateMeResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into CreateMeResponse") + } + return +} + +// createMe implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) createMe(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPost, "/Me", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response CreateMeResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "CreateMe", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// CreateMyApiKey Add a user's api key +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/CreateMyApiKey.go.html to see an example of how to use CreateMyApiKey API. +func (client IdentityDomainsClient) CreateMyApiKey(ctx context.Context, request CreateMyApiKeyRequest) (response CreateMyApiKeyResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.createMyApiKey, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = CreateMyApiKeyResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = CreateMyApiKeyResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(CreateMyApiKeyResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into CreateMyApiKeyResponse") + } + return +} + +// createMyApiKey implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) createMyApiKey(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPost, "/MyApiKeys", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response CreateMyApiKeyResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "CreateMyApiKey", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// CreateMyAuthToken Add user's auth token +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/CreateMyAuthToken.go.html to see an example of how to use CreateMyAuthToken API. +func (client IdentityDomainsClient) CreateMyAuthToken(ctx context.Context, request CreateMyAuthTokenRequest) (response CreateMyAuthTokenResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.createMyAuthToken, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = CreateMyAuthTokenResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = CreateMyAuthTokenResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(CreateMyAuthTokenResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into CreateMyAuthTokenResponse") + } + return +} + +// createMyAuthToken implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) createMyAuthToken(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPost, "/MyAuthTokens", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response CreateMyAuthTokenResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "CreateMyAuthToken", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// CreateMyAuthenticationFactorInitiator Initiate Self Service Enrollment using the Requested MFA Factor +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/CreateMyAuthenticationFactorInitiator.go.html to see an example of how to use CreateMyAuthenticationFactorInitiator API. +func (client IdentityDomainsClient) CreateMyAuthenticationFactorInitiator(ctx context.Context, request CreateMyAuthenticationFactorInitiatorRequest) (response CreateMyAuthenticationFactorInitiatorResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.createMyAuthenticationFactorInitiator, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = CreateMyAuthenticationFactorInitiatorResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = CreateMyAuthenticationFactorInitiatorResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(CreateMyAuthenticationFactorInitiatorResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into CreateMyAuthenticationFactorInitiatorResponse") + } + return +} + +// createMyAuthenticationFactorInitiator implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) createMyAuthenticationFactorInitiator(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPost, "/MyAuthenticationFactorInitiator", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response CreateMyAuthenticationFactorInitiatorResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "CreateMyAuthenticationFactorInitiator", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// CreateMyAuthenticationFactorValidator Validate Self Service Enrollment using the Requested MFA Factor +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/CreateMyAuthenticationFactorValidator.go.html to see an example of how to use CreateMyAuthenticationFactorValidator API. +func (client IdentityDomainsClient) CreateMyAuthenticationFactorValidator(ctx context.Context, request CreateMyAuthenticationFactorValidatorRequest) (response CreateMyAuthenticationFactorValidatorResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.createMyAuthenticationFactorValidator, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = CreateMyAuthenticationFactorValidatorResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = CreateMyAuthenticationFactorValidatorResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(CreateMyAuthenticationFactorValidatorResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into CreateMyAuthenticationFactorValidatorResponse") + } + return +} + +// createMyAuthenticationFactorValidator implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) createMyAuthenticationFactorValidator(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPost, "/MyAuthenticationFactorValidator", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response CreateMyAuthenticationFactorValidatorResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "CreateMyAuthenticationFactorValidator", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// CreateMyAuthenticationFactorsRemover Remove All Authentication Factor Channels for a User +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/CreateMyAuthenticationFactorsRemover.go.html to see an example of how to use CreateMyAuthenticationFactorsRemover API. +func (client IdentityDomainsClient) CreateMyAuthenticationFactorsRemover(ctx context.Context, request CreateMyAuthenticationFactorsRemoverRequest) (response CreateMyAuthenticationFactorsRemoverResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.createMyAuthenticationFactorsRemover, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = CreateMyAuthenticationFactorsRemoverResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = CreateMyAuthenticationFactorsRemoverResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(CreateMyAuthenticationFactorsRemoverResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into CreateMyAuthenticationFactorsRemoverResponse") + } + return +} + +// createMyAuthenticationFactorsRemover implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) createMyAuthenticationFactorsRemover(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPost, "/MyAuthenticationFactorsRemover", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response CreateMyAuthenticationFactorsRemoverResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "CreateMyAuthenticationFactorsRemover", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// CreateMyCustomerSecretKey Add a user's customer secret key +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/CreateMyCustomerSecretKey.go.html to see an example of how to use CreateMyCustomerSecretKey API. +func (client IdentityDomainsClient) CreateMyCustomerSecretKey(ctx context.Context, request CreateMyCustomerSecretKeyRequest) (response CreateMyCustomerSecretKeyResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.createMyCustomerSecretKey, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = CreateMyCustomerSecretKeyResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = CreateMyCustomerSecretKeyResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(CreateMyCustomerSecretKeyResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into CreateMyCustomerSecretKeyResponse") + } + return +} + +// createMyCustomerSecretKey implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) createMyCustomerSecretKey(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPost, "/MyCustomerSecretKeys", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response CreateMyCustomerSecretKeyResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "CreateMyCustomerSecretKey", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// CreateMyOAuth2ClientCredential Add a user's oauth2 client credential +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/CreateMyOAuth2ClientCredential.go.html to see an example of how to use CreateMyOAuth2ClientCredential API. +func (client IdentityDomainsClient) CreateMyOAuth2ClientCredential(ctx context.Context, request CreateMyOAuth2ClientCredentialRequest) (response CreateMyOAuth2ClientCredentialResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.createMyOAuth2ClientCredential, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = CreateMyOAuth2ClientCredentialResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = CreateMyOAuth2ClientCredentialResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(CreateMyOAuth2ClientCredentialResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into CreateMyOAuth2ClientCredentialResponse") + } + return +} + +// createMyOAuth2ClientCredential implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) createMyOAuth2ClientCredential(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPost, "/MyOAuth2ClientCredentials", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response CreateMyOAuth2ClientCredentialResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "CreateMyOAuth2ClientCredential", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// CreateMySmtpCredential Add a user's smtp credenials +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/CreateMySmtpCredential.go.html to see an example of how to use CreateMySmtpCredential API. +func (client IdentityDomainsClient) CreateMySmtpCredential(ctx context.Context, request CreateMySmtpCredentialRequest) (response CreateMySmtpCredentialResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.createMySmtpCredential, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = CreateMySmtpCredentialResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = CreateMySmtpCredentialResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(CreateMySmtpCredentialResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into CreateMySmtpCredentialResponse") + } + return +} + +// createMySmtpCredential implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) createMySmtpCredential(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPost, "/MySmtpCredentials", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response CreateMySmtpCredentialResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "CreateMySmtpCredential", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// CreateMySupportAccount Create a Support Account +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/CreateMySupportAccount.go.html to see an example of how to use CreateMySupportAccount API. +func (client IdentityDomainsClient) CreateMySupportAccount(ctx context.Context, request CreateMySupportAccountRequest) (response CreateMySupportAccountResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.createMySupportAccount, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = CreateMySupportAccountResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = CreateMySupportAccountResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(CreateMySupportAccountResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into CreateMySupportAccountResponse") + } + return +} + +// createMySupportAccount implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) createMySupportAccount(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPost, "/MySupportAccounts", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response CreateMySupportAccountResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "CreateMySupportAccount", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// CreateMyUserDbCredential Set a User's DbCredential +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/CreateMyUserDbCredential.go.html to see an example of how to use CreateMyUserDbCredential API. +func (client IdentityDomainsClient) CreateMyUserDbCredential(ctx context.Context, request CreateMyUserDbCredentialRequest) (response CreateMyUserDbCredentialResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.createMyUserDbCredential, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = CreateMyUserDbCredentialResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = CreateMyUserDbCredentialResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(CreateMyUserDbCredentialResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into CreateMyUserDbCredentialResponse") + } + return +} + +// createMyUserDbCredential implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) createMyUserDbCredential(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPost, "/MyUserDbCredentials", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response CreateMyUserDbCredentialResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "CreateMyUserDbCredential", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// CreateOAuth2ClientCredential Add a user's oauth2 client credential +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/CreateOAuth2ClientCredential.go.html to see an example of how to use CreateOAuth2ClientCredential API. +func (client IdentityDomainsClient) CreateOAuth2ClientCredential(ctx context.Context, request CreateOAuth2ClientCredentialRequest) (response CreateOAuth2ClientCredentialResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.createOAuth2ClientCredential, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = CreateOAuth2ClientCredentialResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = CreateOAuth2ClientCredentialResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(CreateOAuth2ClientCredentialResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into CreateOAuth2ClientCredentialResponse") + } + return +} + +// createOAuth2ClientCredential implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) createOAuth2ClientCredential(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPost, "/OAuth2ClientCredentials", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response CreateOAuth2ClientCredentialResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "CreateOAuth2ClientCredential", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// CreatePasswordPolicy Create a Password Policy +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/CreatePasswordPolicy.go.html to see an example of how to use CreatePasswordPolicy API. +func (client IdentityDomainsClient) CreatePasswordPolicy(ctx context.Context, request CreatePasswordPolicyRequest) (response CreatePasswordPolicyResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.createPasswordPolicy, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = CreatePasswordPolicyResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = CreatePasswordPolicyResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(CreatePasswordPolicyResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into CreatePasswordPolicyResponse") + } + return +} + +// createPasswordPolicy implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) createPasswordPolicy(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPost, "/PasswordPolicies", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response CreatePasswordPolicyResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "CreatePasswordPolicy", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// CreateSmtpCredential Add a user's smtp credenials +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/CreateSmtpCredential.go.html to see an example of how to use CreateSmtpCredential API. +func (client IdentityDomainsClient) CreateSmtpCredential(ctx context.Context, request CreateSmtpCredentialRequest) (response CreateSmtpCredentialResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.createSmtpCredential, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = CreateSmtpCredentialResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = CreateSmtpCredentialResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(CreateSmtpCredentialResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into CreateSmtpCredentialResponse") + } + return +} + +// createSmtpCredential implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) createSmtpCredential(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPost, "/SmtpCredentials", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response CreateSmtpCredentialResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "CreateSmtpCredential", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// CreateUser Create a User +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/CreateUser.go.html to see an example of how to use CreateUser API. +func (client IdentityDomainsClient) CreateUser(ctx context.Context, request CreateUserRequest) (response CreateUserResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.createUser, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = CreateUserResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = CreateUserResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(CreateUserResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into CreateUserResponse") + } + return +} + +// createUser implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) createUser(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPost, "/Users", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response CreateUserResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "CreateUser", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// CreateUserDbCredential Set a User's DbCredential +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/CreateUserDbCredential.go.html to see an example of how to use CreateUserDbCredential API. +func (client IdentityDomainsClient) CreateUserDbCredential(ctx context.Context, request CreateUserDbCredentialRequest) (response CreateUserDbCredentialResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.createUserDbCredential, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = CreateUserDbCredentialResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = CreateUserDbCredentialResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(CreateUserDbCredentialResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into CreateUserDbCredentialResponse") + } + return +} + +// createUserDbCredential implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) createUserDbCredential(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPost, "/UserDbCredentials", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response CreateUserDbCredentialResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "CreateUserDbCredential", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// DeleteApiKey Delete user's api key +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/DeleteApiKey.go.html to see an example of how to use DeleteApiKey API. +func (client IdentityDomainsClient) DeleteApiKey(ctx context.Context, request DeleteApiKeyRequest) (response DeleteApiKeyResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.deleteApiKey, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = DeleteApiKeyResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = DeleteApiKeyResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(DeleteApiKeyResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into DeleteApiKeyResponse") + } + return +} + +// deleteApiKey implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) deleteApiKey(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodDelete, "/ApiKeys/{apiKeyId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response DeleteApiKeyResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "DeleteApiKey", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// DeleteAuthToken Delete user's auth token +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/DeleteAuthToken.go.html to see an example of how to use DeleteAuthToken API. +func (client IdentityDomainsClient) DeleteAuthToken(ctx context.Context, request DeleteAuthTokenRequest) (response DeleteAuthTokenResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.deleteAuthToken, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = DeleteAuthTokenResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = DeleteAuthTokenResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(DeleteAuthTokenResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into DeleteAuthTokenResponse") + } + return +} + +// deleteAuthToken implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) deleteAuthToken(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodDelete, "/AuthTokens/{authTokenId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response DeleteAuthTokenResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "DeleteAuthToken", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// DeleteCustomerSecretKey Delete user's customer secret key +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/DeleteCustomerSecretKey.go.html to see an example of how to use DeleteCustomerSecretKey API. +func (client IdentityDomainsClient) DeleteCustomerSecretKey(ctx context.Context, request DeleteCustomerSecretKeyRequest) (response DeleteCustomerSecretKeyResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.deleteCustomerSecretKey, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = DeleteCustomerSecretKeyResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = DeleteCustomerSecretKeyResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(DeleteCustomerSecretKeyResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into DeleteCustomerSecretKeyResponse") + } + return +} + +// deleteCustomerSecretKey implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) deleteCustomerSecretKey(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodDelete, "/CustomerSecretKeys/{customerSecretKeyId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response DeleteCustomerSecretKeyResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "DeleteCustomerSecretKey", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// DeleteDynamicResourceGroup Delete a DynamicResourceGroup +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/DeleteDynamicResourceGroup.go.html to see an example of how to use DeleteDynamicResourceGroup API. +func (client IdentityDomainsClient) DeleteDynamicResourceGroup(ctx context.Context, request DeleteDynamicResourceGroupRequest) (response DeleteDynamicResourceGroupResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.deleteDynamicResourceGroup, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = DeleteDynamicResourceGroupResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = DeleteDynamicResourceGroupResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(DeleteDynamicResourceGroupResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into DeleteDynamicResourceGroupResponse") + } + return +} + +// deleteDynamicResourceGroup implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) deleteDynamicResourceGroup(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodDelete, "/DynamicResourceGroups/{dynamicResourceGroupId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response DeleteDynamicResourceGroupResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "DeleteDynamicResourceGroup", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// DeleteGroup Delete a Group +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/DeleteGroup.go.html to see an example of how to use DeleteGroup API. +func (client IdentityDomainsClient) DeleteGroup(ctx context.Context, request DeleteGroupRequest) (response DeleteGroupResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.deleteGroup, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = DeleteGroupResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = DeleteGroupResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(DeleteGroupResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into DeleteGroupResponse") + } + return +} + +// deleteGroup implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) deleteGroup(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodDelete, "/Groups/{groupId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response DeleteGroupResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "DeleteGroup", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// DeleteIdentityProvider Delete an Identity Provider +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/DeleteIdentityProvider.go.html to see an example of how to use DeleteIdentityProvider API. +func (client IdentityDomainsClient) DeleteIdentityProvider(ctx context.Context, request DeleteIdentityProviderRequest) (response DeleteIdentityProviderResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.deleteIdentityProvider, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = DeleteIdentityProviderResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = DeleteIdentityProviderResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(DeleteIdentityProviderResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into DeleteIdentityProviderResponse") + } + return +} + +// deleteIdentityProvider implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) deleteIdentityProvider(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodDelete, "/IdentityProviders/{identityProviderId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response DeleteIdentityProviderResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "DeleteIdentityProvider", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// DeleteMyApiKey Delete user's api key +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/DeleteMyApiKey.go.html to see an example of how to use DeleteMyApiKey API. +func (client IdentityDomainsClient) DeleteMyApiKey(ctx context.Context, request DeleteMyApiKeyRequest) (response DeleteMyApiKeyResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.deleteMyApiKey, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = DeleteMyApiKeyResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = DeleteMyApiKeyResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(DeleteMyApiKeyResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into DeleteMyApiKeyResponse") + } + return +} + +// deleteMyApiKey implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) deleteMyApiKey(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodDelete, "/MyApiKeys/{myApiKeyId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response DeleteMyApiKeyResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "DeleteMyApiKey", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// DeleteMyAuthToken Delete user's auth token +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/DeleteMyAuthToken.go.html to see an example of how to use DeleteMyAuthToken API. +func (client IdentityDomainsClient) DeleteMyAuthToken(ctx context.Context, request DeleteMyAuthTokenRequest) (response DeleteMyAuthTokenResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.deleteMyAuthToken, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = DeleteMyAuthTokenResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = DeleteMyAuthTokenResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(DeleteMyAuthTokenResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into DeleteMyAuthTokenResponse") + } + return +} + +// deleteMyAuthToken implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) deleteMyAuthToken(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodDelete, "/MyAuthTokens/{myAuthTokenId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response DeleteMyAuthTokenResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "DeleteMyAuthToken", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// DeleteMyCustomerSecretKey Delete user's customer secret key +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/DeleteMyCustomerSecretKey.go.html to see an example of how to use DeleteMyCustomerSecretKey API. +func (client IdentityDomainsClient) DeleteMyCustomerSecretKey(ctx context.Context, request DeleteMyCustomerSecretKeyRequest) (response DeleteMyCustomerSecretKeyResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.deleteMyCustomerSecretKey, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = DeleteMyCustomerSecretKeyResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = DeleteMyCustomerSecretKeyResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(DeleteMyCustomerSecretKeyResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into DeleteMyCustomerSecretKeyResponse") + } + return +} + +// deleteMyCustomerSecretKey implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) deleteMyCustomerSecretKey(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodDelete, "/MyCustomerSecretKeys/{myCustomerSecretKeyId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response DeleteMyCustomerSecretKeyResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "DeleteMyCustomerSecretKey", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// DeleteMyDevice Delete a Device +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/DeleteMyDevice.go.html to see an example of how to use DeleteMyDevice API. +func (client IdentityDomainsClient) DeleteMyDevice(ctx context.Context, request DeleteMyDeviceRequest) (response DeleteMyDeviceResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.deleteMyDevice, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = DeleteMyDeviceResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = DeleteMyDeviceResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(DeleteMyDeviceResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into DeleteMyDeviceResponse") + } + return +} + +// deleteMyDevice implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) deleteMyDevice(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodDelete, "/MyDevices/{myDeviceId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response DeleteMyDeviceResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "DeleteMyDevice", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// DeleteMyOAuth2ClientCredential Delete user's oauth2 client credential +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/DeleteMyOAuth2ClientCredential.go.html to see an example of how to use DeleteMyOAuth2ClientCredential API. +func (client IdentityDomainsClient) DeleteMyOAuth2ClientCredential(ctx context.Context, request DeleteMyOAuth2ClientCredentialRequest) (response DeleteMyOAuth2ClientCredentialResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.deleteMyOAuth2ClientCredential, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = DeleteMyOAuth2ClientCredentialResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = DeleteMyOAuth2ClientCredentialResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(DeleteMyOAuth2ClientCredentialResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into DeleteMyOAuth2ClientCredentialResponse") + } + return +} + +// deleteMyOAuth2ClientCredential implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) deleteMyOAuth2ClientCredential(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodDelete, "/MyOAuth2ClientCredentials/{myOAuth2ClientCredentialId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response DeleteMyOAuth2ClientCredentialResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "DeleteMyOAuth2ClientCredential", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// DeleteMySmtpCredential Delete user's smtp credenials +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/DeleteMySmtpCredential.go.html to see an example of how to use DeleteMySmtpCredential API. +func (client IdentityDomainsClient) DeleteMySmtpCredential(ctx context.Context, request DeleteMySmtpCredentialRequest) (response DeleteMySmtpCredentialResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.deleteMySmtpCredential, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = DeleteMySmtpCredentialResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = DeleteMySmtpCredentialResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(DeleteMySmtpCredentialResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into DeleteMySmtpCredentialResponse") + } + return +} + +// deleteMySmtpCredential implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) deleteMySmtpCredential(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodDelete, "/MySmtpCredentials/{mySmtpCredentialId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response DeleteMySmtpCredentialResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "DeleteMySmtpCredential", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// DeleteMySupportAccount Delete a Support Account +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/DeleteMySupportAccount.go.html to see an example of how to use DeleteMySupportAccount API. +func (client IdentityDomainsClient) DeleteMySupportAccount(ctx context.Context, request DeleteMySupportAccountRequest) (response DeleteMySupportAccountResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.deleteMySupportAccount, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = DeleteMySupportAccountResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = DeleteMySupportAccountResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(DeleteMySupportAccountResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into DeleteMySupportAccountResponse") + } + return +} + +// deleteMySupportAccount implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) deleteMySupportAccount(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodDelete, "/MySupportAccounts/{mySupportAccountId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response DeleteMySupportAccountResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "DeleteMySupportAccount", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// DeleteMyTrustedUserAgent Delete a Trusted User Agent +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/DeleteMyTrustedUserAgent.go.html to see an example of how to use DeleteMyTrustedUserAgent API. +func (client IdentityDomainsClient) DeleteMyTrustedUserAgent(ctx context.Context, request DeleteMyTrustedUserAgentRequest) (response DeleteMyTrustedUserAgentResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.deleteMyTrustedUserAgent, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = DeleteMyTrustedUserAgentResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = DeleteMyTrustedUserAgentResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(DeleteMyTrustedUserAgentResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into DeleteMyTrustedUserAgentResponse") + } + return +} + +// deleteMyTrustedUserAgent implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) deleteMyTrustedUserAgent(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodDelete, "/MyTrustedUserAgents/{myTrustedUserAgentId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response DeleteMyTrustedUserAgentResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "DeleteMyTrustedUserAgent", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// DeleteMyUserDbCredential Remove a User's DbCredential +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/DeleteMyUserDbCredential.go.html to see an example of how to use DeleteMyUserDbCredential API. +func (client IdentityDomainsClient) DeleteMyUserDbCredential(ctx context.Context, request DeleteMyUserDbCredentialRequest) (response DeleteMyUserDbCredentialResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.deleteMyUserDbCredential, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = DeleteMyUserDbCredentialResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = DeleteMyUserDbCredentialResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(DeleteMyUserDbCredentialResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into DeleteMyUserDbCredentialResponse") + } + return +} + +// deleteMyUserDbCredential implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) deleteMyUserDbCredential(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodDelete, "/MyUserDbCredentials/{myUserDbCredentialId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response DeleteMyUserDbCredentialResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "DeleteMyUserDbCredential", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// DeleteOAuth2ClientCredential Delete user's oauth2 client credential +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/DeleteOAuth2ClientCredential.go.html to see an example of how to use DeleteOAuth2ClientCredential API. +func (client IdentityDomainsClient) DeleteOAuth2ClientCredential(ctx context.Context, request DeleteOAuth2ClientCredentialRequest) (response DeleteOAuth2ClientCredentialResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.deleteOAuth2ClientCredential, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = DeleteOAuth2ClientCredentialResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = DeleteOAuth2ClientCredentialResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(DeleteOAuth2ClientCredentialResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into DeleteOAuth2ClientCredentialResponse") + } + return +} + +// deleteOAuth2ClientCredential implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) deleteOAuth2ClientCredential(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodDelete, "/OAuth2ClientCredentials/{oAuth2ClientCredentialId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response DeleteOAuth2ClientCredentialResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "DeleteOAuth2ClientCredential", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// DeletePasswordPolicy Delete a Password Policy +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/DeletePasswordPolicy.go.html to see an example of how to use DeletePasswordPolicy API. +func (client IdentityDomainsClient) DeletePasswordPolicy(ctx context.Context, request DeletePasswordPolicyRequest) (response DeletePasswordPolicyResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.deletePasswordPolicy, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = DeletePasswordPolicyResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = DeletePasswordPolicyResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(DeletePasswordPolicyResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into DeletePasswordPolicyResponse") + } + return +} + +// deletePasswordPolicy implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) deletePasswordPolicy(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodDelete, "/PasswordPolicies/{passwordPolicyId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response DeletePasswordPolicyResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "DeletePasswordPolicy", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// DeleteSmtpCredential Delete user's smtp credenials +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/DeleteSmtpCredential.go.html to see an example of how to use DeleteSmtpCredential API. +func (client IdentityDomainsClient) DeleteSmtpCredential(ctx context.Context, request DeleteSmtpCredentialRequest) (response DeleteSmtpCredentialResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.deleteSmtpCredential, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = DeleteSmtpCredentialResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = DeleteSmtpCredentialResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(DeleteSmtpCredentialResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into DeleteSmtpCredentialResponse") + } + return +} + +// deleteSmtpCredential implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) deleteSmtpCredential(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodDelete, "/SmtpCredentials/{smtpCredentialId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response DeleteSmtpCredentialResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "DeleteSmtpCredential", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// DeleteUser Delete a User +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/DeleteUser.go.html to see an example of how to use DeleteUser API. +func (client IdentityDomainsClient) DeleteUser(ctx context.Context, request DeleteUserRequest) (response DeleteUserResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.deleteUser, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = DeleteUserResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = DeleteUserResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(DeleteUserResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into DeleteUserResponse") + } + return +} + +// deleteUser implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) deleteUser(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodDelete, "/Users/{userId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response DeleteUserResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "DeleteUser", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// DeleteUserDbCredential Remove a User's DbCredential +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/DeleteUserDbCredential.go.html to see an example of how to use DeleteUserDbCredential API. +func (client IdentityDomainsClient) DeleteUserDbCredential(ctx context.Context, request DeleteUserDbCredentialRequest) (response DeleteUserDbCredentialResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.deleteUserDbCredential, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = DeleteUserDbCredentialResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = DeleteUserDbCredentialResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(DeleteUserDbCredentialResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into DeleteUserDbCredentialResponse") + } + return +} + +// deleteUserDbCredential implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) deleteUserDbCredential(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodDelete, "/UserDbCredentials/{userDbCredentialId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response DeleteUserDbCredentialResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "DeleteUserDbCredential", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// GetApiKey Get user's api key +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/GetApiKey.go.html to see an example of how to use GetApiKey API. +func (client IdentityDomainsClient) GetApiKey(ctx context.Context, request GetApiKeyRequest) (response GetApiKeyResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.getApiKey, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = GetApiKeyResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = GetApiKeyResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(GetApiKeyResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into GetApiKeyResponse") + } + return +} + +// getApiKey implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) getApiKey(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/ApiKeys/{apiKeyId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response GetApiKeyResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "GetApiKey", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// GetAuthToken Get user's auth token +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/GetAuthToken.go.html to see an example of how to use GetAuthToken API. +func (client IdentityDomainsClient) GetAuthToken(ctx context.Context, request GetAuthTokenRequest) (response GetAuthTokenResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.getAuthToken, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = GetAuthTokenResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = GetAuthTokenResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(GetAuthTokenResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into GetAuthTokenResponse") + } + return +} + +// getAuthToken implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) getAuthToken(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/AuthTokens/{authTokenId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response GetAuthTokenResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "GetAuthToken", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// GetAuthenticationFactorSetting Get Authentication Factor Settings +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/GetAuthenticationFactorSetting.go.html to see an example of how to use GetAuthenticationFactorSetting API. +func (client IdentityDomainsClient) GetAuthenticationFactorSetting(ctx context.Context, request GetAuthenticationFactorSettingRequest) (response GetAuthenticationFactorSettingResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.getAuthenticationFactorSetting, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = GetAuthenticationFactorSettingResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = GetAuthenticationFactorSettingResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(GetAuthenticationFactorSettingResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into GetAuthenticationFactorSettingResponse") + } + return +} + +// getAuthenticationFactorSetting implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) getAuthenticationFactorSetting(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/AuthenticationFactorSettings/{authenticationFactorSettingId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response GetAuthenticationFactorSettingResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "GetAuthenticationFactorSetting", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// GetCustomerSecretKey Get user's customer secret key +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/GetCustomerSecretKey.go.html to see an example of how to use GetCustomerSecretKey API. +func (client IdentityDomainsClient) GetCustomerSecretKey(ctx context.Context, request GetCustomerSecretKeyRequest) (response GetCustomerSecretKeyResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.getCustomerSecretKey, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = GetCustomerSecretKeyResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = GetCustomerSecretKeyResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(GetCustomerSecretKeyResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into GetCustomerSecretKeyResponse") + } + return +} + +// getCustomerSecretKey implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) getCustomerSecretKey(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/CustomerSecretKeys/{customerSecretKeyId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response GetCustomerSecretKeyResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "GetCustomerSecretKey", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// GetDynamicResourceGroup Get a DynamicResourceGroup +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/GetDynamicResourceGroup.go.html to see an example of how to use GetDynamicResourceGroup API. +func (client IdentityDomainsClient) GetDynamicResourceGroup(ctx context.Context, request GetDynamicResourceGroupRequest) (response GetDynamicResourceGroupResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.getDynamicResourceGroup, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = GetDynamicResourceGroupResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = GetDynamicResourceGroupResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(GetDynamicResourceGroupResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into GetDynamicResourceGroupResponse") + } + return +} + +// getDynamicResourceGroup implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) getDynamicResourceGroup(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/DynamicResourceGroups/{dynamicResourceGroupId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response GetDynamicResourceGroupResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "GetDynamicResourceGroup", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// GetGroup Get a Group - The Group search and get operations on users/members will throw an exception if it has more than 10K members, to avoid the exception use the pagination filter to get or search group members +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/GetGroup.go.html to see an example of how to use GetGroup API. +func (client IdentityDomainsClient) GetGroup(ctx context.Context, request GetGroupRequest) (response GetGroupResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.getGroup, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = GetGroupResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = GetGroupResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(GetGroupResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into GetGroupResponse") + } + return +} + +// getGroup implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) getGroup(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/Groups/{groupId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response GetGroupResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "GetGroup", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// GetIdentityProvider Get an Identity Provider +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/GetIdentityProvider.go.html to see an example of how to use GetIdentityProvider API. +func (client IdentityDomainsClient) GetIdentityProvider(ctx context.Context, request GetIdentityProviderRequest) (response GetIdentityProviderResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.getIdentityProvider, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = GetIdentityProviderResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = GetIdentityProviderResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(GetIdentityProviderResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into GetIdentityProviderResponse") + } + return +} + +// getIdentityProvider implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) getIdentityProvider(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/IdentityProviders/{identityProviderId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response GetIdentityProviderResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "GetIdentityProvider", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// GetKmsiSetting Get KmsiSettings +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/GetKmsiSetting.go.html to see an example of how to use GetKmsiSetting API. +func (client IdentityDomainsClient) GetKmsiSetting(ctx context.Context, request GetKmsiSettingRequest) (response GetKmsiSettingResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.getKmsiSetting, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = GetKmsiSettingResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = GetKmsiSettingResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(GetKmsiSettingResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into GetKmsiSettingResponse") + } + return +} + +// getKmsiSetting implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) getKmsiSetting(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/KmsiSettings/{kmsiSettingId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response GetKmsiSettingResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "GetKmsiSetting", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// GetMe Get User Info +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/GetMe.go.html to see an example of how to use GetMe API. +func (client IdentityDomainsClient) GetMe(ctx context.Context, request GetMeRequest) (response GetMeResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.getMe, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = GetMeResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = GetMeResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(GetMeResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into GetMeResponse") + } + return +} + +// getMe implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) getMe(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/Me", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response GetMeResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "GetMe", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// GetMyApiKey Get user's api key +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/GetMyApiKey.go.html to see an example of how to use GetMyApiKey API. +func (client IdentityDomainsClient) GetMyApiKey(ctx context.Context, request GetMyApiKeyRequest) (response GetMyApiKeyResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.getMyApiKey, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = GetMyApiKeyResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = GetMyApiKeyResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(GetMyApiKeyResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into GetMyApiKeyResponse") + } + return +} + +// getMyApiKey implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) getMyApiKey(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/MyApiKeys/{myApiKeyId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response GetMyApiKeyResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "GetMyApiKey", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// GetMyAuthToken Get user's auth token +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/GetMyAuthToken.go.html to see an example of how to use GetMyAuthToken API. +func (client IdentityDomainsClient) GetMyAuthToken(ctx context.Context, request GetMyAuthTokenRequest) (response GetMyAuthTokenResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.getMyAuthToken, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = GetMyAuthTokenResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = GetMyAuthTokenResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(GetMyAuthTokenResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into GetMyAuthTokenResponse") + } + return +} + +// getMyAuthToken implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) getMyAuthToken(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/MyAuthTokens/{myAuthTokenId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response GetMyAuthTokenResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "GetMyAuthToken", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// GetMyCustomerSecretKey Get user's customer secret key +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/GetMyCustomerSecretKey.go.html to see an example of how to use GetMyCustomerSecretKey API. +func (client IdentityDomainsClient) GetMyCustomerSecretKey(ctx context.Context, request GetMyCustomerSecretKeyRequest) (response GetMyCustomerSecretKeyResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.getMyCustomerSecretKey, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = GetMyCustomerSecretKeyResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = GetMyCustomerSecretKeyResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(GetMyCustomerSecretKeyResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into GetMyCustomerSecretKeyResponse") + } + return +} + +// getMyCustomerSecretKey implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) getMyCustomerSecretKey(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/MyCustomerSecretKeys/{myCustomerSecretKeyId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response GetMyCustomerSecretKeyResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "GetMyCustomerSecretKey", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// GetMyDevice Get a Device +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/GetMyDevice.go.html to see an example of how to use GetMyDevice API. +func (client IdentityDomainsClient) GetMyDevice(ctx context.Context, request GetMyDeviceRequest) (response GetMyDeviceResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.getMyDevice, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = GetMyDeviceResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = GetMyDeviceResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(GetMyDeviceResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into GetMyDeviceResponse") + } + return +} + +// getMyDevice implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) getMyDevice(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/MyDevices/{myDeviceId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response GetMyDeviceResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "GetMyDevice", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// GetMyOAuth2ClientCredential Get user's oauth2 client credential +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/GetMyOAuth2ClientCredential.go.html to see an example of how to use GetMyOAuth2ClientCredential API. +func (client IdentityDomainsClient) GetMyOAuth2ClientCredential(ctx context.Context, request GetMyOAuth2ClientCredentialRequest) (response GetMyOAuth2ClientCredentialResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.getMyOAuth2ClientCredential, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = GetMyOAuth2ClientCredentialResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = GetMyOAuth2ClientCredentialResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(GetMyOAuth2ClientCredentialResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into GetMyOAuth2ClientCredentialResponse") + } + return +} + +// getMyOAuth2ClientCredential implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) getMyOAuth2ClientCredential(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/MyOAuth2ClientCredentials/{myOAuth2ClientCredentialId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response GetMyOAuth2ClientCredentialResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "GetMyOAuth2ClientCredential", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// GetMySmtpCredential Get user's smtp credentials +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/GetMySmtpCredential.go.html to see an example of how to use GetMySmtpCredential API. +func (client IdentityDomainsClient) GetMySmtpCredential(ctx context.Context, request GetMySmtpCredentialRequest) (response GetMySmtpCredentialResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.getMySmtpCredential, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = GetMySmtpCredentialResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = GetMySmtpCredentialResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(GetMySmtpCredentialResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into GetMySmtpCredentialResponse") + } + return +} + +// getMySmtpCredential implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) getMySmtpCredential(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/MySmtpCredentials/{mySmtpCredentialId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response GetMySmtpCredentialResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "GetMySmtpCredential", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// GetMySupportAccount Get a Support Account +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/GetMySupportAccount.go.html to see an example of how to use GetMySupportAccount API. +func (client IdentityDomainsClient) GetMySupportAccount(ctx context.Context, request GetMySupportAccountRequest) (response GetMySupportAccountResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.getMySupportAccount, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = GetMySupportAccountResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = GetMySupportAccountResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(GetMySupportAccountResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into GetMySupportAccountResponse") + } + return +} + +// getMySupportAccount implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) getMySupportAccount(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/MySupportAccounts/{mySupportAccountId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response GetMySupportAccountResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "GetMySupportAccount", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// GetMyTrustedUserAgent Get a Trusted User Agent +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/GetMyTrustedUserAgent.go.html to see an example of how to use GetMyTrustedUserAgent API. +func (client IdentityDomainsClient) GetMyTrustedUserAgent(ctx context.Context, request GetMyTrustedUserAgentRequest) (response GetMyTrustedUserAgentResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.getMyTrustedUserAgent, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = GetMyTrustedUserAgentResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = GetMyTrustedUserAgentResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(GetMyTrustedUserAgentResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into GetMyTrustedUserAgentResponse") + } + return +} + +// getMyTrustedUserAgent implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) getMyTrustedUserAgent(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/MyTrustedUserAgents/{myTrustedUserAgentId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response GetMyTrustedUserAgentResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "GetMyTrustedUserAgent", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// GetMyUserDbCredential Get a User's DbCredentials +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/GetMyUserDbCredential.go.html to see an example of how to use GetMyUserDbCredential API. +func (client IdentityDomainsClient) GetMyUserDbCredential(ctx context.Context, request GetMyUserDbCredentialRequest) (response GetMyUserDbCredentialResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.getMyUserDbCredential, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = GetMyUserDbCredentialResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = GetMyUserDbCredentialResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(GetMyUserDbCredentialResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into GetMyUserDbCredentialResponse") + } + return +} + +// getMyUserDbCredential implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) getMyUserDbCredential(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/MyUserDbCredentials/{myUserDbCredentialId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response GetMyUserDbCredentialResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "GetMyUserDbCredential", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// GetOAuth2ClientCredential Get user's oauth2 client credential +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/GetOAuth2ClientCredential.go.html to see an example of how to use GetOAuth2ClientCredential API. +func (client IdentityDomainsClient) GetOAuth2ClientCredential(ctx context.Context, request GetOAuth2ClientCredentialRequest) (response GetOAuth2ClientCredentialResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.getOAuth2ClientCredential, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = GetOAuth2ClientCredentialResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = GetOAuth2ClientCredentialResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(GetOAuth2ClientCredentialResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into GetOAuth2ClientCredentialResponse") + } + return +} + +// getOAuth2ClientCredential implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) getOAuth2ClientCredential(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/OAuth2ClientCredentials/{oAuth2ClientCredentialId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response GetOAuth2ClientCredentialResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "GetOAuth2ClientCredential", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// GetPasswordPolicy Get a Password Policy +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/GetPasswordPolicy.go.html to see an example of how to use GetPasswordPolicy API. +func (client IdentityDomainsClient) GetPasswordPolicy(ctx context.Context, request GetPasswordPolicyRequest) (response GetPasswordPolicyResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.getPasswordPolicy, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = GetPasswordPolicyResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = GetPasswordPolicyResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(GetPasswordPolicyResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into GetPasswordPolicyResponse") + } + return +} + +// getPasswordPolicy implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) getPasswordPolicy(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/PasswordPolicies/{passwordPolicyId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response GetPasswordPolicyResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "GetPasswordPolicy", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// GetSmtpCredential Get user's smtp credentials +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/GetSmtpCredential.go.html to see an example of how to use GetSmtpCredential API. +func (client IdentityDomainsClient) GetSmtpCredential(ctx context.Context, request GetSmtpCredentialRequest) (response GetSmtpCredentialResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.getSmtpCredential, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = GetSmtpCredentialResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = GetSmtpCredentialResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(GetSmtpCredentialResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into GetSmtpCredentialResponse") + } + return +} + +// getSmtpCredential implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) getSmtpCredential(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/SmtpCredentials/{smtpCredentialId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response GetSmtpCredentialResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "GetSmtpCredential", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// GetUser Get a User +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/GetUser.go.html to see an example of how to use GetUser API. +func (client IdentityDomainsClient) GetUser(ctx context.Context, request GetUserRequest) (response GetUserResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.getUser, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = GetUserResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = GetUserResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(GetUserResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into GetUserResponse") + } + return +} + +// getUser implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) getUser(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/Users/{userId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response GetUserResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "GetUser", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// GetUserDbCredential Get a User's DbCredentials +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/GetUserDbCredential.go.html to see an example of how to use GetUserDbCredential API. +func (client IdentityDomainsClient) GetUserDbCredential(ctx context.Context, request GetUserDbCredentialRequest) (response GetUserDbCredentialResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.getUserDbCredential, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = GetUserDbCredentialResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = GetUserDbCredentialResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(GetUserDbCredentialResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into GetUserDbCredentialResponse") + } + return +} + +// getUserDbCredential implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) getUserDbCredential(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/UserDbCredentials/{userDbCredentialId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response GetUserDbCredentialResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "GetUserDbCredential", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// ListApiKeys Search Api Key +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/ListApiKeys.go.html to see an example of how to use ListApiKeys API. +func (client IdentityDomainsClient) ListApiKeys(ctx context.Context, request ListApiKeysRequest) (response ListApiKeysResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.listApiKeys, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = ListApiKeysResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = ListApiKeysResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(ListApiKeysResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into ListApiKeysResponse") + } + return +} + +// listApiKeys implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) listApiKeys(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/ApiKeys", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response ListApiKeysResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "ListApiKeys", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// ListAuthTokens Search AuthTokens +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/ListAuthTokens.go.html to see an example of how to use ListAuthTokens API. +func (client IdentityDomainsClient) ListAuthTokens(ctx context.Context, request ListAuthTokensRequest) (response ListAuthTokensResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.listAuthTokens, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = ListAuthTokensResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = ListAuthTokensResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(ListAuthTokensResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into ListAuthTokensResponse") + } + return +} + +// listAuthTokens implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) listAuthTokens(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/AuthTokens", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response ListAuthTokensResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "ListAuthTokens", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// ListAuthenticationFactorSettings Search Authentication Factor Settings +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/ListAuthenticationFactorSettings.go.html to see an example of how to use ListAuthenticationFactorSettings API. +func (client IdentityDomainsClient) ListAuthenticationFactorSettings(ctx context.Context, request ListAuthenticationFactorSettingsRequest) (response ListAuthenticationFactorSettingsResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.listAuthenticationFactorSettings, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = ListAuthenticationFactorSettingsResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = ListAuthenticationFactorSettingsResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(ListAuthenticationFactorSettingsResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into ListAuthenticationFactorSettingsResponse") + } + return +} + +// listAuthenticationFactorSettings implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) listAuthenticationFactorSettings(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/AuthenticationFactorSettings", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response ListAuthenticationFactorSettingsResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "ListAuthenticationFactorSettings", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// ListCustomerSecretKeys Search user's customer secret key +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/ListCustomerSecretKeys.go.html to see an example of how to use ListCustomerSecretKeys API. +func (client IdentityDomainsClient) ListCustomerSecretKeys(ctx context.Context, request ListCustomerSecretKeysRequest) (response ListCustomerSecretKeysResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.listCustomerSecretKeys, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = ListCustomerSecretKeysResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = ListCustomerSecretKeysResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(ListCustomerSecretKeysResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into ListCustomerSecretKeysResponse") + } + return +} + +// listCustomerSecretKeys implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) listCustomerSecretKeys(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/CustomerSecretKeys", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response ListCustomerSecretKeysResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "ListCustomerSecretKeys", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// ListDynamicResourceGroups Search DynamicResourceGroups +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/ListDynamicResourceGroups.go.html to see an example of how to use ListDynamicResourceGroups API. +func (client IdentityDomainsClient) ListDynamicResourceGroups(ctx context.Context, request ListDynamicResourceGroupsRequest) (response ListDynamicResourceGroupsResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.listDynamicResourceGroups, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = ListDynamicResourceGroupsResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = ListDynamicResourceGroupsResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(ListDynamicResourceGroupsResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into ListDynamicResourceGroupsResponse") + } + return +} + +// listDynamicResourceGroups implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) listDynamicResourceGroups(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/DynamicResourceGroups", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response ListDynamicResourceGroupsResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "ListDynamicResourceGroups", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// ListGroups Search Groups.The Group search and get operations on users/members will throw an exception if it has more than 10K members, to avoid the exception use the pagination filter to get or search group members +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/ListGroups.go.html to see an example of how to use ListGroups API. +func (client IdentityDomainsClient) ListGroups(ctx context.Context, request ListGroupsRequest) (response ListGroupsResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.listGroups, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = ListGroupsResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = ListGroupsResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(ListGroupsResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into ListGroupsResponse") + } + return +} + +// listGroups implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) listGroups(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/Groups", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response ListGroupsResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "ListGroups", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// ListIdentityProviders Search Identity Providers +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/ListIdentityProviders.go.html to see an example of how to use ListIdentityProviders API. +func (client IdentityDomainsClient) ListIdentityProviders(ctx context.Context, request ListIdentityProvidersRequest) (response ListIdentityProvidersResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.listIdentityProviders, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = ListIdentityProvidersResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = ListIdentityProvidersResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(ListIdentityProvidersResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into ListIdentityProvidersResponse") + } + return +} + +// listIdentityProviders implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) listIdentityProviders(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/IdentityProviders", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response ListIdentityProvidersResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "ListIdentityProviders", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// ListKmsiSettings Search KmsiSettings +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/ListKmsiSettings.go.html to see an example of how to use ListKmsiSettings API. +func (client IdentityDomainsClient) ListKmsiSettings(ctx context.Context, request ListKmsiSettingsRequest) (response ListKmsiSettingsResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.listKmsiSettings, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = ListKmsiSettingsResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = ListKmsiSettingsResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(ListKmsiSettingsResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into ListKmsiSettingsResponse") + } + return +} + +// listKmsiSettings implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) listKmsiSettings(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/KmsiSettings", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response ListKmsiSettingsResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "ListKmsiSettings", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// ListMyApiKeys Search Api Key +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/ListMyApiKeys.go.html to see an example of how to use ListMyApiKeys API. +func (client IdentityDomainsClient) ListMyApiKeys(ctx context.Context, request ListMyApiKeysRequest) (response ListMyApiKeysResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.listMyApiKeys, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = ListMyApiKeysResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = ListMyApiKeysResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(ListMyApiKeysResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into ListMyApiKeysResponse") + } + return +} + +// listMyApiKeys implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) listMyApiKeys(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/MyApiKeys", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response ListMyApiKeysResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "ListMyApiKeys", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// ListMyAuthTokens Search AuthTokens +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/ListMyAuthTokens.go.html to see an example of how to use ListMyAuthTokens API. +func (client IdentityDomainsClient) ListMyAuthTokens(ctx context.Context, request ListMyAuthTokensRequest) (response ListMyAuthTokensResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.listMyAuthTokens, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = ListMyAuthTokensResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = ListMyAuthTokensResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(ListMyAuthTokensResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into ListMyAuthTokensResponse") + } + return +} + +// listMyAuthTokens implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) listMyAuthTokens(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/MyAuthTokens", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response ListMyAuthTokensResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "ListMyAuthTokens", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// ListMyCustomerSecretKeys Search user's customer secret key +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/ListMyCustomerSecretKeys.go.html to see an example of how to use ListMyCustomerSecretKeys API. +func (client IdentityDomainsClient) ListMyCustomerSecretKeys(ctx context.Context, request ListMyCustomerSecretKeysRequest) (response ListMyCustomerSecretKeysResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.listMyCustomerSecretKeys, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = ListMyCustomerSecretKeysResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = ListMyCustomerSecretKeysResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(ListMyCustomerSecretKeysResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into ListMyCustomerSecretKeysResponse") + } + return +} + +// listMyCustomerSecretKeys implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) listMyCustomerSecretKeys(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/MyCustomerSecretKeys", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response ListMyCustomerSecretKeysResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "ListMyCustomerSecretKeys", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// ListMyDevices Search Devices +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/ListMyDevices.go.html to see an example of how to use ListMyDevices API. +func (client IdentityDomainsClient) ListMyDevices(ctx context.Context, request ListMyDevicesRequest) (response ListMyDevicesResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.listMyDevices, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = ListMyDevicesResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = ListMyDevicesResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(ListMyDevicesResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into ListMyDevicesResponse") + } + return +} + +// listMyDevices implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) listMyDevices(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/MyDevices", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response ListMyDevicesResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "ListMyDevices", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// ListMyGroups Search My Groups +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/ListMyGroups.go.html to see an example of how to use ListMyGroups API. +func (client IdentityDomainsClient) ListMyGroups(ctx context.Context, request ListMyGroupsRequest) (response ListMyGroupsResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.listMyGroups, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = ListMyGroupsResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = ListMyGroupsResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(ListMyGroupsResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into ListMyGroupsResponse") + } + return +} + +// listMyGroups implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) listMyGroups(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/MyGroups", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response ListMyGroupsResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "ListMyGroups", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// ListMyOAuth2ClientCredentials Search oauth2 client credentials +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/ListMyOAuth2ClientCredentials.go.html to see an example of how to use ListMyOAuth2ClientCredentials API. +func (client IdentityDomainsClient) ListMyOAuth2ClientCredentials(ctx context.Context, request ListMyOAuth2ClientCredentialsRequest) (response ListMyOAuth2ClientCredentialsResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.listMyOAuth2ClientCredentials, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = ListMyOAuth2ClientCredentialsResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = ListMyOAuth2ClientCredentialsResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(ListMyOAuth2ClientCredentialsResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into ListMyOAuth2ClientCredentialsResponse") + } + return +} + +// listMyOAuth2ClientCredentials implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) listMyOAuth2ClientCredentials(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/MyOAuth2ClientCredentials", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response ListMyOAuth2ClientCredentialsResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "ListMyOAuth2ClientCredentials", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// ListMySmtpCredentials Search smtp credentials +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/ListMySmtpCredentials.go.html to see an example of how to use ListMySmtpCredentials API. +func (client IdentityDomainsClient) ListMySmtpCredentials(ctx context.Context, request ListMySmtpCredentialsRequest) (response ListMySmtpCredentialsResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.listMySmtpCredentials, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = ListMySmtpCredentialsResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = ListMySmtpCredentialsResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(ListMySmtpCredentialsResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into ListMySmtpCredentialsResponse") + } + return +} + +// listMySmtpCredentials implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) listMySmtpCredentials(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/MySmtpCredentials", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response ListMySmtpCredentialsResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "ListMySmtpCredentials", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// ListMySupportAccounts Search Support Accounts +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/ListMySupportAccounts.go.html to see an example of how to use ListMySupportAccounts API. +func (client IdentityDomainsClient) ListMySupportAccounts(ctx context.Context, request ListMySupportAccountsRequest) (response ListMySupportAccountsResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.listMySupportAccounts, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = ListMySupportAccountsResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = ListMySupportAccountsResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(ListMySupportAccountsResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into ListMySupportAccountsResponse") + } + return +} + +// listMySupportAccounts implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) listMySupportAccounts(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/MySupportAccounts", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response ListMySupportAccountsResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "ListMySupportAccounts", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// ListMyTrustedUserAgents Search Trusted User Agents +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/ListMyTrustedUserAgents.go.html to see an example of how to use ListMyTrustedUserAgents API. +func (client IdentityDomainsClient) ListMyTrustedUserAgents(ctx context.Context, request ListMyTrustedUserAgentsRequest) (response ListMyTrustedUserAgentsResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.listMyTrustedUserAgents, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = ListMyTrustedUserAgentsResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = ListMyTrustedUserAgentsResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(ListMyTrustedUserAgentsResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into ListMyTrustedUserAgentsResponse") + } + return +} + +// listMyTrustedUserAgents implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) listMyTrustedUserAgents(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/MyTrustedUserAgents", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response ListMyTrustedUserAgentsResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "ListMyTrustedUserAgents", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// ListMyUserDbCredentials Search a User's DBCredentials +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/ListMyUserDbCredentials.go.html to see an example of how to use ListMyUserDbCredentials API. +func (client IdentityDomainsClient) ListMyUserDbCredentials(ctx context.Context, request ListMyUserDbCredentialsRequest) (response ListMyUserDbCredentialsResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.listMyUserDbCredentials, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = ListMyUserDbCredentialsResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = ListMyUserDbCredentialsResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(ListMyUserDbCredentialsResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into ListMyUserDbCredentialsResponse") + } + return +} + +// listMyUserDbCredentials implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) listMyUserDbCredentials(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/MyUserDbCredentials", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response ListMyUserDbCredentialsResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "ListMyUserDbCredentials", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// ListOAuth2ClientCredentials Search oauth2 client credentials +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/ListOAuth2ClientCredentials.go.html to see an example of how to use ListOAuth2ClientCredentials API. +func (client IdentityDomainsClient) ListOAuth2ClientCredentials(ctx context.Context, request ListOAuth2ClientCredentialsRequest) (response ListOAuth2ClientCredentialsResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.listOAuth2ClientCredentials, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = ListOAuth2ClientCredentialsResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = ListOAuth2ClientCredentialsResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(ListOAuth2ClientCredentialsResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into ListOAuth2ClientCredentialsResponse") + } + return +} + +// listOAuth2ClientCredentials implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) listOAuth2ClientCredentials(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/OAuth2ClientCredentials", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response ListOAuth2ClientCredentialsResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "ListOAuth2ClientCredentials", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// ListPasswordPolicies Search Password Policies +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/ListPasswordPolicies.go.html to see an example of how to use ListPasswordPolicies API. +func (client IdentityDomainsClient) ListPasswordPolicies(ctx context.Context, request ListPasswordPoliciesRequest) (response ListPasswordPoliciesResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.listPasswordPolicies, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = ListPasswordPoliciesResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = ListPasswordPoliciesResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(ListPasswordPoliciesResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into ListPasswordPoliciesResponse") + } + return +} + +// listPasswordPolicies implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) listPasswordPolicies(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/PasswordPolicies", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response ListPasswordPoliciesResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "ListPasswordPolicies", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// ListSmtpCredentials Search smtp credentials +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/ListSmtpCredentials.go.html to see an example of how to use ListSmtpCredentials API. +func (client IdentityDomainsClient) ListSmtpCredentials(ctx context.Context, request ListSmtpCredentialsRequest) (response ListSmtpCredentialsResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.listSmtpCredentials, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = ListSmtpCredentialsResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = ListSmtpCredentialsResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(ListSmtpCredentialsResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into ListSmtpCredentialsResponse") + } + return +} + +// listSmtpCredentials implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) listSmtpCredentials(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/SmtpCredentials", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response ListSmtpCredentialsResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "ListSmtpCredentials", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// ListUserDbCredentials Search a User's DBCredentials +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/ListUserDbCredentials.go.html to see an example of how to use ListUserDbCredentials API. +func (client IdentityDomainsClient) ListUserDbCredentials(ctx context.Context, request ListUserDbCredentialsRequest) (response ListUserDbCredentialsResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.listUserDbCredentials, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = ListUserDbCredentialsResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = ListUserDbCredentialsResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(ListUserDbCredentialsResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into ListUserDbCredentialsResponse") + } + return +} + +// listUserDbCredentials implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) listUserDbCredentials(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/UserDbCredentials", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response ListUserDbCredentialsResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "ListUserDbCredentials", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// ListUsers Search Users +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/ListUsers.go.html to see an example of how to use ListUsers API. +func (client IdentityDomainsClient) ListUsers(ctx context.Context, request ListUsersRequest) (response ListUsersResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.listUsers, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = ListUsersResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = ListUsersResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(ListUsersResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into ListUsersResponse") + } + return +} + +// listUsers implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) listUsers(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/Users", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response ListUsersResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "ListUsers", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// PatchApiKey Update user's api key +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PatchApiKey.go.html to see an example of how to use PatchApiKey API. +func (client IdentityDomainsClient) PatchApiKey(ctx context.Context, request PatchApiKeyRequest) (response PatchApiKeyResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.patchApiKey, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = PatchApiKeyResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = PatchApiKeyResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(PatchApiKeyResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into PatchApiKeyResponse") + } + return +} + +// patchApiKey implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) patchApiKey(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPatch, "/ApiKeys/{apiKeyId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response PatchApiKeyResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "PatchApiKey", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// PatchAuthToken Update user's AuthToken +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PatchAuthToken.go.html to see an example of how to use PatchAuthToken API. +func (client IdentityDomainsClient) PatchAuthToken(ctx context.Context, request PatchAuthTokenRequest) (response PatchAuthTokenResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.patchAuthToken, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = PatchAuthTokenResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = PatchAuthTokenResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(PatchAuthTokenResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into PatchAuthTokenResponse") + } + return +} + +// patchAuthToken implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) patchAuthToken(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPatch, "/AuthTokens/{authTokenId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response PatchAuthTokenResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "PatchAuthToken", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// PatchCustomerSecretKey Update user's customer secret key +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PatchCustomerSecretKey.go.html to see an example of how to use PatchCustomerSecretKey API. +func (client IdentityDomainsClient) PatchCustomerSecretKey(ctx context.Context, request PatchCustomerSecretKeyRequest) (response PatchCustomerSecretKeyResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.patchCustomerSecretKey, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = PatchCustomerSecretKeyResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = PatchCustomerSecretKeyResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(PatchCustomerSecretKeyResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into PatchCustomerSecretKeyResponse") + } + return +} + +// patchCustomerSecretKey implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) patchCustomerSecretKey(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPatch, "/CustomerSecretKeys/{customerSecretKeyId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response PatchCustomerSecretKeyResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "PatchCustomerSecretKey", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// PatchDynamicResourceGroup Update a DynamicResourceGroup +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PatchDynamicResourceGroup.go.html to see an example of how to use PatchDynamicResourceGroup API. +func (client IdentityDomainsClient) PatchDynamicResourceGroup(ctx context.Context, request PatchDynamicResourceGroupRequest) (response PatchDynamicResourceGroupResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.patchDynamicResourceGroup, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = PatchDynamicResourceGroupResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = PatchDynamicResourceGroupResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(PatchDynamicResourceGroupResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into PatchDynamicResourceGroupResponse") + } + return +} + +// patchDynamicResourceGroup implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) patchDynamicResourceGroup(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPatch, "/DynamicResourceGroups/{dynamicResourceGroupId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response PatchDynamicResourceGroupResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "PatchDynamicResourceGroup", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// PatchGroup Update a Group +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PatchGroup.go.html to see an example of how to use PatchGroup API. +func (client IdentityDomainsClient) PatchGroup(ctx context.Context, request PatchGroupRequest) (response PatchGroupResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.patchGroup, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = PatchGroupResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = PatchGroupResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(PatchGroupResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into PatchGroupResponse") + } + return +} + +// patchGroup implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) patchGroup(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPatch, "/Groups/{groupId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response PatchGroupResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "PatchGroup", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// PatchIdentityProvider Update an Identity Provider +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PatchIdentityProvider.go.html to see an example of how to use PatchIdentityProvider API. +func (client IdentityDomainsClient) PatchIdentityProvider(ctx context.Context, request PatchIdentityProviderRequest) (response PatchIdentityProviderResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.patchIdentityProvider, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = PatchIdentityProviderResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = PatchIdentityProviderResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(PatchIdentityProviderResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into PatchIdentityProviderResponse") + } + return +} + +// patchIdentityProvider implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) patchIdentityProvider(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPatch, "/IdentityProviders/{identityProviderId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response PatchIdentityProviderResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "PatchIdentityProvider", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// PatchKmsiSetting Update a Setting +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PatchKmsiSetting.go.html to see an example of how to use PatchKmsiSetting API. +func (client IdentityDomainsClient) PatchKmsiSetting(ctx context.Context, request PatchKmsiSettingRequest) (response PatchKmsiSettingResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.patchKmsiSetting, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = PatchKmsiSettingResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = PatchKmsiSettingResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(PatchKmsiSettingResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into PatchKmsiSettingResponse") + } + return +} + +// patchKmsiSetting implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) patchKmsiSetting(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPatch, "/KmsiSettings/{kmsiSettingId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response PatchKmsiSettingResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "PatchKmsiSetting", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// PatchMe Update User Info +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PatchMe.go.html to see an example of how to use PatchMe API. +func (client IdentityDomainsClient) PatchMe(ctx context.Context, request PatchMeRequest) (response PatchMeResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.patchMe, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = PatchMeResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = PatchMeResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(PatchMeResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into PatchMeResponse") + } + return +} + +// patchMe implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) patchMe(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPatch, "/Me", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response PatchMeResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "PatchMe", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// PatchMyApiKey Update user's api key +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PatchMyApiKey.go.html to see an example of how to use PatchMyApiKey API. +func (client IdentityDomainsClient) PatchMyApiKey(ctx context.Context, request PatchMyApiKeyRequest) (response PatchMyApiKeyResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.patchMyApiKey, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = PatchMyApiKeyResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = PatchMyApiKeyResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(PatchMyApiKeyResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into PatchMyApiKeyResponse") + } + return +} + +// patchMyApiKey implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) patchMyApiKey(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPatch, "/MyApiKeys/{myApiKeyId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response PatchMyApiKeyResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "PatchMyApiKey", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// PatchMyAuthToken Update user's AuthToken +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PatchMyAuthToken.go.html to see an example of how to use PatchMyAuthToken API. +func (client IdentityDomainsClient) PatchMyAuthToken(ctx context.Context, request PatchMyAuthTokenRequest) (response PatchMyAuthTokenResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.patchMyAuthToken, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = PatchMyAuthTokenResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = PatchMyAuthTokenResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(PatchMyAuthTokenResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into PatchMyAuthTokenResponse") + } + return +} + +// patchMyAuthToken implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) patchMyAuthToken(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPatch, "/MyAuthTokens/{myAuthTokenId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response PatchMyAuthTokenResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "PatchMyAuthToken", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// PatchMyCustomerSecretKey Update user's customer secret key +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PatchMyCustomerSecretKey.go.html to see an example of how to use PatchMyCustomerSecretKey API. +func (client IdentityDomainsClient) PatchMyCustomerSecretKey(ctx context.Context, request PatchMyCustomerSecretKeyRequest) (response PatchMyCustomerSecretKeyResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.patchMyCustomerSecretKey, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = PatchMyCustomerSecretKeyResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = PatchMyCustomerSecretKeyResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(PatchMyCustomerSecretKeyResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into PatchMyCustomerSecretKeyResponse") + } + return +} + +// patchMyCustomerSecretKey implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) patchMyCustomerSecretKey(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPatch, "/MyCustomerSecretKeys/{myCustomerSecretKeyId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response PatchMyCustomerSecretKeyResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "PatchMyCustomerSecretKey", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// PatchMyDevice Update a Device +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PatchMyDevice.go.html to see an example of how to use PatchMyDevice API. +func (client IdentityDomainsClient) PatchMyDevice(ctx context.Context, request PatchMyDeviceRequest) (response PatchMyDeviceResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.patchMyDevice, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = PatchMyDeviceResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = PatchMyDeviceResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(PatchMyDeviceResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into PatchMyDeviceResponse") + } + return +} + +// patchMyDevice implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) patchMyDevice(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPatch, "/MyDevices/{myDeviceId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response PatchMyDeviceResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "PatchMyDevice", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// PatchMyOAuth2ClientCredential Update user's oauth2 client credential +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PatchMyOAuth2ClientCredential.go.html to see an example of how to use PatchMyOAuth2ClientCredential API. +func (client IdentityDomainsClient) PatchMyOAuth2ClientCredential(ctx context.Context, request PatchMyOAuth2ClientCredentialRequest) (response PatchMyOAuth2ClientCredentialResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.patchMyOAuth2ClientCredential, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = PatchMyOAuth2ClientCredentialResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = PatchMyOAuth2ClientCredentialResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(PatchMyOAuth2ClientCredentialResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into PatchMyOAuth2ClientCredentialResponse") + } + return +} + +// patchMyOAuth2ClientCredential implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) patchMyOAuth2ClientCredential(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPatch, "/MyOAuth2ClientCredentials/{myOAuth2ClientCredentialId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response PatchMyOAuth2ClientCredentialResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "PatchMyOAuth2ClientCredential", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// PatchMySmtpCredential Update user's smtp credentials +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PatchMySmtpCredential.go.html to see an example of how to use PatchMySmtpCredential API. +func (client IdentityDomainsClient) PatchMySmtpCredential(ctx context.Context, request PatchMySmtpCredentialRequest) (response PatchMySmtpCredentialResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.patchMySmtpCredential, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = PatchMySmtpCredentialResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = PatchMySmtpCredentialResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(PatchMySmtpCredentialResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into PatchMySmtpCredentialResponse") + } + return +} + +// patchMySmtpCredential implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) patchMySmtpCredential(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPatch, "/MySmtpCredentials/{mySmtpCredentialId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response PatchMySmtpCredentialResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "PatchMySmtpCredential", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// PatchOAuth2ClientCredential Update user's oauth2 client credential +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PatchOAuth2ClientCredential.go.html to see an example of how to use PatchOAuth2ClientCredential API. +func (client IdentityDomainsClient) PatchOAuth2ClientCredential(ctx context.Context, request PatchOAuth2ClientCredentialRequest) (response PatchOAuth2ClientCredentialResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.patchOAuth2ClientCredential, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = PatchOAuth2ClientCredentialResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = PatchOAuth2ClientCredentialResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(PatchOAuth2ClientCredentialResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into PatchOAuth2ClientCredentialResponse") + } + return +} + +// patchOAuth2ClientCredential implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) patchOAuth2ClientCredential(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPatch, "/OAuth2ClientCredentials/{oAuth2ClientCredentialId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response PatchOAuth2ClientCredentialResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "PatchOAuth2ClientCredential", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// PatchPasswordPolicy Update a Password Policy +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PatchPasswordPolicy.go.html to see an example of how to use PatchPasswordPolicy API. +func (client IdentityDomainsClient) PatchPasswordPolicy(ctx context.Context, request PatchPasswordPolicyRequest) (response PatchPasswordPolicyResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.patchPasswordPolicy, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = PatchPasswordPolicyResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = PatchPasswordPolicyResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(PatchPasswordPolicyResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into PatchPasswordPolicyResponse") + } + return +} + +// patchPasswordPolicy implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) patchPasswordPolicy(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPatch, "/PasswordPolicies/{passwordPolicyId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response PatchPasswordPolicyResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "PatchPasswordPolicy", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// PatchSmtpCredential Update user's smtp credentials +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PatchSmtpCredential.go.html to see an example of how to use PatchSmtpCredential API. +func (client IdentityDomainsClient) PatchSmtpCredential(ctx context.Context, request PatchSmtpCredentialRequest) (response PatchSmtpCredentialResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.patchSmtpCredential, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = PatchSmtpCredentialResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = PatchSmtpCredentialResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(PatchSmtpCredentialResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into PatchSmtpCredentialResponse") + } + return +} + +// patchSmtpCredential implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) patchSmtpCredential(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPatch, "/SmtpCredentials/{smtpCredentialId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response PatchSmtpCredentialResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "PatchSmtpCredential", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// PatchUser Update a User +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PatchUser.go.html to see an example of how to use PatchUser API. +func (client IdentityDomainsClient) PatchUser(ctx context.Context, request PatchUserRequest) (response PatchUserResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.patchUser, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = PatchUserResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = PatchUserResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(PatchUserResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into PatchUserResponse") + } + return +} + +// patchUser implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) patchUser(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPatch, "/Users/{userId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response PatchUserResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "PatchUser", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// PutAuthenticationFactorSetting Replace Authentication Factor Settings +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PutAuthenticationFactorSetting.go.html to see an example of how to use PutAuthenticationFactorSetting API. +func (client IdentityDomainsClient) PutAuthenticationFactorSetting(ctx context.Context, request PutAuthenticationFactorSettingRequest) (response PutAuthenticationFactorSettingResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.putAuthenticationFactorSetting, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = PutAuthenticationFactorSettingResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = PutAuthenticationFactorSettingResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(PutAuthenticationFactorSettingResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into PutAuthenticationFactorSettingResponse") + } + return +} + +// putAuthenticationFactorSetting implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) putAuthenticationFactorSetting(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPut, "/AuthenticationFactorSettings/{authenticationFactorSettingId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response PutAuthenticationFactorSettingResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "PutAuthenticationFactorSetting", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// PutDynamicResourceGroup Replace a DynamicResourceGroup +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PutDynamicResourceGroup.go.html to see an example of how to use PutDynamicResourceGroup API. +func (client IdentityDomainsClient) PutDynamicResourceGroup(ctx context.Context, request PutDynamicResourceGroupRequest) (response PutDynamicResourceGroupResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.putDynamicResourceGroup, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = PutDynamicResourceGroupResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = PutDynamicResourceGroupResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(PutDynamicResourceGroupResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into PutDynamicResourceGroupResponse") + } + return +} + +// putDynamicResourceGroup implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) putDynamicResourceGroup(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPut, "/DynamicResourceGroups/{dynamicResourceGroupId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response PutDynamicResourceGroupResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "PutDynamicResourceGroup", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// PutGroup Replace a Group +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PutGroup.go.html to see an example of how to use PutGroup API. +func (client IdentityDomainsClient) PutGroup(ctx context.Context, request PutGroupRequest) (response PutGroupResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.putGroup, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = PutGroupResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = PutGroupResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(PutGroupResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into PutGroupResponse") + } + return +} + +// putGroup implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) putGroup(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPut, "/Groups/{groupId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response PutGroupResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "PutGroup", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// PutIdentityProvider Replace an Identity Provider +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PutIdentityProvider.go.html to see an example of how to use PutIdentityProvider API. +func (client IdentityDomainsClient) PutIdentityProvider(ctx context.Context, request PutIdentityProviderRequest) (response PutIdentityProviderResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.putIdentityProvider, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = PutIdentityProviderResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = PutIdentityProviderResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(PutIdentityProviderResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into PutIdentityProviderResponse") + } + return +} + +// putIdentityProvider implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) putIdentityProvider(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPut, "/IdentityProviders/{identityProviderId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response PutIdentityProviderResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "PutIdentityProvider", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// PutKmsiSetting Replace KmsiSettings +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PutKmsiSetting.go.html to see an example of how to use PutKmsiSetting API. +func (client IdentityDomainsClient) PutKmsiSetting(ctx context.Context, request PutKmsiSettingRequest) (response PutKmsiSettingResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.putKmsiSetting, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = PutKmsiSettingResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = PutKmsiSettingResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(PutKmsiSettingResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into PutKmsiSettingResponse") + } + return +} + +// putKmsiSetting implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) putKmsiSetting(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPut, "/KmsiSettings/{kmsiSettingId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response PutKmsiSettingResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "PutKmsiSetting", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// PutMe Replace User Info +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PutMe.go.html to see an example of how to use PutMe API. +func (client IdentityDomainsClient) PutMe(ctx context.Context, request PutMeRequest) (response PutMeResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.putMe, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = PutMeResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = PutMeResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(PutMeResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into PutMeResponse") + } + return +} + +// putMe implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) putMe(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPut, "/Me", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response PutMeResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "PutMe", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// PutMePasswordChanger Self-Service Password Update +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PutMePasswordChanger.go.html to see an example of how to use PutMePasswordChanger API. +func (client IdentityDomainsClient) PutMePasswordChanger(ctx context.Context, request PutMePasswordChangerRequest) (response PutMePasswordChangerResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.putMePasswordChanger, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = PutMePasswordChangerResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = PutMePasswordChangerResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(PutMePasswordChangerResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into PutMePasswordChangerResponse") + } + return +} + +// putMePasswordChanger implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) putMePasswordChanger(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPut, "/MePasswordChanger", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response PutMePasswordChangerResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "PutMePasswordChanger", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// PutPasswordPolicy Replace a Password Policy +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PutPasswordPolicy.go.html to see an example of how to use PutPasswordPolicy API. +func (client IdentityDomainsClient) PutPasswordPolicy(ctx context.Context, request PutPasswordPolicyRequest) (response PutPasswordPolicyResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.putPasswordPolicy, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = PutPasswordPolicyResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = PutPasswordPolicyResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(PutPasswordPolicyResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into PutPasswordPolicyResponse") + } + return +} + +// putPasswordPolicy implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) putPasswordPolicy(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPut, "/PasswordPolicies/{passwordPolicyId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response PutPasswordPolicyResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "PutPasswordPolicy", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// PutUser Replace a User +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PutUser.go.html to see an example of how to use PutUser API. +func (client IdentityDomainsClient) PutUser(ctx context.Context, request PutUserRequest) (response PutUserResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.putUser, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = PutUserResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = PutUserResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(PutUserResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into PutUserResponse") + } + return +} + +// putUser implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) putUser(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPut, "/Users/{userId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response PutUserResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "PutUser", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// PutUserCapabilitiesChanger Change user capabilities +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PutUserCapabilitiesChanger.go.html to see an example of how to use PutUserCapabilitiesChanger API. +func (client IdentityDomainsClient) PutUserCapabilitiesChanger(ctx context.Context, request PutUserCapabilitiesChangerRequest) (response PutUserCapabilitiesChangerResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.putUserCapabilitiesChanger, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = PutUserCapabilitiesChangerResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = PutUserCapabilitiesChangerResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(PutUserCapabilitiesChangerResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into PutUserCapabilitiesChangerResponse") + } + return +} + +// putUserCapabilitiesChanger implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) putUserCapabilitiesChanger(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPut, "/UserCapabilitiesChanger/{userCapabilitiesChangerId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response PutUserCapabilitiesChangerResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "PutUserCapabilitiesChanger", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// PutUserPasswordChanger Change a User Password (Known Value) +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PutUserPasswordChanger.go.html to see an example of how to use PutUserPasswordChanger API. +func (client IdentityDomainsClient) PutUserPasswordChanger(ctx context.Context, request PutUserPasswordChangerRequest) (response PutUserPasswordChangerResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.putUserPasswordChanger, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = PutUserPasswordChangerResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = PutUserPasswordChangerResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(PutUserPasswordChangerResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into PutUserPasswordChangerResponse") + } + return +} + +// putUserPasswordChanger implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) putUserPasswordChanger(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPut, "/UserPasswordChanger/{userPasswordChangerId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response PutUserPasswordChangerResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "PutUserPasswordChanger", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// PutUserPasswordResetter Reset a User Password (Random Value) +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PutUserPasswordResetter.go.html to see an example of how to use PutUserPasswordResetter API. +func (client IdentityDomainsClient) PutUserPasswordResetter(ctx context.Context, request PutUserPasswordResetterRequest) (response PutUserPasswordResetterResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.putUserPasswordResetter, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = PutUserPasswordResetterResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = PutUserPasswordResetterResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(PutUserPasswordResetterResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into PutUserPasswordResetterResponse") + } + return +} + +// putUserPasswordResetter implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) putUserPasswordResetter(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPut, "/UserPasswordResetter/{userPasswordResetterId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response PutUserPasswordResetterResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "PutUserPasswordResetter", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// PutUserStatusChanger Change User Status +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PutUserStatusChanger.go.html to see an example of how to use PutUserStatusChanger API. +func (client IdentityDomainsClient) PutUserStatusChanger(ctx context.Context, request PutUserStatusChangerRequest) (response PutUserStatusChangerResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.putUserStatusChanger, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = PutUserStatusChangerResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = PutUserStatusChangerResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(PutUserStatusChangerResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into PutUserStatusChangerResponse") + } + return +} + +// putUserStatusChanger implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) putUserStatusChanger(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPut, "/UserStatusChanger/{userStatusChangerId}", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response PutUserStatusChangerResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "PutUserStatusChanger", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// SearchApiKeys Search ApiKeys Using POST +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/SearchApiKeys.go.html to see an example of how to use SearchApiKeys API. +func (client IdentityDomainsClient) SearchApiKeys(ctx context.Context, request SearchApiKeysRequest) (response SearchApiKeysResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.searchApiKeys, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = SearchApiKeysResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = SearchApiKeysResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(SearchApiKeysResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into SearchApiKeysResponse") + } + return +} + +// searchApiKeys implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) searchApiKeys(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPost, "/ApiKeys/.search", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response SearchApiKeysResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "SearchApiKeys", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// SearchAuthTokens Search AuthTokens Using POST +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/SearchAuthTokens.go.html to see an example of how to use SearchAuthTokens API. +func (client IdentityDomainsClient) SearchAuthTokens(ctx context.Context, request SearchAuthTokensRequest) (response SearchAuthTokensResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.searchAuthTokens, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = SearchAuthTokensResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = SearchAuthTokensResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(SearchAuthTokensResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into SearchAuthTokensResponse") + } + return +} + +// searchAuthTokens implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) searchAuthTokens(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPost, "/AuthTokens/.search", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response SearchAuthTokensResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "SearchAuthTokens", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// SearchAuthenticationFactorSettings Search Authentication Factor Settings Using POST +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/SearchAuthenticationFactorSettings.go.html to see an example of how to use SearchAuthenticationFactorSettings API. +func (client IdentityDomainsClient) SearchAuthenticationFactorSettings(ctx context.Context, request SearchAuthenticationFactorSettingsRequest) (response SearchAuthenticationFactorSettingsResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.searchAuthenticationFactorSettings, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = SearchAuthenticationFactorSettingsResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = SearchAuthenticationFactorSettingsResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(SearchAuthenticationFactorSettingsResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into SearchAuthenticationFactorSettingsResponse") + } + return +} + +// searchAuthenticationFactorSettings implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) searchAuthenticationFactorSettings(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPost, "/AuthenticationFactorSettings/.search", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response SearchAuthenticationFactorSettingsResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "SearchAuthenticationFactorSettings", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// SearchCustomerSecretKeys Search CustomerSecretKeys Using POST +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/SearchCustomerSecretKeys.go.html to see an example of how to use SearchCustomerSecretKeys API. +func (client IdentityDomainsClient) SearchCustomerSecretKeys(ctx context.Context, request SearchCustomerSecretKeysRequest) (response SearchCustomerSecretKeysResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.searchCustomerSecretKeys, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = SearchCustomerSecretKeysResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = SearchCustomerSecretKeysResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(SearchCustomerSecretKeysResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into SearchCustomerSecretKeysResponse") + } + return +} + +// searchCustomerSecretKeys implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) searchCustomerSecretKeys(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPost, "/CustomerSecretKeys/.search", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response SearchCustomerSecretKeysResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "SearchCustomerSecretKeys", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// SearchDynamicResourceGroups Search DynamicResourceGroups Using POST +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/SearchDynamicResourceGroups.go.html to see an example of how to use SearchDynamicResourceGroups API. +func (client IdentityDomainsClient) SearchDynamicResourceGroups(ctx context.Context, request SearchDynamicResourceGroupsRequest) (response SearchDynamicResourceGroupsResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.searchDynamicResourceGroups, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = SearchDynamicResourceGroupsResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = SearchDynamicResourceGroupsResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(SearchDynamicResourceGroupsResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into SearchDynamicResourceGroupsResponse") + } + return +} + +// searchDynamicResourceGroups implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) searchDynamicResourceGroups(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPost, "/DynamicResourceGroups/.search", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response SearchDynamicResourceGroupsResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "SearchDynamicResourceGroups", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// SearchGroups Search Groups Using POST +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/SearchGroups.go.html to see an example of how to use SearchGroups API. +func (client IdentityDomainsClient) SearchGroups(ctx context.Context, request SearchGroupsRequest) (response SearchGroupsResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.searchGroups, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = SearchGroupsResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = SearchGroupsResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(SearchGroupsResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into SearchGroupsResponse") + } + return +} + +// searchGroups implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) searchGroups(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPost, "/Groups/.search", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response SearchGroupsResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "SearchGroups", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// SearchIdentityProviders Search Identity Providers Using POST +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/SearchIdentityProviders.go.html to see an example of how to use SearchIdentityProviders API. +func (client IdentityDomainsClient) SearchIdentityProviders(ctx context.Context, request SearchIdentityProvidersRequest) (response SearchIdentityProvidersResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.searchIdentityProviders, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = SearchIdentityProvidersResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = SearchIdentityProvidersResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(SearchIdentityProvidersResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into SearchIdentityProvidersResponse") + } + return +} + +// searchIdentityProviders implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) searchIdentityProviders(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPost, "/IdentityProviders/.search", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response SearchIdentityProvidersResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "SearchIdentityProviders", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// SearchKmsiSettings Search KmsiSettings Using POST +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/SearchKmsiSettings.go.html to see an example of how to use SearchKmsiSettings API. +func (client IdentityDomainsClient) SearchKmsiSettings(ctx context.Context, request SearchKmsiSettingsRequest) (response SearchKmsiSettingsResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.searchKmsiSettings, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = SearchKmsiSettingsResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = SearchKmsiSettingsResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(SearchKmsiSettingsResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into SearchKmsiSettingsResponse") + } + return +} + +// searchKmsiSettings implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) searchKmsiSettings(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPost, "/KmsiSettings/.search", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response SearchKmsiSettingsResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "SearchKmsiSettings", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// SearchMyGroups Search My Groups Using POST +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/SearchMyGroups.go.html to see an example of how to use SearchMyGroups API. +func (client IdentityDomainsClient) SearchMyGroups(ctx context.Context, request SearchMyGroupsRequest) (response SearchMyGroupsResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.searchMyGroups, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = SearchMyGroupsResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = SearchMyGroupsResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(SearchMyGroupsResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into SearchMyGroupsResponse") + } + return +} + +// searchMyGroups implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) searchMyGroups(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPost, "/MyGroups/.search", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response SearchMyGroupsResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "SearchMyGroups", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// SearchOAuth2ClientCredentials Search Oauth2Clients Using POST +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/SearchOAuth2ClientCredentials.go.html to see an example of how to use SearchOAuth2ClientCredentials API. +func (client IdentityDomainsClient) SearchOAuth2ClientCredentials(ctx context.Context, request SearchOAuth2ClientCredentialsRequest) (response SearchOAuth2ClientCredentialsResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.searchOAuth2ClientCredentials, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = SearchOAuth2ClientCredentialsResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = SearchOAuth2ClientCredentialsResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(SearchOAuth2ClientCredentialsResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into SearchOAuth2ClientCredentialsResponse") + } + return +} + +// searchOAuth2ClientCredentials implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) searchOAuth2ClientCredentials(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPost, "/OAuth2ClientCredentials/.search", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response SearchOAuth2ClientCredentialsResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "SearchOAuth2ClientCredentials", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// SearchPasswordPolicies Search Password Policies Using POST +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/SearchPasswordPolicies.go.html to see an example of how to use SearchPasswordPolicies API. +func (client IdentityDomainsClient) SearchPasswordPolicies(ctx context.Context, request SearchPasswordPoliciesRequest) (response SearchPasswordPoliciesResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.searchPasswordPolicies, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = SearchPasswordPoliciesResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = SearchPasswordPoliciesResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(SearchPasswordPoliciesResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into SearchPasswordPoliciesResponse") + } + return +} + +// searchPasswordPolicies implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) searchPasswordPolicies(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPost, "/PasswordPolicies/.search", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response SearchPasswordPoliciesResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "SearchPasswordPolicies", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// SearchSmtpCredentials Search smtp credentials Using POST +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/SearchSmtpCredentials.go.html to see an example of how to use SearchSmtpCredentials API. +func (client IdentityDomainsClient) SearchSmtpCredentials(ctx context.Context, request SearchSmtpCredentialsRequest) (response SearchSmtpCredentialsResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.searchSmtpCredentials, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = SearchSmtpCredentialsResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = SearchSmtpCredentialsResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(SearchSmtpCredentialsResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into SearchSmtpCredentialsResponse") + } + return +} + +// searchSmtpCredentials implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) searchSmtpCredentials(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPost, "/SmtpCredentials/.search", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response SearchSmtpCredentialsResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "SearchSmtpCredentials", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// SearchUserDbCredentials Search a User's DBCredentials using POST +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/SearchUserDbCredentials.go.html to see an example of how to use SearchUserDbCredentials API. +func (client IdentityDomainsClient) SearchUserDbCredentials(ctx context.Context, request SearchUserDbCredentialsRequest) (response SearchUserDbCredentialsResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.searchUserDbCredentials, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = SearchUserDbCredentialsResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = SearchUserDbCredentialsResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(SearchUserDbCredentialsResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into SearchUserDbCredentialsResponse") + } + return +} + +// searchUserDbCredentials implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) searchUserDbCredentials(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPost, "/UserDbCredentials/.search", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response SearchUserDbCredentialsResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "SearchUserDbCredentials", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + +// SearchUsers Search Users Using POST +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/SearchUsers.go.html to see an example of how to use SearchUsers API. +func (client IdentityDomainsClient) SearchUsers(ctx context.Context, request SearchUsersRequest) (response SearchUsersResponse, err error) { + var ociResponse common.OCIResponse + policy := common.NoRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + + if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") { + request.OpcRetryToken = common.String(common.RetryToken()) + } + + ociResponse, err = common.Retry(ctx, request, client.searchUsers, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = SearchUsersResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = SearchUsersResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(SearchUsersResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into SearchUsersResponse") + } + return +} + +// searchUsers implements the OCIOperation interface (enables retrying operations) +func (client IdentityDomainsClient) searchUsers(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodPost, "/Users/.search", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response SearchUsersResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "" + err = common.PostProcessServiceError(err, "IdentityDomains", "SearchUsers", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/kmsi_setting.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/kmsi_setting.go new file mode 100644 index 00000000000..3698d6b0fe5 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/kmsi_setting.go @@ -0,0 +1,264 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// KmsiSetting Kmsi Settings schema +type KmsiSetting struct { + + // REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: true + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Schemas []string `mandatory:"true" json:"schemas"` + + // Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: always + // - type: string + // - uniqueness: global + Id *string `mandatory:"false" json:"id"` + + // Unique OCI identifier for the SCIM Resource. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: default + // - type: string + // - uniqueness: global + Ocid *string `mandatory:"false" json:"ocid"` + + Meta *Meta `mandatory:"false" json:"meta"` + + IdcsCreatedBy *IdcsCreatedBy `mandatory:"false" json:"idcsCreatedBy"` + + IdcsLastModifiedBy *IdcsLastModifiedBy `mandatory:"false" json:"idcsLastModifiedBy"` + + // Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsPreventedOperations []IdcsPreventedOperationsEnum `mandatory:"false" json:"idcsPreventedOperations,omitempty"` + + // A list of tags on this resource. + // **SCIM++ Properties:** + // - idcsCompositeKey: [key, value] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + Tags []Tags `mandatory:"false" json:"tags"` + + // A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + DeleteInProgress *bool `mandatory:"false" json:"deleteInProgress"` + + // The release number when the resource was upgraded. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsLastUpgradedInRelease *string `mandatory:"false" json:"idcsLastUpgradedInRelease"` + + // OCI Domain Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + DomainOcid *string `mandatory:"false" json:"domainOcid"` + + // OCI Compartment Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + CompartmentOcid *string `mandatory:"false" json:"compartmentOcid"` + + // OCI Tenant Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + TenancyOcid *string `mandatory:"false" json:"tenancyOcid"` + + // An identifier for the Resource as defined by the Service Consumer. The externalId may simplify identification of the Resource between Service Consumer and Service Provider by allowing the Consumer to refer to the Resource with its own identifier, obviating the need to store a local mapping between the local identifier of the Resource and the identifier used by the Service Provider. Each Resource MAY include a non-empty externalId value. The value of the externalId attribute is always issued by the Service Consumer and can never be specified by the Service Provider. The Service Provider MUST always interpret the externalId as scoped to the Service Consumer's tenant. + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + ExternalId *string `mandatory:"false" json:"externalId"` + + // Identifier represents validity duration in days. + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: integer + // - idcsMaxValue: 1100 + // - idcsMinValue: 1 + // - uniqueness: none + TokenValidityInDays *int `mandatory:"false" json:"tokenValidityInDays"` + + // Identifier represents duration in days within which kmsi token must be used. + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: integer + // - idcsMaxValue: 365 + // - idcsMinValue: 1 + // - uniqueness: none + LastUsedValidityInDays *int `mandatory:"false" json:"lastUsedValidityInDays"` + + // Identifier represents maximum KMSI sessions allowed in the system. + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: integer + // - idcsMaxValue: 10 + // - idcsMinValue: 1 + // - uniqueness: none + MaxAllowedSessions *int `mandatory:"false" json:"maxAllowedSessions"` + + // Identifier represents KMSI feature is enabled or not. + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + KmsiFeatureEnabled *bool `mandatory:"false" json:"kmsiFeatureEnabled"` + + // Identifier represents KMSI to be prompted to user or not. + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + KmsiPromptEnabled *bool `mandatory:"false" json:"kmsiPromptEnabled"` + + // Identifier represents whether user is prompted for ToU or not. + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + TouPromptDisabled *bool `mandatory:"false" json:"touPromptDisabled"` + + // Timestamp of when the KmsiSettings was enabled last time. + // **Added In:** 2203071610 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: dateTime + // - uniqueness: none + LastEnabledOn *string `mandatory:"false" json:"lastEnabledOn"` +} + +func (m KmsiSetting) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m KmsiSetting) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + for _, val := range m.IdcsPreventedOperations { + if _, ok := GetMappingIdcsPreventedOperationsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for IdcsPreventedOperations: %s. Supported values are: %s.", val, strings.Join(GetIdcsPreventedOperationsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/kmsi_settings.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/kmsi_settings.go new file mode 100644 index 00000000000..fb4fbdcc8b9 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/kmsi_settings.go @@ -0,0 +1,52 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// KmsiSettings The SCIM protocol defines a standard set of query parameters that can be used to filter, sort, and paginate to return zero or more resources in a query response. Queries MAY be made against a single resource or a resource type endpoint (e.g., /Users), or the service provider Base URI. +type KmsiSettings struct { + + // The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. REQUIRED. + Schemas []string `mandatory:"true" json:"schemas"` + + // The total number of results returned by the list or query operation. The value may be larger than the number of resources returned such as when returning a single page of results where multiple pages are available. REQUIRED. + TotalResults *int `mandatory:"true" json:"totalResults"` + + // A multi-valued list of complex objects containing the requested resources. This MAY be a subset of the full set of resources if pagination is requested. REQUIRED if "totalResults" is non-zero. + Resources []KmsiSetting `mandatory:"true" json:"Resources"` + + // The 1-based index of the first result in the current set of list results. REQUIRED when partial results returned due to pagination. + StartIndex *int `mandatory:"true" json:"startIndex"` + + // The number of resources returned in a list response page. REQUIRED when partial results returned due to pagination. + ItemsPerPage *int `mandatory:"true" json:"itemsPerPage"` +} + +func (m KmsiSettings) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m KmsiSettings) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/kmsi_settings_search_request.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/kmsi_settings_search_request.go new file mode 100644 index 00000000000..be80916b52f --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/kmsi_settings_search_request.go @@ -0,0 +1,52 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// KmsiSettingsSearchRequest Clients MAY execute queries without passing parameters on the URL by using the HTTP POST verb combined with the **.search** path extension. The inclusion of **.search** on the end of a valid SCIM endpoint SHALL be used to indicate the HTTP POST verb is intended to be a query operation. To create a new query result set, a SCIM client sends an HTTP POST request to the desired SCIM resource endpoint (ending in **.search**). The body of the POST request MAY include any of the parameters. +type KmsiSettingsSearchRequest struct { + + // The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. Query requests MUST be identified using the following URI: "urn:ietf:params:scim:api:messages:2.0:SearchRequest" REQUIRED. + Schemas []string `mandatory:"true" json:"schemas"` + + // A multi-valued list of strings indicating the names of resource attributes to return in the response overriding the set of attributes that would be returned by default. Attribute names MUST be in standard attribute notation (Section 3.10 (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.10)) form. See (additional retrieval query parameters (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.9)). OPTIONAL. + Attributes []string `mandatory:"false" json:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If "attributes" query parameter is also available, union of the two is fetched. Valid values : all, always, never, request, default. Values are case-insensitive. OPTIONAL. + AttributeSets []AttributeSetsEnum `mandatory:"false" json:"attributeSets,omitempty"` +} + +func (m KmsiSettingsSearchRequest) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m KmsiSettingsSearchRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + for _, val := range m.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_api_keys_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_api_keys_request_response.go new file mode 100644 index 00000000000..a740ed1aaf8 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_api_keys_request_response.go @@ -0,0 +1,177 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// ListApiKeysRequest wrapper for the ListApiKeys operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/ListApiKeys.go.html to see an example of how to use ListApiKeysRequest. +type ListApiKeysRequest struct { + + // OPTIONAL. The filter string that is used to request a subset of resources. The filter string MUST be a valid filter expression. See the Filtering section of the SCIM specification for more information (Section 3.4.2.2). The string should contain at least one condition that each item must match in order to be returned in the search results. Each condition specifies an attribute, an operator, and a value. Conditions within a filter can be connected by logical operators (such as AND and OR). Sets of conditions can be grouped together using parentheses. + Filter *string `mandatory:"false" contributesTo:"query" name:"filter"` + + // OPTIONAL. A string that indicates the attribute whose value SHALL be used to order the returned responses. The sortBy attribute MUST be in standard attribute notation form. See the Attribute Notation section of the SCIM specification for more information (Section 3.10). Also, see the Sorting section of the SCIM specification for more information (Section 3.4.2.3). + SortBy *string `mandatory:"false" contributesTo:"query" name:"sortBy"` + + // A string that indicates the order in which the sortBy parameter is applied. Allowed values are 'ascending' and 'descending'. See (Sorting Section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.3)). OPTIONAL. + SortOrder ListApiKeysSortOrderEnum `mandatory:"false" contributesTo:"query" name:"sortOrder" omitEmpty:"true"` + + // OPTIONAL. An integer that indicates the 1-based index of the first query result. See the Pagination section of the SCIM specification for more information. (Section 3.4.2.4). The number of results pages to return. The first page is 1. Specify 2 to access the second page of results, and so on. + StartIndex *int `mandatory:"false" contributesTo:"query" name:"startIndex"` + + // OPTIONAL. An integer that indicates the desired maximum number of query results per page. 1000 is the largest value that you can use. See the Pagination section of the System for Cross-Domain Identity Management Protocol specification for more information. (Section 3.4.2.4). + Count *int `mandatory:"false" contributesTo:"query" name:"count"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // The value of the `opc-next-page` response header from the previous 'List' call. + Page *string `mandatory:"false" contributesTo:"query" name:"page"` + + // The maximum number of items to return in a paginated 'List' call. + Limit *int `mandatory:"false" contributesTo:"query" name:"limit"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request ListApiKeysRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request ListApiKeysRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request ListApiKeysRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request ListApiKeysRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request ListApiKeysRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingListApiKeysSortOrderEnum(string(request.SortOrder)); !ok && request.SortOrder != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for SortOrder: %s. Supported values are: %s.", request.SortOrder, strings.Join(GetListApiKeysSortOrderEnumStringValues(), ","))) + } + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// ListApiKeysResponse wrapper for the ListApiKeys operation +type ListApiKeysResponse struct { + + // The underlying http response + RawResponse *http.Response + + // A list of ApiKeys instances + ApiKeys `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For pagination of a list of items. When paging through a list, if this header appears in the response, then a partial list might have been returned. Include this value as the `page` parameter for the subsequent GET request to get the next batch of items. + OpcNextPage *string `presentIn:"header" name:"opc-next-page"` +} + +func (response ListApiKeysResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response ListApiKeysResponse) HTTPResponse() *http.Response { + return response.RawResponse +} + +// ListApiKeysSortOrderEnum Enum with underlying type: string +type ListApiKeysSortOrderEnum string + +// Set of constants representing the allowable values for ListApiKeysSortOrderEnum +const ( + ListApiKeysSortOrderAscending ListApiKeysSortOrderEnum = "ASCENDING" + ListApiKeysSortOrderDescending ListApiKeysSortOrderEnum = "DESCENDING" +) + +var mappingListApiKeysSortOrderEnum = map[string]ListApiKeysSortOrderEnum{ + "ASCENDING": ListApiKeysSortOrderAscending, + "DESCENDING": ListApiKeysSortOrderDescending, +} + +var mappingListApiKeysSortOrderEnumLowerCase = map[string]ListApiKeysSortOrderEnum{ + "ascending": ListApiKeysSortOrderAscending, + "descending": ListApiKeysSortOrderDescending, +} + +// GetListApiKeysSortOrderEnumValues Enumerates the set of values for ListApiKeysSortOrderEnum +func GetListApiKeysSortOrderEnumValues() []ListApiKeysSortOrderEnum { + values := make([]ListApiKeysSortOrderEnum, 0) + for _, v := range mappingListApiKeysSortOrderEnum { + values = append(values, v) + } + return values +} + +// GetListApiKeysSortOrderEnumStringValues Enumerates the set of values in String for ListApiKeysSortOrderEnum +func GetListApiKeysSortOrderEnumStringValues() []string { + return []string{ + "ASCENDING", + "DESCENDING", + } +} + +// GetMappingListApiKeysSortOrderEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingListApiKeysSortOrderEnum(val string) (ListApiKeysSortOrderEnum, bool) { + enum, ok := mappingListApiKeysSortOrderEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_auth_tokens_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_auth_tokens_request_response.go new file mode 100644 index 00000000000..2e9a7a675f4 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_auth_tokens_request_response.go @@ -0,0 +1,177 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// ListAuthTokensRequest wrapper for the ListAuthTokens operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/ListAuthTokens.go.html to see an example of how to use ListAuthTokensRequest. +type ListAuthTokensRequest struct { + + // OPTIONAL. The filter string that is used to request a subset of resources. The filter string MUST be a valid filter expression. See the Filtering section of the SCIM specification for more information (Section 3.4.2.2). The string should contain at least one condition that each item must match in order to be returned in the search results. Each condition specifies an attribute, an operator, and a value. Conditions within a filter can be connected by logical operators (such as AND and OR). Sets of conditions can be grouped together using parentheses. + Filter *string `mandatory:"false" contributesTo:"query" name:"filter"` + + // OPTIONAL. A string that indicates the attribute whose value SHALL be used to order the returned responses. The sortBy attribute MUST be in standard attribute notation form. See the Attribute Notation section of the SCIM specification for more information (Section 3.10). Also, see the Sorting section of the SCIM specification for more information (Section 3.4.2.3). + SortBy *string `mandatory:"false" contributesTo:"query" name:"sortBy"` + + // A string that indicates the order in which the sortBy parameter is applied. Allowed values are 'ascending' and 'descending'. See (Sorting Section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.3)). OPTIONAL. + SortOrder ListAuthTokensSortOrderEnum `mandatory:"false" contributesTo:"query" name:"sortOrder" omitEmpty:"true"` + + // OPTIONAL. An integer that indicates the 1-based index of the first query result. See the Pagination section of the SCIM specification for more information. (Section 3.4.2.4). The number of results pages to return. The first page is 1. Specify 2 to access the second page of results, and so on. + StartIndex *int `mandatory:"false" contributesTo:"query" name:"startIndex"` + + // OPTIONAL. An integer that indicates the desired maximum number of query results per page. 1000 is the largest value that you can use. See the Pagination section of the System for Cross-Domain Identity Management Protocol specification for more information. (Section 3.4.2.4). + Count *int `mandatory:"false" contributesTo:"query" name:"count"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // The value of the `opc-next-page` response header from the previous 'List' call. + Page *string `mandatory:"false" contributesTo:"query" name:"page"` + + // The maximum number of items to return in a paginated 'List' call. + Limit *int `mandatory:"false" contributesTo:"query" name:"limit"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request ListAuthTokensRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request ListAuthTokensRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request ListAuthTokensRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request ListAuthTokensRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request ListAuthTokensRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingListAuthTokensSortOrderEnum(string(request.SortOrder)); !ok && request.SortOrder != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for SortOrder: %s. Supported values are: %s.", request.SortOrder, strings.Join(GetListAuthTokensSortOrderEnumStringValues(), ","))) + } + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// ListAuthTokensResponse wrapper for the ListAuthTokens operation +type ListAuthTokensResponse struct { + + // The underlying http response + RawResponse *http.Response + + // A list of AuthTokens instances + AuthTokens `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For pagination of a list of items. When paging through a list, if this header appears in the response, then a partial list might have been returned. Include this value as the `page` parameter for the subsequent GET request to get the next batch of items. + OpcNextPage *string `presentIn:"header" name:"opc-next-page"` +} + +func (response ListAuthTokensResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response ListAuthTokensResponse) HTTPResponse() *http.Response { + return response.RawResponse +} + +// ListAuthTokensSortOrderEnum Enum with underlying type: string +type ListAuthTokensSortOrderEnum string + +// Set of constants representing the allowable values for ListAuthTokensSortOrderEnum +const ( + ListAuthTokensSortOrderAscending ListAuthTokensSortOrderEnum = "ASCENDING" + ListAuthTokensSortOrderDescending ListAuthTokensSortOrderEnum = "DESCENDING" +) + +var mappingListAuthTokensSortOrderEnum = map[string]ListAuthTokensSortOrderEnum{ + "ASCENDING": ListAuthTokensSortOrderAscending, + "DESCENDING": ListAuthTokensSortOrderDescending, +} + +var mappingListAuthTokensSortOrderEnumLowerCase = map[string]ListAuthTokensSortOrderEnum{ + "ascending": ListAuthTokensSortOrderAscending, + "descending": ListAuthTokensSortOrderDescending, +} + +// GetListAuthTokensSortOrderEnumValues Enumerates the set of values for ListAuthTokensSortOrderEnum +func GetListAuthTokensSortOrderEnumValues() []ListAuthTokensSortOrderEnum { + values := make([]ListAuthTokensSortOrderEnum, 0) + for _, v := range mappingListAuthTokensSortOrderEnum { + values = append(values, v) + } + return values +} + +// GetListAuthTokensSortOrderEnumStringValues Enumerates the set of values in String for ListAuthTokensSortOrderEnum +func GetListAuthTokensSortOrderEnumStringValues() []string { + return []string{ + "ASCENDING", + "DESCENDING", + } +} + +// GetMappingListAuthTokensSortOrderEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingListAuthTokensSortOrderEnum(val string) (ListAuthTokensSortOrderEnum, bool) { + enum, ok := mappingListAuthTokensSortOrderEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_authentication_factor_settings_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_authentication_factor_settings_request_response.go new file mode 100644 index 00000000000..e5dd7e5ba58 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_authentication_factor_settings_request_response.go @@ -0,0 +1,117 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// ListAuthenticationFactorSettingsRequest wrapper for the ListAuthenticationFactorSettings operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/ListAuthenticationFactorSettings.go.html to see an example of how to use ListAuthenticationFactorSettingsRequest. +type ListAuthenticationFactorSettingsRequest struct { + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // The value of the `opc-next-page` response header from the previous 'List' call. + Page *string `mandatory:"false" contributesTo:"query" name:"page"` + + // The maximum number of items to return in a paginated 'List' call. + Limit *int `mandatory:"false" contributesTo:"query" name:"limit"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request ListAuthenticationFactorSettingsRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request ListAuthenticationFactorSettingsRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request ListAuthenticationFactorSettingsRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request ListAuthenticationFactorSettingsRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request ListAuthenticationFactorSettingsRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// ListAuthenticationFactorSettingsResponse wrapper for the ListAuthenticationFactorSettings operation +type ListAuthenticationFactorSettingsResponse struct { + + // The underlying http response + RawResponse *http.Response + + // A list of AuthenticationFactorSettings instances + AuthenticationFactorSettings `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For pagination of a list of items. When paging through a list, if this header appears in the response, then a partial list might have been returned. Include this value as the `page` parameter for the subsequent GET request to get the next batch of items. + OpcNextPage *string `presentIn:"header" name:"opc-next-page"` +} + +func (response ListAuthenticationFactorSettingsResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response ListAuthenticationFactorSettingsResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_customer_secret_keys_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_customer_secret_keys_request_response.go new file mode 100644 index 00000000000..7b45efe1124 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_customer_secret_keys_request_response.go @@ -0,0 +1,177 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// ListCustomerSecretKeysRequest wrapper for the ListCustomerSecretKeys operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/ListCustomerSecretKeys.go.html to see an example of how to use ListCustomerSecretKeysRequest. +type ListCustomerSecretKeysRequest struct { + + // OPTIONAL. The filter string that is used to request a subset of resources. The filter string MUST be a valid filter expression. See the Filtering section of the SCIM specification for more information (Section 3.4.2.2). The string should contain at least one condition that each item must match in order to be returned in the search results. Each condition specifies an attribute, an operator, and a value. Conditions within a filter can be connected by logical operators (such as AND and OR). Sets of conditions can be grouped together using parentheses. + Filter *string `mandatory:"false" contributesTo:"query" name:"filter"` + + // OPTIONAL. A string that indicates the attribute whose value SHALL be used to order the returned responses. The sortBy attribute MUST be in standard attribute notation form. See the Attribute Notation section of the SCIM specification for more information (Section 3.10). Also, see the Sorting section of the SCIM specification for more information (Section 3.4.2.3). + SortBy *string `mandatory:"false" contributesTo:"query" name:"sortBy"` + + // A string that indicates the order in which the sortBy parameter is applied. Allowed values are 'ascending' and 'descending'. See (Sorting Section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.3)). OPTIONAL. + SortOrder ListCustomerSecretKeysSortOrderEnum `mandatory:"false" contributesTo:"query" name:"sortOrder" omitEmpty:"true"` + + // OPTIONAL. An integer that indicates the 1-based index of the first query result. See the Pagination section of the SCIM specification for more information. (Section 3.4.2.4). The number of results pages to return. The first page is 1. Specify 2 to access the second page of results, and so on. + StartIndex *int `mandatory:"false" contributesTo:"query" name:"startIndex"` + + // OPTIONAL. An integer that indicates the desired maximum number of query results per page. 1000 is the largest value that you can use. See the Pagination section of the System for Cross-Domain Identity Management Protocol specification for more information. (Section 3.4.2.4). + Count *int `mandatory:"false" contributesTo:"query" name:"count"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // The value of the `opc-next-page` response header from the previous 'List' call. + Page *string `mandatory:"false" contributesTo:"query" name:"page"` + + // The maximum number of items to return in a paginated 'List' call. + Limit *int `mandatory:"false" contributesTo:"query" name:"limit"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request ListCustomerSecretKeysRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request ListCustomerSecretKeysRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request ListCustomerSecretKeysRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request ListCustomerSecretKeysRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request ListCustomerSecretKeysRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingListCustomerSecretKeysSortOrderEnum(string(request.SortOrder)); !ok && request.SortOrder != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for SortOrder: %s. Supported values are: %s.", request.SortOrder, strings.Join(GetListCustomerSecretKeysSortOrderEnumStringValues(), ","))) + } + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// ListCustomerSecretKeysResponse wrapper for the ListCustomerSecretKeys operation +type ListCustomerSecretKeysResponse struct { + + // The underlying http response + RawResponse *http.Response + + // A list of CustomerSecretKeys instances + CustomerSecretKeys `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For pagination of a list of items. When paging through a list, if this header appears in the response, then a partial list might have been returned. Include this value as the `page` parameter for the subsequent GET request to get the next batch of items. + OpcNextPage *string `presentIn:"header" name:"opc-next-page"` +} + +func (response ListCustomerSecretKeysResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response ListCustomerSecretKeysResponse) HTTPResponse() *http.Response { + return response.RawResponse +} + +// ListCustomerSecretKeysSortOrderEnum Enum with underlying type: string +type ListCustomerSecretKeysSortOrderEnum string + +// Set of constants representing the allowable values for ListCustomerSecretKeysSortOrderEnum +const ( + ListCustomerSecretKeysSortOrderAscending ListCustomerSecretKeysSortOrderEnum = "ASCENDING" + ListCustomerSecretKeysSortOrderDescending ListCustomerSecretKeysSortOrderEnum = "DESCENDING" +) + +var mappingListCustomerSecretKeysSortOrderEnum = map[string]ListCustomerSecretKeysSortOrderEnum{ + "ASCENDING": ListCustomerSecretKeysSortOrderAscending, + "DESCENDING": ListCustomerSecretKeysSortOrderDescending, +} + +var mappingListCustomerSecretKeysSortOrderEnumLowerCase = map[string]ListCustomerSecretKeysSortOrderEnum{ + "ascending": ListCustomerSecretKeysSortOrderAscending, + "descending": ListCustomerSecretKeysSortOrderDescending, +} + +// GetListCustomerSecretKeysSortOrderEnumValues Enumerates the set of values for ListCustomerSecretKeysSortOrderEnum +func GetListCustomerSecretKeysSortOrderEnumValues() []ListCustomerSecretKeysSortOrderEnum { + values := make([]ListCustomerSecretKeysSortOrderEnum, 0) + for _, v := range mappingListCustomerSecretKeysSortOrderEnum { + values = append(values, v) + } + return values +} + +// GetListCustomerSecretKeysSortOrderEnumStringValues Enumerates the set of values in String for ListCustomerSecretKeysSortOrderEnum +func GetListCustomerSecretKeysSortOrderEnumStringValues() []string { + return []string{ + "ASCENDING", + "DESCENDING", + } +} + +// GetMappingListCustomerSecretKeysSortOrderEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingListCustomerSecretKeysSortOrderEnum(val string) (ListCustomerSecretKeysSortOrderEnum, bool) { + enum, ok := mappingListCustomerSecretKeysSortOrderEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_dynamic_resource_groups_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_dynamic_resource_groups_request_response.go new file mode 100644 index 00000000000..ed466e33d63 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_dynamic_resource_groups_request_response.go @@ -0,0 +1,177 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// ListDynamicResourceGroupsRequest wrapper for the ListDynamicResourceGroups operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/ListDynamicResourceGroups.go.html to see an example of how to use ListDynamicResourceGroupsRequest. +type ListDynamicResourceGroupsRequest struct { + + // OPTIONAL. The filter string that is used to request a subset of resources. The filter string MUST be a valid filter expression. See the Filtering section of the SCIM specification for more information (Section 3.4.2.2). The string should contain at least one condition that each item must match in order to be returned in the search results. Each condition specifies an attribute, an operator, and a value. Conditions within a filter can be connected by logical operators (such as AND and OR). Sets of conditions can be grouped together using parentheses. + Filter *string `mandatory:"false" contributesTo:"query" name:"filter"` + + // OPTIONAL. A string that indicates the attribute whose value SHALL be used to order the returned responses. The sortBy attribute MUST be in standard attribute notation form. See the Attribute Notation section of the SCIM specification for more information (Section 3.10). Also, see the Sorting section of the SCIM specification for more information (Section 3.4.2.3). + SortBy *string `mandatory:"false" contributesTo:"query" name:"sortBy"` + + // A string that indicates the order in which the sortBy parameter is applied. Allowed values are 'ascending' and 'descending'. See (Sorting Section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.3)). OPTIONAL. + SortOrder ListDynamicResourceGroupsSortOrderEnum `mandatory:"false" contributesTo:"query" name:"sortOrder" omitEmpty:"true"` + + // OPTIONAL. An integer that indicates the 1-based index of the first query result. See the Pagination section of the SCIM specification for more information. (Section 3.4.2.4). The number of results pages to return. The first page is 1. Specify 2 to access the second page of results, and so on. + StartIndex *int `mandatory:"false" contributesTo:"query" name:"startIndex"` + + // OPTIONAL. An integer that indicates the desired maximum number of query results per page. 1000 is the largest value that you can use. See the Pagination section of the System for Cross-Domain Identity Management Protocol specification for more information. (Section 3.4.2.4). + Count *int `mandatory:"false" contributesTo:"query" name:"count"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // The value of the `opc-next-page` response header from the previous 'List' call. + Page *string `mandatory:"false" contributesTo:"query" name:"page"` + + // The maximum number of items to return in a paginated 'List' call. + Limit *int `mandatory:"false" contributesTo:"query" name:"limit"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request ListDynamicResourceGroupsRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request ListDynamicResourceGroupsRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request ListDynamicResourceGroupsRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request ListDynamicResourceGroupsRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request ListDynamicResourceGroupsRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingListDynamicResourceGroupsSortOrderEnum(string(request.SortOrder)); !ok && request.SortOrder != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for SortOrder: %s. Supported values are: %s.", request.SortOrder, strings.Join(GetListDynamicResourceGroupsSortOrderEnumStringValues(), ","))) + } + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// ListDynamicResourceGroupsResponse wrapper for the ListDynamicResourceGroups operation +type ListDynamicResourceGroupsResponse struct { + + // The underlying http response + RawResponse *http.Response + + // A list of DynamicResourceGroups instances + DynamicResourceGroups `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For pagination of a list of items. When paging through a list, if this header appears in the response, then a partial list might have been returned. Include this value as the `page` parameter for the subsequent GET request to get the next batch of items. + OpcNextPage *string `presentIn:"header" name:"opc-next-page"` +} + +func (response ListDynamicResourceGroupsResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response ListDynamicResourceGroupsResponse) HTTPResponse() *http.Response { + return response.RawResponse +} + +// ListDynamicResourceGroupsSortOrderEnum Enum with underlying type: string +type ListDynamicResourceGroupsSortOrderEnum string + +// Set of constants representing the allowable values for ListDynamicResourceGroupsSortOrderEnum +const ( + ListDynamicResourceGroupsSortOrderAscending ListDynamicResourceGroupsSortOrderEnum = "ASCENDING" + ListDynamicResourceGroupsSortOrderDescending ListDynamicResourceGroupsSortOrderEnum = "DESCENDING" +) + +var mappingListDynamicResourceGroupsSortOrderEnum = map[string]ListDynamicResourceGroupsSortOrderEnum{ + "ASCENDING": ListDynamicResourceGroupsSortOrderAscending, + "DESCENDING": ListDynamicResourceGroupsSortOrderDescending, +} + +var mappingListDynamicResourceGroupsSortOrderEnumLowerCase = map[string]ListDynamicResourceGroupsSortOrderEnum{ + "ascending": ListDynamicResourceGroupsSortOrderAscending, + "descending": ListDynamicResourceGroupsSortOrderDescending, +} + +// GetListDynamicResourceGroupsSortOrderEnumValues Enumerates the set of values for ListDynamicResourceGroupsSortOrderEnum +func GetListDynamicResourceGroupsSortOrderEnumValues() []ListDynamicResourceGroupsSortOrderEnum { + values := make([]ListDynamicResourceGroupsSortOrderEnum, 0) + for _, v := range mappingListDynamicResourceGroupsSortOrderEnum { + values = append(values, v) + } + return values +} + +// GetListDynamicResourceGroupsSortOrderEnumStringValues Enumerates the set of values in String for ListDynamicResourceGroupsSortOrderEnum +func GetListDynamicResourceGroupsSortOrderEnumStringValues() []string { + return []string{ + "ASCENDING", + "DESCENDING", + } +} + +// GetMappingListDynamicResourceGroupsSortOrderEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingListDynamicResourceGroupsSortOrderEnum(val string) (ListDynamicResourceGroupsSortOrderEnum, bool) { + enum, ok := mappingListDynamicResourceGroupsSortOrderEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_groups_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_groups_request_response.go new file mode 100644 index 00000000000..00f5683e644 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_groups_request_response.go @@ -0,0 +1,177 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// ListGroupsRequest wrapper for the ListGroups operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/ListGroups.go.html to see an example of how to use ListGroupsRequest. +type ListGroupsRequest struct { + + // OPTIONAL. The filter string that is used to request a subset of resources. The filter string MUST be a valid filter expression. See the Filtering section of the SCIM specification for more information (Section 3.4.2.2). The string should contain at least one condition that each item must match in order to be returned in the search results. Each condition specifies an attribute, an operator, and a value. Conditions within a filter can be connected by logical operators (such as AND and OR). Sets of conditions can be grouped together using parentheses. + Filter *string `mandatory:"false" contributesTo:"query" name:"filter"` + + // OPTIONAL. A string that indicates the attribute whose value SHALL be used to order the returned responses. The sortBy attribute MUST be in standard attribute notation form. See the Attribute Notation section of the SCIM specification for more information (Section 3.10). Also, see the Sorting section of the SCIM specification for more information (Section 3.4.2.3). + SortBy *string `mandatory:"false" contributesTo:"query" name:"sortBy"` + + // A string that indicates the order in which the sortBy parameter is applied. Allowed values are 'ascending' and 'descending'. See (Sorting Section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.3)). OPTIONAL. + SortOrder ListGroupsSortOrderEnum `mandatory:"false" contributesTo:"query" name:"sortOrder" omitEmpty:"true"` + + // OPTIONAL. An integer that indicates the 1-based index of the first query result. See the Pagination section of the SCIM specification for more information. (Section 3.4.2.4). The number of results pages to return. The first page is 1. Specify 2 to access the second page of results, and so on. + StartIndex *int `mandatory:"false" contributesTo:"query" name:"startIndex"` + + // OPTIONAL. An integer that indicates the desired maximum number of query results per page. 1000 is the largest value that you can use. See the Pagination section of the System for Cross-Domain Identity Management Protocol specification for more information. (Section 3.4.2.4). + Count *int `mandatory:"false" contributesTo:"query" name:"count"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // The value of the `opc-next-page` response header from the previous 'List' call. + Page *string `mandatory:"false" contributesTo:"query" name:"page"` + + // The maximum number of items to return in a paginated 'List' call. + Limit *int `mandatory:"false" contributesTo:"query" name:"limit"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request ListGroupsRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request ListGroupsRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request ListGroupsRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request ListGroupsRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request ListGroupsRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingListGroupsSortOrderEnum(string(request.SortOrder)); !ok && request.SortOrder != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for SortOrder: %s. Supported values are: %s.", request.SortOrder, strings.Join(GetListGroupsSortOrderEnumStringValues(), ","))) + } + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// ListGroupsResponse wrapper for the ListGroups operation +type ListGroupsResponse struct { + + // The underlying http response + RawResponse *http.Response + + // A list of Groups instances + Groups `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For pagination of a list of items. When paging through a list, if this header appears in the response, then a partial list might have been returned. Include this value as the `page` parameter for the subsequent GET request to get the next batch of items. + OpcNextPage *string `presentIn:"header" name:"opc-next-page"` +} + +func (response ListGroupsResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response ListGroupsResponse) HTTPResponse() *http.Response { + return response.RawResponse +} + +// ListGroupsSortOrderEnum Enum with underlying type: string +type ListGroupsSortOrderEnum string + +// Set of constants representing the allowable values for ListGroupsSortOrderEnum +const ( + ListGroupsSortOrderAscending ListGroupsSortOrderEnum = "ASCENDING" + ListGroupsSortOrderDescending ListGroupsSortOrderEnum = "DESCENDING" +) + +var mappingListGroupsSortOrderEnum = map[string]ListGroupsSortOrderEnum{ + "ASCENDING": ListGroupsSortOrderAscending, + "DESCENDING": ListGroupsSortOrderDescending, +} + +var mappingListGroupsSortOrderEnumLowerCase = map[string]ListGroupsSortOrderEnum{ + "ascending": ListGroupsSortOrderAscending, + "descending": ListGroupsSortOrderDescending, +} + +// GetListGroupsSortOrderEnumValues Enumerates the set of values for ListGroupsSortOrderEnum +func GetListGroupsSortOrderEnumValues() []ListGroupsSortOrderEnum { + values := make([]ListGroupsSortOrderEnum, 0) + for _, v := range mappingListGroupsSortOrderEnum { + values = append(values, v) + } + return values +} + +// GetListGroupsSortOrderEnumStringValues Enumerates the set of values in String for ListGroupsSortOrderEnum +func GetListGroupsSortOrderEnumStringValues() []string { + return []string{ + "ASCENDING", + "DESCENDING", + } +} + +// GetMappingListGroupsSortOrderEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingListGroupsSortOrderEnum(val string) (ListGroupsSortOrderEnum, bool) { + enum, ok := mappingListGroupsSortOrderEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_identity_providers_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_identity_providers_request_response.go new file mode 100644 index 00000000000..375cb1bc866 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_identity_providers_request_response.go @@ -0,0 +1,177 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// ListIdentityProvidersRequest wrapper for the ListIdentityProviders operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/ListIdentityProviders.go.html to see an example of how to use ListIdentityProvidersRequest. +type ListIdentityProvidersRequest struct { + + // OPTIONAL. The filter string that is used to request a subset of resources. The filter string MUST be a valid filter expression. See the Filtering section of the SCIM specification for more information (Section 3.4.2.2). The string should contain at least one condition that each item must match in order to be returned in the search results. Each condition specifies an attribute, an operator, and a value. Conditions within a filter can be connected by logical operators (such as AND and OR). Sets of conditions can be grouped together using parentheses. + Filter *string `mandatory:"false" contributesTo:"query" name:"filter"` + + // OPTIONAL. A string that indicates the attribute whose value SHALL be used to order the returned responses. The sortBy attribute MUST be in standard attribute notation form. See the Attribute Notation section of the SCIM specification for more information (Section 3.10). Also, see the Sorting section of the SCIM specification for more information (Section 3.4.2.3). + SortBy *string `mandatory:"false" contributesTo:"query" name:"sortBy"` + + // A string that indicates the order in which the sortBy parameter is applied. Allowed values are 'ascending' and 'descending'. See (Sorting Section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.3)). OPTIONAL. + SortOrder ListIdentityProvidersSortOrderEnum `mandatory:"false" contributesTo:"query" name:"sortOrder" omitEmpty:"true"` + + // OPTIONAL. An integer that indicates the 1-based index of the first query result. See the Pagination section of the SCIM specification for more information. (Section 3.4.2.4). The number of results pages to return. The first page is 1. Specify 2 to access the second page of results, and so on. + StartIndex *int `mandatory:"false" contributesTo:"query" name:"startIndex"` + + // OPTIONAL. An integer that indicates the desired maximum number of query results per page. 1000 is the largest value that you can use. See the Pagination section of the System for Cross-Domain Identity Management Protocol specification for more information. (Section 3.4.2.4). + Count *int `mandatory:"false" contributesTo:"query" name:"count"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // The value of the `opc-next-page` response header from the previous 'List' call. + Page *string `mandatory:"false" contributesTo:"query" name:"page"` + + // The maximum number of items to return in a paginated 'List' call. + Limit *int `mandatory:"false" contributesTo:"query" name:"limit"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request ListIdentityProvidersRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request ListIdentityProvidersRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request ListIdentityProvidersRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request ListIdentityProvidersRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request ListIdentityProvidersRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingListIdentityProvidersSortOrderEnum(string(request.SortOrder)); !ok && request.SortOrder != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for SortOrder: %s. Supported values are: %s.", request.SortOrder, strings.Join(GetListIdentityProvidersSortOrderEnumStringValues(), ","))) + } + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// ListIdentityProvidersResponse wrapper for the ListIdentityProviders operation +type ListIdentityProvidersResponse struct { + + // The underlying http response + RawResponse *http.Response + + // A list of IdentityProviders instances + IdentityProviders `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For pagination of a list of items. When paging through a list, if this header appears in the response, then a partial list might have been returned. Include this value as the `page` parameter for the subsequent GET request to get the next batch of items. + OpcNextPage *string `presentIn:"header" name:"opc-next-page"` +} + +func (response ListIdentityProvidersResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response ListIdentityProvidersResponse) HTTPResponse() *http.Response { + return response.RawResponse +} + +// ListIdentityProvidersSortOrderEnum Enum with underlying type: string +type ListIdentityProvidersSortOrderEnum string + +// Set of constants representing the allowable values for ListIdentityProvidersSortOrderEnum +const ( + ListIdentityProvidersSortOrderAscending ListIdentityProvidersSortOrderEnum = "ASCENDING" + ListIdentityProvidersSortOrderDescending ListIdentityProvidersSortOrderEnum = "DESCENDING" +) + +var mappingListIdentityProvidersSortOrderEnum = map[string]ListIdentityProvidersSortOrderEnum{ + "ASCENDING": ListIdentityProvidersSortOrderAscending, + "DESCENDING": ListIdentityProvidersSortOrderDescending, +} + +var mappingListIdentityProvidersSortOrderEnumLowerCase = map[string]ListIdentityProvidersSortOrderEnum{ + "ascending": ListIdentityProvidersSortOrderAscending, + "descending": ListIdentityProvidersSortOrderDescending, +} + +// GetListIdentityProvidersSortOrderEnumValues Enumerates the set of values for ListIdentityProvidersSortOrderEnum +func GetListIdentityProvidersSortOrderEnumValues() []ListIdentityProvidersSortOrderEnum { + values := make([]ListIdentityProvidersSortOrderEnum, 0) + for _, v := range mappingListIdentityProvidersSortOrderEnum { + values = append(values, v) + } + return values +} + +// GetListIdentityProvidersSortOrderEnumStringValues Enumerates the set of values in String for ListIdentityProvidersSortOrderEnum +func GetListIdentityProvidersSortOrderEnumStringValues() []string { + return []string{ + "ASCENDING", + "DESCENDING", + } +} + +// GetMappingListIdentityProvidersSortOrderEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingListIdentityProvidersSortOrderEnum(val string) (ListIdentityProvidersSortOrderEnum, bool) { + enum, ok := mappingListIdentityProvidersSortOrderEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_kmsi_settings_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_kmsi_settings_request_response.go new file mode 100644 index 00000000000..2f5c7d830bc --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_kmsi_settings_request_response.go @@ -0,0 +1,117 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// ListKmsiSettingsRequest wrapper for the ListKmsiSettings operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/ListKmsiSettings.go.html to see an example of how to use ListKmsiSettingsRequest. +type ListKmsiSettingsRequest struct { + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // The value of the `opc-next-page` response header from the previous 'List' call. + Page *string `mandatory:"false" contributesTo:"query" name:"page"` + + // The maximum number of items to return in a paginated 'List' call. + Limit *int `mandatory:"false" contributesTo:"query" name:"limit"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request ListKmsiSettingsRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request ListKmsiSettingsRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request ListKmsiSettingsRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request ListKmsiSettingsRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request ListKmsiSettingsRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// ListKmsiSettingsResponse wrapper for the ListKmsiSettings operation +type ListKmsiSettingsResponse struct { + + // The underlying http response + RawResponse *http.Response + + // A list of KmsiSettings instances + KmsiSettings `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For pagination of a list of items. When paging through a list, if this header appears in the response, then a partial list might have been returned. Include this value as the `page` parameter for the subsequent GET request to get the next batch of items. + OpcNextPage *string `presentIn:"header" name:"opc-next-page"` +} + +func (response ListKmsiSettingsResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response ListKmsiSettingsResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_my_api_keys_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_my_api_keys_request_response.go new file mode 100644 index 00000000000..6d9a5501f54 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_my_api_keys_request_response.go @@ -0,0 +1,165 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// ListMyApiKeysRequest wrapper for the ListMyApiKeys operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/ListMyApiKeys.go.html to see an example of how to use ListMyApiKeysRequest. +type ListMyApiKeysRequest struct { + + // OPTIONAL. The filter string that is used to request a subset of resources. The filter string MUST be a valid filter expression. See the Filtering section of the SCIM specification for more information (Section 3.4.2.2). The string should contain at least one condition that each item must match in order to be returned in the search results. Each condition specifies an attribute, an operator, and a value. Conditions within a filter can be connected by logical operators (such as AND and OR). Sets of conditions can be grouped together using parentheses. + Filter *string `mandatory:"false" contributesTo:"query" name:"filter"` + + // OPTIONAL. A string that indicates the attribute whose value SHALL be used to order the returned responses. The sortBy attribute MUST be in standard attribute notation form. See the Attribute Notation section of the SCIM specification for more information (Section 3.10). Also, see the Sorting section of the SCIM specification for more information (Section 3.4.2.3). + SortBy *string `mandatory:"false" contributesTo:"query" name:"sortBy"` + + // A string that indicates the order in which the sortBy parameter is applied. Allowed values are 'ascending' and 'descending'. See (Sorting Section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.3)). OPTIONAL. + SortOrder ListMyApiKeysSortOrderEnum `mandatory:"false" contributesTo:"query" name:"sortOrder" omitEmpty:"true"` + + // OPTIONAL. An integer that indicates the 1-based index of the first query result. See the Pagination section of the SCIM specification for more information. (Section 3.4.2.4). The number of results pages to return. The first page is 1. Specify 2 to access the second page of results, and so on. + StartIndex *int `mandatory:"false" contributesTo:"query" name:"startIndex"` + + // OPTIONAL. An integer that indicates the desired maximum number of query results per page. 1000 is the largest value that you can use. See the Pagination section of the System for Cross-Domain Identity Management Protocol specification for more information. (Section 3.4.2.4). + Count *int `mandatory:"false" contributesTo:"query" name:"count"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // The value of the `opc-next-page` response header from the previous 'List' call. + Page *string `mandatory:"false" contributesTo:"query" name:"page"` + + // The maximum number of items to return in a paginated 'List' call. + Limit *int `mandatory:"false" contributesTo:"query" name:"limit"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request ListMyApiKeysRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request ListMyApiKeysRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request ListMyApiKeysRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request ListMyApiKeysRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request ListMyApiKeysRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingListMyApiKeysSortOrderEnum(string(request.SortOrder)); !ok && request.SortOrder != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for SortOrder: %s. Supported values are: %s.", request.SortOrder, strings.Join(GetListMyApiKeysSortOrderEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// ListMyApiKeysResponse wrapper for the ListMyApiKeys operation +type ListMyApiKeysResponse struct { + + // The underlying http response + RawResponse *http.Response + + // A list of MyApiKeys instances + MyApiKeys `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For pagination of a list of items. When paging through a list, if this header appears in the response, then a partial list might have been returned. Include this value as the `page` parameter for the subsequent GET request to get the next batch of items. + OpcNextPage *string `presentIn:"header" name:"opc-next-page"` +} + +func (response ListMyApiKeysResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response ListMyApiKeysResponse) HTTPResponse() *http.Response { + return response.RawResponse +} + +// ListMyApiKeysSortOrderEnum Enum with underlying type: string +type ListMyApiKeysSortOrderEnum string + +// Set of constants representing the allowable values for ListMyApiKeysSortOrderEnum +const ( + ListMyApiKeysSortOrderAscending ListMyApiKeysSortOrderEnum = "ASCENDING" + ListMyApiKeysSortOrderDescending ListMyApiKeysSortOrderEnum = "DESCENDING" +) + +var mappingListMyApiKeysSortOrderEnum = map[string]ListMyApiKeysSortOrderEnum{ + "ASCENDING": ListMyApiKeysSortOrderAscending, + "DESCENDING": ListMyApiKeysSortOrderDescending, +} + +var mappingListMyApiKeysSortOrderEnumLowerCase = map[string]ListMyApiKeysSortOrderEnum{ + "ascending": ListMyApiKeysSortOrderAscending, + "descending": ListMyApiKeysSortOrderDescending, +} + +// GetListMyApiKeysSortOrderEnumValues Enumerates the set of values for ListMyApiKeysSortOrderEnum +func GetListMyApiKeysSortOrderEnumValues() []ListMyApiKeysSortOrderEnum { + values := make([]ListMyApiKeysSortOrderEnum, 0) + for _, v := range mappingListMyApiKeysSortOrderEnum { + values = append(values, v) + } + return values +} + +// GetListMyApiKeysSortOrderEnumStringValues Enumerates the set of values in String for ListMyApiKeysSortOrderEnum +func GetListMyApiKeysSortOrderEnumStringValues() []string { + return []string{ + "ASCENDING", + "DESCENDING", + } +} + +// GetMappingListMyApiKeysSortOrderEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingListMyApiKeysSortOrderEnum(val string) (ListMyApiKeysSortOrderEnum, bool) { + enum, ok := mappingListMyApiKeysSortOrderEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_my_auth_tokens_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_my_auth_tokens_request_response.go new file mode 100644 index 00000000000..7959f4115a5 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_my_auth_tokens_request_response.go @@ -0,0 +1,165 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// ListMyAuthTokensRequest wrapper for the ListMyAuthTokens operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/ListMyAuthTokens.go.html to see an example of how to use ListMyAuthTokensRequest. +type ListMyAuthTokensRequest struct { + + // OPTIONAL. The filter string that is used to request a subset of resources. The filter string MUST be a valid filter expression. See the Filtering section of the SCIM specification for more information (Section 3.4.2.2). The string should contain at least one condition that each item must match in order to be returned in the search results. Each condition specifies an attribute, an operator, and a value. Conditions within a filter can be connected by logical operators (such as AND and OR). Sets of conditions can be grouped together using parentheses. + Filter *string `mandatory:"false" contributesTo:"query" name:"filter"` + + // OPTIONAL. A string that indicates the attribute whose value SHALL be used to order the returned responses. The sortBy attribute MUST be in standard attribute notation form. See the Attribute Notation section of the SCIM specification for more information (Section 3.10). Also, see the Sorting section of the SCIM specification for more information (Section 3.4.2.3). + SortBy *string `mandatory:"false" contributesTo:"query" name:"sortBy"` + + // A string that indicates the order in which the sortBy parameter is applied. Allowed values are 'ascending' and 'descending'. See (Sorting Section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.3)). OPTIONAL. + SortOrder ListMyAuthTokensSortOrderEnum `mandatory:"false" contributesTo:"query" name:"sortOrder" omitEmpty:"true"` + + // OPTIONAL. An integer that indicates the 1-based index of the first query result. See the Pagination section of the SCIM specification for more information. (Section 3.4.2.4). The number of results pages to return. The first page is 1. Specify 2 to access the second page of results, and so on. + StartIndex *int `mandatory:"false" contributesTo:"query" name:"startIndex"` + + // OPTIONAL. An integer that indicates the desired maximum number of query results per page. 1000 is the largest value that you can use. See the Pagination section of the System for Cross-Domain Identity Management Protocol specification for more information. (Section 3.4.2.4). + Count *int `mandatory:"false" contributesTo:"query" name:"count"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // The value of the `opc-next-page` response header from the previous 'List' call. + Page *string `mandatory:"false" contributesTo:"query" name:"page"` + + // The maximum number of items to return in a paginated 'List' call. + Limit *int `mandatory:"false" contributesTo:"query" name:"limit"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request ListMyAuthTokensRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request ListMyAuthTokensRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request ListMyAuthTokensRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request ListMyAuthTokensRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request ListMyAuthTokensRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingListMyAuthTokensSortOrderEnum(string(request.SortOrder)); !ok && request.SortOrder != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for SortOrder: %s. Supported values are: %s.", request.SortOrder, strings.Join(GetListMyAuthTokensSortOrderEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// ListMyAuthTokensResponse wrapper for the ListMyAuthTokens operation +type ListMyAuthTokensResponse struct { + + // The underlying http response + RawResponse *http.Response + + // A list of MyAuthTokens instances + MyAuthTokens `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For pagination of a list of items. When paging through a list, if this header appears in the response, then a partial list might have been returned. Include this value as the `page` parameter for the subsequent GET request to get the next batch of items. + OpcNextPage *string `presentIn:"header" name:"opc-next-page"` +} + +func (response ListMyAuthTokensResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response ListMyAuthTokensResponse) HTTPResponse() *http.Response { + return response.RawResponse +} + +// ListMyAuthTokensSortOrderEnum Enum with underlying type: string +type ListMyAuthTokensSortOrderEnum string + +// Set of constants representing the allowable values for ListMyAuthTokensSortOrderEnum +const ( + ListMyAuthTokensSortOrderAscending ListMyAuthTokensSortOrderEnum = "ASCENDING" + ListMyAuthTokensSortOrderDescending ListMyAuthTokensSortOrderEnum = "DESCENDING" +) + +var mappingListMyAuthTokensSortOrderEnum = map[string]ListMyAuthTokensSortOrderEnum{ + "ASCENDING": ListMyAuthTokensSortOrderAscending, + "DESCENDING": ListMyAuthTokensSortOrderDescending, +} + +var mappingListMyAuthTokensSortOrderEnumLowerCase = map[string]ListMyAuthTokensSortOrderEnum{ + "ascending": ListMyAuthTokensSortOrderAscending, + "descending": ListMyAuthTokensSortOrderDescending, +} + +// GetListMyAuthTokensSortOrderEnumValues Enumerates the set of values for ListMyAuthTokensSortOrderEnum +func GetListMyAuthTokensSortOrderEnumValues() []ListMyAuthTokensSortOrderEnum { + values := make([]ListMyAuthTokensSortOrderEnum, 0) + for _, v := range mappingListMyAuthTokensSortOrderEnum { + values = append(values, v) + } + return values +} + +// GetListMyAuthTokensSortOrderEnumStringValues Enumerates the set of values in String for ListMyAuthTokensSortOrderEnum +func GetListMyAuthTokensSortOrderEnumStringValues() []string { + return []string{ + "ASCENDING", + "DESCENDING", + } +} + +// GetMappingListMyAuthTokensSortOrderEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingListMyAuthTokensSortOrderEnum(val string) (ListMyAuthTokensSortOrderEnum, bool) { + enum, ok := mappingListMyAuthTokensSortOrderEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_my_customer_secret_keys_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_my_customer_secret_keys_request_response.go new file mode 100644 index 00000000000..6a9a4b709ac --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_my_customer_secret_keys_request_response.go @@ -0,0 +1,165 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// ListMyCustomerSecretKeysRequest wrapper for the ListMyCustomerSecretKeys operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/ListMyCustomerSecretKeys.go.html to see an example of how to use ListMyCustomerSecretKeysRequest. +type ListMyCustomerSecretKeysRequest struct { + + // OPTIONAL. The filter string that is used to request a subset of resources. The filter string MUST be a valid filter expression. See the Filtering section of the SCIM specification for more information (Section 3.4.2.2). The string should contain at least one condition that each item must match in order to be returned in the search results. Each condition specifies an attribute, an operator, and a value. Conditions within a filter can be connected by logical operators (such as AND and OR). Sets of conditions can be grouped together using parentheses. + Filter *string `mandatory:"false" contributesTo:"query" name:"filter"` + + // OPTIONAL. A string that indicates the attribute whose value SHALL be used to order the returned responses. The sortBy attribute MUST be in standard attribute notation form. See the Attribute Notation section of the SCIM specification for more information (Section 3.10). Also, see the Sorting section of the SCIM specification for more information (Section 3.4.2.3). + SortBy *string `mandatory:"false" contributesTo:"query" name:"sortBy"` + + // A string that indicates the order in which the sortBy parameter is applied. Allowed values are 'ascending' and 'descending'. See (Sorting Section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.3)). OPTIONAL. + SortOrder ListMyCustomerSecretKeysSortOrderEnum `mandatory:"false" contributesTo:"query" name:"sortOrder" omitEmpty:"true"` + + // OPTIONAL. An integer that indicates the 1-based index of the first query result. See the Pagination section of the SCIM specification for more information. (Section 3.4.2.4). The number of results pages to return. The first page is 1. Specify 2 to access the second page of results, and so on. + StartIndex *int `mandatory:"false" contributesTo:"query" name:"startIndex"` + + // OPTIONAL. An integer that indicates the desired maximum number of query results per page. 1000 is the largest value that you can use. See the Pagination section of the System for Cross-Domain Identity Management Protocol specification for more information. (Section 3.4.2.4). + Count *int `mandatory:"false" contributesTo:"query" name:"count"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // The value of the `opc-next-page` response header from the previous 'List' call. + Page *string `mandatory:"false" contributesTo:"query" name:"page"` + + // The maximum number of items to return in a paginated 'List' call. + Limit *int `mandatory:"false" contributesTo:"query" name:"limit"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request ListMyCustomerSecretKeysRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request ListMyCustomerSecretKeysRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request ListMyCustomerSecretKeysRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request ListMyCustomerSecretKeysRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request ListMyCustomerSecretKeysRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingListMyCustomerSecretKeysSortOrderEnum(string(request.SortOrder)); !ok && request.SortOrder != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for SortOrder: %s. Supported values are: %s.", request.SortOrder, strings.Join(GetListMyCustomerSecretKeysSortOrderEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// ListMyCustomerSecretKeysResponse wrapper for the ListMyCustomerSecretKeys operation +type ListMyCustomerSecretKeysResponse struct { + + // The underlying http response + RawResponse *http.Response + + // A list of MyCustomerSecretKeys instances + MyCustomerSecretKeys `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For pagination of a list of items. When paging through a list, if this header appears in the response, then a partial list might have been returned. Include this value as the `page` parameter for the subsequent GET request to get the next batch of items. + OpcNextPage *string `presentIn:"header" name:"opc-next-page"` +} + +func (response ListMyCustomerSecretKeysResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response ListMyCustomerSecretKeysResponse) HTTPResponse() *http.Response { + return response.RawResponse +} + +// ListMyCustomerSecretKeysSortOrderEnum Enum with underlying type: string +type ListMyCustomerSecretKeysSortOrderEnum string + +// Set of constants representing the allowable values for ListMyCustomerSecretKeysSortOrderEnum +const ( + ListMyCustomerSecretKeysSortOrderAscending ListMyCustomerSecretKeysSortOrderEnum = "ASCENDING" + ListMyCustomerSecretKeysSortOrderDescending ListMyCustomerSecretKeysSortOrderEnum = "DESCENDING" +) + +var mappingListMyCustomerSecretKeysSortOrderEnum = map[string]ListMyCustomerSecretKeysSortOrderEnum{ + "ASCENDING": ListMyCustomerSecretKeysSortOrderAscending, + "DESCENDING": ListMyCustomerSecretKeysSortOrderDescending, +} + +var mappingListMyCustomerSecretKeysSortOrderEnumLowerCase = map[string]ListMyCustomerSecretKeysSortOrderEnum{ + "ascending": ListMyCustomerSecretKeysSortOrderAscending, + "descending": ListMyCustomerSecretKeysSortOrderDescending, +} + +// GetListMyCustomerSecretKeysSortOrderEnumValues Enumerates the set of values for ListMyCustomerSecretKeysSortOrderEnum +func GetListMyCustomerSecretKeysSortOrderEnumValues() []ListMyCustomerSecretKeysSortOrderEnum { + values := make([]ListMyCustomerSecretKeysSortOrderEnum, 0) + for _, v := range mappingListMyCustomerSecretKeysSortOrderEnum { + values = append(values, v) + } + return values +} + +// GetListMyCustomerSecretKeysSortOrderEnumStringValues Enumerates the set of values in String for ListMyCustomerSecretKeysSortOrderEnum +func GetListMyCustomerSecretKeysSortOrderEnumStringValues() []string { + return []string{ + "ASCENDING", + "DESCENDING", + } +} + +// GetMappingListMyCustomerSecretKeysSortOrderEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingListMyCustomerSecretKeysSortOrderEnum(val string) (ListMyCustomerSecretKeysSortOrderEnum, bool) { + enum, ok := mappingListMyCustomerSecretKeysSortOrderEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_my_devices_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_my_devices_request_response.go new file mode 100644 index 00000000000..3c57a2df272 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_my_devices_request_response.go @@ -0,0 +1,177 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// ListMyDevicesRequest wrapper for the ListMyDevices operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/ListMyDevices.go.html to see an example of how to use ListMyDevicesRequest. +type ListMyDevicesRequest struct { + + // OPTIONAL. The filter string that is used to request a subset of resources. The filter string MUST be a valid filter expression. See the Filtering section of the SCIM specification for more information (Section 3.4.2.2). The string should contain at least one condition that each item must match in order to be returned in the search results. Each condition specifies an attribute, an operator, and a value. Conditions within a filter can be connected by logical operators (such as AND and OR). Sets of conditions can be grouped together using parentheses. + Filter *string `mandatory:"false" contributesTo:"query" name:"filter"` + + // OPTIONAL. A string that indicates the attribute whose value SHALL be used to order the returned responses. The sortBy attribute MUST be in standard attribute notation form. See the Attribute Notation section of the SCIM specification for more information (Section 3.10). Also, see the Sorting section of the SCIM specification for more information (Section 3.4.2.3). + SortBy *string `mandatory:"false" contributesTo:"query" name:"sortBy"` + + // A string that indicates the order in which the sortBy parameter is applied. Allowed values are 'ascending' and 'descending'. See (Sorting Section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.3)). OPTIONAL. + SortOrder ListMyDevicesSortOrderEnum `mandatory:"false" contributesTo:"query" name:"sortOrder" omitEmpty:"true"` + + // OPTIONAL. An integer that indicates the 1-based index of the first query result. See the Pagination section of the SCIM specification for more information. (Section 3.4.2.4). The number of results pages to return. The first page is 1. Specify 2 to access the second page of results, and so on. + StartIndex *int `mandatory:"false" contributesTo:"query" name:"startIndex"` + + // OPTIONAL. An integer that indicates the desired maximum number of query results per page. 1000 is the largest value that you can use. See the Pagination section of the System for Cross-Domain Identity Management Protocol specification for more information. (Section 3.4.2.4). + Count *int `mandatory:"false" contributesTo:"query" name:"count"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // The value of the `opc-next-page` response header from the previous 'List' call. + Page *string `mandatory:"false" contributesTo:"query" name:"page"` + + // The maximum number of items to return in a paginated 'List' call. + Limit *int `mandatory:"false" contributesTo:"query" name:"limit"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request ListMyDevicesRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request ListMyDevicesRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request ListMyDevicesRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request ListMyDevicesRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request ListMyDevicesRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingListMyDevicesSortOrderEnum(string(request.SortOrder)); !ok && request.SortOrder != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for SortOrder: %s. Supported values are: %s.", request.SortOrder, strings.Join(GetListMyDevicesSortOrderEnumStringValues(), ","))) + } + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// ListMyDevicesResponse wrapper for the ListMyDevices operation +type ListMyDevicesResponse struct { + + // The underlying http response + RawResponse *http.Response + + // A list of MyDevices instances + MyDevices `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For pagination of a list of items. When paging through a list, if this header appears in the response, then a partial list might have been returned. Include this value as the `page` parameter for the subsequent GET request to get the next batch of items. + OpcNextPage *string `presentIn:"header" name:"opc-next-page"` +} + +func (response ListMyDevicesResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response ListMyDevicesResponse) HTTPResponse() *http.Response { + return response.RawResponse +} + +// ListMyDevicesSortOrderEnum Enum with underlying type: string +type ListMyDevicesSortOrderEnum string + +// Set of constants representing the allowable values for ListMyDevicesSortOrderEnum +const ( + ListMyDevicesSortOrderAscending ListMyDevicesSortOrderEnum = "ASCENDING" + ListMyDevicesSortOrderDescending ListMyDevicesSortOrderEnum = "DESCENDING" +) + +var mappingListMyDevicesSortOrderEnum = map[string]ListMyDevicesSortOrderEnum{ + "ASCENDING": ListMyDevicesSortOrderAscending, + "DESCENDING": ListMyDevicesSortOrderDescending, +} + +var mappingListMyDevicesSortOrderEnumLowerCase = map[string]ListMyDevicesSortOrderEnum{ + "ascending": ListMyDevicesSortOrderAscending, + "descending": ListMyDevicesSortOrderDescending, +} + +// GetListMyDevicesSortOrderEnumValues Enumerates the set of values for ListMyDevicesSortOrderEnum +func GetListMyDevicesSortOrderEnumValues() []ListMyDevicesSortOrderEnum { + values := make([]ListMyDevicesSortOrderEnum, 0) + for _, v := range mappingListMyDevicesSortOrderEnum { + values = append(values, v) + } + return values +} + +// GetListMyDevicesSortOrderEnumStringValues Enumerates the set of values in String for ListMyDevicesSortOrderEnum +func GetListMyDevicesSortOrderEnumStringValues() []string { + return []string{ + "ASCENDING", + "DESCENDING", + } +} + +// GetMappingListMyDevicesSortOrderEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingListMyDevicesSortOrderEnum(val string) (ListMyDevicesSortOrderEnum, bool) { + enum, ok := mappingListMyDevicesSortOrderEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_my_groups_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_my_groups_request_response.go new file mode 100644 index 00000000000..33ed7af99eb --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_my_groups_request_response.go @@ -0,0 +1,177 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// ListMyGroupsRequest wrapper for the ListMyGroups operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/ListMyGroups.go.html to see an example of how to use ListMyGroupsRequest. +type ListMyGroupsRequest struct { + + // OPTIONAL. The filter string that is used to request a subset of resources. The filter string MUST be a valid filter expression. See the Filtering section of the SCIM specification for more information (Section 3.4.2.2). The string should contain at least one condition that each item must match in order to be returned in the search results. Each condition specifies an attribute, an operator, and a value. Conditions within a filter can be connected by logical operators (such as AND and OR). Sets of conditions can be grouped together using parentheses. + Filter *string `mandatory:"false" contributesTo:"query" name:"filter"` + + // OPTIONAL. A string that indicates the attribute whose value SHALL be used to order the returned responses. The sortBy attribute MUST be in standard attribute notation form. See the Attribute Notation section of the SCIM specification for more information (Section 3.10). Also, see the Sorting section of the SCIM specification for more information (Section 3.4.2.3). + SortBy *string `mandatory:"false" contributesTo:"query" name:"sortBy"` + + // A string that indicates the order in which the sortBy parameter is applied. Allowed values are 'ascending' and 'descending'. See (Sorting Section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.3)). OPTIONAL. + SortOrder ListMyGroupsSortOrderEnum `mandatory:"false" contributesTo:"query" name:"sortOrder" omitEmpty:"true"` + + // OPTIONAL. An integer that indicates the 1-based index of the first query result. See the Pagination section of the SCIM specification for more information. (Section 3.4.2.4). The number of results pages to return. The first page is 1. Specify 2 to access the second page of results, and so on. + StartIndex *int `mandatory:"false" contributesTo:"query" name:"startIndex"` + + // OPTIONAL. An integer that indicates the desired maximum number of query results per page. 1000 is the largest value that you can use. See the Pagination section of the System for Cross-Domain Identity Management Protocol specification for more information. (Section 3.4.2.4). + Count *int `mandatory:"false" contributesTo:"query" name:"count"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // The value of the `opc-next-page` response header from the previous 'List' call. + Page *string `mandatory:"false" contributesTo:"query" name:"page"` + + // The maximum number of items to return in a paginated 'List' call. + Limit *int `mandatory:"false" contributesTo:"query" name:"limit"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request ListMyGroupsRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request ListMyGroupsRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request ListMyGroupsRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request ListMyGroupsRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request ListMyGroupsRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingListMyGroupsSortOrderEnum(string(request.SortOrder)); !ok && request.SortOrder != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for SortOrder: %s. Supported values are: %s.", request.SortOrder, strings.Join(GetListMyGroupsSortOrderEnumStringValues(), ","))) + } + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// ListMyGroupsResponse wrapper for the ListMyGroups operation +type ListMyGroupsResponse struct { + + // The underlying http response + RawResponse *http.Response + + // A list of MyGroups instances + MyGroups `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For pagination of a list of items. When paging through a list, if this header appears in the response, then a partial list might have been returned. Include this value as the `page` parameter for the subsequent GET request to get the next batch of items. + OpcNextPage *string `presentIn:"header" name:"opc-next-page"` +} + +func (response ListMyGroupsResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response ListMyGroupsResponse) HTTPResponse() *http.Response { + return response.RawResponse +} + +// ListMyGroupsSortOrderEnum Enum with underlying type: string +type ListMyGroupsSortOrderEnum string + +// Set of constants representing the allowable values for ListMyGroupsSortOrderEnum +const ( + ListMyGroupsSortOrderAscending ListMyGroupsSortOrderEnum = "ASCENDING" + ListMyGroupsSortOrderDescending ListMyGroupsSortOrderEnum = "DESCENDING" +) + +var mappingListMyGroupsSortOrderEnum = map[string]ListMyGroupsSortOrderEnum{ + "ASCENDING": ListMyGroupsSortOrderAscending, + "DESCENDING": ListMyGroupsSortOrderDescending, +} + +var mappingListMyGroupsSortOrderEnumLowerCase = map[string]ListMyGroupsSortOrderEnum{ + "ascending": ListMyGroupsSortOrderAscending, + "descending": ListMyGroupsSortOrderDescending, +} + +// GetListMyGroupsSortOrderEnumValues Enumerates the set of values for ListMyGroupsSortOrderEnum +func GetListMyGroupsSortOrderEnumValues() []ListMyGroupsSortOrderEnum { + values := make([]ListMyGroupsSortOrderEnum, 0) + for _, v := range mappingListMyGroupsSortOrderEnum { + values = append(values, v) + } + return values +} + +// GetListMyGroupsSortOrderEnumStringValues Enumerates the set of values in String for ListMyGroupsSortOrderEnum +func GetListMyGroupsSortOrderEnumStringValues() []string { + return []string{ + "ASCENDING", + "DESCENDING", + } +} + +// GetMappingListMyGroupsSortOrderEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingListMyGroupsSortOrderEnum(val string) (ListMyGroupsSortOrderEnum, bool) { + enum, ok := mappingListMyGroupsSortOrderEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_my_o_auth2_client_credentials_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_my_o_auth2_client_credentials_request_response.go new file mode 100644 index 00000000000..15739a367e8 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_my_o_auth2_client_credentials_request_response.go @@ -0,0 +1,165 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// ListMyOAuth2ClientCredentialsRequest wrapper for the ListMyOAuth2ClientCredentials operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/ListMyOAuth2ClientCredentials.go.html to see an example of how to use ListMyOAuth2ClientCredentialsRequest. +type ListMyOAuth2ClientCredentialsRequest struct { + + // OPTIONAL. The filter string that is used to request a subset of resources. The filter string MUST be a valid filter expression. See the Filtering section of the SCIM specification for more information (Section 3.4.2.2). The string should contain at least one condition that each item must match in order to be returned in the search results. Each condition specifies an attribute, an operator, and a value. Conditions within a filter can be connected by logical operators (such as AND and OR). Sets of conditions can be grouped together using parentheses. + Filter *string `mandatory:"false" contributesTo:"query" name:"filter"` + + // OPTIONAL. A string that indicates the attribute whose value SHALL be used to order the returned responses. The sortBy attribute MUST be in standard attribute notation form. See the Attribute Notation section of the SCIM specification for more information (Section 3.10). Also, see the Sorting section of the SCIM specification for more information (Section 3.4.2.3). + SortBy *string `mandatory:"false" contributesTo:"query" name:"sortBy"` + + // A string that indicates the order in which the sortBy parameter is applied. Allowed values are 'ascending' and 'descending'. See (Sorting Section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.3)). OPTIONAL. + SortOrder ListMyOAuth2ClientCredentialsSortOrderEnum `mandatory:"false" contributesTo:"query" name:"sortOrder" omitEmpty:"true"` + + // OPTIONAL. An integer that indicates the 1-based index of the first query result. See the Pagination section of the SCIM specification for more information. (Section 3.4.2.4). The number of results pages to return. The first page is 1. Specify 2 to access the second page of results, and so on. + StartIndex *int `mandatory:"false" contributesTo:"query" name:"startIndex"` + + // OPTIONAL. An integer that indicates the desired maximum number of query results per page. 1000 is the largest value that you can use. See the Pagination section of the System for Cross-Domain Identity Management Protocol specification for more information. (Section 3.4.2.4). + Count *int `mandatory:"false" contributesTo:"query" name:"count"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // The value of the `opc-next-page` response header from the previous 'List' call. + Page *string `mandatory:"false" contributesTo:"query" name:"page"` + + // The maximum number of items to return in a paginated 'List' call. + Limit *int `mandatory:"false" contributesTo:"query" name:"limit"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request ListMyOAuth2ClientCredentialsRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request ListMyOAuth2ClientCredentialsRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request ListMyOAuth2ClientCredentialsRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request ListMyOAuth2ClientCredentialsRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request ListMyOAuth2ClientCredentialsRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingListMyOAuth2ClientCredentialsSortOrderEnum(string(request.SortOrder)); !ok && request.SortOrder != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for SortOrder: %s. Supported values are: %s.", request.SortOrder, strings.Join(GetListMyOAuth2ClientCredentialsSortOrderEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// ListMyOAuth2ClientCredentialsResponse wrapper for the ListMyOAuth2ClientCredentials operation +type ListMyOAuth2ClientCredentialsResponse struct { + + // The underlying http response + RawResponse *http.Response + + // A list of MyOAuth2ClientCredentials instances + MyOAuth2ClientCredentials `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For pagination of a list of items. When paging through a list, if this header appears in the response, then a partial list might have been returned. Include this value as the `page` parameter for the subsequent GET request to get the next batch of items. + OpcNextPage *string `presentIn:"header" name:"opc-next-page"` +} + +func (response ListMyOAuth2ClientCredentialsResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response ListMyOAuth2ClientCredentialsResponse) HTTPResponse() *http.Response { + return response.RawResponse +} + +// ListMyOAuth2ClientCredentialsSortOrderEnum Enum with underlying type: string +type ListMyOAuth2ClientCredentialsSortOrderEnum string + +// Set of constants representing the allowable values for ListMyOAuth2ClientCredentialsSortOrderEnum +const ( + ListMyOAuth2ClientCredentialsSortOrderAscending ListMyOAuth2ClientCredentialsSortOrderEnum = "ASCENDING" + ListMyOAuth2ClientCredentialsSortOrderDescending ListMyOAuth2ClientCredentialsSortOrderEnum = "DESCENDING" +) + +var mappingListMyOAuth2ClientCredentialsSortOrderEnum = map[string]ListMyOAuth2ClientCredentialsSortOrderEnum{ + "ASCENDING": ListMyOAuth2ClientCredentialsSortOrderAscending, + "DESCENDING": ListMyOAuth2ClientCredentialsSortOrderDescending, +} + +var mappingListMyOAuth2ClientCredentialsSortOrderEnumLowerCase = map[string]ListMyOAuth2ClientCredentialsSortOrderEnum{ + "ascending": ListMyOAuth2ClientCredentialsSortOrderAscending, + "descending": ListMyOAuth2ClientCredentialsSortOrderDescending, +} + +// GetListMyOAuth2ClientCredentialsSortOrderEnumValues Enumerates the set of values for ListMyOAuth2ClientCredentialsSortOrderEnum +func GetListMyOAuth2ClientCredentialsSortOrderEnumValues() []ListMyOAuth2ClientCredentialsSortOrderEnum { + values := make([]ListMyOAuth2ClientCredentialsSortOrderEnum, 0) + for _, v := range mappingListMyOAuth2ClientCredentialsSortOrderEnum { + values = append(values, v) + } + return values +} + +// GetListMyOAuth2ClientCredentialsSortOrderEnumStringValues Enumerates the set of values in String for ListMyOAuth2ClientCredentialsSortOrderEnum +func GetListMyOAuth2ClientCredentialsSortOrderEnumStringValues() []string { + return []string{ + "ASCENDING", + "DESCENDING", + } +} + +// GetMappingListMyOAuth2ClientCredentialsSortOrderEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingListMyOAuth2ClientCredentialsSortOrderEnum(val string) (ListMyOAuth2ClientCredentialsSortOrderEnum, bool) { + enum, ok := mappingListMyOAuth2ClientCredentialsSortOrderEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_my_smtp_credentials_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_my_smtp_credentials_request_response.go new file mode 100644 index 00000000000..ebf1ed209ee --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_my_smtp_credentials_request_response.go @@ -0,0 +1,165 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// ListMySmtpCredentialsRequest wrapper for the ListMySmtpCredentials operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/ListMySmtpCredentials.go.html to see an example of how to use ListMySmtpCredentialsRequest. +type ListMySmtpCredentialsRequest struct { + + // OPTIONAL. The filter string that is used to request a subset of resources. The filter string MUST be a valid filter expression. See the Filtering section of the SCIM specification for more information (Section 3.4.2.2). The string should contain at least one condition that each item must match in order to be returned in the search results. Each condition specifies an attribute, an operator, and a value. Conditions within a filter can be connected by logical operators (such as AND and OR). Sets of conditions can be grouped together using parentheses. + Filter *string `mandatory:"false" contributesTo:"query" name:"filter"` + + // OPTIONAL. A string that indicates the attribute whose value SHALL be used to order the returned responses. The sortBy attribute MUST be in standard attribute notation form. See the Attribute Notation section of the SCIM specification for more information (Section 3.10). Also, see the Sorting section of the SCIM specification for more information (Section 3.4.2.3). + SortBy *string `mandatory:"false" contributesTo:"query" name:"sortBy"` + + // A string that indicates the order in which the sortBy parameter is applied. Allowed values are 'ascending' and 'descending'. See (Sorting Section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.3)). OPTIONAL. + SortOrder ListMySmtpCredentialsSortOrderEnum `mandatory:"false" contributesTo:"query" name:"sortOrder" omitEmpty:"true"` + + // OPTIONAL. An integer that indicates the 1-based index of the first query result. See the Pagination section of the SCIM specification for more information. (Section 3.4.2.4). The number of results pages to return. The first page is 1. Specify 2 to access the second page of results, and so on. + StartIndex *int `mandatory:"false" contributesTo:"query" name:"startIndex"` + + // OPTIONAL. An integer that indicates the desired maximum number of query results per page. 1000 is the largest value that you can use. See the Pagination section of the System for Cross-Domain Identity Management Protocol specification for more information. (Section 3.4.2.4). + Count *int `mandatory:"false" contributesTo:"query" name:"count"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // The value of the `opc-next-page` response header from the previous 'List' call. + Page *string `mandatory:"false" contributesTo:"query" name:"page"` + + // The maximum number of items to return in a paginated 'List' call. + Limit *int `mandatory:"false" contributesTo:"query" name:"limit"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request ListMySmtpCredentialsRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request ListMySmtpCredentialsRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request ListMySmtpCredentialsRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request ListMySmtpCredentialsRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request ListMySmtpCredentialsRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingListMySmtpCredentialsSortOrderEnum(string(request.SortOrder)); !ok && request.SortOrder != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for SortOrder: %s. Supported values are: %s.", request.SortOrder, strings.Join(GetListMySmtpCredentialsSortOrderEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// ListMySmtpCredentialsResponse wrapper for the ListMySmtpCredentials operation +type ListMySmtpCredentialsResponse struct { + + // The underlying http response + RawResponse *http.Response + + // A list of MySmtpCredentials instances + MySmtpCredentials `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For pagination of a list of items. When paging through a list, if this header appears in the response, then a partial list might have been returned. Include this value as the `page` parameter for the subsequent GET request to get the next batch of items. + OpcNextPage *string `presentIn:"header" name:"opc-next-page"` +} + +func (response ListMySmtpCredentialsResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response ListMySmtpCredentialsResponse) HTTPResponse() *http.Response { + return response.RawResponse +} + +// ListMySmtpCredentialsSortOrderEnum Enum with underlying type: string +type ListMySmtpCredentialsSortOrderEnum string + +// Set of constants representing the allowable values for ListMySmtpCredentialsSortOrderEnum +const ( + ListMySmtpCredentialsSortOrderAscending ListMySmtpCredentialsSortOrderEnum = "ASCENDING" + ListMySmtpCredentialsSortOrderDescending ListMySmtpCredentialsSortOrderEnum = "DESCENDING" +) + +var mappingListMySmtpCredentialsSortOrderEnum = map[string]ListMySmtpCredentialsSortOrderEnum{ + "ASCENDING": ListMySmtpCredentialsSortOrderAscending, + "DESCENDING": ListMySmtpCredentialsSortOrderDescending, +} + +var mappingListMySmtpCredentialsSortOrderEnumLowerCase = map[string]ListMySmtpCredentialsSortOrderEnum{ + "ascending": ListMySmtpCredentialsSortOrderAscending, + "descending": ListMySmtpCredentialsSortOrderDescending, +} + +// GetListMySmtpCredentialsSortOrderEnumValues Enumerates the set of values for ListMySmtpCredentialsSortOrderEnum +func GetListMySmtpCredentialsSortOrderEnumValues() []ListMySmtpCredentialsSortOrderEnum { + values := make([]ListMySmtpCredentialsSortOrderEnum, 0) + for _, v := range mappingListMySmtpCredentialsSortOrderEnum { + values = append(values, v) + } + return values +} + +// GetListMySmtpCredentialsSortOrderEnumStringValues Enumerates the set of values in String for ListMySmtpCredentialsSortOrderEnum +func GetListMySmtpCredentialsSortOrderEnumStringValues() []string { + return []string{ + "ASCENDING", + "DESCENDING", + } +} + +// GetMappingListMySmtpCredentialsSortOrderEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingListMySmtpCredentialsSortOrderEnum(val string) (ListMySmtpCredentialsSortOrderEnum, bool) { + enum, ok := mappingListMySmtpCredentialsSortOrderEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_my_support_accounts_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_my_support_accounts_request_response.go new file mode 100644 index 00000000000..30b4f857483 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_my_support_accounts_request_response.go @@ -0,0 +1,165 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// ListMySupportAccountsRequest wrapper for the ListMySupportAccounts operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/ListMySupportAccounts.go.html to see an example of how to use ListMySupportAccountsRequest. +type ListMySupportAccountsRequest struct { + + // OPTIONAL. The filter string that is used to request a subset of resources. The filter string MUST be a valid filter expression. See the Filtering section of the SCIM specification for more information (Section 3.4.2.2). The string should contain at least one condition that each item must match in order to be returned in the search results. Each condition specifies an attribute, an operator, and a value. Conditions within a filter can be connected by logical operators (such as AND and OR). Sets of conditions can be grouped together using parentheses. + Filter *string `mandatory:"false" contributesTo:"query" name:"filter"` + + // OPTIONAL. A string that indicates the attribute whose value SHALL be used to order the returned responses. The sortBy attribute MUST be in standard attribute notation form. See the Attribute Notation section of the SCIM specification for more information (Section 3.10). Also, see the Sorting section of the SCIM specification for more information (Section 3.4.2.3). + SortBy *string `mandatory:"false" contributesTo:"query" name:"sortBy"` + + // A string that indicates the order in which the sortBy parameter is applied. Allowed values are 'ascending' and 'descending'. See (Sorting Section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.3)). OPTIONAL. + SortOrder ListMySupportAccountsSortOrderEnum `mandatory:"false" contributesTo:"query" name:"sortOrder" omitEmpty:"true"` + + // OPTIONAL. An integer that indicates the 1-based index of the first query result. See the Pagination section of the SCIM specification for more information. (Section 3.4.2.4). The number of results pages to return. The first page is 1. Specify 2 to access the second page of results, and so on. + StartIndex *int `mandatory:"false" contributesTo:"query" name:"startIndex"` + + // OPTIONAL. An integer that indicates the desired maximum number of query results per page. 1000 is the largest value that you can use. See the Pagination section of the System for Cross-Domain Identity Management Protocol specification for more information. (Section 3.4.2.4). + Count *int `mandatory:"false" contributesTo:"query" name:"count"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // The value of the `opc-next-page` response header from the previous 'List' call. + Page *string `mandatory:"false" contributesTo:"query" name:"page"` + + // The maximum number of items to return in a paginated 'List' call. + Limit *int `mandatory:"false" contributesTo:"query" name:"limit"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request ListMySupportAccountsRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request ListMySupportAccountsRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request ListMySupportAccountsRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request ListMySupportAccountsRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request ListMySupportAccountsRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingListMySupportAccountsSortOrderEnum(string(request.SortOrder)); !ok && request.SortOrder != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for SortOrder: %s. Supported values are: %s.", request.SortOrder, strings.Join(GetListMySupportAccountsSortOrderEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// ListMySupportAccountsResponse wrapper for the ListMySupportAccounts operation +type ListMySupportAccountsResponse struct { + + // The underlying http response + RawResponse *http.Response + + // A list of MySupportAccounts instances + MySupportAccounts `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For pagination of a list of items. When paging through a list, if this header appears in the response, then a partial list might have been returned. Include this value as the `page` parameter for the subsequent GET request to get the next batch of items. + OpcNextPage *string `presentIn:"header" name:"opc-next-page"` +} + +func (response ListMySupportAccountsResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response ListMySupportAccountsResponse) HTTPResponse() *http.Response { + return response.RawResponse +} + +// ListMySupportAccountsSortOrderEnum Enum with underlying type: string +type ListMySupportAccountsSortOrderEnum string + +// Set of constants representing the allowable values for ListMySupportAccountsSortOrderEnum +const ( + ListMySupportAccountsSortOrderAscending ListMySupportAccountsSortOrderEnum = "ASCENDING" + ListMySupportAccountsSortOrderDescending ListMySupportAccountsSortOrderEnum = "DESCENDING" +) + +var mappingListMySupportAccountsSortOrderEnum = map[string]ListMySupportAccountsSortOrderEnum{ + "ASCENDING": ListMySupportAccountsSortOrderAscending, + "DESCENDING": ListMySupportAccountsSortOrderDescending, +} + +var mappingListMySupportAccountsSortOrderEnumLowerCase = map[string]ListMySupportAccountsSortOrderEnum{ + "ascending": ListMySupportAccountsSortOrderAscending, + "descending": ListMySupportAccountsSortOrderDescending, +} + +// GetListMySupportAccountsSortOrderEnumValues Enumerates the set of values for ListMySupportAccountsSortOrderEnum +func GetListMySupportAccountsSortOrderEnumValues() []ListMySupportAccountsSortOrderEnum { + values := make([]ListMySupportAccountsSortOrderEnum, 0) + for _, v := range mappingListMySupportAccountsSortOrderEnum { + values = append(values, v) + } + return values +} + +// GetListMySupportAccountsSortOrderEnumStringValues Enumerates the set of values in String for ListMySupportAccountsSortOrderEnum +func GetListMySupportAccountsSortOrderEnumStringValues() []string { + return []string{ + "ASCENDING", + "DESCENDING", + } +} + +// GetMappingListMySupportAccountsSortOrderEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingListMySupportAccountsSortOrderEnum(val string) (ListMySupportAccountsSortOrderEnum, bool) { + enum, ok := mappingListMySupportAccountsSortOrderEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_my_trusted_user_agents_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_my_trusted_user_agents_request_response.go new file mode 100644 index 00000000000..957fda00873 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_my_trusted_user_agents_request_response.go @@ -0,0 +1,177 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// ListMyTrustedUserAgentsRequest wrapper for the ListMyTrustedUserAgents operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/ListMyTrustedUserAgents.go.html to see an example of how to use ListMyTrustedUserAgentsRequest. +type ListMyTrustedUserAgentsRequest struct { + + // OPTIONAL. The filter string that is used to request a subset of resources. The filter string MUST be a valid filter expression. See the Filtering section of the SCIM specification for more information (Section 3.4.2.2). The string should contain at least one condition that each item must match in order to be returned in the search results. Each condition specifies an attribute, an operator, and a value. Conditions within a filter can be connected by logical operators (such as AND and OR). Sets of conditions can be grouped together using parentheses. + Filter *string `mandatory:"false" contributesTo:"query" name:"filter"` + + // OPTIONAL. A string that indicates the attribute whose value SHALL be used to order the returned responses. The sortBy attribute MUST be in standard attribute notation form. See the Attribute Notation section of the SCIM specification for more information (Section 3.10). Also, see the Sorting section of the SCIM specification for more information (Section 3.4.2.3). + SortBy *string `mandatory:"false" contributesTo:"query" name:"sortBy"` + + // A string that indicates the order in which the sortBy parameter is applied. Allowed values are 'ascending' and 'descending'. See (Sorting Section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.3)). OPTIONAL. + SortOrder ListMyTrustedUserAgentsSortOrderEnum `mandatory:"false" contributesTo:"query" name:"sortOrder" omitEmpty:"true"` + + // OPTIONAL. An integer that indicates the 1-based index of the first query result. See the Pagination section of the SCIM specification for more information. (Section 3.4.2.4). The number of results pages to return. The first page is 1. Specify 2 to access the second page of results, and so on. + StartIndex *int `mandatory:"false" contributesTo:"query" name:"startIndex"` + + // OPTIONAL. An integer that indicates the desired maximum number of query results per page. 1000 is the largest value that you can use. See the Pagination section of the System for Cross-Domain Identity Management Protocol specification for more information. (Section 3.4.2.4). + Count *int `mandatory:"false" contributesTo:"query" name:"count"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // The value of the `opc-next-page` response header from the previous 'List' call. + Page *string `mandatory:"false" contributesTo:"query" name:"page"` + + // The maximum number of items to return in a paginated 'List' call. + Limit *int `mandatory:"false" contributesTo:"query" name:"limit"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request ListMyTrustedUserAgentsRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request ListMyTrustedUserAgentsRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request ListMyTrustedUserAgentsRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request ListMyTrustedUserAgentsRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request ListMyTrustedUserAgentsRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingListMyTrustedUserAgentsSortOrderEnum(string(request.SortOrder)); !ok && request.SortOrder != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for SortOrder: %s. Supported values are: %s.", request.SortOrder, strings.Join(GetListMyTrustedUserAgentsSortOrderEnumStringValues(), ","))) + } + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// ListMyTrustedUserAgentsResponse wrapper for the ListMyTrustedUserAgents operation +type ListMyTrustedUserAgentsResponse struct { + + // The underlying http response + RawResponse *http.Response + + // A list of MyTrustedUserAgents instances + MyTrustedUserAgents `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For pagination of a list of items. When paging through a list, if this header appears in the response, then a partial list might have been returned. Include this value as the `page` parameter for the subsequent GET request to get the next batch of items. + OpcNextPage *string `presentIn:"header" name:"opc-next-page"` +} + +func (response ListMyTrustedUserAgentsResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response ListMyTrustedUserAgentsResponse) HTTPResponse() *http.Response { + return response.RawResponse +} + +// ListMyTrustedUserAgentsSortOrderEnum Enum with underlying type: string +type ListMyTrustedUserAgentsSortOrderEnum string + +// Set of constants representing the allowable values for ListMyTrustedUserAgentsSortOrderEnum +const ( + ListMyTrustedUserAgentsSortOrderAscending ListMyTrustedUserAgentsSortOrderEnum = "ASCENDING" + ListMyTrustedUserAgentsSortOrderDescending ListMyTrustedUserAgentsSortOrderEnum = "DESCENDING" +) + +var mappingListMyTrustedUserAgentsSortOrderEnum = map[string]ListMyTrustedUserAgentsSortOrderEnum{ + "ASCENDING": ListMyTrustedUserAgentsSortOrderAscending, + "DESCENDING": ListMyTrustedUserAgentsSortOrderDescending, +} + +var mappingListMyTrustedUserAgentsSortOrderEnumLowerCase = map[string]ListMyTrustedUserAgentsSortOrderEnum{ + "ascending": ListMyTrustedUserAgentsSortOrderAscending, + "descending": ListMyTrustedUserAgentsSortOrderDescending, +} + +// GetListMyTrustedUserAgentsSortOrderEnumValues Enumerates the set of values for ListMyTrustedUserAgentsSortOrderEnum +func GetListMyTrustedUserAgentsSortOrderEnumValues() []ListMyTrustedUserAgentsSortOrderEnum { + values := make([]ListMyTrustedUserAgentsSortOrderEnum, 0) + for _, v := range mappingListMyTrustedUserAgentsSortOrderEnum { + values = append(values, v) + } + return values +} + +// GetListMyTrustedUserAgentsSortOrderEnumStringValues Enumerates the set of values in String for ListMyTrustedUserAgentsSortOrderEnum +func GetListMyTrustedUserAgentsSortOrderEnumStringValues() []string { + return []string{ + "ASCENDING", + "DESCENDING", + } +} + +// GetMappingListMyTrustedUserAgentsSortOrderEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingListMyTrustedUserAgentsSortOrderEnum(val string) (ListMyTrustedUserAgentsSortOrderEnum, bool) { + enum, ok := mappingListMyTrustedUserAgentsSortOrderEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_my_user_db_credentials_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_my_user_db_credentials_request_response.go new file mode 100644 index 00000000000..5e7c8c47607 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_my_user_db_credentials_request_response.go @@ -0,0 +1,165 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// ListMyUserDbCredentialsRequest wrapper for the ListMyUserDbCredentials operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/ListMyUserDbCredentials.go.html to see an example of how to use ListMyUserDbCredentialsRequest. +type ListMyUserDbCredentialsRequest struct { + + // OPTIONAL. The filter string that is used to request a subset of resources. The filter string MUST be a valid filter expression. See the Filtering section of the SCIM specification for more information (Section 3.4.2.2). The string should contain at least one condition that each item must match in order to be returned in the search results. Each condition specifies an attribute, an operator, and a value. Conditions within a filter can be connected by logical operators (such as AND and OR). Sets of conditions can be grouped together using parentheses. + Filter *string `mandatory:"false" contributesTo:"query" name:"filter"` + + // OPTIONAL. A string that indicates the attribute whose value SHALL be used to order the returned responses. The sortBy attribute MUST be in standard attribute notation form. See the Attribute Notation section of the SCIM specification for more information (Section 3.10). Also, see the Sorting section of the SCIM specification for more information (Section 3.4.2.3). + SortBy *string `mandatory:"false" contributesTo:"query" name:"sortBy"` + + // A string that indicates the order in which the sortBy parameter is applied. Allowed values are 'ascending' and 'descending'. See (Sorting Section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.3)). OPTIONAL. + SortOrder ListMyUserDbCredentialsSortOrderEnum `mandatory:"false" contributesTo:"query" name:"sortOrder" omitEmpty:"true"` + + // OPTIONAL. An integer that indicates the 1-based index of the first query result. See the Pagination section of the SCIM specification for more information. (Section 3.4.2.4). The number of results pages to return. The first page is 1. Specify 2 to access the second page of results, and so on. + StartIndex *int `mandatory:"false" contributesTo:"query" name:"startIndex"` + + // OPTIONAL. An integer that indicates the desired maximum number of query results per page. 1000 is the largest value that you can use. See the Pagination section of the System for Cross-Domain Identity Management Protocol specification for more information. (Section 3.4.2.4). + Count *int `mandatory:"false" contributesTo:"query" name:"count"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // The value of the `opc-next-page` response header from the previous 'List' call. + Page *string `mandatory:"false" contributesTo:"query" name:"page"` + + // The maximum number of items to return in a paginated 'List' call. + Limit *int `mandatory:"false" contributesTo:"query" name:"limit"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request ListMyUserDbCredentialsRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request ListMyUserDbCredentialsRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request ListMyUserDbCredentialsRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request ListMyUserDbCredentialsRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request ListMyUserDbCredentialsRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingListMyUserDbCredentialsSortOrderEnum(string(request.SortOrder)); !ok && request.SortOrder != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for SortOrder: %s. Supported values are: %s.", request.SortOrder, strings.Join(GetListMyUserDbCredentialsSortOrderEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// ListMyUserDbCredentialsResponse wrapper for the ListMyUserDbCredentials operation +type ListMyUserDbCredentialsResponse struct { + + // The underlying http response + RawResponse *http.Response + + // A list of MyUserDbCredentials instances + MyUserDbCredentials `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For pagination of a list of items. When paging through a list, if this header appears in the response, then a partial list might have been returned. Include this value as the `page` parameter for the subsequent GET request to get the next batch of items. + OpcNextPage *string `presentIn:"header" name:"opc-next-page"` +} + +func (response ListMyUserDbCredentialsResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response ListMyUserDbCredentialsResponse) HTTPResponse() *http.Response { + return response.RawResponse +} + +// ListMyUserDbCredentialsSortOrderEnum Enum with underlying type: string +type ListMyUserDbCredentialsSortOrderEnum string + +// Set of constants representing the allowable values for ListMyUserDbCredentialsSortOrderEnum +const ( + ListMyUserDbCredentialsSortOrderAscending ListMyUserDbCredentialsSortOrderEnum = "ASCENDING" + ListMyUserDbCredentialsSortOrderDescending ListMyUserDbCredentialsSortOrderEnum = "DESCENDING" +) + +var mappingListMyUserDbCredentialsSortOrderEnum = map[string]ListMyUserDbCredentialsSortOrderEnum{ + "ASCENDING": ListMyUserDbCredentialsSortOrderAscending, + "DESCENDING": ListMyUserDbCredentialsSortOrderDescending, +} + +var mappingListMyUserDbCredentialsSortOrderEnumLowerCase = map[string]ListMyUserDbCredentialsSortOrderEnum{ + "ascending": ListMyUserDbCredentialsSortOrderAscending, + "descending": ListMyUserDbCredentialsSortOrderDescending, +} + +// GetListMyUserDbCredentialsSortOrderEnumValues Enumerates the set of values for ListMyUserDbCredentialsSortOrderEnum +func GetListMyUserDbCredentialsSortOrderEnumValues() []ListMyUserDbCredentialsSortOrderEnum { + values := make([]ListMyUserDbCredentialsSortOrderEnum, 0) + for _, v := range mappingListMyUserDbCredentialsSortOrderEnum { + values = append(values, v) + } + return values +} + +// GetListMyUserDbCredentialsSortOrderEnumStringValues Enumerates the set of values in String for ListMyUserDbCredentialsSortOrderEnum +func GetListMyUserDbCredentialsSortOrderEnumStringValues() []string { + return []string{ + "ASCENDING", + "DESCENDING", + } +} + +// GetMappingListMyUserDbCredentialsSortOrderEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingListMyUserDbCredentialsSortOrderEnum(val string) (ListMyUserDbCredentialsSortOrderEnum, bool) { + enum, ok := mappingListMyUserDbCredentialsSortOrderEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_o_auth2_client_credentials_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_o_auth2_client_credentials_request_response.go new file mode 100644 index 00000000000..dd0aa6b9cc6 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_o_auth2_client_credentials_request_response.go @@ -0,0 +1,177 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// ListOAuth2ClientCredentialsRequest wrapper for the ListOAuth2ClientCredentials operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/ListOAuth2ClientCredentials.go.html to see an example of how to use ListOAuth2ClientCredentialsRequest. +type ListOAuth2ClientCredentialsRequest struct { + + // OPTIONAL. The filter string that is used to request a subset of resources. The filter string MUST be a valid filter expression. See the Filtering section of the SCIM specification for more information (Section 3.4.2.2). The string should contain at least one condition that each item must match in order to be returned in the search results. Each condition specifies an attribute, an operator, and a value. Conditions within a filter can be connected by logical operators (such as AND and OR). Sets of conditions can be grouped together using parentheses. + Filter *string `mandatory:"false" contributesTo:"query" name:"filter"` + + // OPTIONAL. A string that indicates the attribute whose value SHALL be used to order the returned responses. The sortBy attribute MUST be in standard attribute notation form. See the Attribute Notation section of the SCIM specification for more information (Section 3.10). Also, see the Sorting section of the SCIM specification for more information (Section 3.4.2.3). + SortBy *string `mandatory:"false" contributesTo:"query" name:"sortBy"` + + // A string that indicates the order in which the sortBy parameter is applied. Allowed values are 'ascending' and 'descending'. See (Sorting Section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.3)). OPTIONAL. + SortOrder ListOAuth2ClientCredentialsSortOrderEnum `mandatory:"false" contributesTo:"query" name:"sortOrder" omitEmpty:"true"` + + // OPTIONAL. An integer that indicates the 1-based index of the first query result. See the Pagination section of the SCIM specification for more information. (Section 3.4.2.4). The number of results pages to return. The first page is 1. Specify 2 to access the second page of results, and so on. + StartIndex *int `mandatory:"false" contributesTo:"query" name:"startIndex"` + + // OPTIONAL. An integer that indicates the desired maximum number of query results per page. 1000 is the largest value that you can use. See the Pagination section of the System for Cross-Domain Identity Management Protocol specification for more information. (Section 3.4.2.4). + Count *int `mandatory:"false" contributesTo:"query" name:"count"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // The value of the `opc-next-page` response header from the previous 'List' call. + Page *string `mandatory:"false" contributesTo:"query" name:"page"` + + // The maximum number of items to return in a paginated 'List' call. + Limit *int `mandatory:"false" contributesTo:"query" name:"limit"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request ListOAuth2ClientCredentialsRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request ListOAuth2ClientCredentialsRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request ListOAuth2ClientCredentialsRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request ListOAuth2ClientCredentialsRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request ListOAuth2ClientCredentialsRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingListOAuth2ClientCredentialsSortOrderEnum(string(request.SortOrder)); !ok && request.SortOrder != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for SortOrder: %s. Supported values are: %s.", request.SortOrder, strings.Join(GetListOAuth2ClientCredentialsSortOrderEnumStringValues(), ","))) + } + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// ListOAuth2ClientCredentialsResponse wrapper for the ListOAuth2ClientCredentials operation +type ListOAuth2ClientCredentialsResponse struct { + + // The underlying http response + RawResponse *http.Response + + // A list of OAuth2ClientCredentials instances + OAuth2ClientCredentials `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For pagination of a list of items. When paging through a list, if this header appears in the response, then a partial list might have been returned. Include this value as the `page` parameter for the subsequent GET request to get the next batch of items. + OpcNextPage *string `presentIn:"header" name:"opc-next-page"` +} + +func (response ListOAuth2ClientCredentialsResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response ListOAuth2ClientCredentialsResponse) HTTPResponse() *http.Response { + return response.RawResponse +} + +// ListOAuth2ClientCredentialsSortOrderEnum Enum with underlying type: string +type ListOAuth2ClientCredentialsSortOrderEnum string + +// Set of constants representing the allowable values for ListOAuth2ClientCredentialsSortOrderEnum +const ( + ListOAuth2ClientCredentialsSortOrderAscending ListOAuth2ClientCredentialsSortOrderEnum = "ASCENDING" + ListOAuth2ClientCredentialsSortOrderDescending ListOAuth2ClientCredentialsSortOrderEnum = "DESCENDING" +) + +var mappingListOAuth2ClientCredentialsSortOrderEnum = map[string]ListOAuth2ClientCredentialsSortOrderEnum{ + "ASCENDING": ListOAuth2ClientCredentialsSortOrderAscending, + "DESCENDING": ListOAuth2ClientCredentialsSortOrderDescending, +} + +var mappingListOAuth2ClientCredentialsSortOrderEnumLowerCase = map[string]ListOAuth2ClientCredentialsSortOrderEnum{ + "ascending": ListOAuth2ClientCredentialsSortOrderAscending, + "descending": ListOAuth2ClientCredentialsSortOrderDescending, +} + +// GetListOAuth2ClientCredentialsSortOrderEnumValues Enumerates the set of values for ListOAuth2ClientCredentialsSortOrderEnum +func GetListOAuth2ClientCredentialsSortOrderEnumValues() []ListOAuth2ClientCredentialsSortOrderEnum { + values := make([]ListOAuth2ClientCredentialsSortOrderEnum, 0) + for _, v := range mappingListOAuth2ClientCredentialsSortOrderEnum { + values = append(values, v) + } + return values +} + +// GetListOAuth2ClientCredentialsSortOrderEnumStringValues Enumerates the set of values in String for ListOAuth2ClientCredentialsSortOrderEnum +func GetListOAuth2ClientCredentialsSortOrderEnumStringValues() []string { + return []string{ + "ASCENDING", + "DESCENDING", + } +} + +// GetMappingListOAuth2ClientCredentialsSortOrderEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingListOAuth2ClientCredentialsSortOrderEnum(val string) (ListOAuth2ClientCredentialsSortOrderEnum, bool) { + enum, ok := mappingListOAuth2ClientCredentialsSortOrderEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_password_policies_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_password_policies_request_response.go new file mode 100644 index 00000000000..e826d2fc1f6 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_password_policies_request_response.go @@ -0,0 +1,177 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// ListPasswordPoliciesRequest wrapper for the ListPasswordPolicies operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/ListPasswordPolicies.go.html to see an example of how to use ListPasswordPoliciesRequest. +type ListPasswordPoliciesRequest struct { + + // OPTIONAL. The filter string that is used to request a subset of resources. The filter string MUST be a valid filter expression. See the Filtering section of the SCIM specification for more information (Section 3.4.2.2). The string should contain at least one condition that each item must match in order to be returned in the search results. Each condition specifies an attribute, an operator, and a value. Conditions within a filter can be connected by logical operators (such as AND and OR). Sets of conditions can be grouped together using parentheses. + Filter *string `mandatory:"false" contributesTo:"query" name:"filter"` + + // OPTIONAL. A string that indicates the attribute whose value SHALL be used to order the returned responses. The sortBy attribute MUST be in standard attribute notation form. See the Attribute Notation section of the SCIM specification for more information (Section 3.10). Also, see the Sorting section of the SCIM specification for more information (Section 3.4.2.3). + SortBy *string `mandatory:"false" contributesTo:"query" name:"sortBy"` + + // A string that indicates the order in which the sortBy parameter is applied. Allowed values are 'ascending' and 'descending'. See (Sorting Section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.3)). OPTIONAL. + SortOrder ListPasswordPoliciesSortOrderEnum `mandatory:"false" contributesTo:"query" name:"sortOrder" omitEmpty:"true"` + + // OPTIONAL. An integer that indicates the 1-based index of the first query result. See the Pagination section of the SCIM specification for more information. (Section 3.4.2.4). The number of results pages to return. The first page is 1. Specify 2 to access the second page of results, and so on. + StartIndex *int `mandatory:"false" contributesTo:"query" name:"startIndex"` + + // OPTIONAL. An integer that indicates the desired maximum number of query results per page. 1000 is the largest value that you can use. See the Pagination section of the System for Cross-Domain Identity Management Protocol specification for more information. (Section 3.4.2.4). + Count *int `mandatory:"false" contributesTo:"query" name:"count"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // The value of the `opc-next-page` response header from the previous 'List' call. + Page *string `mandatory:"false" contributesTo:"query" name:"page"` + + // The maximum number of items to return in a paginated 'List' call. + Limit *int `mandatory:"false" contributesTo:"query" name:"limit"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request ListPasswordPoliciesRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request ListPasswordPoliciesRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request ListPasswordPoliciesRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request ListPasswordPoliciesRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request ListPasswordPoliciesRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingListPasswordPoliciesSortOrderEnum(string(request.SortOrder)); !ok && request.SortOrder != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for SortOrder: %s. Supported values are: %s.", request.SortOrder, strings.Join(GetListPasswordPoliciesSortOrderEnumStringValues(), ","))) + } + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// ListPasswordPoliciesResponse wrapper for the ListPasswordPolicies operation +type ListPasswordPoliciesResponse struct { + + // The underlying http response + RawResponse *http.Response + + // A list of PasswordPolicies instances + PasswordPolicies `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For pagination of a list of items. When paging through a list, if this header appears in the response, then a partial list might have been returned. Include this value as the `page` parameter for the subsequent GET request to get the next batch of items. + OpcNextPage *string `presentIn:"header" name:"opc-next-page"` +} + +func (response ListPasswordPoliciesResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response ListPasswordPoliciesResponse) HTTPResponse() *http.Response { + return response.RawResponse +} + +// ListPasswordPoliciesSortOrderEnum Enum with underlying type: string +type ListPasswordPoliciesSortOrderEnum string + +// Set of constants representing the allowable values for ListPasswordPoliciesSortOrderEnum +const ( + ListPasswordPoliciesSortOrderAscending ListPasswordPoliciesSortOrderEnum = "ASCENDING" + ListPasswordPoliciesSortOrderDescending ListPasswordPoliciesSortOrderEnum = "DESCENDING" +) + +var mappingListPasswordPoliciesSortOrderEnum = map[string]ListPasswordPoliciesSortOrderEnum{ + "ASCENDING": ListPasswordPoliciesSortOrderAscending, + "DESCENDING": ListPasswordPoliciesSortOrderDescending, +} + +var mappingListPasswordPoliciesSortOrderEnumLowerCase = map[string]ListPasswordPoliciesSortOrderEnum{ + "ascending": ListPasswordPoliciesSortOrderAscending, + "descending": ListPasswordPoliciesSortOrderDescending, +} + +// GetListPasswordPoliciesSortOrderEnumValues Enumerates the set of values for ListPasswordPoliciesSortOrderEnum +func GetListPasswordPoliciesSortOrderEnumValues() []ListPasswordPoliciesSortOrderEnum { + values := make([]ListPasswordPoliciesSortOrderEnum, 0) + for _, v := range mappingListPasswordPoliciesSortOrderEnum { + values = append(values, v) + } + return values +} + +// GetListPasswordPoliciesSortOrderEnumStringValues Enumerates the set of values in String for ListPasswordPoliciesSortOrderEnum +func GetListPasswordPoliciesSortOrderEnumStringValues() []string { + return []string{ + "ASCENDING", + "DESCENDING", + } +} + +// GetMappingListPasswordPoliciesSortOrderEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingListPasswordPoliciesSortOrderEnum(val string) (ListPasswordPoliciesSortOrderEnum, bool) { + enum, ok := mappingListPasswordPoliciesSortOrderEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_smtp_credentials_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_smtp_credentials_request_response.go new file mode 100644 index 00000000000..18d8051b446 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_smtp_credentials_request_response.go @@ -0,0 +1,177 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// ListSmtpCredentialsRequest wrapper for the ListSmtpCredentials operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/ListSmtpCredentials.go.html to see an example of how to use ListSmtpCredentialsRequest. +type ListSmtpCredentialsRequest struct { + + // OPTIONAL. The filter string that is used to request a subset of resources. The filter string MUST be a valid filter expression. See the Filtering section of the SCIM specification for more information (Section 3.4.2.2). The string should contain at least one condition that each item must match in order to be returned in the search results. Each condition specifies an attribute, an operator, and a value. Conditions within a filter can be connected by logical operators (such as AND and OR). Sets of conditions can be grouped together using parentheses. + Filter *string `mandatory:"false" contributesTo:"query" name:"filter"` + + // OPTIONAL. A string that indicates the attribute whose value SHALL be used to order the returned responses. The sortBy attribute MUST be in standard attribute notation form. See the Attribute Notation section of the SCIM specification for more information (Section 3.10). Also, see the Sorting section of the SCIM specification for more information (Section 3.4.2.3). + SortBy *string `mandatory:"false" contributesTo:"query" name:"sortBy"` + + // A string that indicates the order in which the sortBy parameter is applied. Allowed values are 'ascending' and 'descending'. See (Sorting Section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.3)). OPTIONAL. + SortOrder ListSmtpCredentialsSortOrderEnum `mandatory:"false" contributesTo:"query" name:"sortOrder" omitEmpty:"true"` + + // OPTIONAL. An integer that indicates the 1-based index of the first query result. See the Pagination section of the SCIM specification for more information. (Section 3.4.2.4). The number of results pages to return. The first page is 1. Specify 2 to access the second page of results, and so on. + StartIndex *int `mandatory:"false" contributesTo:"query" name:"startIndex"` + + // OPTIONAL. An integer that indicates the desired maximum number of query results per page. 1000 is the largest value that you can use. See the Pagination section of the System for Cross-Domain Identity Management Protocol specification for more information. (Section 3.4.2.4). + Count *int `mandatory:"false" contributesTo:"query" name:"count"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // The value of the `opc-next-page` response header from the previous 'List' call. + Page *string `mandatory:"false" contributesTo:"query" name:"page"` + + // The maximum number of items to return in a paginated 'List' call. + Limit *int `mandatory:"false" contributesTo:"query" name:"limit"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request ListSmtpCredentialsRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request ListSmtpCredentialsRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request ListSmtpCredentialsRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request ListSmtpCredentialsRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request ListSmtpCredentialsRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingListSmtpCredentialsSortOrderEnum(string(request.SortOrder)); !ok && request.SortOrder != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for SortOrder: %s. Supported values are: %s.", request.SortOrder, strings.Join(GetListSmtpCredentialsSortOrderEnumStringValues(), ","))) + } + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// ListSmtpCredentialsResponse wrapper for the ListSmtpCredentials operation +type ListSmtpCredentialsResponse struct { + + // The underlying http response + RawResponse *http.Response + + // A list of SmtpCredentials instances + SmtpCredentials `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For pagination of a list of items. When paging through a list, if this header appears in the response, then a partial list might have been returned. Include this value as the `page` parameter for the subsequent GET request to get the next batch of items. + OpcNextPage *string `presentIn:"header" name:"opc-next-page"` +} + +func (response ListSmtpCredentialsResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response ListSmtpCredentialsResponse) HTTPResponse() *http.Response { + return response.RawResponse +} + +// ListSmtpCredentialsSortOrderEnum Enum with underlying type: string +type ListSmtpCredentialsSortOrderEnum string + +// Set of constants representing the allowable values for ListSmtpCredentialsSortOrderEnum +const ( + ListSmtpCredentialsSortOrderAscending ListSmtpCredentialsSortOrderEnum = "ASCENDING" + ListSmtpCredentialsSortOrderDescending ListSmtpCredentialsSortOrderEnum = "DESCENDING" +) + +var mappingListSmtpCredentialsSortOrderEnum = map[string]ListSmtpCredentialsSortOrderEnum{ + "ASCENDING": ListSmtpCredentialsSortOrderAscending, + "DESCENDING": ListSmtpCredentialsSortOrderDescending, +} + +var mappingListSmtpCredentialsSortOrderEnumLowerCase = map[string]ListSmtpCredentialsSortOrderEnum{ + "ascending": ListSmtpCredentialsSortOrderAscending, + "descending": ListSmtpCredentialsSortOrderDescending, +} + +// GetListSmtpCredentialsSortOrderEnumValues Enumerates the set of values for ListSmtpCredentialsSortOrderEnum +func GetListSmtpCredentialsSortOrderEnumValues() []ListSmtpCredentialsSortOrderEnum { + values := make([]ListSmtpCredentialsSortOrderEnum, 0) + for _, v := range mappingListSmtpCredentialsSortOrderEnum { + values = append(values, v) + } + return values +} + +// GetListSmtpCredentialsSortOrderEnumStringValues Enumerates the set of values in String for ListSmtpCredentialsSortOrderEnum +func GetListSmtpCredentialsSortOrderEnumStringValues() []string { + return []string{ + "ASCENDING", + "DESCENDING", + } +} + +// GetMappingListSmtpCredentialsSortOrderEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingListSmtpCredentialsSortOrderEnum(val string) (ListSmtpCredentialsSortOrderEnum, bool) { + enum, ok := mappingListSmtpCredentialsSortOrderEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_user_db_credentials_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_user_db_credentials_request_response.go new file mode 100644 index 00000000000..cb57e202134 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_user_db_credentials_request_response.go @@ -0,0 +1,177 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// ListUserDbCredentialsRequest wrapper for the ListUserDbCredentials operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/ListUserDbCredentials.go.html to see an example of how to use ListUserDbCredentialsRequest. +type ListUserDbCredentialsRequest struct { + + // OPTIONAL. The filter string that is used to request a subset of resources. The filter string MUST be a valid filter expression. See the Filtering section of the SCIM specification for more information (Section 3.4.2.2). The string should contain at least one condition that each item must match in order to be returned in the search results. Each condition specifies an attribute, an operator, and a value. Conditions within a filter can be connected by logical operators (such as AND and OR). Sets of conditions can be grouped together using parentheses. + Filter *string `mandatory:"false" contributesTo:"query" name:"filter"` + + // OPTIONAL. A string that indicates the attribute whose value SHALL be used to order the returned responses. The sortBy attribute MUST be in standard attribute notation form. See the Attribute Notation section of the SCIM specification for more information (Section 3.10). Also, see the Sorting section of the SCIM specification for more information (Section 3.4.2.3). + SortBy *string `mandatory:"false" contributesTo:"query" name:"sortBy"` + + // A string that indicates the order in which the sortBy parameter is applied. Allowed values are 'ascending' and 'descending'. See (Sorting Section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.3)). OPTIONAL. + SortOrder ListUserDbCredentialsSortOrderEnum `mandatory:"false" contributesTo:"query" name:"sortOrder" omitEmpty:"true"` + + // OPTIONAL. An integer that indicates the 1-based index of the first query result. See the Pagination section of the SCIM specification for more information. (Section 3.4.2.4). The number of results pages to return. The first page is 1. Specify 2 to access the second page of results, and so on. + StartIndex *int `mandatory:"false" contributesTo:"query" name:"startIndex"` + + // OPTIONAL. An integer that indicates the desired maximum number of query results per page. 1000 is the largest value that you can use. See the Pagination section of the System for Cross-Domain Identity Management Protocol specification for more information. (Section 3.4.2.4). + Count *int `mandatory:"false" contributesTo:"query" name:"count"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // The value of the `opc-next-page` response header from the previous 'List' call. + Page *string `mandatory:"false" contributesTo:"query" name:"page"` + + // The maximum number of items to return in a paginated 'List' call. + Limit *int `mandatory:"false" contributesTo:"query" name:"limit"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request ListUserDbCredentialsRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request ListUserDbCredentialsRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request ListUserDbCredentialsRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request ListUserDbCredentialsRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request ListUserDbCredentialsRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingListUserDbCredentialsSortOrderEnum(string(request.SortOrder)); !ok && request.SortOrder != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for SortOrder: %s. Supported values are: %s.", request.SortOrder, strings.Join(GetListUserDbCredentialsSortOrderEnumStringValues(), ","))) + } + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// ListUserDbCredentialsResponse wrapper for the ListUserDbCredentials operation +type ListUserDbCredentialsResponse struct { + + // The underlying http response + RawResponse *http.Response + + // A list of UserDbCredentials instances + UserDbCredentials `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For pagination of a list of items. When paging through a list, if this header appears in the response, then a partial list might have been returned. Include this value as the `page` parameter for the subsequent GET request to get the next batch of items. + OpcNextPage *string `presentIn:"header" name:"opc-next-page"` +} + +func (response ListUserDbCredentialsResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response ListUserDbCredentialsResponse) HTTPResponse() *http.Response { + return response.RawResponse +} + +// ListUserDbCredentialsSortOrderEnum Enum with underlying type: string +type ListUserDbCredentialsSortOrderEnum string + +// Set of constants representing the allowable values for ListUserDbCredentialsSortOrderEnum +const ( + ListUserDbCredentialsSortOrderAscending ListUserDbCredentialsSortOrderEnum = "ASCENDING" + ListUserDbCredentialsSortOrderDescending ListUserDbCredentialsSortOrderEnum = "DESCENDING" +) + +var mappingListUserDbCredentialsSortOrderEnum = map[string]ListUserDbCredentialsSortOrderEnum{ + "ASCENDING": ListUserDbCredentialsSortOrderAscending, + "DESCENDING": ListUserDbCredentialsSortOrderDescending, +} + +var mappingListUserDbCredentialsSortOrderEnumLowerCase = map[string]ListUserDbCredentialsSortOrderEnum{ + "ascending": ListUserDbCredentialsSortOrderAscending, + "descending": ListUserDbCredentialsSortOrderDescending, +} + +// GetListUserDbCredentialsSortOrderEnumValues Enumerates the set of values for ListUserDbCredentialsSortOrderEnum +func GetListUserDbCredentialsSortOrderEnumValues() []ListUserDbCredentialsSortOrderEnum { + values := make([]ListUserDbCredentialsSortOrderEnum, 0) + for _, v := range mappingListUserDbCredentialsSortOrderEnum { + values = append(values, v) + } + return values +} + +// GetListUserDbCredentialsSortOrderEnumStringValues Enumerates the set of values in String for ListUserDbCredentialsSortOrderEnum +func GetListUserDbCredentialsSortOrderEnumStringValues() []string { + return []string{ + "ASCENDING", + "DESCENDING", + } +} + +// GetMappingListUserDbCredentialsSortOrderEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingListUserDbCredentialsSortOrderEnum(val string) (ListUserDbCredentialsSortOrderEnum, bool) { + enum, ok := mappingListUserDbCredentialsSortOrderEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_users_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_users_request_response.go new file mode 100644 index 00000000000..3bfcc8ca906 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/list_users_request_response.go @@ -0,0 +1,177 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// ListUsersRequest wrapper for the ListUsers operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/ListUsers.go.html to see an example of how to use ListUsersRequest. +type ListUsersRequest struct { + + // OPTIONAL. The filter string that is used to request a subset of resources. The filter string MUST be a valid filter expression. See the Filtering section of the SCIM specification for more information (Section 3.4.2.2). The string should contain at least one condition that each item must match in order to be returned in the search results. Each condition specifies an attribute, an operator, and a value. Conditions within a filter can be connected by logical operators (such as AND and OR). Sets of conditions can be grouped together using parentheses. + Filter *string `mandatory:"false" contributesTo:"query" name:"filter"` + + // OPTIONAL. A string that indicates the attribute whose value SHALL be used to order the returned responses. The sortBy attribute MUST be in standard attribute notation form. See the Attribute Notation section of the SCIM specification for more information (Section 3.10). Also, see the Sorting section of the SCIM specification for more information (Section 3.4.2.3). + SortBy *string `mandatory:"false" contributesTo:"query" name:"sortBy"` + + // A string that indicates the order in which the sortBy parameter is applied. Allowed values are 'ascending' and 'descending'. See (Sorting Section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.3)). OPTIONAL. + SortOrder ListUsersSortOrderEnum `mandatory:"false" contributesTo:"query" name:"sortOrder" omitEmpty:"true"` + + // OPTIONAL. An integer that indicates the 1-based index of the first query result. See the Pagination section of the SCIM specification for more information. (Section 3.4.2.4). The number of results pages to return. The first page is 1. Specify 2 to access the second page of results, and so on. + StartIndex *int `mandatory:"false" contributesTo:"query" name:"startIndex"` + + // OPTIONAL. An integer that indicates the desired maximum number of query results per page. 1000 is the largest value that you can use. See the Pagination section of the System for Cross-Domain Identity Management Protocol specification for more information. (Section 3.4.2.4). + Count *int `mandatory:"false" contributesTo:"query" name:"count"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // The value of the `opc-next-page` response header from the previous 'List' call. + Page *string `mandatory:"false" contributesTo:"query" name:"page"` + + // The maximum number of items to return in a paginated 'List' call. + Limit *int `mandatory:"false" contributesTo:"query" name:"limit"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request ListUsersRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request ListUsersRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request ListUsersRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request ListUsersRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request ListUsersRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingListUsersSortOrderEnum(string(request.SortOrder)); !ok && request.SortOrder != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for SortOrder: %s. Supported values are: %s.", request.SortOrder, strings.Join(GetListUsersSortOrderEnumStringValues(), ","))) + } + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// ListUsersResponse wrapper for the ListUsers operation +type ListUsersResponse struct { + + // The underlying http response + RawResponse *http.Response + + // A list of Users instances + Users `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For pagination of a list of items. When paging through a list, if this header appears in the response, then a partial list might have been returned. Include this value as the `page` parameter for the subsequent GET request to get the next batch of items. + OpcNextPage *string `presentIn:"header" name:"opc-next-page"` +} + +func (response ListUsersResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response ListUsersResponse) HTTPResponse() *http.Response { + return response.RawResponse +} + +// ListUsersSortOrderEnum Enum with underlying type: string +type ListUsersSortOrderEnum string + +// Set of constants representing the allowable values for ListUsersSortOrderEnum +const ( + ListUsersSortOrderAscending ListUsersSortOrderEnum = "ASCENDING" + ListUsersSortOrderDescending ListUsersSortOrderEnum = "DESCENDING" +) + +var mappingListUsersSortOrderEnum = map[string]ListUsersSortOrderEnum{ + "ASCENDING": ListUsersSortOrderAscending, + "DESCENDING": ListUsersSortOrderDescending, +} + +var mappingListUsersSortOrderEnumLowerCase = map[string]ListUsersSortOrderEnum{ + "ascending": ListUsersSortOrderAscending, + "descending": ListUsersSortOrderDescending, +} + +// GetListUsersSortOrderEnumValues Enumerates the set of values for ListUsersSortOrderEnum +func GetListUsersSortOrderEnumValues() []ListUsersSortOrderEnum { + values := make([]ListUsersSortOrderEnum, 0) + for _, v := range mappingListUsersSortOrderEnum { + values = append(values, v) + } + return values +} + +// GetListUsersSortOrderEnumStringValues Enumerates the set of values in String for ListUsersSortOrderEnum +func GetListUsersSortOrderEnumStringValues() []string { + return []string{ + "ASCENDING", + "DESCENDING", + } +} + +// GetMappingListUsersSortOrderEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingListUsersSortOrderEnum(val string) (ListUsersSortOrderEnum, bool) { + enum, ok := mappingListUsersSortOrderEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/me.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/me.go new file mode 100644 index 00000000000..37abf0678f0 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/me.go @@ -0,0 +1,562 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// Me User Account +type Me struct { + + // REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: true + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Schemas []string `mandatory:"true" json:"schemas"` + + // User name + // **SCIM++ Properties:** + // - caseExact: false + // - idcsCsvAttributeName: User ID + // - idcsCsvAttributeNameMappings: [[columnHeaderName:User Name, deprecatedColumnHeaderName:User ID]] + // - idcsPii: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: always + // - type: string + // - uniqueness: global + UserName *string `mandatory:"true" json:"userName"` + + Name *MeName `mandatory:"true" json:"name"` + + // Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: always + // - type: string + // - uniqueness: global + Id *string `mandatory:"false" json:"id"` + + // Unique OCI identifier for the SCIM Resource. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: default + // - type: string + // - uniqueness: global + Ocid *string `mandatory:"false" json:"ocid"` + + Meta *Meta `mandatory:"false" json:"meta"` + + IdcsCreatedBy *IdcsCreatedBy `mandatory:"false" json:"idcsCreatedBy"` + + IdcsLastModifiedBy *IdcsLastModifiedBy `mandatory:"false" json:"idcsLastModifiedBy"` + + // Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsPreventedOperations []IdcsPreventedOperationsEnum `mandatory:"false" json:"idcsPreventedOperations,omitempty"` + + // A list of tags on this resource. + // **SCIM++ Properties:** + // - idcsCompositeKey: [key, value] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + Tags []Tags `mandatory:"false" json:"tags"` + + // A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + DeleteInProgress *bool `mandatory:"false" json:"deleteInProgress"` + + // The release number when the resource was upgraded. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsLastUpgradedInRelease *string `mandatory:"false" json:"idcsLastUpgradedInRelease"` + + // OCI Domain Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + DomainOcid *string `mandatory:"false" json:"domainOcid"` + + // OCI Compartment Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + CompartmentOcid *string `mandatory:"false" json:"compartmentOcid"` + + // OCI Tenant Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + TenancyOcid *string `mandatory:"false" json:"tenancyOcid"` + + // An identifier for the Resource as defined by the Service Consumer. The externalId may simplify identification of the Resource between Service Consumer and Service Provider by allowing the Consumer to refer to the Resource with its own identifier, obviating the need to store a local mapping between the local identifier of the Resource and the identifier used by the Service Provider. Each Resource MAY include a non-empty externalId value. The value of the externalId attribute is always issued by the Service Consumer and can never be specified by the Service Provider. The Service Provider MUST always interpret the externalId as scoped to the Service Consumer's tenant. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsCsvAttributeNameMappings: [[columnHeaderName:External Id]] + // - idcsPii: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + ExternalId *string `mandatory:"false" json:"externalId"` + + // Description of the user + // **Added In:** 2012271618 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsPii: true + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Description *string `mandatory:"false" json:"description"` + + // Display name + // **SCIM++ Properties:** + // - caseExact: false + // - idcsCsvAttributeName: Display Name + // - idcsCsvAttributeNameMappings: [[columnHeaderName:Display Name]] + // - idcsPii: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + DisplayName *string `mandatory:"false" json:"displayName"` + + // Nick name + // **SCIM++ Properties:** + // - caseExact: false + // - idcsCsvAttributeName: Nick Name + // - idcsCsvAttributeNameMappings: [[columnHeaderName:Nick Name]] + // - idcsPii: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + NickName *string `mandatory:"false" json:"nickName"` + + // A fully-qualified URL to a page representing the User's online profile + // **SCIM++ Properties:** + // - caseExact: false + // - idcsCsvAttributeName: Profile URL + // - idcsCsvAttributeNameMappings: [[columnHeaderName:Profile Url]] + // - idcsPii: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + ProfileUrl *string `mandatory:"false" json:"profileUrl"` + + // Title + // **SCIM++ Properties:** + // - caseExact: false + // - idcsCsvAttributeName: Title + // - idcsCsvAttributeNameMappings: [[columnHeaderName:Title]] + // - idcsPii: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Title *string `mandatory:"false" json:"title"` + + // Used to identify the organization-to-user relationship + // **SCIM++ Properties:** + // - caseExact: false + // - idcsCsvAttributeName: User Type + // - idcsCsvAttributeNameMappings: [[columnHeaderName:User Type]] + // - idcsPii: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + UserType MeUserTypeEnum `mandatory:"false" json:"userType,omitempty"` + + // Used to indicate the User's default location for purposes of localizing items such as currency, date and time format, numerical representations, and so on. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsCsvAttributeName: Locale + // - idcsCsvAttributeNameMappings: [[columnHeaderName:Locale]] + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Locale *string `mandatory:"false" json:"locale"` + + // User's preferred written or spoken language used for localized user interfaces + // **SCIM++ Properties:** + // - caseExact: false + // - idcsCsvAttributeName: Preferred Language + // - idcsCsvAttributeNameMappings: [[columnHeaderName:Preferred Language]] + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + PreferredLanguage *string `mandatory:"false" json:"preferredLanguage"` + + // User's timezone + // **SCIM++ Properties:** + // - caseExact: false + // - idcsCanonicalValueSourceFilter: attrName eq "timezones" and attrValues.value eq "$(timezone)" + // - idcsCanonicalValueSourceResourceType: AllowedValue + // - idcsCsvAttributeName: TimeZone + // - idcsCsvAttributeNameMappings: [[columnHeaderName:Time Zone, deprecatedColumnHeaderName:TimeZone]] + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Timezone *string `mandatory:"false" json:"timezone"` + + // User status + // **SCIM++ Properties:** + // - caseExact: false + // - idcsCsvAttributeName: Active + // - idcsCsvAttributeNameMappings: [[columnHeaderName:Active]] + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + Active *bool `mandatory:"false" json:"active"` + + // Password attribute. Max length for password is controlled via Password Policy. + // **SCIM++ Properties:** + // - idcsCsvAttributeName: Password + // - idcsCsvAttributeNameMappings: [[columnHeaderName:Password]] + // - idcsPii: true + // - idcsSearchable: false + // - idcsSensitive: hash + // - multiValued: false + // - mutability: writeOnly + // - required: false + // - returned: never + // - type: string + // - uniqueness: none + Password *string `mandatory:"false" json:"password"` + + // A complex attribute representing emails + // **SCIM++ Properties:** + // - idcsCompositeKey: [value, type] + // - idcsCsvAttributeNameMappings: [[columnHeaderName:Work Email, mapsTo:emails[work].value], [columnHeaderName:Home Email, mapsTo:emails[home].value], [columnHeaderName:Primary Email Type, mapsTo:emails[$(type)].primary], [columnHeaderName:Other Email, mapsTo:emails[other].value], [columnHeaderName:Recovery Email, mapsTo:emails[recovery].value], [columnHeaderName:Work Email Verified, mapsTo:emails[work].verified], [columnHeaderName:Home Email Verified, mapsTo:emails[home].verified], [columnHeaderName:Other Email Verified, mapsTo:emails[other].verified], [columnHeaderName:Recovery Email Verified, mapsTo:emails[recovery].verified]] + // - idcsPii: true + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: default + // - type: complex + // - uniqueness: none + Emails []MeEmails `mandatory:"false" json:"emails"` + + // Phone numbers + // **SCIM++ Properties:** + // - idcsCompositeKey: [value, type] + // - idcsCsvAttributeNameMappings: [[columnHeaderName:Work Phone, mapsTo:phoneNumbers[work].value], [columnHeaderName:Mobile No, mapsTo:phoneNumbers[mobile].value], [columnHeaderName:Home Phone, mapsTo:phoneNumbers[home].value], [columnHeaderName:Fax, mapsTo:phoneNumbers[fax].value], [columnHeaderName:Pager, mapsTo:phoneNumbers[pager].value], [columnHeaderName:Other Phone, mapsTo:phoneNumbers[other].value], [columnHeaderName:Recovery Phone, mapsTo:phoneNumbers[recovery].value], [columnHeaderName:Primary Phone Type, mapsTo:phoneNumbers[$(type)].primary]] + // - idcsPii: true + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: default + // - type: complex + // - uniqueness: none + PhoneNumbers []MePhoneNumbers `mandatory:"false" json:"phoneNumbers"` + + // User's instant messaging addresses + // **SCIM++ Properties:** + // - idcsCompositeKey: [value, type] + // - idcsPii: true + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: default + // - type: complex + // - uniqueness: none + Ims []MeIms `mandatory:"false" json:"ims"` + + // URLs of photos for the User + // **SCIM++ Properties:** + // - idcsCompositeKey: [value, type] + // - idcsPii: true + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: default + // - type: complex + // - uniqueness: none + Photos []MePhotos `mandatory:"false" json:"photos"` + + // A physical mailing address for this User, as described in (address Element). Canonical Type Values of work, home, and other. The value attribute is a complex type with the following sub-attributes. + // **SCIM++ Properties:** + // - idcsCompositeKey: [type] + // - idcsCsvAttributeNameMappings: [[columnHeaderName:Work Address Street, deprecatedColumnHeaderName:Work Street Address, mapsTo:addresses[work].streetAddress], [columnHeaderName:Work Address Locality, deprecatedColumnHeaderName:Work City, mapsTo:addresses[work].locality], [columnHeaderName:Work Address Region, deprecatedColumnHeaderName:Work State, mapsTo:addresses[work].region], [columnHeaderName:Work Address Postal Code, deprecatedColumnHeaderName:Work Postal Code, mapsTo:addresses[work].postalCode], [columnHeaderName:Work Address Country, deprecatedColumnHeaderName:Work Country, mapsTo:addresses[work].country], [columnHeaderName:Work Address Formatted, mapsTo:addresses[work].formatted], [columnHeaderName:Home Address Formatted, mapsTo:addresses[home].formatted], [columnHeaderName:Other Address Formatted, mapsTo:addresses[other].formatted], [columnHeaderName:Home Address Street, mapsTo:addresses[home].streetAddress], [columnHeaderName:Other Address Street, mapsTo:addresses[other].streetAddress], [columnHeaderName:Home Address Locality, mapsTo:addresses[home].locality], [columnHeaderName:Other Address Locality, mapsTo:addresses[other].locality], [columnHeaderName:Home Address Region, mapsTo:addresses[home].region], [columnHeaderName:Other Address Region, mapsTo:addresses[other].region], [columnHeaderName:Home Address Country, mapsTo:addresses[home].country], [columnHeaderName:Other Address Country, mapsTo:addresses[other].country], [columnHeaderName:Home Address Postal Code, mapsTo:addresses[home].postalCode], [columnHeaderName:Other Address Postal Code, mapsTo:addresses[other].postalCode], [columnHeaderName:Primary Address Type, mapsTo:addresses[$(type)].primary]] + // - idcsPii: true + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: default + // - type: complex + // - uniqueness: none + Addresses []Addresses `mandatory:"false" json:"addresses"` + + // A list of groups that the user belongs to, either thorough direct membership, nested groups, or dynamically calculated + // **SCIM++ Properties:** + // - idcsCompositeKey: [value] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + Groups []MeGroups `mandatory:"false" json:"groups"` + + // A list of entitlements for the User that represent a thing the User has. + // **SCIM++ Properties:** + // - idcsCompositeKey: [value, type] + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: default + // - type: complex + // - uniqueness: none + Entitlements []MeEntitlements `mandatory:"false" json:"entitlements"` + + // A list of roles for the User that collectively represent who the User is; e.g., 'Student', 'Faculty'. + // **SCIM++ Properties:** + // - idcsCompositeKey: [value, type] + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: default + // - type: complex + // - uniqueness: none + Roles []MeRoles `mandatory:"false" json:"roles"` + + // A list of certificates issued to the User. + // **SCIM++ Properties:** + // - idcsCompositeKey: [value] + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: default + // - type: complex + // - uniqueness: none + X509Certificates []MeX509Certificates `mandatory:"false" json:"x509Certificates"` + + UrnIetfParamsScimSchemasExtensionEnterprise2_0User *ExtensionEnterprise20User `mandatory:"false" json:"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"` + + UrnIetfParamsScimSchemasOracleIdcsExtensionUserUser *ExtensionUserUser `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:user:User"` + + UrnIetfParamsScimSchemasOracleIdcsExtensionPasswordStateUser *ExtensionPasswordStateUser `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:passwordState:User"` + + UrnIetfParamsScimSchemasOracleIdcsExtensionUserStateUser *ExtensionUserStateUser `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:userState:User"` + + UrnIetfParamsScimSchemasOracleIdcsExtensionMeUser *ExtensionMeUser `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:me:User"` + + UrnIetfParamsScimSchemasOracleIdcsExtensionPosixUser *ExtensionPosixUser `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:posix:User"` + + UrnIetfParamsScimSchemasOracleIdcsExtensionMfaUser *ExtensionMfaUser `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:mfa:User"` + + UrnIetfParamsScimSchemasOracleIdcsExtensionSecurityQuestionsUser *ExtensionSecurityQuestionsUser `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:securityQuestions:User"` + + UrnIetfParamsScimSchemasOracleIdcsExtensionSelfRegistrationUser *ExtensionSelfRegistrationUser `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:selfRegistration:User"` + + UrnIetfParamsScimSchemasOracleIdcsExtensionTermsOfUseUser *ExtensionTermsOfUseUser `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:termsOfUse:User"` + + UrnIetfParamsScimSchemasOracleIdcsExtensionOciTags *ExtensionOciTags `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:OCITags"` + + UrnIetfParamsScimSchemasOracleIdcsExtensionUserCredentialsUser *ExtensionUserCredentialsUser `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:userCredentials:User"` + + UrnIetfParamsScimSchemasOracleIdcsExtensionCapabilitiesUser *ExtensionCapabilitiesUser `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:capabilities:User"` + + UrnIetfParamsScimSchemasOracleIdcsExtensionDbCredentialsUser *ExtensionDbCredentialsUser `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:dbCredentials:User"` +} + +func (m Me) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m Me) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + for _, val := range m.IdcsPreventedOperations { + if _, ok := GetMappingIdcsPreventedOperationsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for IdcsPreventedOperations: %s. Supported values are: %s.", val, strings.Join(GetIdcsPreventedOperationsEnumStringValues(), ","))) + } + } + + if _, ok := GetMappingMeUserTypeEnum(string(m.UserType)); !ok && m.UserType != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for UserType: %s. Supported values are: %s.", m.UserType, strings.Join(GetMeUserTypeEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// MeUserTypeEnum Enum with underlying type: string +type MeUserTypeEnum string + +// Set of constants representing the allowable values for MeUserTypeEnum +const ( + MeUserTypeContractor MeUserTypeEnum = "Contractor" + MeUserTypeEmployee MeUserTypeEnum = "Employee" + MeUserTypeIntern MeUserTypeEnum = "Intern" + MeUserTypeTemp MeUserTypeEnum = "Temp" + MeUserTypeExternal MeUserTypeEnum = "External" + MeUserTypeService MeUserTypeEnum = "Service" + MeUserTypeGeneric MeUserTypeEnum = "Generic" +) + +var mappingMeUserTypeEnum = map[string]MeUserTypeEnum{ + "Contractor": MeUserTypeContractor, + "Employee": MeUserTypeEmployee, + "Intern": MeUserTypeIntern, + "Temp": MeUserTypeTemp, + "External": MeUserTypeExternal, + "Service": MeUserTypeService, + "Generic": MeUserTypeGeneric, +} + +var mappingMeUserTypeEnumLowerCase = map[string]MeUserTypeEnum{ + "contractor": MeUserTypeContractor, + "employee": MeUserTypeEmployee, + "intern": MeUserTypeIntern, + "temp": MeUserTypeTemp, + "external": MeUserTypeExternal, + "service": MeUserTypeService, + "generic": MeUserTypeGeneric, +} + +// GetMeUserTypeEnumValues Enumerates the set of values for MeUserTypeEnum +func GetMeUserTypeEnumValues() []MeUserTypeEnum { + values := make([]MeUserTypeEnum, 0) + for _, v := range mappingMeUserTypeEnum { + values = append(values, v) + } + return values +} + +// GetMeUserTypeEnumStringValues Enumerates the set of values in String for MeUserTypeEnum +func GetMeUserTypeEnumStringValues() []string { + return []string{ + "Contractor", + "Employee", + "Intern", + "Temp", + "External", + "Service", + "Generic", + } +} + +// GetMappingMeUserTypeEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingMeUserTypeEnum(val string) (MeUserTypeEnum, bool) { + enum, ok := mappingMeUserTypeEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/me_emails.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/me_emails.go new file mode 100644 index 00000000000..b544588044f --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/me_emails.go @@ -0,0 +1,163 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MeEmails A complex attribute representing emails +type MeEmails struct { + + // Email address + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` + + // Type of email address + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Type MeEmailsTypeEnum `mandatory:"true" json:"type"` + + // A Boolean value that indicates whether the email address is the primary email address. The primary attribute value 'true' MUST appear no more than once. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + Primary *bool `mandatory:"false" json:"primary"` + + // A Boolean value that indicates whether the email address is the secondary email address. The secondary attribute value 'true' MUST appear no more than once. + // **Added In:** 18.2.6 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + Secondary *bool `mandatory:"false" json:"secondary"` + + // A Boolean value that indicates whether or not the e-mail address is verified + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + Verified *bool `mandatory:"false" json:"verified"` + + // Pending e-mail address verification + // **Added In:** 19.1.4 + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + PendingVerificationData *string `mandatory:"false" json:"pendingVerificationData"` +} + +func (m MeEmails) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MeEmails) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingMeEmailsTypeEnum(string(m.Type)); !ok && m.Type != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Type: %s. Supported values are: %s.", m.Type, strings.Join(GetMeEmailsTypeEnumStringValues(), ","))) + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// MeEmailsTypeEnum Enum with underlying type: string +type MeEmailsTypeEnum string + +// Set of constants representing the allowable values for MeEmailsTypeEnum +const ( + MeEmailsTypeWork MeEmailsTypeEnum = "work" + MeEmailsTypeHome MeEmailsTypeEnum = "home" + MeEmailsTypeOther MeEmailsTypeEnum = "other" + MeEmailsTypeRecovery MeEmailsTypeEnum = "recovery" +) + +var mappingMeEmailsTypeEnum = map[string]MeEmailsTypeEnum{ + "work": MeEmailsTypeWork, + "home": MeEmailsTypeHome, + "other": MeEmailsTypeOther, + "recovery": MeEmailsTypeRecovery, +} + +var mappingMeEmailsTypeEnumLowerCase = map[string]MeEmailsTypeEnum{ + "work": MeEmailsTypeWork, + "home": MeEmailsTypeHome, + "other": MeEmailsTypeOther, + "recovery": MeEmailsTypeRecovery, +} + +// GetMeEmailsTypeEnumValues Enumerates the set of values for MeEmailsTypeEnum +func GetMeEmailsTypeEnumValues() []MeEmailsTypeEnum { + values := make([]MeEmailsTypeEnum, 0) + for _, v := range mappingMeEmailsTypeEnum { + values = append(values, v) + } + return values +} + +// GetMeEmailsTypeEnumStringValues Enumerates the set of values in String for MeEmailsTypeEnum +func GetMeEmailsTypeEnumStringValues() []string { + return []string{ + "work", + "home", + "other", + "recovery", + } +} + +// GetMappingMeEmailsTypeEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingMeEmailsTypeEnum(val string) (MeEmailsTypeEnum, bool) { + enum, ok := mappingMeEmailsTypeEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/me_entitlements.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/me_entitlements.go new file mode 100644 index 00000000000..1b2ddb7af59 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/me_entitlements.go @@ -0,0 +1,82 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MeEntitlements A list of entitlements for the User that represent a thing the User has. +type MeEntitlements struct { + + // The value of an entitlement. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` + + // A label indicating the attribute's function. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Type *string `mandatory:"true" json:"type"` + + // A human readable name, primarily used for display purposes. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Display *string `mandatory:"false" json:"display"` + + // A Boolean value indicating the 'primary' or preferred attribute value for this attribute. The primary attribute value 'true' MUST appear no more than once. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + Primary *bool `mandatory:"false" json:"primary"` +} + +func (m MeEntitlements) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MeEntitlements) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/me_groups.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/me_groups.go new file mode 100644 index 00000000000..6c3c3ba8f66 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/me_groups.go @@ -0,0 +1,187 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MeGroups A list of groups that the user belongs to, either thorough direct membership, nested groups, or dynamically calculated +type MeGroups struct { + + // The identifier of the User's group. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: true + // - returned: always + // - type: string + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` + + // Ocid of the User's group. + // **Added In:** 2102181953 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Ocid *string `mandatory:"false" json:"ocid"` + + // The URI of the corresponding Group resource to which the user belongs + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` + + // A human readable name, primarily used for display purposes. READ-ONLY. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Display *string `mandatory:"false" json:"display"` + + // A human readable name for Group as defined by the Service Consumer. READ-ONLY. + // **Added In:** 2011192329 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + NonUniqueDisplay *string `mandatory:"false" json:"nonUniqueDisplay"` + + // An identifier for the Resource as defined by the Service Consumer. READ-ONLY. + // **Added In:** 2011192329 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + ExternalId *string `mandatory:"false" json:"externalId"` + + // A label indicating the attribute's function; e.g., 'direct' or 'indirect'. + // **SCIM++ Properties:** + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + Type MeGroupsTypeEnum `mandatory:"false" json:"type,omitempty"` + + // Membership Ocid + // **Added In:** 2103141444 + // **SCIM++ Properties:** + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + MembershipOcid *string `mandatory:"false" json:"membershipOcid"` + + // Date when the member is Added to the group + // **Added In:** 2105200541 + // **SCIM++ Properties:** + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: dateTime + // - uniqueness: none + DateAdded *string `mandatory:"false" json:"dateAdded"` +} + +func (m MeGroups) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MeGroups) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if _, ok := GetMappingMeGroupsTypeEnum(string(m.Type)); !ok && m.Type != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Type: %s. Supported values are: %s.", m.Type, strings.Join(GetMeGroupsTypeEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// MeGroupsTypeEnum Enum with underlying type: string +type MeGroupsTypeEnum string + +// Set of constants representing the allowable values for MeGroupsTypeEnum +const ( + MeGroupsTypeDirect MeGroupsTypeEnum = "direct" + MeGroupsTypeIndirect MeGroupsTypeEnum = "indirect" +) + +var mappingMeGroupsTypeEnum = map[string]MeGroupsTypeEnum{ + "direct": MeGroupsTypeDirect, + "indirect": MeGroupsTypeIndirect, +} + +var mappingMeGroupsTypeEnumLowerCase = map[string]MeGroupsTypeEnum{ + "direct": MeGroupsTypeDirect, + "indirect": MeGroupsTypeIndirect, +} + +// GetMeGroupsTypeEnumValues Enumerates the set of values for MeGroupsTypeEnum +func GetMeGroupsTypeEnumValues() []MeGroupsTypeEnum { + values := make([]MeGroupsTypeEnum, 0) + for _, v := range mappingMeGroupsTypeEnum { + values = append(values, v) + } + return values +} + +// GetMeGroupsTypeEnumStringValues Enumerates the set of values in String for MeGroupsTypeEnum +func GetMeGroupsTypeEnumStringValues() []string { + return []string{ + "direct", + "indirect", + } +} + +// GetMappingMeGroupsTypeEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingMeGroupsTypeEnum(val string) (MeGroupsTypeEnum, bool) { + enum, ok := mappingMeGroupsTypeEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/me_ims.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/me_ims.go new file mode 100644 index 00000000000..f990dd910cf --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/me_ims.go @@ -0,0 +1,154 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MeIms User's instant messaging addresses +type MeIms struct { + + // User's instant messaging address + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` + + // A label that indicates the attribute's function--for example, 'aim', 'gtalk', or 'mobile' + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Type MeImsTypeEnum `mandatory:"true" json:"type"` + + // A human-readable name, primarily used for display purposes + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Display *string `mandatory:"false" json:"display"` + + // A Boolean value that indicates the 'primary' or preferred attribute value for this attribute--for example, the preferred messenger or primary messenger. The primary attribute value 'true' MUST appear no more than once. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + Primary *bool `mandatory:"false" json:"primary"` +} + +func (m MeIms) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MeIms) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingMeImsTypeEnum(string(m.Type)); !ok && m.Type != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Type: %s. Supported values are: %s.", m.Type, strings.Join(GetMeImsTypeEnumStringValues(), ","))) + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// MeImsTypeEnum Enum with underlying type: string +type MeImsTypeEnum string + +// Set of constants representing the allowable values for MeImsTypeEnum +const ( + MeImsTypeAim MeImsTypeEnum = "aim" + MeImsTypeGtalk MeImsTypeEnum = "gtalk" + MeImsTypeIcq MeImsTypeEnum = "icq" + MeImsTypeXmpp MeImsTypeEnum = "xmpp" + MeImsTypeMsn MeImsTypeEnum = "msn" + MeImsTypeSkype MeImsTypeEnum = "skype" + MeImsTypeQq MeImsTypeEnum = "qq" + MeImsTypeYahoo MeImsTypeEnum = "yahoo" +) + +var mappingMeImsTypeEnum = map[string]MeImsTypeEnum{ + "aim": MeImsTypeAim, + "gtalk": MeImsTypeGtalk, + "icq": MeImsTypeIcq, + "xmpp": MeImsTypeXmpp, + "msn": MeImsTypeMsn, + "skype": MeImsTypeSkype, + "qq": MeImsTypeQq, + "yahoo": MeImsTypeYahoo, +} + +var mappingMeImsTypeEnumLowerCase = map[string]MeImsTypeEnum{ + "aim": MeImsTypeAim, + "gtalk": MeImsTypeGtalk, + "icq": MeImsTypeIcq, + "xmpp": MeImsTypeXmpp, + "msn": MeImsTypeMsn, + "skype": MeImsTypeSkype, + "qq": MeImsTypeQq, + "yahoo": MeImsTypeYahoo, +} + +// GetMeImsTypeEnumValues Enumerates the set of values for MeImsTypeEnum +func GetMeImsTypeEnumValues() []MeImsTypeEnum { + values := make([]MeImsTypeEnum, 0) + for _, v := range mappingMeImsTypeEnum { + values = append(values, v) + } + return values +} + +// GetMeImsTypeEnumStringValues Enumerates the set of values in String for MeImsTypeEnum +func GetMeImsTypeEnumStringValues() []string { + return []string{ + "aim", + "gtalk", + "icq", + "xmpp", + "msn", + "skype", + "qq", + "yahoo", + } +} + +// GetMappingMeImsTypeEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingMeImsTypeEnum(val string) (MeImsTypeEnum, bool) { + enum, ok := mappingMeImsTypeEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/me_name.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/me_name.go new file mode 100644 index 00000000000..79ebf922cd5 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/me_name.go @@ -0,0 +1,121 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MeName A complex attribute that contains attributes representing the name +// **SCIM++ Properties:** +// - idcsCsvAttributeNameMappings: [[columnHeaderName:Formatted Name, mapsTo:name.formatted], [columnHeaderName:Honorific Prefix, mapsTo:name.honorificPrefix], [columnHeaderName:First Name, mapsTo:name.givenName], [columnHeaderName:Middle Name, mapsTo:name.middleName], [columnHeaderName:Last Name, mapsTo:name.familyName], [columnHeaderName:Honorific Suffix, mapsTo:name.honorificSuffix]] +// - idcsPii: true +// - multiValued: false +// - mutability: readWrite +// - required: true +// - returned: default +// - type: complex +// - uniqueness: none +type MeName struct { + + // Last name + // **SCIM++ Properties:** + // - caseExact: false + // - idcsCsvAttributeName: Last Name + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + FamilyName *string `mandatory:"true" json:"familyName"` + + // Full name + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Formatted *string `mandatory:"false" json:"formatted"` + + // First name + // **SCIM++ Properties:** + // - caseExact: false + // - idcsCsvAttributeName: First Name + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + GivenName *string `mandatory:"false" json:"givenName"` + + // Middle name + // **SCIM++ Properties:** + // - caseExact: false + // - idcsCsvAttributeName: Middle Name + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + MiddleName *string `mandatory:"false" json:"middleName"` + + // Prefix + // **SCIM++ Properties:** + // - idcsCsvAttributeName: Honorific Prefix + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + HonorificPrefix *string `mandatory:"false" json:"honorificPrefix"` + + // Suffix + // **SCIM++ Properties:** + // - idcsCsvAttributeName: Honorific Suffix + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + HonorificSuffix *string `mandatory:"false" json:"honorificSuffix"` +} + +func (m MeName) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MeName) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/me_password_changer.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/me_password_changer.go new file mode 100644 index 00000000000..faad70f79d8 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/me_password_changer.go @@ -0,0 +1,205 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MePasswordChanger Schema to handle userpassword change by self. +type MePasswordChanger struct { + + // REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: true + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Schemas []string `mandatory:"true" json:"schemas"` + + // Password attribute. Max length for password is controlled via Password Policy. + // **SCIM++ Properties:** + // - type: string + // - multiValued: false + // - required: true + // - mutability: writeOnly + // - returned: never + // - uniqueness: none + // - caseExact: false + // - idcsSensitive: hash + // - idcsSearchable: false + Password *string `mandatory:"true" json:"password"` + + // Old password attribute + // **SCIM++ Properties:** + // - type: string + // - multiValued: false + // - required: true + // - mutability: writeOnly + // - returned: never + // - uniqueness: none + // - caseExact: false + // - idcsSensitive: none + // - idcsSearchable: false + OldPassword *string `mandatory:"true" json:"oldPassword"` + + // Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: always + // - type: string + // - uniqueness: global + Id *string `mandatory:"false" json:"id"` + + // Unique OCI identifier for the SCIM Resource. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: default + // - type: string + // - uniqueness: global + Ocid *string `mandatory:"false" json:"ocid"` + + Meta *Meta `mandatory:"false" json:"meta"` + + IdcsCreatedBy *IdcsCreatedBy `mandatory:"false" json:"idcsCreatedBy"` + + IdcsLastModifiedBy *IdcsLastModifiedBy `mandatory:"false" json:"idcsLastModifiedBy"` + + // Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsPreventedOperations []IdcsPreventedOperationsEnum `mandatory:"false" json:"idcsPreventedOperations,omitempty"` + + // A list of tags on this resource. + // **SCIM++ Properties:** + // - idcsCompositeKey: [key, value] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + Tags []Tags `mandatory:"false" json:"tags"` + + // A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + DeleteInProgress *bool `mandatory:"false" json:"deleteInProgress"` + + // The release number when the resource was upgraded. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsLastUpgradedInRelease *string `mandatory:"false" json:"idcsLastUpgradedInRelease"` + + // OCI Domain Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + DomainOcid *string `mandatory:"false" json:"domainOcid"` + + // OCI Compartment Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + CompartmentOcid *string `mandatory:"false" json:"compartmentOcid"` + + // OCI Tenant Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + TenancyOcid *string `mandatory:"false" json:"tenancyOcid"` + + // An identifier for the Resource as defined by the Service Consumer. The externalId may simplify identification of the Resource between Service Consumer and Service Provider by allowing the Consumer to refer to the Resource with its own identifier, obviating the need to store a local mapping between the local identifier of the Resource and the identifier used by the Service Provider. Each Resource MAY include a non-empty externalId value. The value of the externalId attribute is always issued by the Service Consumer and can never be specified by the Service Provider. The Service Provider MUST always interpret the externalId as scoped to the Service Consumer's tenant. + // **SCIM++ Properties:** + // - type: string + // - multiValued: false + // - required: false + // - caseExact: false + // - mutability: readWrite + // - returned: default + // - uniqueness: none + ExternalId *string `mandatory:"false" json:"externalId"` +} + +func (m MePasswordChanger) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MePasswordChanger) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + for _, val := range m.IdcsPreventedOperations { + if _, ok := GetMappingIdcsPreventedOperationsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for IdcsPreventedOperations: %s. Supported values are: %s.", val, strings.Join(GetIdcsPreventedOperationsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/me_phone_numbers.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/me_phone_numbers.go new file mode 100644 index 00000000000..3631d6f7f31 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/me_phone_numbers.go @@ -0,0 +1,162 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MePhoneNumbers Phone numbers +type MePhoneNumbers struct { + + // User's phone number + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` + + // A label that indicates the attribute's function- for example, 'work', 'home', or 'mobile' + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Type MePhoneNumbersTypeEnum `mandatory:"true" json:"type"` + + // A human-readable name, primarily used for display purposes. READ ONLY + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Display *string `mandatory:"false" json:"display"` + + // A Boolean value that indicates the 'primary' or preferred attribute value for this attribute--for example, the preferred phone number or primary phone number. The primary attribute value 'true' MUST appear no more than once. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + Primary *bool `mandatory:"false" json:"primary"` + + // A Boolean value that indicates if the phone number is verified. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + Verified *bool `mandatory:"false" json:"verified"` +} + +func (m MePhoneNumbers) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MePhoneNumbers) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingMePhoneNumbersTypeEnum(string(m.Type)); !ok && m.Type != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Type: %s. Supported values are: %s.", m.Type, strings.Join(GetMePhoneNumbersTypeEnumStringValues(), ","))) + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// MePhoneNumbersTypeEnum Enum with underlying type: string +type MePhoneNumbersTypeEnum string + +// Set of constants representing the allowable values for MePhoneNumbersTypeEnum +const ( + MePhoneNumbersTypeWork MePhoneNumbersTypeEnum = "work" + MePhoneNumbersTypeHome MePhoneNumbersTypeEnum = "home" + MePhoneNumbersTypeMobile MePhoneNumbersTypeEnum = "mobile" + MePhoneNumbersTypeFax MePhoneNumbersTypeEnum = "fax" + MePhoneNumbersTypePager MePhoneNumbersTypeEnum = "pager" + MePhoneNumbersTypeOther MePhoneNumbersTypeEnum = "other" + MePhoneNumbersTypeRecovery MePhoneNumbersTypeEnum = "recovery" +) + +var mappingMePhoneNumbersTypeEnum = map[string]MePhoneNumbersTypeEnum{ + "work": MePhoneNumbersTypeWork, + "home": MePhoneNumbersTypeHome, + "mobile": MePhoneNumbersTypeMobile, + "fax": MePhoneNumbersTypeFax, + "pager": MePhoneNumbersTypePager, + "other": MePhoneNumbersTypeOther, + "recovery": MePhoneNumbersTypeRecovery, +} + +var mappingMePhoneNumbersTypeEnumLowerCase = map[string]MePhoneNumbersTypeEnum{ + "work": MePhoneNumbersTypeWork, + "home": MePhoneNumbersTypeHome, + "mobile": MePhoneNumbersTypeMobile, + "fax": MePhoneNumbersTypeFax, + "pager": MePhoneNumbersTypePager, + "other": MePhoneNumbersTypeOther, + "recovery": MePhoneNumbersTypeRecovery, +} + +// GetMePhoneNumbersTypeEnumValues Enumerates the set of values for MePhoneNumbersTypeEnum +func GetMePhoneNumbersTypeEnumValues() []MePhoneNumbersTypeEnum { + values := make([]MePhoneNumbersTypeEnum, 0) + for _, v := range mappingMePhoneNumbersTypeEnum { + values = append(values, v) + } + return values +} + +// GetMePhoneNumbersTypeEnumStringValues Enumerates the set of values in String for MePhoneNumbersTypeEnum +func GetMePhoneNumbersTypeEnumStringValues() []string { + return []string{ + "work", + "home", + "mobile", + "fax", + "pager", + "other", + "recovery", + } +} + +// GetMappingMePhoneNumbersTypeEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingMePhoneNumbersTypeEnum(val string) (MePhoneNumbersTypeEnum, bool) { + enum, ok := mappingMePhoneNumbersTypeEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/me_photos.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/me_photos.go new file mode 100644 index 00000000000..371471f2b65 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/me_photos.go @@ -0,0 +1,126 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MePhotos URLs of photos for the User +type MePhotos struct { + + // URL of a photo for the User + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: reference + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` + + // A label indicating the attribute's function; e.g., 'photo' or 'thumbnail'. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Type MePhotosTypeEnum `mandatory:"true" json:"type"` + + // A human readable name, primarily used for display purposes. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Display *string `mandatory:"false" json:"display"` + + // A Boolean value indicating the 'primary' or preferred attribute value for this attribute, e.g., the preferred photo or thumbnail. The primary attribute value 'true' MUST appear no more than once. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + Primary *bool `mandatory:"false" json:"primary"` +} + +func (m MePhotos) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MePhotos) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingMePhotosTypeEnum(string(m.Type)); !ok && m.Type != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Type: %s. Supported values are: %s.", m.Type, strings.Join(GetMePhotosTypeEnumStringValues(), ","))) + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// MePhotosTypeEnum Enum with underlying type: string +type MePhotosTypeEnum string + +// Set of constants representing the allowable values for MePhotosTypeEnum +const ( + MePhotosTypePhoto MePhotosTypeEnum = "photo" + MePhotosTypeThumbnail MePhotosTypeEnum = "thumbnail" +) + +var mappingMePhotosTypeEnum = map[string]MePhotosTypeEnum{ + "photo": MePhotosTypePhoto, + "thumbnail": MePhotosTypeThumbnail, +} + +var mappingMePhotosTypeEnumLowerCase = map[string]MePhotosTypeEnum{ + "photo": MePhotosTypePhoto, + "thumbnail": MePhotosTypeThumbnail, +} + +// GetMePhotosTypeEnumValues Enumerates the set of values for MePhotosTypeEnum +func GetMePhotosTypeEnumValues() []MePhotosTypeEnum { + values := make([]MePhotosTypeEnum, 0) + for _, v := range mappingMePhotosTypeEnum { + values = append(values, v) + } + return values +} + +// GetMePhotosTypeEnumStringValues Enumerates the set of values in String for MePhotosTypeEnum +func GetMePhotosTypeEnumStringValues() []string { + return []string{ + "photo", + "thumbnail", + } +} + +// GetMappingMePhotosTypeEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingMePhotosTypeEnum(val string) (MePhotosTypeEnum, bool) { + enum, ok := mappingMePhotosTypeEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/me_roles.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/me_roles.go new file mode 100644 index 00000000000..fa38ac6c92f --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/me_roles.go @@ -0,0 +1,82 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MeRoles A list of roles for the User that collectively represent who the User is; e.g., 'Student', 'Faculty'. +type MeRoles struct { + + // The value of a role. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` + + // A label indicating the attribute's function. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Type *string `mandatory:"true" json:"type"` + + // A human readable name, primarily used for display purposes. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Display *string `mandatory:"false" json:"display"` + + // A Boolean value indicating the 'primary' or preferred attribute value for this attribute. The primary attribute value 'true' MUST appear no more than once. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + Primary *bool `mandatory:"false" json:"primary"` +} + +func (m MeRoles) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MeRoles) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/me_x509_certificates.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/me_x509_certificates.go new file mode 100644 index 00000000000..81cf970d949 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/me_x509_certificates.go @@ -0,0 +1,81 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MeX509Certificates A list of certificates issued to the User. +type MeX509Certificates struct { + + // The value of a X509 certificate. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: binary + // - uniqueness: none + Value *interface{} `mandatory:"true" json:"value"` + + // A human readable name, primarily used for display purposes. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Display *string `mandatory:"false" json:"display"` + + // A label indicating the attribute's function. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Type *string `mandatory:"false" json:"type"` + + // A Boolean value indicating the 'primary' or preferred attribute value for this attribute. The primary attribute value 'true' MUST appear no more than once. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + Primary *bool `mandatory:"false" json:"primary"` +} + +func (m MeX509Certificates) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MeX509Certificates) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/meta.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/meta.go new file mode 100644 index 00000000000..c75b396dd31 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/meta.go @@ -0,0 +1,106 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// Meta A complex attribute that contains resource metadata. All sub-attributes are OPTIONAL. +// **SCIM++ Properties:** +// - caseExact: false +// - idcsSearchable: true +// - multiValued: false +// - mutability: readOnly +// - required: false +// - returned: default +// - idcsCsvAttributeNameMappings: [[columnHeaderName:Created Date, mapsTo:meta.created]] +// - type: complex +type Meta struct { + + // Name of the resource type of the resource--for example, Users or Groups + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + ResourceType *string `mandatory:"false" json:"resourceType"` + + // The DateTime the Resource was added to the Service Provider + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: dateTime + // - uniqueness: none + Created *string `mandatory:"false" json:"created"` + + // The most recent DateTime that the details of this Resource were updated at the Service Provider. If this Resource has never been modified since its initial creation, the value MUST be the same as the value of created. The attribute MUST be a DateTime. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: dateTime + // - uniqueness: none + LastModified *string `mandatory:"false" json:"lastModified"` + + // The URI of the Resource being returned. This value MUST be the same as the Location HTTP response header. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Location *string `mandatory:"false" json:"location"` + + // The version of the Resource being returned. This value must be the same as the ETag HTTP response header. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Version *string `mandatory:"false" json:"version"` +} + +func (m Meta) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m Meta) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_api_key.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_api_key.go new file mode 100644 index 00000000000..6372642aea7 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_api_key.go @@ -0,0 +1,202 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MyApiKey User's api key +type MyApiKey struct { + + // REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: true + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Schemas []string `mandatory:"true" json:"schemas"` + + // Fingerprint + // **Added In:** 2010242156 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - type: string + // - mutability: readOnly + // - required: true + // - returned: default + Fingerprint *string `mandatory:"true" json:"fingerprint"` + + // Key + // **Added In:** 2010242156 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsPii: true + // - type: string + // - mutability: immutable + // - required: true + // - returned: default + Key *string `mandatory:"true" json:"key"` + + // Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: always + // - type: string + // - uniqueness: global + Id *string `mandatory:"false" json:"id"` + + // Unique OCI identifier for the SCIM Resource. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: default + // - type: string + // - uniqueness: global + Ocid *string `mandatory:"false" json:"ocid"` + + Meta *Meta `mandatory:"false" json:"meta"` + + IdcsCreatedBy *IdcsCreatedBy `mandatory:"false" json:"idcsCreatedBy"` + + IdcsLastModifiedBy *IdcsLastModifiedBy `mandatory:"false" json:"idcsLastModifiedBy"` + + // Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsPreventedOperations []IdcsPreventedOperationsEnum `mandatory:"false" json:"idcsPreventedOperations,omitempty"` + + // A list of tags on this resource. + // **SCIM++ Properties:** + // - idcsCompositeKey: [key, value] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + Tags []Tags `mandatory:"false" json:"tags"` + + // A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + DeleteInProgress *bool `mandatory:"false" json:"deleteInProgress"` + + // The release number when the resource was upgraded. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsLastUpgradedInRelease *string `mandatory:"false" json:"idcsLastUpgradedInRelease"` + + // OCI Domain Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + DomainOcid *string `mandatory:"false" json:"domainOcid"` + + // OCI Compartment Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + CompartmentOcid *string `mandatory:"false" json:"compartmentOcid"` + + // OCI Tenant Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + TenancyOcid *string `mandatory:"false" json:"tenancyOcid"` + + // Description + // **Added In:** 2101262133 + // **SCIM++ Properties:** + // - caseExact: false + // - type: string + // - mutability: readWrite + // - required: false + // - returned: default + Description *string `mandatory:"false" json:"description"` + + User *MyApiKeyUser `mandatory:"false" json:"user"` +} + +func (m MyApiKey) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MyApiKey) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + for _, val := range m.IdcsPreventedOperations { + if _, ok := GetMappingIdcsPreventedOperationsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for IdcsPreventedOperations: %s. Supported values are: %s.", val, strings.Join(GetIdcsPreventedOperationsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_api_key_user.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_api_key_user.go new file mode 100644 index 00000000000..4d4045b1b86 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_api_key_user.go @@ -0,0 +1,106 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MyApiKeyUser User linked to api key +// **SCIM++ Properties:** +// - caseExact: false +// - idcsSearchable: true +// - multiValued: false +// - mutability: immutable +// - required: false +// - returned: default +// - type: complex +// - uniqueness: none +type MyApiKeyUser struct { + + // User's id + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: always + // - type: string + // - uniqueness: none + Value *string `mandatory:"false" json:"value"` + + // User's ocid + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: always + // - type: string + // - uniqueness: none + Ocid *string `mandatory:"false" json:"ocid"` + + // The URI that corresponds to the user linked to this credential + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` + + // User display name + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Display *string `mandatory:"false" json:"display"` + + // User name + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Name *string `mandatory:"false" json:"name"` +} + +func (m MyApiKeyUser) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MyApiKeyUser) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_api_keys.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_api_keys.go new file mode 100644 index 00000000000..e25b89f7014 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_api_keys.go @@ -0,0 +1,52 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MyApiKeys The SCIM protocol defines a standard set of query parameters that can be used to filter, sort, and paginate to return zero or more resources in a query response. Queries MAY be made against a single resource or a resource type endpoint (e.g., /Users), or the service provider Base URI. +type MyApiKeys struct { + + // The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. REQUIRED. + Schemas []string `mandatory:"true" json:"schemas"` + + // The total number of results returned by the list or query operation. The value may be larger than the number of resources returned such as when returning a single page of results where multiple pages are available. REQUIRED. + TotalResults *int `mandatory:"true" json:"totalResults"` + + // A multi-valued list of complex objects containing the requested resources. This MAY be a subset of the full set of resources if pagination is requested. REQUIRED if "totalResults" is non-zero. + Resources []MyApiKey `mandatory:"true" json:"Resources"` + + // The 1-based index of the first result in the current set of list results. REQUIRED when partial results returned due to pagination. + StartIndex *int `mandatory:"true" json:"startIndex"` + + // The number of resources returned in a list response page. REQUIRED when partial results returned due to pagination. + ItemsPerPage *int `mandatory:"true" json:"itemsPerPage"` +} + +func (m MyApiKeys) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MyApiKeys) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_auth_token.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_auth_token.go new file mode 100644 index 00000000000..4f0cfc5cb2b --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_auth_token.go @@ -0,0 +1,251 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MyAuthToken User's Auth token resource +type MyAuthToken struct { + + // REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: true + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Schemas []string `mandatory:"true" json:"schemas"` + + // Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: always + // - type: string + // - uniqueness: global + Id *string `mandatory:"false" json:"id"` + + // Unique OCI identifier for the SCIM Resource. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: default + // - type: string + // - uniqueness: global + Ocid *string `mandatory:"false" json:"ocid"` + + Meta *Meta `mandatory:"false" json:"meta"` + + IdcsCreatedBy *IdcsCreatedBy `mandatory:"false" json:"idcsCreatedBy"` + + IdcsLastModifiedBy *IdcsLastModifiedBy `mandatory:"false" json:"idcsLastModifiedBy"` + + // Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsPreventedOperations []IdcsPreventedOperationsEnum `mandatory:"false" json:"idcsPreventedOperations,omitempty"` + + // A list of tags on this resource. + // **SCIM++ Properties:** + // - idcsCompositeKey: [key, value] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + Tags []Tags `mandatory:"false" json:"tags"` + + // A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + DeleteInProgress *bool `mandatory:"false" json:"deleteInProgress"` + + // The release number when the resource was upgraded. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsLastUpgradedInRelease *string `mandatory:"false" json:"idcsLastUpgradedInRelease"` + + // OCI Domain Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + DomainOcid *string `mandatory:"false" json:"domainOcid"` + + // OCI Compartment Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + CompartmentOcid *string `mandatory:"false" json:"compartmentOcid"` + + // OCI Tenant Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + TenancyOcid *string `mandatory:"false" json:"tenancyOcid"` + + // Description + // **Added In:** 2010242156 + // **SCIM++ Properties:** + // - caseExact: false + // - type: string + // - mutability: readWrite + // - required: false + // - returned: default + Description *string `mandatory:"false" json:"description"` + + // User credential status + // **Added In:** 2109090424 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: never + // - type: string + // - uniqueness: none + Status MyAuthTokenStatusEnum `mandatory:"false" json:"status,omitempty"` + + // User credential expires on + // **Added In:** 2109090424 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: default + // - type: dateTime + // - uniqueness: none + ExpiresOn *string `mandatory:"false" json:"expiresOn"` + + User *MyAuthTokenUser `mandatory:"false" json:"user"` +} + +func (m MyAuthToken) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MyAuthToken) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + for _, val := range m.IdcsPreventedOperations { + if _, ok := GetMappingIdcsPreventedOperationsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for IdcsPreventedOperations: %s. Supported values are: %s.", val, strings.Join(GetIdcsPreventedOperationsEnumStringValues(), ","))) + } + } + + if _, ok := GetMappingMyAuthTokenStatusEnum(string(m.Status)); !ok && m.Status != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Status: %s. Supported values are: %s.", m.Status, strings.Join(GetMyAuthTokenStatusEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// MyAuthTokenStatusEnum Enum with underlying type: string +type MyAuthTokenStatusEnum string + +// Set of constants representing the allowable values for MyAuthTokenStatusEnum +const ( + MyAuthTokenStatusActive MyAuthTokenStatusEnum = "ACTIVE" + MyAuthTokenStatusInactive MyAuthTokenStatusEnum = "INACTIVE" +) + +var mappingMyAuthTokenStatusEnum = map[string]MyAuthTokenStatusEnum{ + "ACTIVE": MyAuthTokenStatusActive, + "INACTIVE": MyAuthTokenStatusInactive, +} + +var mappingMyAuthTokenStatusEnumLowerCase = map[string]MyAuthTokenStatusEnum{ + "active": MyAuthTokenStatusActive, + "inactive": MyAuthTokenStatusInactive, +} + +// GetMyAuthTokenStatusEnumValues Enumerates the set of values for MyAuthTokenStatusEnum +func GetMyAuthTokenStatusEnumValues() []MyAuthTokenStatusEnum { + values := make([]MyAuthTokenStatusEnum, 0) + for _, v := range mappingMyAuthTokenStatusEnum { + values = append(values, v) + } + return values +} + +// GetMyAuthTokenStatusEnumStringValues Enumerates the set of values in String for MyAuthTokenStatusEnum +func GetMyAuthTokenStatusEnumStringValues() []string { + return []string{ + "ACTIVE", + "INACTIVE", + } +} + +// GetMappingMyAuthTokenStatusEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingMyAuthTokenStatusEnum(val string) (MyAuthTokenStatusEnum, bool) { + enum, ok := mappingMyAuthTokenStatusEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_auth_token_user.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_auth_token_user.go new file mode 100644 index 00000000000..ee65a3d8e93 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_auth_token_user.go @@ -0,0 +1,106 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MyAuthTokenUser User linked to auth token +// **SCIM++ Properties:** +// - caseExact: false +// - idcsSearchable: true +// - multiValued: false +// - mutability: immutable +// - required: false +// - returned: default +// - type: complex +// - uniqueness: none +type MyAuthTokenUser struct { + + // User's id + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: always + // - type: string + // - uniqueness: none + Value *string `mandatory:"false" json:"value"` + + // User's ocid + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: always + // - type: string + // - uniqueness: none + Ocid *string `mandatory:"false" json:"ocid"` + + // The URI that corresponds to the user linked to this credential + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` + + // User display name + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Display *string `mandatory:"false" json:"display"` + + // User name + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Name *string `mandatory:"false" json:"name"` +} + +func (m MyAuthTokenUser) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MyAuthTokenUser) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_auth_tokens.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_auth_tokens.go new file mode 100644 index 00000000000..de9e7efb818 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_auth_tokens.go @@ -0,0 +1,52 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MyAuthTokens The SCIM protocol defines a standard set of query parameters that can be used to filter, sort, and paginate to return zero or more resources in a query response. Queries MAY be made against a single resource or a resource type endpoint (e.g., /Users), or the service provider Base URI. +type MyAuthTokens struct { + + // The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. REQUIRED. + Schemas []string `mandatory:"true" json:"schemas"` + + // The total number of results returned by the list or query operation. The value may be larger than the number of resources returned such as when returning a single page of results where multiple pages are available. REQUIRED. + TotalResults *int `mandatory:"true" json:"totalResults"` + + // A multi-valued list of complex objects containing the requested resources. This MAY be a subset of the full set of resources if pagination is requested. REQUIRED if "totalResults" is non-zero. + Resources []MyAuthToken `mandatory:"true" json:"Resources"` + + // The 1-based index of the first result in the current set of list results. REQUIRED when partial results returned due to pagination. + StartIndex *int `mandatory:"true" json:"startIndex"` + + // The number of resources returned in a list response page. REQUIRED when partial results returned due to pagination. + ItemsPerPage *int `mandatory:"true" json:"itemsPerPage"` +} + +func (m MyAuthTokens) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MyAuthTokens) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_authentication_factor_initiator.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_authentication_factor_initiator.go new file mode 100644 index 00000000000..c18132349e8 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_authentication_factor_initiator.go @@ -0,0 +1,482 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MyAuthenticationFactorInitiator This schema defines the attributes of Initiator call. +type MyAuthenticationFactorInitiator struct { + + // REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: true + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Schemas []string `mandatory:"true" json:"schemas"` + + // Auth Factor represents the type of multi-factor authentication channel for which the request has been initiated. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + AuthFactor MyAuthenticationFactorInitiatorAuthFactorEnum `mandatory:"true" json:"authFactor"` + + // Enrolled Device id on which the multi factor has been initiated. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + DeviceId *string `mandatory:"true" json:"deviceId"` + + // Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: always + // - type: string + // - uniqueness: global + Id *string `mandatory:"false" json:"id"` + + // Unique OCI identifier for the SCIM Resource. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: default + // - type: string + // - uniqueness: global + Ocid *string `mandatory:"false" json:"ocid"` + + Meta *Meta `mandatory:"false" json:"meta"` + + IdcsCreatedBy *IdcsCreatedBy `mandatory:"false" json:"idcsCreatedBy"` + + IdcsLastModifiedBy *IdcsLastModifiedBy `mandatory:"false" json:"idcsLastModifiedBy"` + + // Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsPreventedOperations []IdcsPreventedOperationsEnum `mandatory:"false" json:"idcsPreventedOperations,omitempty"` + + // A list of tags on this resource. + // **SCIM++ Properties:** + // - idcsCompositeKey: [key, value] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + Tags []Tags `mandatory:"false" json:"tags"` + + // A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + DeleteInProgress *bool `mandatory:"false" json:"deleteInProgress"` + + // The release number when the resource was upgraded. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsLastUpgradedInRelease *string `mandatory:"false" json:"idcsLastUpgradedInRelease"` + + // OCI Domain Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + DomainOcid *string `mandatory:"false" json:"domainOcid"` + + // OCI Compartment Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + CompartmentOcid *string `mandatory:"false" json:"compartmentOcid"` + + // OCI Tenant Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + TenancyOcid *string `mandatory:"false" json:"tenancyOcid"` + + // Authentication flow type either SAML / OIDC + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Type MyAuthenticationFactorInitiatorTypeEnum `mandatory:"false" json:"type,omitempty"` + + // Unique RequestId generated for each initiator request. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + RequestId *string `mandatory:"false" json:"requestId"` + + // Name of the user who initiates the request. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + // - idcsPii: true + UserName *string `mandatory:"false" json:"userName"` + + // Specifies the scenario to initiate. + // **SCIM++ Properties:** + // - type: string + // - multiValued: false + // - required: false + // - mutability: readWrite + // - returned: default + // - uniqueness: none + // - idcsSearchable: false + Scenario MyAuthenticationFactorInitiatorScenarioEnum `mandatory:"false" json:"scenario,omitempty"` + + ThirdPartyFactor *MyAuthenticationFactorInitiatorThirdPartyFactor `mandatory:"false" json:"thirdPartyFactor"` + + // Indicates whether to user passwordless factor to be updated or mfa factor to be updated + // **SCIM++ Properties:** + // - type: string + // - multiValued: false + // - required: false + // - mutability: writeOnly + // - returned: never + // - uniqueness: none + PreferenceType MyAuthenticationFactorInitiatorPreferenceTypeEnum `mandatory:"false" json:"preferenceType,omitempty"` + + // Additional attributes which will be sent as part of a push notification + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: default + // - type: complex + // - uniqueness: none + AdditionalAttributes []MyAuthenticationFactorInitiatorAdditionalAttributes `mandatory:"false" json:"additionalAttributes"` + + // Flag indicates whether the device is enrolled in account recovery + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + IsAccRecEnabled *bool `mandatory:"false" json:"isAccRecEnabled"` +} + +func (m MyAuthenticationFactorInitiator) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MyAuthenticationFactorInitiator) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingMyAuthenticationFactorInitiatorAuthFactorEnum(string(m.AuthFactor)); !ok && m.AuthFactor != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AuthFactor: %s. Supported values are: %s.", m.AuthFactor, strings.Join(GetMyAuthenticationFactorInitiatorAuthFactorEnumStringValues(), ","))) + } + + for _, val := range m.IdcsPreventedOperations { + if _, ok := GetMappingIdcsPreventedOperationsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for IdcsPreventedOperations: %s. Supported values are: %s.", val, strings.Join(GetIdcsPreventedOperationsEnumStringValues(), ","))) + } + } + + if _, ok := GetMappingMyAuthenticationFactorInitiatorTypeEnum(string(m.Type)); !ok && m.Type != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Type: %s. Supported values are: %s.", m.Type, strings.Join(GetMyAuthenticationFactorInitiatorTypeEnumStringValues(), ","))) + } + if _, ok := GetMappingMyAuthenticationFactorInitiatorScenarioEnum(string(m.Scenario)); !ok && m.Scenario != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Scenario: %s. Supported values are: %s.", m.Scenario, strings.Join(GetMyAuthenticationFactorInitiatorScenarioEnumStringValues(), ","))) + } + if _, ok := GetMappingMyAuthenticationFactorInitiatorPreferenceTypeEnum(string(m.PreferenceType)); !ok && m.PreferenceType != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for PreferenceType: %s. Supported values are: %s.", m.PreferenceType, strings.Join(GetMyAuthenticationFactorInitiatorPreferenceTypeEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// MyAuthenticationFactorInitiatorAuthFactorEnum Enum with underlying type: string +type MyAuthenticationFactorInitiatorAuthFactorEnum string + +// Set of constants representing the allowable values for MyAuthenticationFactorInitiatorAuthFactorEnum +const ( + MyAuthenticationFactorInitiatorAuthFactorEmail MyAuthenticationFactorInitiatorAuthFactorEnum = "EMAIL" + MyAuthenticationFactorInitiatorAuthFactorTotp MyAuthenticationFactorInitiatorAuthFactorEnum = "TOTP" + MyAuthenticationFactorInitiatorAuthFactorPush MyAuthenticationFactorInitiatorAuthFactorEnum = "PUSH" + MyAuthenticationFactorInitiatorAuthFactorSms MyAuthenticationFactorInitiatorAuthFactorEnum = "SMS" + MyAuthenticationFactorInitiatorAuthFactorVoice MyAuthenticationFactorInitiatorAuthFactorEnum = "VOICE" + MyAuthenticationFactorInitiatorAuthFactorPhoneCall MyAuthenticationFactorInitiatorAuthFactorEnum = "PHONE_CALL" + MyAuthenticationFactorInitiatorAuthFactorThirdparty MyAuthenticationFactorInitiatorAuthFactorEnum = "THIRDPARTY" + MyAuthenticationFactorInitiatorAuthFactorFidoAuthenticator MyAuthenticationFactorInitiatorAuthFactorEnum = "FIDO_AUTHENTICATOR" + MyAuthenticationFactorInitiatorAuthFactorYubicoOtp MyAuthenticationFactorInitiatorAuthFactorEnum = "YUBICO_OTP" +) + +var mappingMyAuthenticationFactorInitiatorAuthFactorEnum = map[string]MyAuthenticationFactorInitiatorAuthFactorEnum{ + "EMAIL": MyAuthenticationFactorInitiatorAuthFactorEmail, + "TOTP": MyAuthenticationFactorInitiatorAuthFactorTotp, + "PUSH": MyAuthenticationFactorInitiatorAuthFactorPush, + "SMS": MyAuthenticationFactorInitiatorAuthFactorSms, + "VOICE": MyAuthenticationFactorInitiatorAuthFactorVoice, + "PHONE_CALL": MyAuthenticationFactorInitiatorAuthFactorPhoneCall, + "THIRDPARTY": MyAuthenticationFactorInitiatorAuthFactorThirdparty, + "FIDO_AUTHENTICATOR": MyAuthenticationFactorInitiatorAuthFactorFidoAuthenticator, + "YUBICO_OTP": MyAuthenticationFactorInitiatorAuthFactorYubicoOtp, +} + +var mappingMyAuthenticationFactorInitiatorAuthFactorEnumLowerCase = map[string]MyAuthenticationFactorInitiatorAuthFactorEnum{ + "email": MyAuthenticationFactorInitiatorAuthFactorEmail, + "totp": MyAuthenticationFactorInitiatorAuthFactorTotp, + "push": MyAuthenticationFactorInitiatorAuthFactorPush, + "sms": MyAuthenticationFactorInitiatorAuthFactorSms, + "voice": MyAuthenticationFactorInitiatorAuthFactorVoice, + "phone_call": MyAuthenticationFactorInitiatorAuthFactorPhoneCall, + "thirdparty": MyAuthenticationFactorInitiatorAuthFactorThirdparty, + "fido_authenticator": MyAuthenticationFactorInitiatorAuthFactorFidoAuthenticator, + "yubico_otp": MyAuthenticationFactorInitiatorAuthFactorYubicoOtp, +} + +// GetMyAuthenticationFactorInitiatorAuthFactorEnumValues Enumerates the set of values for MyAuthenticationFactorInitiatorAuthFactorEnum +func GetMyAuthenticationFactorInitiatorAuthFactorEnumValues() []MyAuthenticationFactorInitiatorAuthFactorEnum { + values := make([]MyAuthenticationFactorInitiatorAuthFactorEnum, 0) + for _, v := range mappingMyAuthenticationFactorInitiatorAuthFactorEnum { + values = append(values, v) + } + return values +} + +// GetMyAuthenticationFactorInitiatorAuthFactorEnumStringValues Enumerates the set of values in String for MyAuthenticationFactorInitiatorAuthFactorEnum +func GetMyAuthenticationFactorInitiatorAuthFactorEnumStringValues() []string { + return []string{ + "EMAIL", + "TOTP", + "PUSH", + "SMS", + "VOICE", + "PHONE_CALL", + "THIRDPARTY", + "FIDO_AUTHENTICATOR", + "YUBICO_OTP", + } +} + +// GetMappingMyAuthenticationFactorInitiatorAuthFactorEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingMyAuthenticationFactorInitiatorAuthFactorEnum(val string) (MyAuthenticationFactorInitiatorAuthFactorEnum, bool) { + enum, ok := mappingMyAuthenticationFactorInitiatorAuthFactorEnumLowerCase[strings.ToLower(val)] + return enum, ok +} + +// MyAuthenticationFactorInitiatorTypeEnum Enum with underlying type: string +type MyAuthenticationFactorInitiatorTypeEnum string + +// Set of constants representing the allowable values for MyAuthenticationFactorInitiatorTypeEnum +const ( + MyAuthenticationFactorInitiatorTypeSaml MyAuthenticationFactorInitiatorTypeEnum = "SAML" + MyAuthenticationFactorInitiatorTypeOidc MyAuthenticationFactorInitiatorTypeEnum = "OIDC" +) + +var mappingMyAuthenticationFactorInitiatorTypeEnum = map[string]MyAuthenticationFactorInitiatorTypeEnum{ + "SAML": MyAuthenticationFactorInitiatorTypeSaml, + "OIDC": MyAuthenticationFactorInitiatorTypeOidc, +} + +var mappingMyAuthenticationFactorInitiatorTypeEnumLowerCase = map[string]MyAuthenticationFactorInitiatorTypeEnum{ + "saml": MyAuthenticationFactorInitiatorTypeSaml, + "oidc": MyAuthenticationFactorInitiatorTypeOidc, +} + +// GetMyAuthenticationFactorInitiatorTypeEnumValues Enumerates the set of values for MyAuthenticationFactorInitiatorTypeEnum +func GetMyAuthenticationFactorInitiatorTypeEnumValues() []MyAuthenticationFactorInitiatorTypeEnum { + values := make([]MyAuthenticationFactorInitiatorTypeEnum, 0) + for _, v := range mappingMyAuthenticationFactorInitiatorTypeEnum { + values = append(values, v) + } + return values +} + +// GetMyAuthenticationFactorInitiatorTypeEnumStringValues Enumerates the set of values in String for MyAuthenticationFactorInitiatorTypeEnum +func GetMyAuthenticationFactorInitiatorTypeEnumStringValues() []string { + return []string{ + "SAML", + "OIDC", + } +} + +// GetMappingMyAuthenticationFactorInitiatorTypeEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingMyAuthenticationFactorInitiatorTypeEnum(val string) (MyAuthenticationFactorInitiatorTypeEnum, bool) { + enum, ok := mappingMyAuthenticationFactorInitiatorTypeEnumLowerCase[strings.ToLower(val)] + return enum, ok +} + +// MyAuthenticationFactorInitiatorScenarioEnum Enum with underlying type: string +type MyAuthenticationFactorInitiatorScenarioEnum string + +// Set of constants representing the allowable values for MyAuthenticationFactorInitiatorScenarioEnum +const ( + MyAuthenticationFactorInitiatorScenarioEnrollment MyAuthenticationFactorInitiatorScenarioEnum = "ENROLLMENT" + MyAuthenticationFactorInitiatorScenarioAuthentication MyAuthenticationFactorInitiatorScenarioEnum = "AUTHENTICATION" +) + +var mappingMyAuthenticationFactorInitiatorScenarioEnum = map[string]MyAuthenticationFactorInitiatorScenarioEnum{ + "ENROLLMENT": MyAuthenticationFactorInitiatorScenarioEnrollment, + "AUTHENTICATION": MyAuthenticationFactorInitiatorScenarioAuthentication, +} + +var mappingMyAuthenticationFactorInitiatorScenarioEnumLowerCase = map[string]MyAuthenticationFactorInitiatorScenarioEnum{ + "enrollment": MyAuthenticationFactorInitiatorScenarioEnrollment, + "authentication": MyAuthenticationFactorInitiatorScenarioAuthentication, +} + +// GetMyAuthenticationFactorInitiatorScenarioEnumValues Enumerates the set of values for MyAuthenticationFactorInitiatorScenarioEnum +func GetMyAuthenticationFactorInitiatorScenarioEnumValues() []MyAuthenticationFactorInitiatorScenarioEnum { + values := make([]MyAuthenticationFactorInitiatorScenarioEnum, 0) + for _, v := range mappingMyAuthenticationFactorInitiatorScenarioEnum { + values = append(values, v) + } + return values +} + +// GetMyAuthenticationFactorInitiatorScenarioEnumStringValues Enumerates the set of values in String for MyAuthenticationFactorInitiatorScenarioEnum +func GetMyAuthenticationFactorInitiatorScenarioEnumStringValues() []string { + return []string{ + "ENROLLMENT", + "AUTHENTICATION", + } +} + +// GetMappingMyAuthenticationFactorInitiatorScenarioEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingMyAuthenticationFactorInitiatorScenarioEnum(val string) (MyAuthenticationFactorInitiatorScenarioEnum, bool) { + enum, ok := mappingMyAuthenticationFactorInitiatorScenarioEnumLowerCase[strings.ToLower(val)] + return enum, ok +} + +// MyAuthenticationFactorInitiatorPreferenceTypeEnum Enum with underlying type: string +type MyAuthenticationFactorInitiatorPreferenceTypeEnum string + +// Set of constants representing the allowable values for MyAuthenticationFactorInitiatorPreferenceTypeEnum +const ( + MyAuthenticationFactorInitiatorPreferenceTypePasswordless MyAuthenticationFactorInitiatorPreferenceTypeEnum = "PASSWORDLESS" + MyAuthenticationFactorInitiatorPreferenceTypeMfa MyAuthenticationFactorInitiatorPreferenceTypeEnum = "MFA" +) + +var mappingMyAuthenticationFactorInitiatorPreferenceTypeEnum = map[string]MyAuthenticationFactorInitiatorPreferenceTypeEnum{ + "PASSWORDLESS": MyAuthenticationFactorInitiatorPreferenceTypePasswordless, + "MFA": MyAuthenticationFactorInitiatorPreferenceTypeMfa, +} + +var mappingMyAuthenticationFactorInitiatorPreferenceTypeEnumLowerCase = map[string]MyAuthenticationFactorInitiatorPreferenceTypeEnum{ + "passwordless": MyAuthenticationFactorInitiatorPreferenceTypePasswordless, + "mfa": MyAuthenticationFactorInitiatorPreferenceTypeMfa, +} + +// GetMyAuthenticationFactorInitiatorPreferenceTypeEnumValues Enumerates the set of values for MyAuthenticationFactorInitiatorPreferenceTypeEnum +func GetMyAuthenticationFactorInitiatorPreferenceTypeEnumValues() []MyAuthenticationFactorInitiatorPreferenceTypeEnum { + values := make([]MyAuthenticationFactorInitiatorPreferenceTypeEnum, 0) + for _, v := range mappingMyAuthenticationFactorInitiatorPreferenceTypeEnum { + values = append(values, v) + } + return values +} + +// GetMyAuthenticationFactorInitiatorPreferenceTypeEnumStringValues Enumerates the set of values in String for MyAuthenticationFactorInitiatorPreferenceTypeEnum +func GetMyAuthenticationFactorInitiatorPreferenceTypeEnumStringValues() []string { + return []string{ + "PASSWORDLESS", + "MFA", + } +} + +// GetMappingMyAuthenticationFactorInitiatorPreferenceTypeEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingMyAuthenticationFactorInitiatorPreferenceTypeEnum(val string) (MyAuthenticationFactorInitiatorPreferenceTypeEnum, bool) { + enum, ok := mappingMyAuthenticationFactorInitiatorPreferenceTypeEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_authentication_factor_initiator_additional_attributes.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_authentication_factor_initiator_additional_attributes.go new file mode 100644 index 00000000000..025f2169388 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_authentication_factor_initiator_additional_attributes.go @@ -0,0 +1,59 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MyAuthenticationFactorInitiatorAdditionalAttributes Additional attributes which will be sent as part of a push notification +type MyAuthenticationFactorInitiatorAdditionalAttributes struct { + + // A name of the attribute + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Name *string `mandatory:"true" json:"name"` + + // Value of the attribute + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Value *string `mandatory:"false" json:"value"` +} + +func (m MyAuthenticationFactorInitiatorAdditionalAttributes) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MyAuthenticationFactorInitiatorAdditionalAttributes) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_authentication_factor_initiator_third_party_factor.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_authentication_factor_initiator_third_party_factor.go new file mode 100644 index 00000000000..d835de4142d --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_authentication_factor_initiator_third_party_factor.go @@ -0,0 +1,82 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MyAuthenticationFactorInitiatorThirdPartyFactor User's third-party authentication factor details +// **SCIM++ Properties:** +// - caseExact: false +// - idcsSearchable: false +// - multiValued: false +// - mutability: readWrite +// - required: false +// - returned: default +// - type: complex +// - uniqueness: none +type MyAuthenticationFactorInitiatorThirdPartyFactor struct { + + // The vendor name of the third party factor + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + ThirdPartyVendorName *string `mandatory:"true" json:"thirdPartyVendorName"` + + // Type of the third party authentication factor + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + ThirdPartyFactorType *string `mandatory:"false" json:"thirdPartyFactorType"` + + // Reference to the third party resource + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + ThirdPartyFactorId *string `mandatory:"false" json:"thirdPartyFactorId"` +} + +func (m MyAuthenticationFactorInitiatorThirdPartyFactor) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MyAuthenticationFactorInitiatorThirdPartyFactor) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_authentication_factor_validator.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_authentication_factor_validator.go new file mode 100644 index 00000000000..5592a13f2c3 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_authentication_factor_validator.go @@ -0,0 +1,709 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MyAuthenticationFactorValidator Validate any given Authentication Factor +type MyAuthenticationFactorValidator struct { + + // REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: true + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Schemas []string `mandatory:"true" json:"schemas"` + + // Authentication Factor which is being validated + // **SCIM++ Properties:** + // - type: string + // - multiValued: false + // - required: true + // - mutability: readWrite + // - returned: default + // - uniqueness: none + // - idcsSearchable: false + AuthFactor MyAuthenticationFactorValidatorAuthFactorEnum `mandatory:"true" json:"authFactor"` + + // Specifies whether the service is being used to enroll or validate a factor + // **SCIM++ Properties:** + // - type: string + // - multiValued: false + // - required: true + // - mutability: readWrite + // - returned: default + // - uniqueness: none + // - idcsSearchable: false + Scenario MyAuthenticationFactorValidatorScenarioEnum `mandatory:"true" json:"scenario"` + + // Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: always + // - type: string + // - uniqueness: global + Id *string `mandatory:"false" json:"id"` + + // Unique OCI identifier for the SCIM Resource. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: default + // - type: string + // - uniqueness: global + Ocid *string `mandatory:"false" json:"ocid"` + + Meta *Meta `mandatory:"false" json:"meta"` + + IdcsCreatedBy *IdcsCreatedBy `mandatory:"false" json:"idcsCreatedBy"` + + IdcsLastModifiedBy *IdcsLastModifiedBy `mandatory:"false" json:"idcsLastModifiedBy"` + + // Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsPreventedOperations []IdcsPreventedOperationsEnum `mandatory:"false" json:"idcsPreventedOperations,omitempty"` + + // A list of tags on this resource. + // **SCIM++ Properties:** + // - idcsCompositeKey: [key, value] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + Tags []Tags `mandatory:"false" json:"tags"` + + // A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + DeleteInProgress *bool `mandatory:"false" json:"deleteInProgress"` + + // The release number when the resource was upgraded. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsLastUpgradedInRelease *string `mandatory:"false" json:"idcsLastUpgradedInRelease"` + + // OCI Domain Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + DomainOcid *string `mandatory:"false" json:"domainOcid"` + + // OCI Compartment Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + CompartmentOcid *string `mandatory:"false" json:"compartmentOcid"` + + // OCI Tenant Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + TenancyOcid *string `mandatory:"false" json:"tenancyOcid"` + + // Request ID which is being validated + // **SCIM++ Properties:** + // - type: string + // - multiValued: false + // - required: false + // - mutability: readWrite + // - returned: default + // - uniqueness: none + // - idcsSearchable: false + RequestId *string `mandatory:"false" json:"requestId"` + + // The One Time Passcode which needs to be validated + // **SCIM++ Properties:** + // - type: string + // - multiValued: false + // - required: false + // - mutability: readWrite + // - returned: never + // - uniqueness: none + // - idcsSensitive: encrypt + // - idcsSearchable: false + OtpCode *string `mandatory:"false" json:"otpCode"` + + // Device id whose factor is being validated + // **SCIM++ Properties:** + // - type: string + // - multiValued: false + // - required: false + // - mutability: readWrite + // - returned: default + // - uniqueness: none + // - idcsSearchable: false + DeviceId *string `mandatory:"false" json:"deviceId"` + + // Validation status returned in the response + // **SCIM++ Properties:** + // - type: string + // - multiValued: false + // - required: false + // - mutability: readOnly + // - returned: default + // - uniqueness: none + // - idcsSearchable: false + Status MyAuthenticationFactorValidatorStatusEnum `mandatory:"false" json:"status,omitempty"` + + // User guid for whom the validation has initiated. Optional. + // **SCIM++ Properties:** + // - type: string + // - multiValued: false + // - required: false + // - mutability: readWrite + // - returned: default + // - uniqueness: none + // - idcsSearchable: false + UserId *string `mandatory:"false" json:"userId"` + + // User name for whom the validation has initiated + // **SCIM++ Properties:** + // - type: string + // - multiValued: false + // - required: false + // - mutability: readWrite + // - returned: default + // - uniqueness: none + // - idcsSearchable: false + // - idcsPii: true + UserName *string `mandatory:"false" json:"userName"` + + // Display name of the verified device + // **SCIM++ Properties:** + // - type: string + // - multiValued: false + // - required: false + // - mutability: readWrite + // - returned: default + // - uniqueness: none + // - idcsSearchable: false + DisplayName *string `mandatory:"false" json:"displayName"` + + // Validator message which is passed by the client. When it is a PUSH notification, it can be a rejection message. + // **SCIM++ Properties:** + // - type: string + // - multiValued: false + // - required: false + // - mutability: readWrite + // - returned: default + // - uniqueness: none + // - idcsSearchable: false + Message *string `mandatory:"false" json:"message"` + + // type indicating whether the flow is OIDC, SAML etc., + // **SCIM++ Properties:** + // - type: string + // - multiValued: false + // - required: false + // - mutability: writeOnly + // - returned: default + // - uniqueness: none + Type MyAuthenticationFactorValidatorTypeEnum `mandatory:"false" json:"type,omitempty"` + + // Indicates whether to update user preferred mfa factor or not + // **SCIM++ Properties:** + // - type: boolean + // - multiValued: false + // - required: false + // - mutability: writeOnly + // - returned: never + // - uniqueness: none + UpdateUserPreference *bool `mandatory:"false" json:"updateUserPreference"` + + // Indicates whether to user passwordless factor to be updated or mfa factor to be updated + // **SCIM++ Properties:** + // - type: string + // - multiValued: false + // - required: false + // - mutability: writeOnly + // - returned: never + // - uniqueness: none + PreferenceType MyAuthenticationFactorValidatorPreferenceTypeEnum `mandatory:"false" json:"preferenceType,omitempty"` + + // List of security questions the user has submitted to get authenticated. + // **SCIM++ Properties:** + // - type: complex + // - multiValued: true + // - required: false + // - mutability: writeOnly + // - returned: never + // - uniqueness: none + // - idcsSearchable: false + SecurityQuestions []MyAuthenticationFactorValidatorSecurityQuestions `mandatory:"false" json:"securityQuestions"` + + // Name of the client to be trusted + // **SCIM++ Properties:** + // - type: string + // - multiValued: false + // - required: false + // - mutability: writeOnly + // - returned: never + // - uniqueness: none + Name *string `mandatory:"false" json:"name"` + + // Platform of the client to be trusted + // **SCIM++ Properties:** + // - type: string + // - multiValued: false + // - required: false + // - mutability: writeOnly + // - returned: never + // - uniqueness: none + Platform *string `mandatory:"false" json:"platform"` + + // Location of the trusted client. + // **SCIM++ Properties:** + // - type: string + // - multiValued: false + // - required: false + // - mutability: writeOnly + // - returned: never + // - uniqueness: none + Location *string `mandatory:"false" json:"location"` + + // Trusted token resource identifier. + // **SCIM++ Properties:** + // - type: string + // - multiValued: false + // - required: false + // - mutability: writeOnly + // - returned: never + // - uniqueness: none + TrustedTokenId *string `mandatory:"false" json:"trustedTokenId"` + + // KMSI token resource identifier. + // **SCIM++ Properties:** + // - type: string + // - multiValued: false + // - required: false + // - mutability: writeOnly + // - returned: never + // - uniqueness: none + KmsiTokenId *string `mandatory:"false" json:"kmsiTokenId"` + + // Sign-On Policy dictated allowed second factors. + // **SCIM++ Properties:** + // - type: string + // - multiValued: true + // - required: false + // - mutability: writeOnly + // - returned: never + // - uniqueness: none + PolicyEnabledSecondFactors []string `mandatory:"false" json:"policyEnabledSecondFactors"` + + // Indicates to create trust token. + // **SCIM++ Properties:** + // - type: boolean + // - multiValued: false + // - required: false + // - mutability: writeOnly + // - returned: never + // - uniqueness: none + CreateTrustedAgent *bool `mandatory:"false" json:"createTrustedAgent"` + + // Indicates to create kmsi token. + // **SCIM++ Properties:** + // - type: boolean + // - multiValued: false + // - required: false + // - mutability: writeOnly + // - returned: never + // - uniqueness: none + CreateKmsiToken *bool `mandatory:"false" json:"createKmsiToken"` + + // Flag indicates whether the factor is enrolled in account recovery. If the value is not provided or false, then it will be treated as MFA factor validation. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + IsAccRecEnabled *bool `mandatory:"false" json:"isAccRecEnabled"` + + // Sign-On Policy dictated validity duration for trusted client in Minutes. + // **SCIM++ Properties:** + // - type: integer + // - multiValued: false + // - required: false + // - mutability: writeOnly + // - returned: never + // - uniqueness: none + PolicyTrustedFrequencyMins *int `mandatory:"false" json:"policyTrustedFrequencyMins"` + + ThirdPartyFactor *MyAuthenticationFactorValidatorThirdPartyFactor `mandatory:"false" json:"thirdPartyFactor"` + + // Additional attributes which will be sent as part of a push notification + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: default + // - type: complex + // - uniqueness: none + AdditionalAttributes []MyAuthenticationFactorValidatorAdditionalAttributes `mandatory:"false" json:"additionalAttributes"` +} + +func (m MyAuthenticationFactorValidator) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MyAuthenticationFactorValidator) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingMyAuthenticationFactorValidatorAuthFactorEnum(string(m.AuthFactor)); !ok && m.AuthFactor != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AuthFactor: %s. Supported values are: %s.", m.AuthFactor, strings.Join(GetMyAuthenticationFactorValidatorAuthFactorEnumStringValues(), ","))) + } + if _, ok := GetMappingMyAuthenticationFactorValidatorScenarioEnum(string(m.Scenario)); !ok && m.Scenario != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Scenario: %s. Supported values are: %s.", m.Scenario, strings.Join(GetMyAuthenticationFactorValidatorScenarioEnumStringValues(), ","))) + } + + for _, val := range m.IdcsPreventedOperations { + if _, ok := GetMappingIdcsPreventedOperationsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for IdcsPreventedOperations: %s. Supported values are: %s.", val, strings.Join(GetIdcsPreventedOperationsEnumStringValues(), ","))) + } + } + + if _, ok := GetMappingMyAuthenticationFactorValidatorStatusEnum(string(m.Status)); !ok && m.Status != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Status: %s. Supported values are: %s.", m.Status, strings.Join(GetMyAuthenticationFactorValidatorStatusEnumStringValues(), ","))) + } + if _, ok := GetMappingMyAuthenticationFactorValidatorTypeEnum(string(m.Type)); !ok && m.Type != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Type: %s. Supported values are: %s.", m.Type, strings.Join(GetMyAuthenticationFactorValidatorTypeEnumStringValues(), ","))) + } + if _, ok := GetMappingMyAuthenticationFactorValidatorPreferenceTypeEnum(string(m.PreferenceType)); !ok && m.PreferenceType != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for PreferenceType: %s. Supported values are: %s.", m.PreferenceType, strings.Join(GetMyAuthenticationFactorValidatorPreferenceTypeEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// MyAuthenticationFactorValidatorAuthFactorEnum Enum with underlying type: string +type MyAuthenticationFactorValidatorAuthFactorEnum string + +// Set of constants representing the allowable values for MyAuthenticationFactorValidatorAuthFactorEnum +const ( + MyAuthenticationFactorValidatorAuthFactorUsernamePassword MyAuthenticationFactorValidatorAuthFactorEnum = "USERNAME_PASSWORD" + MyAuthenticationFactorValidatorAuthFactorPush MyAuthenticationFactorValidatorAuthFactorEnum = "PUSH" + MyAuthenticationFactorValidatorAuthFactorTotp MyAuthenticationFactorValidatorAuthFactorEnum = "TOTP" + MyAuthenticationFactorValidatorAuthFactorEmail MyAuthenticationFactorValidatorAuthFactorEnum = "EMAIL" + MyAuthenticationFactorValidatorAuthFactorSms MyAuthenticationFactorValidatorAuthFactorEnum = "SMS" + MyAuthenticationFactorValidatorAuthFactorVoice MyAuthenticationFactorValidatorAuthFactorEnum = "VOICE" + MyAuthenticationFactorValidatorAuthFactorBypasscode MyAuthenticationFactorValidatorAuthFactorEnum = "BYPASSCODE" + MyAuthenticationFactorValidatorAuthFactorSecurityQuestions MyAuthenticationFactorValidatorAuthFactorEnum = "SECURITY_QUESTIONS" + MyAuthenticationFactorValidatorAuthFactorTrustToken MyAuthenticationFactorValidatorAuthFactorEnum = "TRUST_TOKEN" + MyAuthenticationFactorValidatorAuthFactorPhoneCall MyAuthenticationFactorValidatorAuthFactorEnum = "PHONE_CALL" + MyAuthenticationFactorValidatorAuthFactorThirdparty MyAuthenticationFactorValidatorAuthFactorEnum = "THIRDPARTY" + MyAuthenticationFactorValidatorAuthFactorFidoAuthenticator MyAuthenticationFactorValidatorAuthFactorEnum = "FIDO_AUTHENTICATOR" + MyAuthenticationFactorValidatorAuthFactorYubicoOtp MyAuthenticationFactorValidatorAuthFactorEnum = "YUBICO_OTP" + MyAuthenticationFactorValidatorAuthFactorKmsiToken MyAuthenticationFactorValidatorAuthFactorEnum = "KMSI_TOKEN" +) + +var mappingMyAuthenticationFactorValidatorAuthFactorEnum = map[string]MyAuthenticationFactorValidatorAuthFactorEnum{ + "USERNAME_PASSWORD": MyAuthenticationFactorValidatorAuthFactorUsernamePassword, + "PUSH": MyAuthenticationFactorValidatorAuthFactorPush, + "TOTP": MyAuthenticationFactorValidatorAuthFactorTotp, + "EMAIL": MyAuthenticationFactorValidatorAuthFactorEmail, + "SMS": MyAuthenticationFactorValidatorAuthFactorSms, + "VOICE": MyAuthenticationFactorValidatorAuthFactorVoice, + "BYPASSCODE": MyAuthenticationFactorValidatorAuthFactorBypasscode, + "SECURITY_QUESTIONS": MyAuthenticationFactorValidatorAuthFactorSecurityQuestions, + "TRUST_TOKEN": MyAuthenticationFactorValidatorAuthFactorTrustToken, + "PHONE_CALL": MyAuthenticationFactorValidatorAuthFactorPhoneCall, + "THIRDPARTY": MyAuthenticationFactorValidatorAuthFactorThirdparty, + "FIDO_AUTHENTICATOR": MyAuthenticationFactorValidatorAuthFactorFidoAuthenticator, + "YUBICO_OTP": MyAuthenticationFactorValidatorAuthFactorYubicoOtp, + "KMSI_TOKEN": MyAuthenticationFactorValidatorAuthFactorKmsiToken, +} + +var mappingMyAuthenticationFactorValidatorAuthFactorEnumLowerCase = map[string]MyAuthenticationFactorValidatorAuthFactorEnum{ + "username_password": MyAuthenticationFactorValidatorAuthFactorUsernamePassword, + "push": MyAuthenticationFactorValidatorAuthFactorPush, + "totp": MyAuthenticationFactorValidatorAuthFactorTotp, + "email": MyAuthenticationFactorValidatorAuthFactorEmail, + "sms": MyAuthenticationFactorValidatorAuthFactorSms, + "voice": MyAuthenticationFactorValidatorAuthFactorVoice, + "bypasscode": MyAuthenticationFactorValidatorAuthFactorBypasscode, + "security_questions": MyAuthenticationFactorValidatorAuthFactorSecurityQuestions, + "trust_token": MyAuthenticationFactorValidatorAuthFactorTrustToken, + "phone_call": MyAuthenticationFactorValidatorAuthFactorPhoneCall, + "thirdparty": MyAuthenticationFactorValidatorAuthFactorThirdparty, + "fido_authenticator": MyAuthenticationFactorValidatorAuthFactorFidoAuthenticator, + "yubico_otp": MyAuthenticationFactorValidatorAuthFactorYubicoOtp, + "kmsi_token": MyAuthenticationFactorValidatorAuthFactorKmsiToken, +} + +// GetMyAuthenticationFactorValidatorAuthFactorEnumValues Enumerates the set of values for MyAuthenticationFactorValidatorAuthFactorEnum +func GetMyAuthenticationFactorValidatorAuthFactorEnumValues() []MyAuthenticationFactorValidatorAuthFactorEnum { + values := make([]MyAuthenticationFactorValidatorAuthFactorEnum, 0) + for _, v := range mappingMyAuthenticationFactorValidatorAuthFactorEnum { + values = append(values, v) + } + return values +} + +// GetMyAuthenticationFactorValidatorAuthFactorEnumStringValues Enumerates the set of values in String for MyAuthenticationFactorValidatorAuthFactorEnum +func GetMyAuthenticationFactorValidatorAuthFactorEnumStringValues() []string { + return []string{ + "USERNAME_PASSWORD", + "PUSH", + "TOTP", + "EMAIL", + "SMS", + "VOICE", + "BYPASSCODE", + "SECURITY_QUESTIONS", + "TRUST_TOKEN", + "PHONE_CALL", + "THIRDPARTY", + "FIDO_AUTHENTICATOR", + "YUBICO_OTP", + "KMSI_TOKEN", + } +} + +// GetMappingMyAuthenticationFactorValidatorAuthFactorEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingMyAuthenticationFactorValidatorAuthFactorEnum(val string) (MyAuthenticationFactorValidatorAuthFactorEnum, bool) { + enum, ok := mappingMyAuthenticationFactorValidatorAuthFactorEnumLowerCase[strings.ToLower(val)] + return enum, ok +} + +// MyAuthenticationFactorValidatorScenarioEnum Enum with underlying type: string +type MyAuthenticationFactorValidatorScenarioEnum string + +// Set of constants representing the allowable values for MyAuthenticationFactorValidatorScenarioEnum +const ( + MyAuthenticationFactorValidatorScenarioEnrollment MyAuthenticationFactorValidatorScenarioEnum = "ENROLLMENT" + MyAuthenticationFactorValidatorScenarioAuthentication MyAuthenticationFactorValidatorScenarioEnum = "AUTHENTICATION" +) + +var mappingMyAuthenticationFactorValidatorScenarioEnum = map[string]MyAuthenticationFactorValidatorScenarioEnum{ + "ENROLLMENT": MyAuthenticationFactorValidatorScenarioEnrollment, + "AUTHENTICATION": MyAuthenticationFactorValidatorScenarioAuthentication, +} + +var mappingMyAuthenticationFactorValidatorScenarioEnumLowerCase = map[string]MyAuthenticationFactorValidatorScenarioEnum{ + "enrollment": MyAuthenticationFactorValidatorScenarioEnrollment, + "authentication": MyAuthenticationFactorValidatorScenarioAuthentication, +} + +// GetMyAuthenticationFactorValidatorScenarioEnumValues Enumerates the set of values for MyAuthenticationFactorValidatorScenarioEnum +func GetMyAuthenticationFactorValidatorScenarioEnumValues() []MyAuthenticationFactorValidatorScenarioEnum { + values := make([]MyAuthenticationFactorValidatorScenarioEnum, 0) + for _, v := range mappingMyAuthenticationFactorValidatorScenarioEnum { + values = append(values, v) + } + return values +} + +// GetMyAuthenticationFactorValidatorScenarioEnumStringValues Enumerates the set of values in String for MyAuthenticationFactorValidatorScenarioEnum +func GetMyAuthenticationFactorValidatorScenarioEnumStringValues() []string { + return []string{ + "ENROLLMENT", + "AUTHENTICATION", + } +} + +// GetMappingMyAuthenticationFactorValidatorScenarioEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingMyAuthenticationFactorValidatorScenarioEnum(val string) (MyAuthenticationFactorValidatorScenarioEnum, bool) { + enum, ok := mappingMyAuthenticationFactorValidatorScenarioEnumLowerCase[strings.ToLower(val)] + return enum, ok +} + +// MyAuthenticationFactorValidatorStatusEnum Enum with underlying type: string +type MyAuthenticationFactorValidatorStatusEnum string + +// Set of constants representing the allowable values for MyAuthenticationFactorValidatorStatusEnum +const ( + MyAuthenticationFactorValidatorStatusSuccess MyAuthenticationFactorValidatorStatusEnum = "SUCCESS" + MyAuthenticationFactorValidatorStatusFailure MyAuthenticationFactorValidatorStatusEnum = "FAILURE" +) + +var mappingMyAuthenticationFactorValidatorStatusEnum = map[string]MyAuthenticationFactorValidatorStatusEnum{ + "SUCCESS": MyAuthenticationFactorValidatorStatusSuccess, + "FAILURE": MyAuthenticationFactorValidatorStatusFailure, +} + +var mappingMyAuthenticationFactorValidatorStatusEnumLowerCase = map[string]MyAuthenticationFactorValidatorStatusEnum{ + "success": MyAuthenticationFactorValidatorStatusSuccess, + "failure": MyAuthenticationFactorValidatorStatusFailure, +} + +// GetMyAuthenticationFactorValidatorStatusEnumValues Enumerates the set of values for MyAuthenticationFactorValidatorStatusEnum +func GetMyAuthenticationFactorValidatorStatusEnumValues() []MyAuthenticationFactorValidatorStatusEnum { + values := make([]MyAuthenticationFactorValidatorStatusEnum, 0) + for _, v := range mappingMyAuthenticationFactorValidatorStatusEnum { + values = append(values, v) + } + return values +} + +// GetMyAuthenticationFactorValidatorStatusEnumStringValues Enumerates the set of values in String for MyAuthenticationFactorValidatorStatusEnum +func GetMyAuthenticationFactorValidatorStatusEnumStringValues() []string { + return []string{ + "SUCCESS", + "FAILURE", + } +} + +// GetMappingMyAuthenticationFactorValidatorStatusEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingMyAuthenticationFactorValidatorStatusEnum(val string) (MyAuthenticationFactorValidatorStatusEnum, bool) { + enum, ok := mappingMyAuthenticationFactorValidatorStatusEnumLowerCase[strings.ToLower(val)] + return enum, ok +} + +// MyAuthenticationFactorValidatorTypeEnum Enum with underlying type: string +type MyAuthenticationFactorValidatorTypeEnum string + +// Set of constants representing the allowable values for MyAuthenticationFactorValidatorTypeEnum +const ( + MyAuthenticationFactorValidatorTypeSaml MyAuthenticationFactorValidatorTypeEnum = "SAML" + MyAuthenticationFactorValidatorTypeOidc MyAuthenticationFactorValidatorTypeEnum = "OIDC" +) + +var mappingMyAuthenticationFactorValidatorTypeEnum = map[string]MyAuthenticationFactorValidatorTypeEnum{ + "SAML": MyAuthenticationFactorValidatorTypeSaml, + "OIDC": MyAuthenticationFactorValidatorTypeOidc, +} + +var mappingMyAuthenticationFactorValidatorTypeEnumLowerCase = map[string]MyAuthenticationFactorValidatorTypeEnum{ + "saml": MyAuthenticationFactorValidatorTypeSaml, + "oidc": MyAuthenticationFactorValidatorTypeOidc, +} + +// GetMyAuthenticationFactorValidatorTypeEnumValues Enumerates the set of values for MyAuthenticationFactorValidatorTypeEnum +func GetMyAuthenticationFactorValidatorTypeEnumValues() []MyAuthenticationFactorValidatorTypeEnum { + values := make([]MyAuthenticationFactorValidatorTypeEnum, 0) + for _, v := range mappingMyAuthenticationFactorValidatorTypeEnum { + values = append(values, v) + } + return values +} + +// GetMyAuthenticationFactorValidatorTypeEnumStringValues Enumerates the set of values in String for MyAuthenticationFactorValidatorTypeEnum +func GetMyAuthenticationFactorValidatorTypeEnumStringValues() []string { + return []string{ + "SAML", + "OIDC", + } +} + +// GetMappingMyAuthenticationFactorValidatorTypeEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingMyAuthenticationFactorValidatorTypeEnum(val string) (MyAuthenticationFactorValidatorTypeEnum, bool) { + enum, ok := mappingMyAuthenticationFactorValidatorTypeEnumLowerCase[strings.ToLower(val)] + return enum, ok +} + +// MyAuthenticationFactorValidatorPreferenceTypeEnum Enum with underlying type: string +type MyAuthenticationFactorValidatorPreferenceTypeEnum string + +// Set of constants representing the allowable values for MyAuthenticationFactorValidatorPreferenceTypeEnum +const ( + MyAuthenticationFactorValidatorPreferenceTypePasswordless MyAuthenticationFactorValidatorPreferenceTypeEnum = "PASSWORDLESS" + MyAuthenticationFactorValidatorPreferenceTypeMfa MyAuthenticationFactorValidatorPreferenceTypeEnum = "MFA" +) + +var mappingMyAuthenticationFactorValidatorPreferenceTypeEnum = map[string]MyAuthenticationFactorValidatorPreferenceTypeEnum{ + "PASSWORDLESS": MyAuthenticationFactorValidatorPreferenceTypePasswordless, + "MFA": MyAuthenticationFactorValidatorPreferenceTypeMfa, +} + +var mappingMyAuthenticationFactorValidatorPreferenceTypeEnumLowerCase = map[string]MyAuthenticationFactorValidatorPreferenceTypeEnum{ + "passwordless": MyAuthenticationFactorValidatorPreferenceTypePasswordless, + "mfa": MyAuthenticationFactorValidatorPreferenceTypeMfa, +} + +// GetMyAuthenticationFactorValidatorPreferenceTypeEnumValues Enumerates the set of values for MyAuthenticationFactorValidatorPreferenceTypeEnum +func GetMyAuthenticationFactorValidatorPreferenceTypeEnumValues() []MyAuthenticationFactorValidatorPreferenceTypeEnum { + values := make([]MyAuthenticationFactorValidatorPreferenceTypeEnum, 0) + for _, v := range mappingMyAuthenticationFactorValidatorPreferenceTypeEnum { + values = append(values, v) + } + return values +} + +// GetMyAuthenticationFactorValidatorPreferenceTypeEnumStringValues Enumerates the set of values in String for MyAuthenticationFactorValidatorPreferenceTypeEnum +func GetMyAuthenticationFactorValidatorPreferenceTypeEnumStringValues() []string { + return []string{ + "PASSWORDLESS", + "MFA", + } +} + +// GetMappingMyAuthenticationFactorValidatorPreferenceTypeEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingMyAuthenticationFactorValidatorPreferenceTypeEnum(val string) (MyAuthenticationFactorValidatorPreferenceTypeEnum, bool) { + enum, ok := mappingMyAuthenticationFactorValidatorPreferenceTypeEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_authentication_factor_validator_additional_attributes.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_authentication_factor_validator_additional_attributes.go new file mode 100644 index 00000000000..8f6a838c205 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_authentication_factor_validator_additional_attributes.go @@ -0,0 +1,59 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MyAuthenticationFactorValidatorAdditionalAttributes Additional attributes which will be sent as part of a push notification +type MyAuthenticationFactorValidatorAdditionalAttributes struct { + + // A name of the attribute + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Name *string `mandatory:"true" json:"name"` + + // Value of the attribute + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Value *string `mandatory:"false" json:"value"` +} + +func (m MyAuthenticationFactorValidatorAdditionalAttributes) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MyAuthenticationFactorValidatorAdditionalAttributes) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_authentication_factor_validator_security_questions.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_authentication_factor_validator_security_questions.go new file mode 100644 index 00000000000..d7820fe5bf9 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_authentication_factor_validator_security_questions.go @@ -0,0 +1,60 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MyAuthenticationFactorValidatorSecurityQuestions List of security questions the user has submitted to get authenticated. +type MyAuthenticationFactorValidatorSecurityQuestions struct { + + // id of the security question + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Id *string `mandatory:"true" json:"id"` + + // Answer of the security question the user has submitted + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + // - idcsSensitive: none + Answer *string `mandatory:"false" json:"answer"` +} + +func (m MyAuthenticationFactorValidatorSecurityQuestions) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MyAuthenticationFactorValidatorSecurityQuestions) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_authentication_factor_validator_third_party_factor.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_authentication_factor_validator_third_party_factor.go new file mode 100644 index 00000000000..ff3158feec7 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_authentication_factor_validator_third_party_factor.go @@ -0,0 +1,82 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MyAuthenticationFactorValidatorThirdPartyFactor User's third-party authentication factor details +// **SCIM++ Properties:** +// - caseExact: false +// - idcsSearchable: false +// - multiValued: false +// - mutability: readWrite +// - required: false +// - returned: default +// - type: complex +// - uniqueness: none +type MyAuthenticationFactorValidatorThirdPartyFactor struct { + + // The vendor name of the third party factor + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + ThirdPartyVendorName *string `mandatory:"true" json:"thirdPartyVendorName"` + + // Type of the third party authentication factor + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + ThirdPartyFactorType *string `mandatory:"false" json:"thirdPartyFactorType"` + + // Reference to the third party resource + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + ThirdPartyFactorId *string `mandatory:"false" json:"thirdPartyFactorId"` +} + +func (m MyAuthenticationFactorValidatorThirdPartyFactor) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MyAuthenticationFactorValidatorThirdPartyFactor) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_authentication_factors_remover.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_authentication_factors_remover.go new file mode 100644 index 00000000000..b4c92d486fb --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_authentication_factors_remover.go @@ -0,0 +1,234 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MyAuthenticationFactorsRemover This schema defines the attributes of Authentication Factors Remover call. +type MyAuthenticationFactorsRemover struct { + + // REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: true + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Schemas []string `mandatory:"true" json:"schemas"` + + User *MyAuthenticationFactorsRemoverUser `mandatory:"true" json:"user"` + + // Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: always + // - type: string + // - uniqueness: global + Id *string `mandatory:"false" json:"id"` + + // Unique OCI identifier for the SCIM Resource. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: default + // - type: string + // - uniqueness: global + Ocid *string `mandatory:"false" json:"ocid"` + + Meta *Meta `mandatory:"false" json:"meta"` + + IdcsCreatedBy *IdcsCreatedBy `mandatory:"false" json:"idcsCreatedBy"` + + IdcsLastModifiedBy *IdcsLastModifiedBy `mandatory:"false" json:"idcsLastModifiedBy"` + + // Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsPreventedOperations []IdcsPreventedOperationsEnum `mandatory:"false" json:"idcsPreventedOperations,omitempty"` + + // A list of tags on this resource. + // **SCIM++ Properties:** + // - idcsCompositeKey: [key, value] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + Tags []Tags `mandatory:"false" json:"tags"` + + // A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + DeleteInProgress *bool `mandatory:"false" json:"deleteInProgress"` + + // The release number when the resource was upgraded. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsLastUpgradedInRelease *string `mandatory:"false" json:"idcsLastUpgradedInRelease"` + + // OCI Domain Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + DomainOcid *string `mandatory:"false" json:"domainOcid"` + + // OCI Compartment Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + CompartmentOcid *string `mandatory:"false" json:"compartmentOcid"` + + // OCI Tenant Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + TenancyOcid *string `mandatory:"false" json:"tenancyOcid"` + + // Specifies the type of factors to remove. Either MFA factors or AccountRecovery factors or All factors + // **SCIM++ Properties:** + // - type: string + // - multiValued: false + // - required: false + // - mutability: readWrite + // - returned: default + // - uniqueness: none + // - idcsSearchable: false + Type MyAuthenticationFactorsRemoverTypeEnum `mandatory:"false" json:"type,omitempty"` +} + +func (m MyAuthenticationFactorsRemover) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MyAuthenticationFactorsRemover) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + for _, val := range m.IdcsPreventedOperations { + if _, ok := GetMappingIdcsPreventedOperationsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for IdcsPreventedOperations: %s. Supported values are: %s.", val, strings.Join(GetIdcsPreventedOperationsEnumStringValues(), ","))) + } + } + + if _, ok := GetMappingMyAuthenticationFactorsRemoverTypeEnum(string(m.Type)); !ok && m.Type != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Type: %s. Supported values are: %s.", m.Type, strings.Join(GetMyAuthenticationFactorsRemoverTypeEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// MyAuthenticationFactorsRemoverTypeEnum Enum with underlying type: string +type MyAuthenticationFactorsRemoverTypeEnum string + +// Set of constants representing the allowable values for MyAuthenticationFactorsRemoverTypeEnum +const ( + MyAuthenticationFactorsRemoverTypeKmsi MyAuthenticationFactorsRemoverTypeEnum = "KMSI" + MyAuthenticationFactorsRemoverTypeMfa MyAuthenticationFactorsRemoverTypeEnum = "MFA" + MyAuthenticationFactorsRemoverTypeAccountrecovery MyAuthenticationFactorsRemoverTypeEnum = "ACCOUNTRECOVERY" + MyAuthenticationFactorsRemoverTypeAll MyAuthenticationFactorsRemoverTypeEnum = "ALL" +) + +var mappingMyAuthenticationFactorsRemoverTypeEnum = map[string]MyAuthenticationFactorsRemoverTypeEnum{ + "KMSI": MyAuthenticationFactorsRemoverTypeKmsi, + "MFA": MyAuthenticationFactorsRemoverTypeMfa, + "ACCOUNTRECOVERY": MyAuthenticationFactorsRemoverTypeAccountrecovery, + "ALL": MyAuthenticationFactorsRemoverTypeAll, +} + +var mappingMyAuthenticationFactorsRemoverTypeEnumLowerCase = map[string]MyAuthenticationFactorsRemoverTypeEnum{ + "kmsi": MyAuthenticationFactorsRemoverTypeKmsi, + "mfa": MyAuthenticationFactorsRemoverTypeMfa, + "accountrecovery": MyAuthenticationFactorsRemoverTypeAccountrecovery, + "all": MyAuthenticationFactorsRemoverTypeAll, +} + +// GetMyAuthenticationFactorsRemoverTypeEnumValues Enumerates the set of values for MyAuthenticationFactorsRemoverTypeEnum +func GetMyAuthenticationFactorsRemoverTypeEnumValues() []MyAuthenticationFactorsRemoverTypeEnum { + values := make([]MyAuthenticationFactorsRemoverTypeEnum, 0) + for _, v := range mappingMyAuthenticationFactorsRemoverTypeEnum { + values = append(values, v) + } + return values +} + +// GetMyAuthenticationFactorsRemoverTypeEnumStringValues Enumerates the set of values in String for MyAuthenticationFactorsRemoverTypeEnum +func GetMyAuthenticationFactorsRemoverTypeEnumStringValues() []string { + return []string{ + "KMSI", + "MFA", + "ACCOUNTRECOVERY", + "ALL", + } +} + +// GetMappingMyAuthenticationFactorsRemoverTypeEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingMyAuthenticationFactorsRemoverTypeEnum(val string) (MyAuthenticationFactorsRemoverTypeEnum, bool) { + enum, ok := mappingMyAuthenticationFactorsRemoverTypeEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_authentication_factors_remover_user.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_authentication_factors_remover_user.go new file mode 100644 index 00000000000..9937b013ee6 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_authentication_factors_remover_user.go @@ -0,0 +1,93 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MyAuthenticationFactorsRemoverUser User for whom the authentication factors need to be deleted +// **SCIM++ Properties:** +// - caseExact: false +// - idcsSearchable: true +// - multiValued: false +// - mutability: readWrite +// - required: true +// - returned: default +// - type: complex +// - uniqueness: none +type MyAuthenticationFactorsRemoverUser struct { + + // The identifier of the user + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: always + // - type: string + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` + + // The URI that corresponds to the member Resource for whom the factors will be deleted + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` + + // User display name + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Display *string `mandatory:"false" json:"display"` + + // The OCID of the user + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: always + // - type: string + // - uniqueness: none + Ocid *string `mandatory:"false" json:"ocid"` +} + +func (m MyAuthenticationFactorsRemoverUser) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MyAuthenticationFactorsRemoverUser) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_customer_secret_key.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_customer_secret_key.go new file mode 100644 index 00000000000..0dd2df48e8c --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_customer_secret_key.go @@ -0,0 +1,268 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MyCustomerSecretKey User's customer secret key +type MyCustomerSecretKey struct { + + // REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: true + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Schemas []string `mandatory:"true" json:"schemas"` + + // Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: always + // - type: string + // - uniqueness: global + Id *string `mandatory:"false" json:"id"` + + // Unique OCI identifier for the SCIM Resource. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: default + // - type: string + // - uniqueness: global + Ocid *string `mandatory:"false" json:"ocid"` + + Meta *Meta `mandatory:"false" json:"meta"` + + IdcsCreatedBy *IdcsCreatedBy `mandatory:"false" json:"idcsCreatedBy"` + + IdcsLastModifiedBy *IdcsLastModifiedBy `mandatory:"false" json:"idcsLastModifiedBy"` + + // Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsPreventedOperations []IdcsPreventedOperationsEnum `mandatory:"false" json:"idcsPreventedOperations,omitempty"` + + // A list of tags on this resource. + // **SCIM++ Properties:** + // - idcsCompositeKey: [key, value] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + Tags []Tags `mandatory:"false" json:"tags"` + + // A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + DeleteInProgress *bool `mandatory:"false" json:"deleteInProgress"` + + // The release number when the resource was upgraded. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsLastUpgradedInRelease *string `mandatory:"false" json:"idcsLastUpgradedInRelease"` + + // OCI Domain Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + DomainOcid *string `mandatory:"false" json:"domainOcid"` + + // OCI Compartment Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + CompartmentOcid *string `mandatory:"false" json:"compartmentOcid"` + + // OCI Tenant Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + TenancyOcid *string `mandatory:"false" json:"tenancyOcid"` + + // Display Name + // **SCIM++ Properties:** + // - caseExact: false + // - type: string + // - mutability: readWrite + // - required: false + // - returned: default + DisplayName *string `mandatory:"false" json:"displayName"` + + // Description + // **SCIM++ Properties:** + // - caseExact: false + // - type: string + // - mutability: readWrite + // - required: false + // - returned: default + Description *string `mandatory:"false" json:"description"` + + // User credential status + // **Added In:** 2109090424 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: never + // - type: string + // - uniqueness: none + Status MyCustomerSecretKeyStatusEnum `mandatory:"false" json:"status,omitempty"` + + // User credential expires on + // **Added In:** 2109090424 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: default + // - type: dateTime + // - uniqueness: none + ExpiresOn *string `mandatory:"false" json:"expiresOn"` + + // Access key + // **SCIM++ Properties:** + // - caseExact: true + // - type: string + // - mutability: readOnly + // - required: false + // - returned: default + AccessKey *string `mandatory:"false" json:"accessKey"` + + User *MyCustomerSecretKeyUser `mandatory:"false" json:"user"` +} + +func (m MyCustomerSecretKey) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MyCustomerSecretKey) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + for _, val := range m.IdcsPreventedOperations { + if _, ok := GetMappingIdcsPreventedOperationsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for IdcsPreventedOperations: %s. Supported values are: %s.", val, strings.Join(GetIdcsPreventedOperationsEnumStringValues(), ","))) + } + } + + if _, ok := GetMappingMyCustomerSecretKeyStatusEnum(string(m.Status)); !ok && m.Status != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Status: %s. Supported values are: %s.", m.Status, strings.Join(GetMyCustomerSecretKeyStatusEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// MyCustomerSecretKeyStatusEnum Enum with underlying type: string +type MyCustomerSecretKeyStatusEnum string + +// Set of constants representing the allowable values for MyCustomerSecretKeyStatusEnum +const ( + MyCustomerSecretKeyStatusActive MyCustomerSecretKeyStatusEnum = "ACTIVE" + MyCustomerSecretKeyStatusInactive MyCustomerSecretKeyStatusEnum = "INACTIVE" +) + +var mappingMyCustomerSecretKeyStatusEnum = map[string]MyCustomerSecretKeyStatusEnum{ + "ACTIVE": MyCustomerSecretKeyStatusActive, + "INACTIVE": MyCustomerSecretKeyStatusInactive, +} + +var mappingMyCustomerSecretKeyStatusEnumLowerCase = map[string]MyCustomerSecretKeyStatusEnum{ + "active": MyCustomerSecretKeyStatusActive, + "inactive": MyCustomerSecretKeyStatusInactive, +} + +// GetMyCustomerSecretKeyStatusEnumValues Enumerates the set of values for MyCustomerSecretKeyStatusEnum +func GetMyCustomerSecretKeyStatusEnumValues() []MyCustomerSecretKeyStatusEnum { + values := make([]MyCustomerSecretKeyStatusEnum, 0) + for _, v := range mappingMyCustomerSecretKeyStatusEnum { + values = append(values, v) + } + return values +} + +// GetMyCustomerSecretKeyStatusEnumStringValues Enumerates the set of values in String for MyCustomerSecretKeyStatusEnum +func GetMyCustomerSecretKeyStatusEnumStringValues() []string { + return []string{ + "ACTIVE", + "INACTIVE", + } +} + +// GetMappingMyCustomerSecretKeyStatusEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingMyCustomerSecretKeyStatusEnum(val string) (MyCustomerSecretKeyStatusEnum, bool) { + enum, ok := mappingMyCustomerSecretKeyStatusEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_customer_secret_key_user.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_customer_secret_key_user.go new file mode 100644 index 00000000000..4e5f8acc5d5 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_customer_secret_key_user.go @@ -0,0 +1,106 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MyCustomerSecretKeyUser User linked to customer secret key +// **SCIM++ Properties:** +// - caseExact: false +// - idcsSearchable: true +// - multiValued: false +// - mutability: immutable +// - required: false +// - returned: default +// - type: complex +// - uniqueness: none +type MyCustomerSecretKeyUser struct { + + // User's id + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: always + // - type: string + // - uniqueness: none + Value *string `mandatory:"false" json:"value"` + + // User's ocid + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: always + // - type: string + // - uniqueness: none + Ocid *string `mandatory:"false" json:"ocid"` + + // The URI that corresponds to the user linked to this credential + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` + + // User display name + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Display *string `mandatory:"false" json:"display"` + + // User name + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Name *string `mandatory:"false" json:"name"` +} + +func (m MyCustomerSecretKeyUser) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MyCustomerSecretKeyUser) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_customer_secret_keys.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_customer_secret_keys.go new file mode 100644 index 00000000000..a644cf695cd --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_customer_secret_keys.go @@ -0,0 +1,52 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MyCustomerSecretKeys The SCIM protocol defines a standard set of query parameters that can be used to filter, sort, and paginate to return zero or more resources in a query response. Queries MAY be made against a single resource or a resource type endpoint (e.g., /Users), or the service provider Base URI. +type MyCustomerSecretKeys struct { + + // The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. REQUIRED. + Schemas []string `mandatory:"true" json:"schemas"` + + // The total number of results returned by the list or query operation. The value may be larger than the number of resources returned such as when returning a single page of results where multiple pages are available. REQUIRED. + TotalResults *int `mandatory:"true" json:"totalResults"` + + // A multi-valued list of complex objects containing the requested resources. This MAY be a subset of the full set of resources if pagination is requested. REQUIRED if "totalResults" is non-zero. + Resources []MyCustomerSecretKey `mandatory:"true" json:"Resources"` + + // The 1-based index of the first result in the current set of list results. REQUIRED when partial results returned due to pagination. + StartIndex *int `mandatory:"true" json:"startIndex"` + + // The number of resources returned in a list response page. REQUIRED when partial results returned due to pagination. + ItemsPerPage *int `mandatory:"true" json:"itemsPerPage"` +} + +func (m MyCustomerSecretKeys) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MyCustomerSecretKeys) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_device.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_device.go new file mode 100644 index 00000000000..1b0b377c5a0 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_device.go @@ -0,0 +1,553 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MyDevice Device Resource. +type MyDevice struct { + + // REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: true + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Schemas []string `mandatory:"true" json:"schemas"` + + User *MyDeviceUser `mandatory:"true" json:"user"` + + // Authentication Factors + // **SCIM++ Properties:** + // - caseExact: true + // - idcsCompositeKey: [type] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readWrite + // - required: true + // - returned: default + // - type: complex + AuthenticationFactors []MyDeviceAuthenticationFactors `mandatory:"true" json:"authenticationFactors"` + + // Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: always + // - type: string + // - uniqueness: global + Id *string `mandatory:"false" json:"id"` + + // Unique OCI identifier for the SCIM Resource. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: default + // - type: string + // - uniqueness: global + Ocid *string `mandatory:"false" json:"ocid"` + + Meta *Meta `mandatory:"false" json:"meta"` + + IdcsCreatedBy *IdcsCreatedBy `mandatory:"false" json:"idcsCreatedBy"` + + IdcsLastModifiedBy *IdcsLastModifiedBy `mandatory:"false" json:"idcsLastModifiedBy"` + + // Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsPreventedOperations []IdcsPreventedOperationsEnum `mandatory:"false" json:"idcsPreventedOperations,omitempty"` + + // A list of tags on this resource. + // **SCIM++ Properties:** + // - idcsCompositeKey: [key, value] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + Tags []Tags `mandatory:"false" json:"tags"` + + // A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + DeleteInProgress *bool `mandatory:"false" json:"deleteInProgress"` + + // The release number when the resource was upgraded. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsLastUpgradedInRelease *string `mandatory:"false" json:"idcsLastUpgradedInRelease"` + + // OCI Domain Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + DomainOcid *string `mandatory:"false" json:"domainOcid"` + + // OCI Compartment Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + CompartmentOcid *string `mandatory:"false" json:"compartmentOcid"` + + // OCI Tenant Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + TenancyOcid *string `mandatory:"false" json:"tenancyOcid"` + + // An identifier for the Resource as defined by the Service Consumer. The externalId may simplify identification of the Resource between Service Consumer and Service Provider by allowing the Consumer to refer to the Resource with its own identifier, obviating the need to store a local mapping between the local identifier of the Resource and the identifier used by the Service Provider. Each Resource MAY include a non-empty externalId value. The value of the externalId attribute is always issued be the Service Consumer and can never be specified by the Service Provider. The Service Provider MUST always interpret the externalId as scoped to the Service Consumer's tenant. + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + ExternalId *string `mandatory:"false" json:"externalId"` + + // Device friendly display name + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + DisplayName *string `mandatory:"false" json:"displayName"` + + // Device Platform + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Platform MyDevicePlatformEnum `mandatory:"false" json:"platform,omitempty"` + + // Device Status + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Status MyDeviceStatusEnum `mandatory:"false" json:"status,omitempty"` + + // Additional comments/reasons for the change in device status + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Reason *string `mandatory:"false" json:"reason"` + + // Device hardware name/model + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + DeviceType *string `mandatory:"false" json:"deviceType"` + + // Mobile Authenticator App Version + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + AppVersion *string `mandatory:"false" json:"appVersion"` + + // Mobile Authenticator App Package Id + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + PackageId *string `mandatory:"false" json:"packageId"` + + // Last Sync time for device + // **SCIM++ Properties:** + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: dateTime + // - uniqueness: none + LastSyncTime *string `mandatory:"false" json:"lastSyncTime"` + + // The most recent timestamp when the device was successfully validated using one time passcode + // **Added In:** 17.3.6 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - idcsAllowUpdatesInReadOnlyMode: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: dateTime + // - uniqueness: none + LastValidatedTime *string `mandatory:"false" json:"lastValidatedTime"` + + // Device Compliance Status + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + IsCompliant *bool `mandatory:"false" json:"isCompliant"` + + // Country code of user's Phone Number + // **Added In:** 19.1.4 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + CountryCode *string `mandatory:"false" json:"countryCode"` + + // User's Phone Number + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + PhoneNumber *string `mandatory:"false" json:"phoneNumber"` + + // Flag that indicates whether the device is enrolled for account recovery + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + IsAccRecEnabled *bool `mandatory:"false" json:"isAccRecEnabled"` + + // Unique id sent from device + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + DeviceUUID *string `mandatory:"false" json:"deviceUUID"` + + // Device base public Key + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + BasePublicKey *string `mandatory:"false" json:"basePublicKey"` + + // Authentication method used in device. For FIDO, it will contain SECURITY_KEY/WINDOWS_HELLO etc + // **Added In:** 2009232244 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + AuthenticationMethod *string `mandatory:"false" json:"authenticationMethod"` + + // Attribute added for replication log, it is not used by IDCS, just added as place holder + // **Added In:** 2111040242 + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: integer + // - uniqueness: none + ExpiresOn *int `mandatory:"false" json:"expiresOn"` + + // Attribute added for replication log, it is not used by IDCS, the DEK that encrypts the specific seed for that user + // **Added In:** 2111040242 + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + SeedDekId *string `mandatory:"false" json:"seedDekId"` + + // Attribute added for replication log, it is not used by IDCS, it is actual encrypted TOTP seed for the user + // **Added In:** 2111040242 + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Seed *string `mandatory:"false" json:"seed"` + + ThirdPartyFactor *MyDeviceThirdPartyFactor `mandatory:"false" json:"thirdPartyFactor"` + + PushNotificationTarget *MyDevicePushNotificationTarget `mandatory:"false" json:"pushNotificationTarget"` + + // Device additional attributes + // **SCIM++ Properties:** + // - idcsCompositeKey: [key, value] + // - idcsSearchable: false + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: default + // - type: complex + AdditionalAttributes []MyDeviceAdditionalAttributes `mandatory:"false" json:"additionalAttributes"` + + // Device Non Compliances + // **SCIM++ Properties:** + // - idcsCompositeKey: [name, value] + // - idcsSearchable: false + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: default + // - type: complex + NonCompliances []MyDeviceNonCompliances `mandatory:"false" json:"nonCompliances"` +} + +func (m MyDevice) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MyDevice) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + for _, val := range m.IdcsPreventedOperations { + if _, ok := GetMappingIdcsPreventedOperationsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for IdcsPreventedOperations: %s. Supported values are: %s.", val, strings.Join(GetIdcsPreventedOperationsEnumStringValues(), ","))) + } + } + + if _, ok := GetMappingMyDevicePlatformEnum(string(m.Platform)); !ok && m.Platform != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Platform: %s. Supported values are: %s.", m.Platform, strings.Join(GetMyDevicePlatformEnumStringValues(), ","))) + } + if _, ok := GetMappingMyDeviceStatusEnum(string(m.Status)); !ok && m.Status != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Status: %s. Supported values are: %s.", m.Status, strings.Join(GetMyDeviceStatusEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// MyDevicePlatformEnum Enum with underlying type: string +type MyDevicePlatformEnum string + +// Set of constants representing the allowable values for MyDevicePlatformEnum +const ( + MyDevicePlatformIos MyDevicePlatformEnum = "IOS" + MyDevicePlatformAndroid MyDevicePlatformEnum = "ANDROID" + MyDevicePlatformWindows MyDevicePlatformEnum = "WINDOWS" + MyDevicePlatformCellular MyDevicePlatformEnum = "CELLULAR" +) + +var mappingMyDevicePlatformEnum = map[string]MyDevicePlatformEnum{ + "IOS": MyDevicePlatformIos, + "ANDROID": MyDevicePlatformAndroid, + "WINDOWS": MyDevicePlatformWindows, + "CELLULAR": MyDevicePlatformCellular, +} + +var mappingMyDevicePlatformEnumLowerCase = map[string]MyDevicePlatformEnum{ + "ios": MyDevicePlatformIos, + "android": MyDevicePlatformAndroid, + "windows": MyDevicePlatformWindows, + "cellular": MyDevicePlatformCellular, +} + +// GetMyDevicePlatformEnumValues Enumerates the set of values for MyDevicePlatformEnum +func GetMyDevicePlatformEnumValues() []MyDevicePlatformEnum { + values := make([]MyDevicePlatformEnum, 0) + for _, v := range mappingMyDevicePlatformEnum { + values = append(values, v) + } + return values +} + +// GetMyDevicePlatformEnumStringValues Enumerates the set of values in String for MyDevicePlatformEnum +func GetMyDevicePlatformEnumStringValues() []string { + return []string{ + "IOS", + "ANDROID", + "WINDOWS", + "CELLULAR", + } +} + +// GetMappingMyDevicePlatformEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingMyDevicePlatformEnum(val string) (MyDevicePlatformEnum, bool) { + enum, ok := mappingMyDevicePlatformEnumLowerCase[strings.ToLower(val)] + return enum, ok +} + +// MyDeviceStatusEnum Enum with underlying type: string +type MyDeviceStatusEnum string + +// Set of constants representing the allowable values for MyDeviceStatusEnum +const ( + MyDeviceStatusInitiated MyDeviceStatusEnum = "INITIATED" + MyDeviceStatusInprogress MyDeviceStatusEnum = "INPROGRESS" + MyDeviceStatusInactive MyDeviceStatusEnum = "INACTIVE" + MyDeviceStatusEnrolled MyDeviceStatusEnum = "ENROLLED" + MyDeviceStatusLocked MyDeviceStatusEnum = "LOCKED" + MyDeviceStatusBlocked MyDeviceStatusEnum = "BLOCKED" +) + +var mappingMyDeviceStatusEnum = map[string]MyDeviceStatusEnum{ + "INITIATED": MyDeviceStatusInitiated, + "INPROGRESS": MyDeviceStatusInprogress, + "INACTIVE": MyDeviceStatusInactive, + "ENROLLED": MyDeviceStatusEnrolled, + "LOCKED": MyDeviceStatusLocked, + "BLOCKED": MyDeviceStatusBlocked, +} + +var mappingMyDeviceStatusEnumLowerCase = map[string]MyDeviceStatusEnum{ + "initiated": MyDeviceStatusInitiated, + "inprogress": MyDeviceStatusInprogress, + "inactive": MyDeviceStatusInactive, + "enrolled": MyDeviceStatusEnrolled, + "locked": MyDeviceStatusLocked, + "blocked": MyDeviceStatusBlocked, +} + +// GetMyDeviceStatusEnumValues Enumerates the set of values for MyDeviceStatusEnum +func GetMyDeviceStatusEnumValues() []MyDeviceStatusEnum { + values := make([]MyDeviceStatusEnum, 0) + for _, v := range mappingMyDeviceStatusEnum { + values = append(values, v) + } + return values +} + +// GetMyDeviceStatusEnumStringValues Enumerates the set of values in String for MyDeviceStatusEnum +func GetMyDeviceStatusEnumStringValues() []string { + return []string{ + "INITIATED", + "INPROGRESS", + "INACTIVE", + "ENROLLED", + "LOCKED", + "BLOCKED", + } +} + +// GetMappingMyDeviceStatusEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingMyDeviceStatusEnum(val string) (MyDeviceStatusEnum, bool) { + enum, ok := mappingMyDeviceStatusEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_device_additional_attributes.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_device_additional_attributes.go new file mode 100644 index 00000000000..b340c9a2738 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_device_additional_attributes.go @@ -0,0 +1,59 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MyDeviceAdditionalAttributes Device additional attributes +type MyDeviceAdditionalAttributes struct { + + // Device Attribute Key Name + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: true + // - returned: always + // - type: string + // - uniqueness: none + Key *string `mandatory:"true" json:"key"` + + // Device Attribute Value + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` +} + +func (m MyDeviceAdditionalAttributes) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MyDeviceAdditionalAttributes) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_device_authentication_factors.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_device_authentication_factors.go new file mode 100644 index 00000000000..3af05549ab0 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_device_authentication_factors.go @@ -0,0 +1,209 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MyDeviceAuthenticationFactors Authentication Factors +type MyDeviceAuthenticationFactors struct { + + // Authentication Factor Type + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Type MyDeviceAuthenticationFactorsTypeEnum `mandatory:"true" json:"type"` + + // Authentication Factor Status + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Status MyDeviceAuthenticationFactorsStatusEnum `mandatory:"false" json:"status,omitempty"` + + // Authentication Factor public key issued by client + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + PublicKey *string `mandatory:"false" json:"publicKey"` +} + +func (m MyDeviceAuthenticationFactors) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MyDeviceAuthenticationFactors) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingMyDeviceAuthenticationFactorsTypeEnum(string(m.Type)); !ok && m.Type != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Type: %s. Supported values are: %s.", m.Type, strings.Join(GetMyDeviceAuthenticationFactorsTypeEnumStringValues(), ","))) + } + + if _, ok := GetMappingMyDeviceAuthenticationFactorsStatusEnum(string(m.Status)); !ok && m.Status != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Status: %s. Supported values are: %s.", m.Status, strings.Join(GetMyDeviceAuthenticationFactorsStatusEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// MyDeviceAuthenticationFactorsTypeEnum Enum with underlying type: string +type MyDeviceAuthenticationFactorsTypeEnum string + +// Set of constants representing the allowable values for MyDeviceAuthenticationFactorsTypeEnum +const ( + MyDeviceAuthenticationFactorsTypeEmail MyDeviceAuthenticationFactorsTypeEnum = "EMAIL" + MyDeviceAuthenticationFactorsTypeSms MyDeviceAuthenticationFactorsTypeEnum = "SMS" + MyDeviceAuthenticationFactorsTypeTotp MyDeviceAuthenticationFactorsTypeEnum = "TOTP" + MyDeviceAuthenticationFactorsTypePush MyDeviceAuthenticationFactorsTypeEnum = "PUSH" + MyDeviceAuthenticationFactorsTypeOfflinetotp MyDeviceAuthenticationFactorsTypeEnum = "OFFLINETOTP" + MyDeviceAuthenticationFactorsTypeVoice MyDeviceAuthenticationFactorsTypeEnum = "VOICE" + MyDeviceAuthenticationFactorsTypePhoneCall MyDeviceAuthenticationFactorsTypeEnum = "PHONE_CALL" + MyDeviceAuthenticationFactorsTypeThirdparty MyDeviceAuthenticationFactorsTypeEnum = "THIRDPARTY" + MyDeviceAuthenticationFactorsTypeFidoAuthenticator MyDeviceAuthenticationFactorsTypeEnum = "FIDO_AUTHENTICATOR" + MyDeviceAuthenticationFactorsTypeYubicoOtp MyDeviceAuthenticationFactorsTypeEnum = "YUBICO_OTP" +) + +var mappingMyDeviceAuthenticationFactorsTypeEnum = map[string]MyDeviceAuthenticationFactorsTypeEnum{ + "EMAIL": MyDeviceAuthenticationFactorsTypeEmail, + "SMS": MyDeviceAuthenticationFactorsTypeSms, + "TOTP": MyDeviceAuthenticationFactorsTypeTotp, + "PUSH": MyDeviceAuthenticationFactorsTypePush, + "OFFLINETOTP": MyDeviceAuthenticationFactorsTypeOfflinetotp, + "VOICE": MyDeviceAuthenticationFactorsTypeVoice, + "PHONE_CALL": MyDeviceAuthenticationFactorsTypePhoneCall, + "THIRDPARTY": MyDeviceAuthenticationFactorsTypeThirdparty, + "FIDO_AUTHENTICATOR": MyDeviceAuthenticationFactorsTypeFidoAuthenticator, + "YUBICO_OTP": MyDeviceAuthenticationFactorsTypeYubicoOtp, +} + +var mappingMyDeviceAuthenticationFactorsTypeEnumLowerCase = map[string]MyDeviceAuthenticationFactorsTypeEnum{ + "email": MyDeviceAuthenticationFactorsTypeEmail, + "sms": MyDeviceAuthenticationFactorsTypeSms, + "totp": MyDeviceAuthenticationFactorsTypeTotp, + "push": MyDeviceAuthenticationFactorsTypePush, + "offlinetotp": MyDeviceAuthenticationFactorsTypeOfflinetotp, + "voice": MyDeviceAuthenticationFactorsTypeVoice, + "phone_call": MyDeviceAuthenticationFactorsTypePhoneCall, + "thirdparty": MyDeviceAuthenticationFactorsTypeThirdparty, + "fido_authenticator": MyDeviceAuthenticationFactorsTypeFidoAuthenticator, + "yubico_otp": MyDeviceAuthenticationFactorsTypeYubicoOtp, +} + +// GetMyDeviceAuthenticationFactorsTypeEnumValues Enumerates the set of values for MyDeviceAuthenticationFactorsTypeEnum +func GetMyDeviceAuthenticationFactorsTypeEnumValues() []MyDeviceAuthenticationFactorsTypeEnum { + values := make([]MyDeviceAuthenticationFactorsTypeEnum, 0) + for _, v := range mappingMyDeviceAuthenticationFactorsTypeEnum { + values = append(values, v) + } + return values +} + +// GetMyDeviceAuthenticationFactorsTypeEnumStringValues Enumerates the set of values in String for MyDeviceAuthenticationFactorsTypeEnum +func GetMyDeviceAuthenticationFactorsTypeEnumStringValues() []string { + return []string{ + "EMAIL", + "SMS", + "TOTP", + "PUSH", + "OFFLINETOTP", + "VOICE", + "PHONE_CALL", + "THIRDPARTY", + "FIDO_AUTHENTICATOR", + "YUBICO_OTP", + } +} + +// GetMappingMyDeviceAuthenticationFactorsTypeEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingMyDeviceAuthenticationFactorsTypeEnum(val string) (MyDeviceAuthenticationFactorsTypeEnum, bool) { + enum, ok := mappingMyDeviceAuthenticationFactorsTypeEnumLowerCase[strings.ToLower(val)] + return enum, ok +} + +// MyDeviceAuthenticationFactorsStatusEnum Enum with underlying type: string +type MyDeviceAuthenticationFactorsStatusEnum string + +// Set of constants representing the allowable values for MyDeviceAuthenticationFactorsStatusEnum +const ( + MyDeviceAuthenticationFactorsStatusInitiated MyDeviceAuthenticationFactorsStatusEnum = "INITIATED" + MyDeviceAuthenticationFactorsStatusInprogress MyDeviceAuthenticationFactorsStatusEnum = "INPROGRESS" + MyDeviceAuthenticationFactorsStatusEnrolled MyDeviceAuthenticationFactorsStatusEnum = "ENROLLED" + MyDeviceAuthenticationFactorsStatusLocked MyDeviceAuthenticationFactorsStatusEnum = "LOCKED" + MyDeviceAuthenticationFactorsStatusInactive MyDeviceAuthenticationFactorsStatusEnum = "INACTIVE" + MyDeviceAuthenticationFactorsStatusBlocked MyDeviceAuthenticationFactorsStatusEnum = "BLOCKED" +) + +var mappingMyDeviceAuthenticationFactorsStatusEnum = map[string]MyDeviceAuthenticationFactorsStatusEnum{ + "INITIATED": MyDeviceAuthenticationFactorsStatusInitiated, + "INPROGRESS": MyDeviceAuthenticationFactorsStatusInprogress, + "ENROLLED": MyDeviceAuthenticationFactorsStatusEnrolled, + "LOCKED": MyDeviceAuthenticationFactorsStatusLocked, + "INACTIVE": MyDeviceAuthenticationFactorsStatusInactive, + "BLOCKED": MyDeviceAuthenticationFactorsStatusBlocked, +} + +var mappingMyDeviceAuthenticationFactorsStatusEnumLowerCase = map[string]MyDeviceAuthenticationFactorsStatusEnum{ + "initiated": MyDeviceAuthenticationFactorsStatusInitiated, + "inprogress": MyDeviceAuthenticationFactorsStatusInprogress, + "enrolled": MyDeviceAuthenticationFactorsStatusEnrolled, + "locked": MyDeviceAuthenticationFactorsStatusLocked, + "inactive": MyDeviceAuthenticationFactorsStatusInactive, + "blocked": MyDeviceAuthenticationFactorsStatusBlocked, +} + +// GetMyDeviceAuthenticationFactorsStatusEnumValues Enumerates the set of values for MyDeviceAuthenticationFactorsStatusEnum +func GetMyDeviceAuthenticationFactorsStatusEnumValues() []MyDeviceAuthenticationFactorsStatusEnum { + values := make([]MyDeviceAuthenticationFactorsStatusEnum, 0) + for _, v := range mappingMyDeviceAuthenticationFactorsStatusEnum { + values = append(values, v) + } + return values +} + +// GetMyDeviceAuthenticationFactorsStatusEnumStringValues Enumerates the set of values in String for MyDeviceAuthenticationFactorsStatusEnum +func GetMyDeviceAuthenticationFactorsStatusEnumStringValues() []string { + return []string{ + "INITIATED", + "INPROGRESS", + "ENROLLED", + "LOCKED", + "INACTIVE", + "BLOCKED", + } +} + +// GetMappingMyDeviceAuthenticationFactorsStatusEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingMyDeviceAuthenticationFactorsStatusEnum(val string) (MyDeviceAuthenticationFactorsStatusEnum, bool) { + enum, ok := mappingMyDeviceAuthenticationFactorsStatusEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_device_non_compliances.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_device_non_compliances.go new file mode 100644 index 00000000000..e02ffdb8639 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_device_non_compliances.go @@ -0,0 +1,123 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MyDeviceNonCompliances Device Non Compliances +type MyDeviceNonCompliances struct { + + // Device Compliance name + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Name *string `mandatory:"true" json:"name"` + + // Device Compliance value + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` + + // Device Compliance Action + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Action MyDeviceNonCompliancesActionEnum `mandatory:"true" json:"action"` +} + +func (m MyDeviceNonCompliances) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MyDeviceNonCompliances) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingMyDeviceNonCompliancesActionEnum(string(m.Action)); !ok && m.Action != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Action: %s. Supported values are: %s.", m.Action, strings.Join(GetMyDeviceNonCompliancesActionEnumStringValues(), ","))) + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// MyDeviceNonCompliancesActionEnum Enum with underlying type: string +type MyDeviceNonCompliancesActionEnum string + +// Set of constants representing the allowable values for MyDeviceNonCompliancesActionEnum +const ( + MyDeviceNonCompliancesActionNotify MyDeviceNonCompliancesActionEnum = "NOTIFY" + MyDeviceNonCompliancesActionBlock MyDeviceNonCompliancesActionEnum = "BLOCK" + MyDeviceNonCompliancesActionAllow MyDeviceNonCompliancesActionEnum = "ALLOW" + MyDeviceNonCompliancesActionUnknown MyDeviceNonCompliancesActionEnum = "UNKNOWN" +) + +var mappingMyDeviceNonCompliancesActionEnum = map[string]MyDeviceNonCompliancesActionEnum{ + "NOTIFY": MyDeviceNonCompliancesActionNotify, + "BLOCK": MyDeviceNonCompliancesActionBlock, + "ALLOW": MyDeviceNonCompliancesActionAllow, + "UNKNOWN": MyDeviceNonCompliancesActionUnknown, +} + +var mappingMyDeviceNonCompliancesActionEnumLowerCase = map[string]MyDeviceNonCompliancesActionEnum{ + "notify": MyDeviceNonCompliancesActionNotify, + "block": MyDeviceNonCompliancesActionBlock, + "allow": MyDeviceNonCompliancesActionAllow, + "unknown": MyDeviceNonCompliancesActionUnknown, +} + +// GetMyDeviceNonCompliancesActionEnumValues Enumerates the set of values for MyDeviceNonCompliancesActionEnum +func GetMyDeviceNonCompliancesActionEnumValues() []MyDeviceNonCompliancesActionEnum { + values := make([]MyDeviceNonCompliancesActionEnum, 0) + for _, v := range mappingMyDeviceNonCompliancesActionEnum { + values = append(values, v) + } + return values +} + +// GetMyDeviceNonCompliancesActionEnumStringValues Enumerates the set of values in String for MyDeviceNonCompliancesActionEnum +func GetMyDeviceNonCompliancesActionEnumStringValues() []string { + return []string{ + "NOTIFY", + "BLOCK", + "ALLOW", + "UNKNOWN", + } +} + +// GetMappingMyDeviceNonCompliancesActionEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingMyDeviceNonCompliancesActionEnum(val string) (MyDeviceNonCompliancesActionEnum, bool) { + enum, ok := mappingMyDeviceNonCompliancesActionEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_device_push_notification_target.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_device_push_notification_target.go new file mode 100644 index 00000000000..1a563fba4ba --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_device_push_notification_target.go @@ -0,0 +1,68 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MyDevicePushNotificationTarget Push Notification target. Reference to Device notification related resource +// **SCIM++ Properties:** +// - idcsSearchable: false +// - multiValued: false +// - mutability: readOnly +// - required: false +// - returned: default +// - type: complex +// - uniqueness: none +type MyDevicePushNotificationTarget struct { + + // The identifier of the push notification target + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: true + // - returned: always + // - type: string + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` + + // The URI that corresponds to the push notification target resource of this device + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` +} + +func (m MyDevicePushNotificationTarget) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MyDevicePushNotificationTarget) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_device_third_party_factor.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_device_third_party_factor.go new file mode 100644 index 00000000000..f8233d99f9c --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_device_third_party_factor.go @@ -0,0 +1,94 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MyDeviceThirdPartyFactor User's third-party authentication factor details +// **Added In:** 19.2.1 +// **SCIM++ Properties:** +// - idcsSearchable: false +// - multiValued: false +// - mutability: immutable +// - required: false +// - returned: default +// - type: complex +// - uniqueness: none +type MyDeviceThirdPartyFactor struct { + + // The vendor name of the third party factor + // **Added In:** 19.2.1 + // **SCIM++ Properties:** + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + ThirdPartyVendorName *string `mandatory:"true" json:"thirdPartyVendorName"` + + // The identifier of third party device + // **Added In:** 19.2.1 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: immutable + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` + + // Type of the third party authentication factor + // **Added In:** 19.2.1 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + ThirdPartyFactorType *string `mandatory:"false" json:"thirdPartyFactorType"` + + // The URI that corresponds to the third party device resource + // **Added In:** 19.2.1 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` +} + +func (m MyDeviceThirdPartyFactor) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MyDeviceThirdPartyFactor) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_device_user.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_device_user.go new file mode 100644 index 00000000000..187b8ea59a4 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_device_user.go @@ -0,0 +1,98 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MyDeviceUser Device member +// **Deprecated Since: 17.3.4** +// **SCIM++ Properties:** +// - caseExact: false +// - idcsSearchable: true +// - multiValued: false +// - mutability: immutable +// - required: true +// - returned: default +// - type: complex +// - uniqueness: none +type MyDeviceUser struct { + + // The identifier of the user + // **Deprecated Since: 17.3.4** + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: true + // - returned: always + // - type: string + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` + + // The URI that corresponds to the member Resource of this device + // **Deprecated Since: 17.3.4** + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` + + // User display name + // **Deprecated Since: 17.3.4** + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Display *string `mandatory:"false" json:"display"` + + // The OCID of the user + // **Added In:** 2105091740 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: always + // - type: string + // - uniqueness: none + Ocid *string `mandatory:"false" json:"ocid"` +} + +func (m MyDeviceUser) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MyDeviceUser) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_devices.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_devices.go new file mode 100644 index 00000000000..6c2eee2697e --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_devices.go @@ -0,0 +1,52 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MyDevices The SCIM protocol defines a standard set of query parameters that can be used to filter, sort, and paginate to return zero or more resources in a query response. Queries MAY be made against a single resource or a resource type endpoint (e.g., /Users), or the service provider Base URI. +type MyDevices struct { + + // The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. REQUIRED. + Schemas []string `mandatory:"true" json:"schemas"` + + // The total number of results returned by the list or query operation. The value may be larger than the number of resources returned such as when returning a single page of results where multiple pages are available. REQUIRED. + TotalResults *int `mandatory:"true" json:"totalResults"` + + // A multi-valued list of complex objects containing the requested resources. This MAY be a subset of the full set of resources if pagination is requested. REQUIRED if "totalResults" is non-zero. + Resources []MyDevice `mandatory:"true" json:"Resources"` + + // The 1-based index of the first result in the current set of list results. REQUIRED when partial results returned due to pagination. + StartIndex *int `mandatory:"true" json:"startIndex"` + + // The number of resources returned in a list response page. REQUIRED when partial results returned due to pagination. + ItemsPerPage *int `mandatory:"true" json:"itemsPerPage"` +} + +func (m MyDevices) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MyDevices) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_group.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_group.go new file mode 100644 index 00000000000..2b5e02b3897 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_group.go @@ -0,0 +1,226 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MyGroup Group resource. +type MyGroup struct { + + // REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: true + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Schemas []string `mandatory:"true" json:"schemas"` + + // Group display name + // **SCIM++ Properties:** + // - caseExact: false + // - idcsCsvAttributeName: Display Name + // - idcsCsvAttributeNameMappings: [[columnHeaderName:Name, deprecatedColumnHeaderName:Display Name]] + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: always + // - type: string + // - uniqueness: global + DisplayName *string `mandatory:"true" json:"displayName"` + + // Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: always + // - type: string + // - uniqueness: global + Id *string `mandatory:"false" json:"id"` + + // Unique OCI identifier for the SCIM Resource. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: default + // - type: string + // - uniqueness: global + Ocid *string `mandatory:"false" json:"ocid"` + + Meta *Meta `mandatory:"false" json:"meta"` + + IdcsCreatedBy *IdcsCreatedBy `mandatory:"false" json:"idcsCreatedBy"` + + IdcsLastModifiedBy *IdcsLastModifiedBy `mandatory:"false" json:"idcsLastModifiedBy"` + + // Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsPreventedOperations []IdcsPreventedOperationsEnum `mandatory:"false" json:"idcsPreventedOperations,omitempty"` + + // A list of tags on this resource. + // **SCIM++ Properties:** + // - idcsCompositeKey: [key, value] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + Tags []Tags `mandatory:"false" json:"tags"` + + // A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + DeleteInProgress *bool `mandatory:"false" json:"deleteInProgress"` + + // The release number when the resource was upgraded. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsLastUpgradedInRelease *string `mandatory:"false" json:"idcsLastUpgradedInRelease"` + + // OCI Domain Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + DomainOcid *string `mandatory:"false" json:"domainOcid"` + + // OCI Compartment Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + CompartmentOcid *string `mandatory:"false" json:"compartmentOcid"` + + // OCI Tenant Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + TenancyOcid *string `mandatory:"false" json:"tenancyOcid"` + + // An identifier for the Resource as defined by the Service Consumer. The externalId may simplify identification of the Resource between Service Consumer and Service Provider by allowing the Consumer to refer to the Resource with its own identifier, obviating the need to store a local mapping between the local identifier of the Resource and the identifier used by the Service Provider. Each Resource MAY include a non-empty externalId value. The value of the externalId attribute is always issued by the Service Consumer and can never be specified by the Service Provider. The Service Provider MUST always interpret the externalId as scoped to the Service Consumer's tenant. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + ExternalId *string `mandatory:"false" json:"externalId"` + + // A human readable name for Group as defined by the Service Consumer + // **Added In:** 2011192329 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsCsvAttributeName: Non-Unique Display Name + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: always + // - type: string + NonUniqueDisplayName *string `mandatory:"false" json:"nonUniqueDisplayName"` + + // Group members - when requesting members attribute, a max of 10,000 members will be returned in a single request. It is recommended to use startIndex and count to return members in pages instead of in a single response, eg : #attributes=members[startIndex=1%26count=10] + // **SCIM++ Properties:** + // - caseExact: false + // - idcsCompositeKey: [value] + // - idcsCsvAttributeNameMappings: [[columnHeaderName:User Members, mapsTo:members[User].value, multiValueDelimiter:;]] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: request + // - idcsPaginateResponse: true + // - type: complex + // - uniqueness: none + Members []MyGroupMembers `mandatory:"false" json:"members"` + + UrnIetfParamsScimSchemasOracleIdcsExtensionGroupGroup *ExtensionGroupGroup `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:group:Group"` + + UrnIetfParamsScimSchemasOracleIdcsExtensionPosixGroup *ExtensionPosixGroup `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:posix:Group"` +} + +func (m MyGroup) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MyGroup) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + for _, val := range m.IdcsPreventedOperations { + if _, ok := GetMappingIdcsPreventedOperationsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for IdcsPreventedOperations: %s. Supported values are: %s.", val, strings.Join(GetIdcsPreventedOperationsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_group_members.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_group_members.go new file mode 100644 index 00000000000..b939385d1c2 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_group_members.go @@ -0,0 +1,176 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MyGroupMembers Group members - when requesting members attribute, a max of 10,000 members will be returned in a single request. It is recommended to use startIndex and count to return members in pages instead of in a single response, eg : #attributes=members[startIndex=1%26count=10] +type MyGroupMembers struct { + + // ID of the member of this Group + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: always + // - type: string + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` + + // Indicates the type of resource--for example, User or Group + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - idcsDefaultValue: User + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Type MyGroupMembersTypeEnum `mandatory:"true" json:"type"` + + // The DateTime the member was added to the Group. + // **Added In:** 2012271618 + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readOnly + // - returned: default + // - type: dateTime + // - uniqueness: none + DateAdded *string `mandatory:"false" json:"dateAdded"` + + // OCID of the member of this Group + // **Added In:** 2012271618 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: always + // - type: string + // - uniqueness: none + Ocid *string `mandatory:"false" json:"ocid"` + + // Membership Ocid + // **Added In:** 2102181953 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + MembershipOcid *string `mandatory:"false" json:"membershipOcid"` + + // The URI that corresponds to the member Resource of this Group + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` + + // Member display name + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Display *string `mandatory:"false" json:"display"` + + // Member name + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Name *string `mandatory:"false" json:"name"` +} + +func (m MyGroupMembers) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MyGroupMembers) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingMyGroupMembersTypeEnum(string(m.Type)); !ok && m.Type != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Type: %s. Supported values are: %s.", m.Type, strings.Join(GetMyGroupMembersTypeEnumStringValues(), ","))) + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// MyGroupMembersTypeEnum Enum with underlying type: string +type MyGroupMembersTypeEnum string + +// Set of constants representing the allowable values for MyGroupMembersTypeEnum +const ( + MyGroupMembersTypeUser MyGroupMembersTypeEnum = "User" +) + +var mappingMyGroupMembersTypeEnum = map[string]MyGroupMembersTypeEnum{ + "User": MyGroupMembersTypeUser, +} + +var mappingMyGroupMembersTypeEnumLowerCase = map[string]MyGroupMembersTypeEnum{ + "user": MyGroupMembersTypeUser, +} + +// GetMyGroupMembersTypeEnumValues Enumerates the set of values for MyGroupMembersTypeEnum +func GetMyGroupMembersTypeEnumValues() []MyGroupMembersTypeEnum { + values := make([]MyGroupMembersTypeEnum, 0) + for _, v := range mappingMyGroupMembersTypeEnum { + values = append(values, v) + } + return values +} + +// GetMyGroupMembersTypeEnumStringValues Enumerates the set of values in String for MyGroupMembersTypeEnum +func GetMyGroupMembersTypeEnumStringValues() []string { + return []string{ + "User", + } +} + +// GetMappingMyGroupMembersTypeEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingMyGroupMembersTypeEnum(val string) (MyGroupMembersTypeEnum, bool) { + enum, ok := mappingMyGroupMembersTypeEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_group_search_request.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_group_search_request.go new file mode 100644 index 00000000000..eee7cfbc053 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_group_search_request.go @@ -0,0 +1,70 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MyGroupSearchRequest Clients MAY execute queries without passing parameters on the URL by using the HTTP POST verb combined with the **.search** path extension. The inclusion of **.search** on the end of a valid SCIM endpoint SHALL be used to indicate the HTTP POST verb is intended to be a query operation. To create a new query result set, a SCIM client sends an HTTP POST request to the desired SCIM resource endpoint (ending in **.search**). The body of the POST request MAY include any of the parameters. +type MyGroupSearchRequest struct { + + // The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. Query requests MUST be identified using the following URI: "urn:ietf:params:scim:api:messages:2.0:SearchRequest" REQUIRED. + Schemas []string `mandatory:"true" json:"schemas"` + + // A multi-valued list of strings indicating the names of resource attributes to return in the response overriding the set of attributes that would be returned by default. Attribute names MUST be in standard attribute notation (Section 3.10 (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.10)) form. See (additional retrieval query parameters (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.9)). OPTIONAL. + Attributes []string `mandatory:"false" json:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If "attributes" query parameter is also available, union of the two is fetched. Valid values : all, always, never, request, default. Values are case-insensitive. OPTIONAL. + AttributeSets []AttributeSetsEnum `mandatory:"false" json:"attributeSets,omitempty"` + + // The filter string that is used to request a subset of resources. The filter string MUST be a valid filter expression. See Section 3.4.2.2 (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.2). OPTIONAL. + Filter *string `mandatory:"false" json:"filter"` + + // A string that indicates the attribute whose value SHALL be used to order the returned responses. The sortBy attribute MUST be in standard attribute notation (Section 3.10 (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.10)) form. See Sorting section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.3). OPTIONAL. + SortBy *string `mandatory:"false" json:"sortBy"` + + // A string that indicates the order in which the sortBy parameter is applied. Allowed values are "ascending" and "descending". See (Sorting Section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.3)). OPTIONAL. + SortOrder SortOrderEnum `mandatory:"false" json:"sortOrder,omitempty"` + + // An integer that indicates the 1-based index of the first query result. See Pagination Section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.4). OPTIONAL. + StartIndex *int `mandatory:"false" json:"startIndex"` + + // An integer that indicates the desired maximum number of query results per page. 1000 is the largest value that you can use. See the Pagination section of the System for Cross-Domain Identity Management Protocol specification for more information. (Section 3.4.2.4 (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.4)). OPTIONAL. + Count *int `mandatory:"false" json:"count"` +} + +func (m MyGroupSearchRequest) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MyGroupSearchRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + for _, val := range m.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if _, ok := GetMappingSortOrderEnum(string(m.SortOrder)); !ok && m.SortOrder != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for SortOrder: %s. Supported values are: %s.", m.SortOrder, strings.Join(GetSortOrderEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_groups.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_groups.go new file mode 100644 index 00000000000..8f8bb53f1a2 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_groups.go @@ -0,0 +1,52 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MyGroups The SCIM protocol defines a standard set of query parameters that can be used to filter, sort, and paginate to return zero or more resources in a query response. Queries MAY be made against a single resource or a resource type endpoint (e.g., /Users), or the service provider Base URI. +type MyGroups struct { + + // The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. REQUIRED. + Schemas []string `mandatory:"true" json:"schemas"` + + // The total number of results returned by the list or query operation. The value may be larger than the number of resources returned such as when returning a single page of results where multiple pages are available. REQUIRED. + TotalResults *int `mandatory:"true" json:"totalResults"` + + // A multi-valued list of complex objects containing the requested resources. This MAY be a subset of the full set of resources if pagination is requested. REQUIRED if "totalResults" is non-zero. + Resources []MyGroup `mandatory:"true" json:"Resources"` + + // The 1-based index of the first result in the current set of list results. REQUIRED when partial results returned due to pagination. + StartIndex *int `mandatory:"true" json:"startIndex"` + + // The number of resources returned in a list response page. REQUIRED when partial results returned due to pagination. + ItemsPerPage *int `mandatory:"true" json:"itemsPerPage"` +} + +func (m MyGroups) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MyGroups) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_o_auth2_client_credential.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_o_auth2_client_credential.go new file mode 100644 index 00000000000..87b3594bc29 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_o_auth2_client_credential.go @@ -0,0 +1,284 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MyOAuth2ClientCredential User's oauth2 client credential +type MyOAuth2ClientCredential struct { + + // REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: true + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Schemas []string `mandatory:"true" json:"schemas"` + + // Name + // **SCIM++ Properties:** + // - caseExact: false + // - type: string + // - mutability: readWrite + // - required: true + // - returned: default + Name *string `mandatory:"true" json:"name"` + + // Scopes + // **SCIM++ Properties:** + // - caseExact: false + // - idcsCompositeKey: [audience, scope] + // - type: complex + // - mutability: readWrite + // - multiValued: true + // - required: true + // - returned: default + Scopes []MyOAuth2ClientCredentialScopes `mandatory:"true" json:"scopes"` + + // Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: always + // - type: string + // - uniqueness: global + Id *string `mandatory:"false" json:"id"` + + // Unique OCI identifier for the SCIM Resource. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: default + // - type: string + // - uniqueness: global + Ocid *string `mandatory:"false" json:"ocid"` + + Meta *Meta `mandatory:"false" json:"meta"` + + IdcsCreatedBy *IdcsCreatedBy `mandatory:"false" json:"idcsCreatedBy"` + + IdcsLastModifiedBy *IdcsLastModifiedBy `mandatory:"false" json:"idcsLastModifiedBy"` + + // Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsPreventedOperations []IdcsPreventedOperationsEnum `mandatory:"false" json:"idcsPreventedOperations,omitempty"` + + // A list of tags on this resource. + // **SCIM++ Properties:** + // - idcsCompositeKey: [key, value] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + Tags []Tags `mandatory:"false" json:"tags"` + + // A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + DeleteInProgress *bool `mandatory:"false" json:"deleteInProgress"` + + // The release number when the resource was upgraded. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsLastUpgradedInRelease *string `mandatory:"false" json:"idcsLastUpgradedInRelease"` + + // OCI Domain Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + DomainOcid *string `mandatory:"false" json:"domainOcid"` + + // OCI Compartment Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + CompartmentOcid *string `mandatory:"false" json:"compartmentOcid"` + + // OCI Tenant Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + TenancyOcid *string `mandatory:"false" json:"tenancyOcid"` + + // Description + // **Added In:** 2101262133 + // **SCIM++ Properties:** + // - caseExact: false + // - type: string + // - mutability: readWrite + // - required: false + // - returned: default + Description *string `mandatory:"false" json:"description"` + + // User credential status + // **Added In:** 2109090424 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: never + // - type: string + // - uniqueness: none + Status MyOAuth2ClientCredentialStatusEnum `mandatory:"false" json:"status,omitempty"` + + // User credential expires on + // **Added In:** 2109090424 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: default + // - type: dateTime + // - uniqueness: none + ExpiresOn *string `mandatory:"false" json:"expiresOn"` + + // Specifies if secret need to be reset + // **Added In:** 2109090424 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: writeOnly + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + IsResetSecret *bool `mandatory:"false" json:"isResetSecret"` + + User *MyOAuth2ClientCredentialUser `mandatory:"false" json:"user"` +} + +func (m MyOAuth2ClientCredential) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MyOAuth2ClientCredential) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + for _, val := range m.IdcsPreventedOperations { + if _, ok := GetMappingIdcsPreventedOperationsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for IdcsPreventedOperations: %s. Supported values are: %s.", val, strings.Join(GetIdcsPreventedOperationsEnumStringValues(), ","))) + } + } + + if _, ok := GetMappingMyOAuth2ClientCredentialStatusEnum(string(m.Status)); !ok && m.Status != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Status: %s. Supported values are: %s.", m.Status, strings.Join(GetMyOAuth2ClientCredentialStatusEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// MyOAuth2ClientCredentialStatusEnum Enum with underlying type: string +type MyOAuth2ClientCredentialStatusEnum string + +// Set of constants representing the allowable values for MyOAuth2ClientCredentialStatusEnum +const ( + MyOAuth2ClientCredentialStatusActive MyOAuth2ClientCredentialStatusEnum = "ACTIVE" + MyOAuth2ClientCredentialStatusInactive MyOAuth2ClientCredentialStatusEnum = "INACTIVE" +) + +var mappingMyOAuth2ClientCredentialStatusEnum = map[string]MyOAuth2ClientCredentialStatusEnum{ + "ACTIVE": MyOAuth2ClientCredentialStatusActive, + "INACTIVE": MyOAuth2ClientCredentialStatusInactive, +} + +var mappingMyOAuth2ClientCredentialStatusEnumLowerCase = map[string]MyOAuth2ClientCredentialStatusEnum{ + "active": MyOAuth2ClientCredentialStatusActive, + "inactive": MyOAuth2ClientCredentialStatusInactive, +} + +// GetMyOAuth2ClientCredentialStatusEnumValues Enumerates the set of values for MyOAuth2ClientCredentialStatusEnum +func GetMyOAuth2ClientCredentialStatusEnumValues() []MyOAuth2ClientCredentialStatusEnum { + values := make([]MyOAuth2ClientCredentialStatusEnum, 0) + for _, v := range mappingMyOAuth2ClientCredentialStatusEnum { + values = append(values, v) + } + return values +} + +// GetMyOAuth2ClientCredentialStatusEnumStringValues Enumerates the set of values in String for MyOAuth2ClientCredentialStatusEnum +func GetMyOAuth2ClientCredentialStatusEnumStringValues() []string { + return []string{ + "ACTIVE", + "INACTIVE", + } +} + +// GetMappingMyOAuth2ClientCredentialStatusEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingMyOAuth2ClientCredentialStatusEnum(val string) (MyOAuth2ClientCredentialStatusEnum, bool) { + enum, ok := mappingMyOAuth2ClientCredentialStatusEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_o_auth2_client_credential_scopes.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_o_auth2_client_credential_scopes.go new file mode 100644 index 00000000000..70dc39223ae --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_o_auth2_client_credential_scopes.go @@ -0,0 +1,57 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MyOAuth2ClientCredentialScopes Scopes +type MyOAuth2ClientCredentialScopes struct { + + // Audience + // **SCIM++ Properties:** + // - caseExact: false + // - type: string + // - mutability: readWrite + // - required: true + // - returned: default + Audience *string `mandatory:"true" json:"audience"` + + // Scope + // **SCIM++ Properties:** + // - caseExact: false + // - idcsScimCompliant: false + // - type: string + // - mutability: readWrite + // - multiValued: false + // - required: true + // - returned: default + Scope *string `mandatory:"true" json:"scope"` +} + +func (m MyOAuth2ClientCredentialScopes) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MyOAuth2ClientCredentialScopes) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_o_auth2_client_credential_user.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_o_auth2_client_credential_user.go new file mode 100644 index 00000000000..1bd5eed302d --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_o_auth2_client_credential_user.go @@ -0,0 +1,106 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MyOAuth2ClientCredentialUser User linked to oauth2 client credential +// **SCIM++ Properties:** +// - caseExact: false +// - idcsSearchable: true +// - multiValued: false +// - mutability: immutable +// - required: false +// - returned: default +// - type: complex +// - uniqueness: none +type MyOAuth2ClientCredentialUser struct { + + // User's id + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: always + // - type: string + // - uniqueness: none + Value *string `mandatory:"false" json:"value"` + + // User's ocid + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: always + // - type: string + // - uniqueness: none + Ocid *string `mandatory:"false" json:"ocid"` + + // The URI that corresponds to the user linked to this credential + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` + + // User display name + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Display *string `mandatory:"false" json:"display"` + + // User name + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Name *string `mandatory:"false" json:"name"` +} + +func (m MyOAuth2ClientCredentialUser) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MyOAuth2ClientCredentialUser) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_o_auth2_client_credentials.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_o_auth2_client_credentials.go new file mode 100644 index 00000000000..168b851328f --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_o_auth2_client_credentials.go @@ -0,0 +1,52 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MyOAuth2ClientCredentials The SCIM protocol defines a standard set of query parameters that can be used to filter, sort, and paginate to return zero or more resources in a query response. Queries MAY be made against a single resource or a resource type endpoint (e.g., /Users), or the service provider Base URI. +type MyOAuth2ClientCredentials struct { + + // The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. REQUIRED. + Schemas []string `mandatory:"true" json:"schemas"` + + // The total number of results returned by the list or query operation. The value may be larger than the number of resources returned such as when returning a single page of results where multiple pages are available. REQUIRED. + TotalResults *int `mandatory:"true" json:"totalResults"` + + // A multi-valued list of complex objects containing the requested resources. This MAY be a subset of the full set of resources if pagination is requested. REQUIRED if "totalResults" is non-zero. + Resources []MyOAuth2ClientCredential `mandatory:"true" json:"Resources"` + + // The 1-based index of the first result in the current set of list results. REQUIRED when partial results returned due to pagination. + StartIndex *int `mandatory:"true" json:"startIndex"` + + // The number of resources returned in a list response page. REQUIRED when partial results returned due to pagination. + ItemsPerPage *int `mandatory:"true" json:"itemsPerPage"` +} + +func (m MyOAuth2ClientCredentials) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MyOAuth2ClientCredentials) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_smtp_credential.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_smtp_credential.go new file mode 100644 index 00000000000..b023b4cf51b --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_smtp_credential.go @@ -0,0 +1,259 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MySmtpCredential User's smtp credential +type MySmtpCredential struct { + + // REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: true + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Schemas []string `mandatory:"true" json:"schemas"` + + // User name + // **SCIM++ Properties:** + // - caseExact: false + // - type: string + // - mutability: readOnly + // - required: true + // - returned: default + UserName *string `mandatory:"true" json:"userName"` + + // Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: always + // - type: string + // - uniqueness: global + Id *string `mandatory:"false" json:"id"` + + // Unique OCI identifier for the SCIM Resource. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: default + // - type: string + // - uniqueness: global + Ocid *string `mandatory:"false" json:"ocid"` + + Meta *Meta `mandatory:"false" json:"meta"` + + IdcsCreatedBy *IdcsCreatedBy `mandatory:"false" json:"idcsCreatedBy"` + + IdcsLastModifiedBy *IdcsLastModifiedBy `mandatory:"false" json:"idcsLastModifiedBy"` + + // Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsPreventedOperations []IdcsPreventedOperationsEnum `mandatory:"false" json:"idcsPreventedOperations,omitempty"` + + // A list of tags on this resource. + // **SCIM++ Properties:** + // - idcsCompositeKey: [key, value] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + Tags []Tags `mandatory:"false" json:"tags"` + + // A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + DeleteInProgress *bool `mandatory:"false" json:"deleteInProgress"` + + // The release number when the resource was upgraded. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsLastUpgradedInRelease *string `mandatory:"false" json:"idcsLastUpgradedInRelease"` + + // OCI Domain Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + DomainOcid *string `mandatory:"false" json:"domainOcid"` + + // OCI Compartment Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + CompartmentOcid *string `mandatory:"false" json:"compartmentOcid"` + + // OCI Tenant Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + TenancyOcid *string `mandatory:"false" json:"tenancyOcid"` + + // Description + // **SCIM++ Properties:** + // - caseExact: false + // - type: string + // - mutability: readWrite + // - required: false + // - returned: default + Description *string `mandatory:"false" json:"description"` + + // User credential status + // **Added In:** 2109090424 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: never + // - type: string + // - uniqueness: none + Status MySmtpCredentialStatusEnum `mandatory:"false" json:"status,omitempty"` + + // User credential expires on + // **Added In:** 2109090424 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: default + // - type: dateTime + // - uniqueness: none + ExpiresOn *string `mandatory:"false" json:"expiresOn"` + + User *MySmtpCredentialUser `mandatory:"false" json:"user"` +} + +func (m MySmtpCredential) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MySmtpCredential) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + for _, val := range m.IdcsPreventedOperations { + if _, ok := GetMappingIdcsPreventedOperationsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for IdcsPreventedOperations: %s. Supported values are: %s.", val, strings.Join(GetIdcsPreventedOperationsEnumStringValues(), ","))) + } + } + + if _, ok := GetMappingMySmtpCredentialStatusEnum(string(m.Status)); !ok && m.Status != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Status: %s. Supported values are: %s.", m.Status, strings.Join(GetMySmtpCredentialStatusEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// MySmtpCredentialStatusEnum Enum with underlying type: string +type MySmtpCredentialStatusEnum string + +// Set of constants representing the allowable values for MySmtpCredentialStatusEnum +const ( + MySmtpCredentialStatusActive MySmtpCredentialStatusEnum = "ACTIVE" + MySmtpCredentialStatusInactive MySmtpCredentialStatusEnum = "INACTIVE" +) + +var mappingMySmtpCredentialStatusEnum = map[string]MySmtpCredentialStatusEnum{ + "ACTIVE": MySmtpCredentialStatusActive, + "INACTIVE": MySmtpCredentialStatusInactive, +} + +var mappingMySmtpCredentialStatusEnumLowerCase = map[string]MySmtpCredentialStatusEnum{ + "active": MySmtpCredentialStatusActive, + "inactive": MySmtpCredentialStatusInactive, +} + +// GetMySmtpCredentialStatusEnumValues Enumerates the set of values for MySmtpCredentialStatusEnum +func GetMySmtpCredentialStatusEnumValues() []MySmtpCredentialStatusEnum { + values := make([]MySmtpCredentialStatusEnum, 0) + for _, v := range mappingMySmtpCredentialStatusEnum { + values = append(values, v) + } + return values +} + +// GetMySmtpCredentialStatusEnumStringValues Enumerates the set of values in String for MySmtpCredentialStatusEnum +func GetMySmtpCredentialStatusEnumStringValues() []string { + return []string{ + "ACTIVE", + "INACTIVE", + } +} + +// GetMappingMySmtpCredentialStatusEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingMySmtpCredentialStatusEnum(val string) (MySmtpCredentialStatusEnum, bool) { + enum, ok := mappingMySmtpCredentialStatusEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_smtp_credential_user.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_smtp_credential_user.go new file mode 100644 index 00000000000..c7df5a7e35b --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_smtp_credential_user.go @@ -0,0 +1,106 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MySmtpCredentialUser User linked to smtp credential +// **SCIM++ Properties:** +// - caseExact: false +// - idcsSearchable: true +// - multiValued: false +// - mutability: immutable +// - required: false +// - returned: default +// - type: complex +// - uniqueness: none +type MySmtpCredentialUser struct { + + // User's id + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: always + // - type: string + // - uniqueness: none + Value *string `mandatory:"false" json:"value"` + + // User's ocid + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: always + // - type: string + // - uniqueness: none + Ocid *string `mandatory:"false" json:"ocid"` + + // The URI that corresponds to the user linked to this credential + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` + + // User display name + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Display *string `mandatory:"false" json:"display"` + + // User name + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Name *string `mandatory:"false" json:"name"` +} + +func (m MySmtpCredentialUser) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MySmtpCredentialUser) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_smtp_credentials.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_smtp_credentials.go new file mode 100644 index 00000000000..22965bd61b6 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_smtp_credentials.go @@ -0,0 +1,52 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MySmtpCredentials The SCIM protocol defines a standard set of query parameters that can be used to filter, sort, and paginate to return zero or more resources in a query response. Queries MAY be made against a single resource or a resource type endpoint (e.g., /Users), or the service provider Base URI. +type MySmtpCredentials struct { + + // The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. REQUIRED. + Schemas []string `mandatory:"true" json:"schemas"` + + // The total number of results returned by the list or query operation. The value may be larger than the number of resources returned such as when returning a single page of results where multiple pages are available. REQUIRED. + TotalResults *int `mandatory:"true" json:"totalResults"` + + // A multi-valued list of complex objects containing the requested resources. This MAY be a subset of the full set of resources if pagination is requested. REQUIRED if "totalResults" is non-zero. + Resources []MySmtpCredential `mandatory:"true" json:"Resources"` + + // The 1-based index of the first result in the current set of list results. REQUIRED when partial results returned due to pagination. + StartIndex *int `mandatory:"true" json:"startIndex"` + + // The number of resources returned in a list response page. REQUIRED when partial results returned due to pagination. + ItemsPerPage *int `mandatory:"true" json:"itemsPerPage"` +} + +func (m MySmtpCredentials) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MySmtpCredentials) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_support_account.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_support_account.go new file mode 100644 index 00000000000..7ef0c3244d3 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_support_account.go @@ -0,0 +1,248 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MySupportAccount Support Provider Account +type MySupportAccount struct { + + // REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: true + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Schemas []string `mandatory:"true" json:"schemas"` + + // User Support Account Token + // **Added In:** 2102181953 + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - required: true + // - returned: never + // - type: string + // - uniqueness: none + Token *string `mandatory:"true" json:"token"` + + // Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: always + // - type: string + // - uniqueness: global + Id *string `mandatory:"false" json:"id"` + + // Unique OCI identifier for the SCIM Resource. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: default + // - type: string + // - uniqueness: global + Ocid *string `mandatory:"false" json:"ocid"` + + Meta *Meta `mandatory:"false" json:"meta"` + + IdcsCreatedBy *IdcsCreatedBy `mandatory:"false" json:"idcsCreatedBy"` + + IdcsLastModifiedBy *IdcsLastModifiedBy `mandatory:"false" json:"idcsLastModifiedBy"` + + // Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsPreventedOperations []IdcsPreventedOperationsEnum `mandatory:"false" json:"idcsPreventedOperations,omitempty"` + + // A list of tags on this resource. + // **SCIM++ Properties:** + // - idcsCompositeKey: [key, value] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + Tags []Tags `mandatory:"false" json:"tags"` + + // A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + DeleteInProgress *bool `mandatory:"false" json:"deleteInProgress"` + + // The release number when the resource was upgraded. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsLastUpgradedInRelease *string `mandatory:"false" json:"idcsLastUpgradedInRelease"` + + // OCI Domain Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + DomainOcid *string `mandatory:"false" json:"domainOcid"` + + // OCI Compartment Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + CompartmentOcid *string `mandatory:"false" json:"compartmentOcid"` + + // OCI Tenant Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + TenancyOcid *string `mandatory:"false" json:"tenancyOcid"` + + // User Support Account Provider + // **Added In:** 2102181953 + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - idcsSearchable: true + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Provider MySupportAccountProviderEnum `mandatory:"false" json:"provider,omitempty"` + + // User Support User Id + // **Added In:** 2102181953 + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readOnly + // - idcsSearchable: true + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + UserId *string `mandatory:"false" json:"userId"` + + User *MySupportAccountUser `mandatory:"false" json:"user"` +} + +func (m MySupportAccount) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MySupportAccount) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + for _, val := range m.IdcsPreventedOperations { + if _, ok := GetMappingIdcsPreventedOperationsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for IdcsPreventedOperations: %s. Supported values are: %s.", val, strings.Join(GetIdcsPreventedOperationsEnumStringValues(), ","))) + } + } + + if _, ok := GetMappingMySupportAccountProviderEnum(string(m.Provider)); !ok && m.Provider != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Provider: %s. Supported values are: %s.", m.Provider, strings.Join(GetMySupportAccountProviderEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// MySupportAccountProviderEnum Enum with underlying type: string +type MySupportAccountProviderEnum string + +// Set of constants representing the allowable values for MySupportAccountProviderEnum +const ( + MySupportAccountProviderMos MySupportAccountProviderEnum = "MOS" +) + +var mappingMySupportAccountProviderEnum = map[string]MySupportAccountProviderEnum{ + "MOS": MySupportAccountProviderMos, +} + +var mappingMySupportAccountProviderEnumLowerCase = map[string]MySupportAccountProviderEnum{ + "mos": MySupportAccountProviderMos, +} + +// GetMySupportAccountProviderEnumValues Enumerates the set of values for MySupportAccountProviderEnum +func GetMySupportAccountProviderEnumValues() []MySupportAccountProviderEnum { + values := make([]MySupportAccountProviderEnum, 0) + for _, v := range mappingMySupportAccountProviderEnum { + values = append(values, v) + } + return values +} + +// GetMySupportAccountProviderEnumStringValues Enumerates the set of values in String for MySupportAccountProviderEnum +func GetMySupportAccountProviderEnumStringValues() []string { + return []string{ + "MOS", + } +} + +// GetMappingMySupportAccountProviderEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingMySupportAccountProviderEnum(val string) (MySupportAccountProviderEnum, bool) { + enum, ok := mappingMySupportAccountProviderEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_support_account_user.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_support_account_user.go new file mode 100644 index 00000000000..b5d1058edf3 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_support_account_user.go @@ -0,0 +1,106 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MySupportAccountUser User linked to Support Account +// **SCIM++ Properties:** +// - caseExact: false +// - idcsSearchable: true +// - multiValued: false +// - mutability: immutable +// - required: false +// - returned: default +// - type: complex +// - uniqueness: none +type MySupportAccountUser struct { + + // User's id + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: always + // - type: string + // - uniqueness: none + Value *string `mandatory:"false" json:"value"` + + // User's ocid + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: always + // - type: string + // - uniqueness: none + Ocid *string `mandatory:"false" json:"ocid"` + + // The URI that corresponds to the user linked to this Support Account + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` + + // User display name + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Display *string `mandatory:"false" json:"display"` + + // User name + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Name *string `mandatory:"false" json:"name"` +} + +func (m MySupportAccountUser) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MySupportAccountUser) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_support_accounts.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_support_accounts.go new file mode 100644 index 00000000000..26bdc88d76c --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_support_accounts.go @@ -0,0 +1,52 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MySupportAccounts The SCIM protocol defines a standard set of query parameters that can be used to filter, sort, and paginate to return zero or more resources in a query response. Queries MAY be made against a single resource or a resource type endpoint (e.g., /Users), or the service provider Base URI. +type MySupportAccounts struct { + + // The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. REQUIRED. + Schemas []string `mandatory:"true" json:"schemas"` + + // The total number of results returned by the list or query operation. The value may be larger than the number of resources returned such as when returning a single page of results where multiple pages are available. REQUIRED. + TotalResults *int `mandatory:"true" json:"totalResults"` + + // A multi-valued list of complex objects containing the requested resources. This MAY be a subset of the full set of resources if pagination is requested. REQUIRED if "totalResults" is non-zero. + Resources []MySupportAccount `mandatory:"true" json:"Resources"` + + // The 1-based index of the first result in the current set of list results. REQUIRED when partial results returned due to pagination. + StartIndex *int `mandatory:"true" json:"startIndex"` + + // The number of resources returned in a list response page. REQUIRED when partial results returned due to pagination. + ItemsPerPage *int `mandatory:"true" json:"itemsPerPage"` +} + +func (m MySupportAccounts) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MySupportAccounts) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_trusted_user_agent.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_trusted_user_agent.go new file mode 100644 index 00000000000..5a2df6cb1ac --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_trusted_user_agent.go @@ -0,0 +1,315 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MyTrustedUserAgent This schema defines the attributes of Trusted User Agents owned by users. Multi-Factor Authentication uses Trusted User Agents to authenticate users. A User Agent is software application that a user uses to issue requests. +// For example, a User Agent could be a particular browser (possibly one of several executing on a desktop or laptop) or a particular mobile application (again, one of several executing on a particular mobile device). +// A User Agent is trusted once the Multi-Factor Authentication has verified it in some way. +type MyTrustedUserAgent struct { + + // REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: true + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Schemas []string `mandatory:"true" json:"schemas"` + + // The name of the User Agent that the user wants the system to trust and to use in Multi-Factor Authentication. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: immutable + // - required: true + // - returned: always + // - type: string + // - uniqueness: none + Name *string `mandatory:"true" json:"name"` + + // Trust token for the user agent. This is a random string value that will be updated whenever a token that has been issued is verified successfully. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - idcsSensitive: none + // - multiValued: false + // - mutability: readOnly + // - required: true + // - returned: always + // - type: string + // - uniqueness: none + TrustToken *string `mandatory:"true" json:"trustToken"` + + User *MyTrustedUserAgentUser `mandatory:"true" json:"user"` + + // Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: always + // - type: string + // - uniqueness: global + Id *string `mandatory:"false" json:"id"` + + // Unique OCI identifier for the SCIM Resource. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: default + // - type: string + // - uniqueness: global + Ocid *string `mandatory:"false" json:"ocid"` + + Meta *Meta `mandatory:"false" json:"meta"` + + IdcsCreatedBy *IdcsCreatedBy `mandatory:"false" json:"idcsCreatedBy"` + + IdcsLastModifiedBy *IdcsLastModifiedBy `mandatory:"false" json:"idcsLastModifiedBy"` + + // Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsPreventedOperations []IdcsPreventedOperationsEnum `mandatory:"false" json:"idcsPreventedOperations,omitempty"` + + // A list of tags on this resource. + // **SCIM++ Properties:** + // - idcsCompositeKey: [key, value] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + Tags []Tags `mandatory:"false" json:"tags"` + + // A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + DeleteInProgress *bool `mandatory:"false" json:"deleteInProgress"` + + // The release number when the resource was upgraded. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsLastUpgradedInRelease *string `mandatory:"false" json:"idcsLastUpgradedInRelease"` + + // OCI Domain Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + DomainOcid *string `mandatory:"false" json:"domainOcid"` + + // OCI Compartment Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + CompartmentOcid *string `mandatory:"false" json:"compartmentOcid"` + + // OCI Tenant Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + TenancyOcid *string `mandatory:"false" json:"tenancyOcid"` + + // Trust token issued geo-location. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Location *string `mandatory:"false" json:"location"` + + // User agent platform for which the trust token has been issued. + // **SCIM++ Properties:** + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Platform *string `mandatory:"false" json:"platform"` + + // Validation period of the trust token. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: dateTime + // - uniqueness: none + ExpiryTime *string `mandatory:"false" json:"expiryTime"` + + // Indicates when this token was used lastime. + // **Added In:** 2111190457 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: dateTime + // - uniqueness: none + LastUsedOn *string `mandatory:"false" json:"lastUsedOn"` + + // The token type being created. This token is used as trusted and kmsi token. + // **Added In:** 2111190457 + // **SCIM++ Properties:** + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + TokenType MyTrustedUserAgentTokenTypeEnum `mandatory:"false" json:"tokenType,omitempty"` + + // Trusted 2FA Factors + // **Added In:** 19.2.1 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsCompositeKey: [type] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: default + // - type: complex + TrustedFactors []MyTrustedUserAgentTrustedFactors `mandatory:"false" json:"trustedFactors"` +} + +func (m MyTrustedUserAgent) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MyTrustedUserAgent) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + for _, val := range m.IdcsPreventedOperations { + if _, ok := GetMappingIdcsPreventedOperationsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for IdcsPreventedOperations: %s. Supported values are: %s.", val, strings.Join(GetIdcsPreventedOperationsEnumStringValues(), ","))) + } + } + + if _, ok := GetMappingMyTrustedUserAgentTokenTypeEnum(string(m.TokenType)); !ok && m.TokenType != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for TokenType: %s. Supported values are: %s.", m.TokenType, strings.Join(GetMyTrustedUserAgentTokenTypeEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// MyTrustedUserAgentTokenTypeEnum Enum with underlying type: string +type MyTrustedUserAgentTokenTypeEnum string + +// Set of constants representing the allowable values for MyTrustedUserAgentTokenTypeEnum +const ( + MyTrustedUserAgentTokenTypeKmsi MyTrustedUserAgentTokenTypeEnum = "KMSI" + MyTrustedUserAgentTokenTypeTrusted MyTrustedUserAgentTokenTypeEnum = "TRUSTED" +) + +var mappingMyTrustedUserAgentTokenTypeEnum = map[string]MyTrustedUserAgentTokenTypeEnum{ + "KMSI": MyTrustedUserAgentTokenTypeKmsi, + "TRUSTED": MyTrustedUserAgentTokenTypeTrusted, +} + +var mappingMyTrustedUserAgentTokenTypeEnumLowerCase = map[string]MyTrustedUserAgentTokenTypeEnum{ + "kmsi": MyTrustedUserAgentTokenTypeKmsi, + "trusted": MyTrustedUserAgentTokenTypeTrusted, +} + +// GetMyTrustedUserAgentTokenTypeEnumValues Enumerates the set of values for MyTrustedUserAgentTokenTypeEnum +func GetMyTrustedUserAgentTokenTypeEnumValues() []MyTrustedUserAgentTokenTypeEnum { + values := make([]MyTrustedUserAgentTokenTypeEnum, 0) + for _, v := range mappingMyTrustedUserAgentTokenTypeEnum { + values = append(values, v) + } + return values +} + +// GetMyTrustedUserAgentTokenTypeEnumStringValues Enumerates the set of values in String for MyTrustedUserAgentTokenTypeEnum +func GetMyTrustedUserAgentTokenTypeEnumStringValues() []string { + return []string{ + "KMSI", + "TRUSTED", + } +} + +// GetMappingMyTrustedUserAgentTokenTypeEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingMyTrustedUserAgentTokenTypeEnum(val string) (MyTrustedUserAgentTokenTypeEnum, bool) { + enum, ok := mappingMyTrustedUserAgentTokenTypeEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_trusted_user_agent_trusted_factors.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_trusted_user_agent_trusted_factors.go new file mode 100644 index 00000000000..18c452a1cb5 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_trusted_user_agent_trusted_factors.go @@ -0,0 +1,133 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MyTrustedUserAgentTrustedFactors Trusted 2FA Factors +type MyTrustedUserAgentTrustedFactors struct { + + // Trusted Factor + // **Added In:** 19.2.1 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Type *string `mandatory:"true" json:"type"` + + // trust factor creation time + // **Added In:** 19.2.1 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: true + // - returned: default + // - type: dateTime + // - uniqueness: none + CreationTime *string `mandatory:"true" json:"creationTime"` + + // Trusted Factor Type. Local, X509, SAML SOCIAL + // **Added In:** 2111190457 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Category MyTrustedUserAgentTrustedFactorsCategoryEnum `mandatory:"false" json:"category,omitempty"` +} + +func (m MyTrustedUserAgentTrustedFactors) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MyTrustedUserAgentTrustedFactors) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if _, ok := GetMappingMyTrustedUserAgentTrustedFactorsCategoryEnum(string(m.Category)); !ok && m.Category != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Category: %s. Supported values are: %s.", m.Category, strings.Join(GetMyTrustedUserAgentTrustedFactorsCategoryEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// MyTrustedUserAgentTrustedFactorsCategoryEnum Enum with underlying type: string +type MyTrustedUserAgentTrustedFactorsCategoryEnum string + +// Set of constants representing the allowable values for MyTrustedUserAgentTrustedFactorsCategoryEnum +const ( + MyTrustedUserAgentTrustedFactorsCategorySaml MyTrustedUserAgentTrustedFactorsCategoryEnum = "SAML" + MyTrustedUserAgentTrustedFactorsCategoryLocal MyTrustedUserAgentTrustedFactorsCategoryEnum = "LOCAL" + MyTrustedUserAgentTrustedFactorsCategorySocial MyTrustedUserAgentTrustedFactorsCategoryEnum = "SOCIAL" + MyTrustedUserAgentTrustedFactorsCategoryX509 MyTrustedUserAgentTrustedFactorsCategoryEnum = "X509" + MyTrustedUserAgentTrustedFactorsCategoryThirdparty MyTrustedUserAgentTrustedFactorsCategoryEnum = "THIRDPARTY" +) + +var mappingMyTrustedUserAgentTrustedFactorsCategoryEnum = map[string]MyTrustedUserAgentTrustedFactorsCategoryEnum{ + "SAML": MyTrustedUserAgentTrustedFactorsCategorySaml, + "LOCAL": MyTrustedUserAgentTrustedFactorsCategoryLocal, + "SOCIAL": MyTrustedUserAgentTrustedFactorsCategorySocial, + "X509": MyTrustedUserAgentTrustedFactorsCategoryX509, + "THIRDPARTY": MyTrustedUserAgentTrustedFactorsCategoryThirdparty, +} + +var mappingMyTrustedUserAgentTrustedFactorsCategoryEnumLowerCase = map[string]MyTrustedUserAgentTrustedFactorsCategoryEnum{ + "saml": MyTrustedUserAgentTrustedFactorsCategorySaml, + "local": MyTrustedUserAgentTrustedFactorsCategoryLocal, + "social": MyTrustedUserAgentTrustedFactorsCategorySocial, + "x509": MyTrustedUserAgentTrustedFactorsCategoryX509, + "thirdparty": MyTrustedUserAgentTrustedFactorsCategoryThirdparty, +} + +// GetMyTrustedUserAgentTrustedFactorsCategoryEnumValues Enumerates the set of values for MyTrustedUserAgentTrustedFactorsCategoryEnum +func GetMyTrustedUserAgentTrustedFactorsCategoryEnumValues() []MyTrustedUserAgentTrustedFactorsCategoryEnum { + values := make([]MyTrustedUserAgentTrustedFactorsCategoryEnum, 0) + for _, v := range mappingMyTrustedUserAgentTrustedFactorsCategoryEnum { + values = append(values, v) + } + return values +} + +// GetMyTrustedUserAgentTrustedFactorsCategoryEnumStringValues Enumerates the set of values in String for MyTrustedUserAgentTrustedFactorsCategoryEnum +func GetMyTrustedUserAgentTrustedFactorsCategoryEnumStringValues() []string { + return []string{ + "SAML", + "LOCAL", + "SOCIAL", + "X509", + "THIRDPARTY", + } +} + +// GetMappingMyTrustedUserAgentTrustedFactorsCategoryEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingMyTrustedUserAgentTrustedFactorsCategoryEnum(val string) (MyTrustedUserAgentTrustedFactorsCategoryEnum, bool) { + enum, ok := mappingMyTrustedUserAgentTrustedFactorsCategoryEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_trusted_user_agent_user.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_trusted_user_agent_user.go new file mode 100644 index 00000000000..002b9e023e6 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_trusted_user_agent_user.go @@ -0,0 +1,93 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MyTrustedUserAgentUser user for whom the trust-token was issued +// **SCIM++ Properties:** +// - caseExact: false +// - idcsSearchable: true +// - multiValued: false +// - mutability: readWrite +// - required: true +// - returned: default +// - type: complex +// - uniqueness: none +type MyTrustedUserAgentUser struct { + + // The SCIM ID of the user for whom the trust-token was issued. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` + + // Full URI to the user for whom the trust-token was issued. + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readOnly + // - required: true + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"true" json:"$ref"` + + // Friendly name of the User to be used for purposes of display. + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Display *string `mandatory:"false" json:"display"` + + // The OCID of the user + // **Added In:** 2105091740 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: always + // - type: string + // - uniqueness: none + Ocid *string `mandatory:"false" json:"ocid"` +} + +func (m MyTrustedUserAgentUser) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MyTrustedUserAgentUser) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_trusted_user_agents.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_trusted_user_agents.go new file mode 100644 index 00000000000..75de9bbf32a --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_trusted_user_agents.go @@ -0,0 +1,52 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MyTrustedUserAgents The SCIM protocol defines a standard set of query parameters that can be used to filter, sort, and paginate to return zero or more resources in a query response. Queries MAY be made against a single resource or a resource type endpoint (e.g., /Users), or the service provider Base URI. +type MyTrustedUserAgents struct { + + // The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. REQUIRED. + Schemas []string `mandatory:"true" json:"schemas"` + + // The total number of results returned by the list or query operation. The value may be larger than the number of resources returned such as when returning a single page of results where multiple pages are available. REQUIRED. + TotalResults *int `mandatory:"true" json:"totalResults"` + + // A multi-valued list of complex objects containing the requested resources. This MAY be a subset of the full set of resources if pagination is requested. REQUIRED if "totalResults" is non-zero. + Resources []MyTrustedUserAgent `mandatory:"true" json:"Resources"` + + // The 1-based index of the first result in the current set of list results. REQUIRED when partial results returned due to pagination. + StartIndex *int `mandatory:"true" json:"startIndex"` + + // The number of resources returned in a list response page. REQUIRED when partial results returned due to pagination. + ItemsPerPage *int `mandatory:"true" json:"itemsPerPage"` +} + +func (m MyTrustedUserAgents) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MyTrustedUserAgents) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_user_db_credential.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_user_db_credential.go new file mode 100644 index 00000000000..d746681ba05 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_user_db_credential.go @@ -0,0 +1,307 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MyUserDbCredential User's Db Credential +type MyUserDbCredential struct { + + // REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: true + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Schemas []string `mandatory:"true" json:"schemas"` + + // The db password of the user + // **SCIM++ Properties:** + // - type: string + // - mutability: immutable + // - returned: default + // - required: true + DbPassword *string `mandatory:"true" json:"dbPassword"` + + // Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: always + // - type: string + // - uniqueness: global + Id *string `mandatory:"false" json:"id"` + + // Unique OCI identifier for the SCIM Resource. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: default + // - type: string + // - uniqueness: global + Ocid *string `mandatory:"false" json:"ocid"` + + Meta *Meta `mandatory:"false" json:"meta"` + + IdcsCreatedBy *IdcsCreatedBy `mandatory:"false" json:"idcsCreatedBy"` + + IdcsLastModifiedBy *IdcsLastModifiedBy `mandatory:"false" json:"idcsLastModifiedBy"` + + // Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsPreventedOperations []IdcsPreventedOperationsEnum `mandatory:"false" json:"idcsPreventedOperations,omitempty"` + + // A list of tags on this resource. + // **SCIM++ Properties:** + // - idcsCompositeKey: [key, value] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + Tags []Tags `mandatory:"false" json:"tags"` + + // A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + DeleteInProgress *bool `mandatory:"false" json:"deleteInProgress"` + + // The release number when the resource was upgraded. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsLastUpgradedInRelease *string `mandatory:"false" json:"idcsLastUpgradedInRelease"` + + // OCI Domain Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + DomainOcid *string `mandatory:"false" json:"domainOcid"` + + // OCI Compartment Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + CompartmentOcid *string `mandatory:"false" json:"compartmentOcid"` + + // OCI Tenant Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + TenancyOcid *string `mandatory:"false" json:"tenancyOcid"` + + // Name + // **Added In:** 2109090424 + // **SCIM++ Properties:** + // - caseExact: false + // - type: string + // - mutability: readOnly + // - required: false + // - returned: default + Name *string `mandatory:"false" json:"name"` + + // Description + // **Added In:** 2109020413 + // **SCIM++ Properties:** + // - caseExact: false + // - type: string + // - mutability: readWrite + // - required: false + // - returned: default + Description *string `mandatory:"false" json:"description"` + + // The db password of the user with mixed salt + // **SCIM++ Properties:** + // - type: string + // - mutability: readOnly + // - returned: default + // - required: false + MixedDbPassword *string `mandatory:"false" json:"mixedDbPassword"` + + // The salt of the password + // **SCIM++ Properties:** + // - type: string + // - mutability: readOnly + // - returned: default + // - required: false + Salt *string `mandatory:"false" json:"salt"` + + // The mixed salt of the password + // **SCIM++ Properties:** + // - type: string + // - mutability: readOnly + // - returned: default + // - required: false + MixedSalt *string `mandatory:"false" json:"mixedSalt"` + + // A DateTime that specifies the date and time when the current db password was set + // **SCIM++ Properties:** + // - type: dateTime + // - mutability: readOnly + // - returned: default + LastSetDate *string `mandatory:"false" json:"lastSetDate"` + + // Indicates that the db password has expired + // **SCIM++ Properties:** + // - type: boolean + // - mutability: readOnly + // - returned: default + Expired *bool `mandatory:"false" json:"expired"` + + // User credential status + // **Added In:** 2109090424 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: never + // - type: string + // - uniqueness: none + Status MyUserDbCredentialStatusEnum `mandatory:"false" json:"status,omitempty"` + + // User credential expires on + // **Added In:** 2109090424 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: default + // - type: dateTime + // - uniqueness: none + ExpiresOn *string `mandatory:"false" json:"expiresOn"` + + User *MyUserDbCredentialsUser `mandatory:"false" json:"user"` +} + +func (m MyUserDbCredential) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MyUserDbCredential) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + for _, val := range m.IdcsPreventedOperations { + if _, ok := GetMappingIdcsPreventedOperationsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for IdcsPreventedOperations: %s. Supported values are: %s.", val, strings.Join(GetIdcsPreventedOperationsEnumStringValues(), ","))) + } + } + + if _, ok := GetMappingMyUserDbCredentialStatusEnum(string(m.Status)); !ok && m.Status != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Status: %s. Supported values are: %s.", m.Status, strings.Join(GetMyUserDbCredentialStatusEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// MyUserDbCredentialStatusEnum Enum with underlying type: string +type MyUserDbCredentialStatusEnum string + +// Set of constants representing the allowable values for MyUserDbCredentialStatusEnum +const ( + MyUserDbCredentialStatusActive MyUserDbCredentialStatusEnum = "ACTIVE" + MyUserDbCredentialStatusInactive MyUserDbCredentialStatusEnum = "INACTIVE" +) + +var mappingMyUserDbCredentialStatusEnum = map[string]MyUserDbCredentialStatusEnum{ + "ACTIVE": MyUserDbCredentialStatusActive, + "INACTIVE": MyUserDbCredentialStatusInactive, +} + +var mappingMyUserDbCredentialStatusEnumLowerCase = map[string]MyUserDbCredentialStatusEnum{ + "active": MyUserDbCredentialStatusActive, + "inactive": MyUserDbCredentialStatusInactive, +} + +// GetMyUserDbCredentialStatusEnumValues Enumerates the set of values for MyUserDbCredentialStatusEnum +func GetMyUserDbCredentialStatusEnumValues() []MyUserDbCredentialStatusEnum { + values := make([]MyUserDbCredentialStatusEnum, 0) + for _, v := range mappingMyUserDbCredentialStatusEnum { + values = append(values, v) + } + return values +} + +// GetMyUserDbCredentialStatusEnumStringValues Enumerates the set of values in String for MyUserDbCredentialStatusEnum +func GetMyUserDbCredentialStatusEnumStringValues() []string { + return []string{ + "ACTIVE", + "INACTIVE", + } +} + +// GetMappingMyUserDbCredentialStatusEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingMyUserDbCredentialStatusEnum(val string) (MyUserDbCredentialStatusEnum, bool) { + enum, ok := mappingMyUserDbCredentialStatusEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_user_db_credentials.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_user_db_credentials.go new file mode 100644 index 00000000000..271f750984f --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_user_db_credentials.go @@ -0,0 +1,52 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MyUserDbCredentials The SCIM protocol defines a standard set of query parameters that can be used to filter, sort, and paginate to return zero or more resources in a query response. Queries MAY be made against a single resource or a resource type endpoint (e.g., /Users), or the service provider Base URI. +type MyUserDbCredentials struct { + + // The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. REQUIRED. + Schemas []string `mandatory:"true" json:"schemas"` + + // The total number of results returned by the list or query operation. The value may be larger than the number of resources returned such as when returning a single page of results where multiple pages are available. REQUIRED. + TotalResults *int `mandatory:"true" json:"totalResults"` + + // A multi-valued list of complex objects containing the requested resources. This MAY be a subset of the full set of resources if pagination is requested. REQUIRED if "totalResults" is non-zero. + Resources []MyUserDbCredential `mandatory:"true" json:"Resources"` + + // The 1-based index of the first result in the current set of list results. REQUIRED when partial results returned due to pagination. + StartIndex *int `mandatory:"true" json:"startIndex"` + + // The number of resources returned in a list response page. REQUIRED when partial results returned due to pagination. + ItemsPerPage *int `mandatory:"true" json:"itemsPerPage"` +} + +func (m MyUserDbCredentials) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MyUserDbCredentials) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_user_db_credentials_user.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_user_db_credentials_user.go new file mode 100644 index 00000000000..8e9a090b760 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/my_user_db_credentials_user.go @@ -0,0 +1,107 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// MyUserDbCredentialsUser User linked to db credential +// **SCIM++ Properties:** +// - caseExact: false +// - idcsCompositeKey: [value] +// - idcsSearchable: true +// - multiValued: false +// - mutability: immutable +// - required: false +// - returned: default +// - type: complex +// - uniqueness: none +type MyUserDbCredentialsUser struct { + + // User's id + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: true + // - returned: always + // - type: string + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` + + // User's ocid + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: always + // - type: string + // - uniqueness: none + Ocid *string `mandatory:"false" json:"ocid"` + + // The URI that corresponds to the user linked to this credential + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` + + // User display name + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Display *string `mandatory:"false" json:"display"` + + // User name + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Name *string `mandatory:"false" json:"name"` +} + +func (m MyUserDbCredentialsUser) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m MyUserDbCredentialsUser) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/o_auth2_client_credential.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/o_auth2_client_credential.go new file mode 100644 index 00000000000..a6576039410 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/o_auth2_client_credential.go @@ -0,0 +1,286 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// OAuth2ClientCredential User's oauth2 client credential +type OAuth2ClientCredential struct { + + // REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: true + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Schemas []string `mandatory:"true" json:"schemas"` + + // Name + // **SCIM++ Properties:** + // - caseExact: false + // - type: string + // - mutability: readWrite + // - required: true + // - returned: default + Name *string `mandatory:"true" json:"name"` + + // Scopes + // **SCIM++ Properties:** + // - caseExact: false + // - idcsCompositeKey: [audience, scope] + // - type: complex + // - mutability: readWrite + // - multiValued: true + // - required: true + // - returned: default + Scopes []OAuth2ClientCredentialScopes `mandatory:"true" json:"scopes"` + + // Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: always + // - type: string + // - uniqueness: global + Id *string `mandatory:"false" json:"id"` + + // Unique OCI identifier for the SCIM Resource. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: default + // - type: string + // - uniqueness: global + Ocid *string `mandatory:"false" json:"ocid"` + + Meta *Meta `mandatory:"false" json:"meta"` + + IdcsCreatedBy *IdcsCreatedBy `mandatory:"false" json:"idcsCreatedBy"` + + IdcsLastModifiedBy *IdcsLastModifiedBy `mandatory:"false" json:"idcsLastModifiedBy"` + + // Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsPreventedOperations []IdcsPreventedOperationsEnum `mandatory:"false" json:"idcsPreventedOperations,omitempty"` + + // A list of tags on this resource. + // **SCIM++ Properties:** + // - idcsCompositeKey: [key, value] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + Tags []Tags `mandatory:"false" json:"tags"` + + // A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + DeleteInProgress *bool `mandatory:"false" json:"deleteInProgress"` + + // The release number when the resource was upgraded. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsLastUpgradedInRelease *string `mandatory:"false" json:"idcsLastUpgradedInRelease"` + + // OCI Domain Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + DomainOcid *string `mandatory:"false" json:"domainOcid"` + + // OCI Compartment Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + CompartmentOcid *string `mandatory:"false" json:"compartmentOcid"` + + // OCI Tenant Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + TenancyOcid *string `mandatory:"false" json:"tenancyOcid"` + + // Description + // **Added In:** 2101262133 + // **SCIM++ Properties:** + // - caseExact: false + // - type: string + // - mutability: readWrite + // - required: false + // - returned: default + Description *string `mandatory:"false" json:"description"` + + // User credential status + // **Added In:** 2109090424 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: never + // - type: string + // - uniqueness: none + Status OAuth2ClientCredentialStatusEnum `mandatory:"false" json:"status,omitempty"` + + // User credential expires on + // **Added In:** 2109090424 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: default + // - type: dateTime + // - uniqueness: none + ExpiresOn *string `mandatory:"false" json:"expiresOn"` + + // Specifies if secret need to be reset + // **Added In:** 2109090424 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: writeOnly + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + IsResetSecret *bool `mandatory:"false" json:"isResetSecret"` + + User *OAuth2ClientCredentialUser `mandatory:"false" json:"user"` + + UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser *ExtensionSelfChangeUser `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:selfChange:User"` +} + +func (m OAuth2ClientCredential) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m OAuth2ClientCredential) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + for _, val := range m.IdcsPreventedOperations { + if _, ok := GetMappingIdcsPreventedOperationsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for IdcsPreventedOperations: %s. Supported values are: %s.", val, strings.Join(GetIdcsPreventedOperationsEnumStringValues(), ","))) + } + } + + if _, ok := GetMappingOAuth2ClientCredentialStatusEnum(string(m.Status)); !ok && m.Status != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Status: %s. Supported values are: %s.", m.Status, strings.Join(GetOAuth2ClientCredentialStatusEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// OAuth2ClientCredentialStatusEnum Enum with underlying type: string +type OAuth2ClientCredentialStatusEnum string + +// Set of constants representing the allowable values for OAuth2ClientCredentialStatusEnum +const ( + OAuth2ClientCredentialStatusActive OAuth2ClientCredentialStatusEnum = "ACTIVE" + OAuth2ClientCredentialStatusInactive OAuth2ClientCredentialStatusEnum = "INACTIVE" +) + +var mappingOAuth2ClientCredentialStatusEnum = map[string]OAuth2ClientCredentialStatusEnum{ + "ACTIVE": OAuth2ClientCredentialStatusActive, + "INACTIVE": OAuth2ClientCredentialStatusInactive, +} + +var mappingOAuth2ClientCredentialStatusEnumLowerCase = map[string]OAuth2ClientCredentialStatusEnum{ + "active": OAuth2ClientCredentialStatusActive, + "inactive": OAuth2ClientCredentialStatusInactive, +} + +// GetOAuth2ClientCredentialStatusEnumValues Enumerates the set of values for OAuth2ClientCredentialStatusEnum +func GetOAuth2ClientCredentialStatusEnumValues() []OAuth2ClientCredentialStatusEnum { + values := make([]OAuth2ClientCredentialStatusEnum, 0) + for _, v := range mappingOAuth2ClientCredentialStatusEnum { + values = append(values, v) + } + return values +} + +// GetOAuth2ClientCredentialStatusEnumStringValues Enumerates the set of values in String for OAuth2ClientCredentialStatusEnum +func GetOAuth2ClientCredentialStatusEnumStringValues() []string { + return []string{ + "ACTIVE", + "INACTIVE", + } +} + +// GetMappingOAuth2ClientCredentialStatusEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingOAuth2ClientCredentialStatusEnum(val string) (OAuth2ClientCredentialStatusEnum, bool) { + enum, ok := mappingOAuth2ClientCredentialStatusEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/o_auth2_client_credential_scopes.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/o_auth2_client_credential_scopes.go new file mode 100644 index 00000000000..ebcda4baa55 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/o_auth2_client_credential_scopes.go @@ -0,0 +1,57 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// OAuth2ClientCredentialScopes Scopes +type OAuth2ClientCredentialScopes struct { + + // Audience + // **SCIM++ Properties:** + // - caseExact: false + // - type: string + // - mutability: readWrite + // - required: true + // - returned: default + Audience *string `mandatory:"true" json:"audience"` + + // Scope + // **SCIM++ Properties:** + // - caseExact: false + // - idcsScimCompliant: false + // - type: string + // - mutability: readWrite + // - multiValued: false + // - required: true + // - returned: default + Scope *string `mandatory:"true" json:"scope"` +} + +func (m OAuth2ClientCredentialScopes) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m OAuth2ClientCredentialScopes) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/o_auth2_client_credential_search_request.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/o_auth2_client_credential_search_request.go new file mode 100644 index 00000000000..ac87088da6c --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/o_auth2_client_credential_search_request.go @@ -0,0 +1,70 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// OAuth2ClientCredentialSearchRequest Clients MAY execute queries without passing parameters on the URL by using the HTTP POST verb combined with the **.search** path extension. The inclusion of **.search** on the end of a valid SCIM endpoint SHALL be used to indicate the HTTP POST verb is intended to be a query operation. To create a new query result set, a SCIM client sends an HTTP POST request to the desired SCIM resource endpoint (ending in **.search**). The body of the POST request MAY include any of the parameters. +type OAuth2ClientCredentialSearchRequest struct { + + // The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. Query requests MUST be identified using the following URI: "urn:ietf:params:scim:api:messages:2.0:SearchRequest" REQUIRED. + Schemas []string `mandatory:"true" json:"schemas"` + + // A multi-valued list of strings indicating the names of resource attributes to return in the response overriding the set of attributes that would be returned by default. Attribute names MUST be in standard attribute notation (Section 3.10 (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.10)) form. See (additional retrieval query parameters (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.9)). OPTIONAL. + Attributes []string `mandatory:"false" json:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If "attributes" query parameter is also available, union of the two is fetched. Valid values : all, always, never, request, default. Values are case-insensitive. OPTIONAL. + AttributeSets []AttributeSetsEnum `mandatory:"false" json:"attributeSets,omitempty"` + + // The filter string that is used to request a subset of resources. The filter string MUST be a valid filter expression. See Section 3.4.2.2 (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.2). OPTIONAL. + Filter *string `mandatory:"false" json:"filter"` + + // A string that indicates the attribute whose value SHALL be used to order the returned responses. The sortBy attribute MUST be in standard attribute notation (Section 3.10 (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.10)) form. See Sorting section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.3). OPTIONAL. + SortBy *string `mandatory:"false" json:"sortBy"` + + // A string that indicates the order in which the sortBy parameter is applied. Allowed values are "ascending" and "descending". See (Sorting Section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.3)). OPTIONAL. + SortOrder SortOrderEnum `mandatory:"false" json:"sortOrder,omitempty"` + + // An integer that indicates the 1-based index of the first query result. See Pagination Section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.4). OPTIONAL. + StartIndex *int `mandatory:"false" json:"startIndex"` + + // An integer that indicates the desired maximum number of query results per page. 1000 is the largest value that you can use. See the Pagination section of the System for Cross-Domain Identity Management Protocol specification for more information. (Section 3.4.2.4 (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.4)). OPTIONAL. + Count *int `mandatory:"false" json:"count"` +} + +func (m OAuth2ClientCredentialSearchRequest) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m OAuth2ClientCredentialSearchRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + for _, val := range m.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if _, ok := GetMappingSortOrderEnum(string(m.SortOrder)); !ok && m.SortOrder != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for SortOrder: %s. Supported values are: %s.", m.SortOrder, strings.Join(GetSortOrderEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/o_auth2_client_credential_user.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/o_auth2_client_credential_user.go new file mode 100644 index 00000000000..1c0ffb5d25b --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/o_auth2_client_credential_user.go @@ -0,0 +1,106 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// OAuth2ClientCredentialUser User linked to oauth2 client credential +// **SCIM++ Properties:** +// - caseExact: false +// - idcsSearchable: true +// - multiValued: false +// - mutability: immutable +// - required: false +// - returned: default +// - type: complex +// - uniqueness: none +type OAuth2ClientCredentialUser struct { + + // User's id + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: always + // - type: string + // - uniqueness: none + Value *string `mandatory:"false" json:"value"` + + // User's ocid + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: always + // - type: string + // - uniqueness: none + Ocid *string `mandatory:"false" json:"ocid"` + + // The URI that corresponds to the user linked to this credential + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` + + // User display name + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Display *string `mandatory:"false" json:"display"` + + // User name + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Name *string `mandatory:"false" json:"name"` +} + +func (m OAuth2ClientCredentialUser) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m OAuth2ClientCredentialUser) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/o_auth2_client_credentials.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/o_auth2_client_credentials.go new file mode 100644 index 00000000000..4b1e4408cd4 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/o_auth2_client_credentials.go @@ -0,0 +1,52 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// OAuth2ClientCredentials The SCIM protocol defines a standard set of query parameters that can be used to filter, sort, and paginate to return zero or more resources in a query response. Queries MAY be made against a single resource or a resource type endpoint (e.g., /Users), or the service provider Base URI. +type OAuth2ClientCredentials struct { + + // The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. REQUIRED. + Schemas []string `mandatory:"true" json:"schemas"` + + // The total number of results returned by the list or query operation. The value may be larger than the number of resources returned such as when returning a single page of results where multiple pages are available. REQUIRED. + TotalResults *int `mandatory:"true" json:"totalResults"` + + // A multi-valued list of complex objects containing the requested resources. This MAY be a subset of the full set of resources if pagination is requested. REQUIRED if "totalResults" is non-zero. + Resources []OAuth2ClientCredential `mandatory:"true" json:"Resources"` + + // The 1-based index of the first result in the current set of list results. REQUIRED when partial results returned due to pagination. + StartIndex *int `mandatory:"true" json:"startIndex"` + + // The number of resources returned in a list response page. REQUIRED when partial results returned due to pagination. + ItemsPerPage *int `mandatory:"true" json:"itemsPerPage"` +} + +func (m OAuth2ClientCredentials) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m OAuth2ClientCredentials) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/operations.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/operations.go new file mode 100644 index 00000000000..79a561d314a --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/operations.go @@ -0,0 +1,95 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// Operations Each patch operation object MUST have exactly one "op" member, whose value indicates the operation to perform and MAY be one of "add", "remove", or "replace". See Section 3.5.2 (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.5.2) for details. +type Operations struct { + + // Defines the operation to be performed for this Patch. If op=remove, value is not required. + Op OperationsOpEnum `mandatory:"true" json:"op"` + + // String containing an attribute path describing the target of the operation. The "path" attribute is OPTIONAL for "add" and "replace" and is REQUIRED for "remove" operations. See Section 3.5.2 (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.5.2) for details + Path *string `mandatory:"true" json:"path"` + + // The value could be either a simple value attribute e.g. string or number OR complex like map of the attributes to be added or replaced OR multivalues complex attributes.q1 + Value *interface{} `mandatory:"false" json:"value"` +} + +func (m Operations) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m Operations) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingOperationsOpEnum(string(m.Op)); !ok && m.Op != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Op: %s. Supported values are: %s.", m.Op, strings.Join(GetOperationsOpEnumStringValues(), ","))) + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// OperationsOpEnum Enum with underlying type: string +type OperationsOpEnum string + +// Set of constants representing the allowable values for OperationsOpEnum +const ( + OperationsOpAdd OperationsOpEnum = "ADD" + OperationsOpRemove OperationsOpEnum = "REMOVE" + OperationsOpReplace OperationsOpEnum = "REPLACE" +) + +var mappingOperationsOpEnum = map[string]OperationsOpEnum{ + "ADD": OperationsOpAdd, + "REMOVE": OperationsOpRemove, + "REPLACE": OperationsOpReplace, +} + +var mappingOperationsOpEnumLowerCase = map[string]OperationsOpEnum{ + "add": OperationsOpAdd, + "remove": OperationsOpRemove, + "replace": OperationsOpReplace, +} + +// GetOperationsOpEnumValues Enumerates the set of values for OperationsOpEnum +func GetOperationsOpEnumValues() []OperationsOpEnum { + values := make([]OperationsOpEnum, 0) + for _, v := range mappingOperationsOpEnum { + values = append(values, v) + } + return values +} + +// GetOperationsOpEnumStringValues Enumerates the set of values in String for OperationsOpEnum +func GetOperationsOpEnumStringValues() []string { + return []string{ + "ADD", + "REMOVE", + "REPLACE", + } +} + +// GetMappingOperationsOpEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingOperationsOpEnum(val string) (OperationsOpEnum, bool) { + enum, ok := mappingOperationsOpEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/password_policies.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/password_policies.go new file mode 100644 index 00000000000..77b9ba0a305 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/password_policies.go @@ -0,0 +1,52 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// PasswordPolicies The SCIM protocol defines a standard set of query parameters that can be used to filter, sort, and paginate to return zero or more resources in a query response. Queries MAY be made against a single resource or a resource type endpoint (e.g., /Users), or the service provider Base URI. +type PasswordPolicies struct { + + // The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. REQUIRED. + Schemas []string `mandatory:"true" json:"schemas"` + + // The total number of results returned by the list or query operation. The value may be larger than the number of resources returned such as when returning a single page of results where multiple pages are available. REQUIRED. + TotalResults *int `mandatory:"true" json:"totalResults"` + + // A multi-valued list of complex objects containing the requested resources. This MAY be a subset of the full set of resources if pagination is requested. REQUIRED if "totalResults" is non-zero. + Resources []PasswordPolicy `mandatory:"true" json:"Resources"` + + // The 1-based index of the first result in the current set of list results. REQUIRED when partial results returned due to pagination. + StartIndex *int `mandatory:"true" json:"startIndex"` + + // The number of resources returned in a list response page. REQUIRED when partial results returned due to pagination. + ItemsPerPage *int `mandatory:"true" json:"itemsPerPage"` +} + +func (m PasswordPolicies) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m PasswordPolicies) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/password_policy.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/password_policy.go new file mode 100644 index 00000000000..e20e960c91b --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/password_policy.go @@ -0,0 +1,621 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// PasswordPolicy PasswordPolicy resource. +type PasswordPolicy struct { + + // REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: true + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Schemas []string `mandatory:"true" json:"schemas"` + + // A String that is the name of the policy to display to the user. This is the only mandatory attribute for a password policy. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: true + // - returned: always + // - type: string + // - uniqueness: server + Name *string `mandatory:"true" json:"name"` + + // Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: always + // - type: string + // - uniqueness: global + Id *string `mandatory:"false" json:"id"` + + // Unique OCI identifier for the SCIM Resource. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: default + // - type: string + // - uniqueness: global + Ocid *string `mandatory:"false" json:"ocid"` + + Meta *Meta `mandatory:"false" json:"meta"` + + IdcsCreatedBy *IdcsCreatedBy `mandatory:"false" json:"idcsCreatedBy"` + + IdcsLastModifiedBy *IdcsLastModifiedBy `mandatory:"false" json:"idcsLastModifiedBy"` + + // Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsPreventedOperations []IdcsPreventedOperationsEnum `mandatory:"false" json:"idcsPreventedOperations,omitempty"` + + // A list of tags on this resource. + // **SCIM++ Properties:** + // - idcsCompositeKey: [key, value] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + Tags []Tags `mandatory:"false" json:"tags"` + + // A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + DeleteInProgress *bool `mandatory:"false" json:"deleteInProgress"` + + // The release number when the resource was upgraded. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsLastUpgradedInRelease *string `mandatory:"false" json:"idcsLastUpgradedInRelease"` + + // OCI Domain Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + DomainOcid *string `mandatory:"false" json:"domainOcid"` + + // OCI Compartment Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + CompartmentOcid *string `mandatory:"false" json:"compartmentOcid"` + + // OCI Tenant Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + TenancyOcid *string `mandatory:"false" json:"tenancyOcid"` + + // An identifier for the Resource as defined by the Service Consumer. The externalId may simplify identification of the Resource between Service Consumer and Service Provider by allowing the Consumer to refer to the Resource with its own identifier, obviating the need to store a local mapping between the local identifier of the Resource and the identifier used by the Service Provider. Each Resource MAY include a non-empty externalId value. The value of the externalId attribute is always issued by the Service Consumer and can never be specified by the Service Provider. The Service Provider MUST always interpret the externalId as scoped to the Service Consumer's tenant. + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + ExternalId *string `mandatory:"false" json:"externalId"` + + // A String that describes the password policy + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Description *string `mandatory:"false" json:"description"` + + // The maximum password length (in characters). A value of 0 or no value indicates no maximum length restriction. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: integer + // - uniqueness: none + MaxLength *int `mandatory:"false" json:"maxLength"` + + // The minimum password length (in characters). A value of 0 or no value indicates no minimum length restriction. + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: integer + // - uniqueness: none + MinLength *int `mandatory:"false" json:"minLength"` + + // The minimum number of alphabetic characters in a password. A value of 0 or no value indicates no minimum alphas restriction. + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: integer + // - uniqueness: none + MinAlphas *int `mandatory:"false" json:"minAlphas"` + + // The minimum number of numeric characters in a password. A value of 0 or no value indicates no minimum numeric character restriction. + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: integer + // - uniqueness: none + MinNumerals *int `mandatory:"false" json:"minNumerals"` + + // The minimum number of a combination of alphabetic and numeric characters in a password. A value of 0 or no value indicates no minimum alphanumeric character restriction. + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: integer + // - uniqueness: none + MinAlphaNumerals *int `mandatory:"false" json:"minAlphaNumerals"` + + // The minimum number of special characters in a password. A value of 0 or no value indicates no minimum special characters restriction. + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: integer + // - uniqueness: none + MinSpecialChars *int `mandatory:"false" json:"minSpecialChars"` + + // The maximum number of special characters in a password. A value of 0 or no value indicates no maximum special characters restriction. + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: integer + // - uniqueness: none + MaxSpecialChars *int `mandatory:"false" json:"maxSpecialChars"` + + // The minimum number of lowercase alphabetic characters in a password. A value of 0 or no value indicates no minimum lowercase restriction. + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: integer + // - uniqueness: none + MinLowerCase *int `mandatory:"false" json:"minLowerCase"` + + // The minimum number of uppercase alphabetic characters in a password. A value of 0 or no value indicates no minimum uppercase restriction. + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: integer + // - uniqueness: none + MinUpperCase *int `mandatory:"false" json:"minUpperCase"` + + // The minimum number of unique characters in a password. A value of 0 or no value indicates no minimum unique characters restriction. + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: integer + // - uniqueness: none + MinUniqueChars *int `mandatory:"false" json:"minUniqueChars"` + + // The maximum number of repeated characters allowed in a password. A value of 0 or no value indicates no such restriction. + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: integer + // - uniqueness: none + MaxRepeatedChars *int `mandatory:"false" json:"maxRepeatedChars"` + + // Indicates that the password must begin with an alphabetic character + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + StartsWithAlphabet *bool `mandatory:"false" json:"startsWithAlphabet"` + + // Indicates a sequence of characters that match the user's first name of given name cannot be the password. Password validation against policy will be ignored if length of first name is less than or equal to 3 characters. + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + FirstNameDisallowed *bool `mandatory:"false" json:"firstNameDisallowed"` + + // Indicates a sequence of characters that match the user's last name of given name cannot be the password. Password validation against policy will be ignored if length of last name is less than or equal to 3 characters. + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + LastNameDisallowed *bool `mandatory:"false" json:"lastNameDisallowed"` + + // Indicates a sequence of characters that match the username cannot be the password. Password validation against policy will be ignored if length of user name is less than or equal to 3 characters. + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + UserNameDisallowed *bool `mandatory:"false" json:"userNameDisallowed"` + + // Minimum time after which the user can resubmit the reset password request + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: integer + // - uniqueness: none + MinPasswordAge *int `mandatory:"false" json:"minPasswordAge"` + + // The number of days after which the password expires automatically + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: integer + // - uniqueness: none + PasswordExpiresAfter *int `mandatory:"false" json:"passwordExpiresAfter"` + + // An integer indicating the number of days before which the user should be warned about password expiry. + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: integer + // - uniqueness: none + PasswordExpireWarning *int `mandatory:"false" json:"passwordExpireWarning"` + + // A String value whose contents indicate a set of characters that must appear, in any sequence, in a password value + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + RequiredChars *string `mandatory:"false" json:"requiredChars"` + + // A String value whose contents indicate a set of characters that cannot appear, in any sequence, in a password value + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + DisallowedChars *string `mandatory:"false" json:"disallowedChars"` + + // A String value whose contents indicate a set of characters that can appear, in any sequence, in a password value + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + AllowedChars *string `mandatory:"false" json:"allowedChars"` + + // A String value whose contents indicate a set of substrings that cannot appear, in any sequence, in a password value + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + DisallowedSubstrings []string `mandatory:"false" json:"disallowedSubstrings"` + + // Indicates whether the password can match a dictionary word + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + DictionaryWordDisallowed *bool `mandatory:"false" json:"dictionaryWordDisallowed"` + + // A Reference value that contains the URI of a dictionary of words not allowed to appear within a password value + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + DictionaryLocation *string `mandatory:"false" json:"dictionaryLocation"` + + // A delimiter used to separate characters in the dictionary file + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + DictionaryDelimiter *string `mandatory:"false" json:"dictionaryDelimiter"` + + // An integer that represents the maximum number of failed logins before an account is locked + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: integer + // - uniqueness: none + MaxIncorrectAttempts *int `mandatory:"false" json:"maxIncorrectAttempts"` + + // The time period in minutes to lock out a user account when the threshold of invalid login attempts is reached. The available range is from 5 through 1440 minutes (24 hours). + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: integer + // - uniqueness: none + LockoutDuration *int `mandatory:"false" json:"lockoutDuration"` + + // The number of passwords that will be kept in history that may not be used as a password + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: integer + // - uniqueness: none + NumPasswordsInHistory *int `mandatory:"false" json:"numPasswordsInHistory"` + + // Indicates whether the password policy is configured as Simple, Standard, or Custom. + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + PasswordStrength PasswordPolicyPasswordStrengthEnum `mandatory:"false" json:"passwordStrength,omitempty"` + + // Indicates whether all of the users should be forced to reset their password on the next login (to comply with new password policy changes) + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: writeOnly + // - required: false + // - returned: never + // - type: boolean + // - uniqueness: none + ForcePasswordReset *bool `mandatory:"false" json:"forcePasswordReset"` + + // A list of groups that the password policy belongs to. + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsCompositeKey: [value] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: default + // - type: complex + // - uniqueness: none + Groups []PasswordPolicyGroups `mandatory:"false" json:"groups"` + + // Password policy priority + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: integer + // - idcsMinValue: 1 + // - uniqueness: server + Priority *int `mandatory:"false" json:"priority"` + + // List of password policy rules that have values set. This map of stringKey:stringValue pairs can be used to aid users while setting/resetting password + // **SCIM++ Properties:** + // - caseExact: false + // - idcsCompositeKey: [key] + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + ConfiguredPasswordPolicyRules []PasswordPolicyConfiguredPasswordPolicyRules `mandatory:"false" json:"configuredPasswordPolicyRules"` +} + +func (m PasswordPolicy) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m PasswordPolicy) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + for _, val := range m.IdcsPreventedOperations { + if _, ok := GetMappingIdcsPreventedOperationsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for IdcsPreventedOperations: %s. Supported values are: %s.", val, strings.Join(GetIdcsPreventedOperationsEnumStringValues(), ","))) + } + } + + if _, ok := GetMappingPasswordPolicyPasswordStrengthEnum(string(m.PasswordStrength)); !ok && m.PasswordStrength != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for PasswordStrength: %s. Supported values are: %s.", m.PasswordStrength, strings.Join(GetPasswordPolicyPasswordStrengthEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// PasswordPolicyPasswordStrengthEnum Enum with underlying type: string +type PasswordPolicyPasswordStrengthEnum string + +// Set of constants representing the allowable values for PasswordPolicyPasswordStrengthEnum +const ( + PasswordPolicyPasswordStrengthSimple PasswordPolicyPasswordStrengthEnum = "Simple" + PasswordPolicyPasswordStrengthStandard PasswordPolicyPasswordStrengthEnum = "Standard" + PasswordPolicyPasswordStrengthCustom PasswordPolicyPasswordStrengthEnum = "Custom" +) + +var mappingPasswordPolicyPasswordStrengthEnum = map[string]PasswordPolicyPasswordStrengthEnum{ + "Simple": PasswordPolicyPasswordStrengthSimple, + "Standard": PasswordPolicyPasswordStrengthStandard, + "Custom": PasswordPolicyPasswordStrengthCustom, +} + +var mappingPasswordPolicyPasswordStrengthEnumLowerCase = map[string]PasswordPolicyPasswordStrengthEnum{ + "simple": PasswordPolicyPasswordStrengthSimple, + "standard": PasswordPolicyPasswordStrengthStandard, + "custom": PasswordPolicyPasswordStrengthCustom, +} + +// GetPasswordPolicyPasswordStrengthEnumValues Enumerates the set of values for PasswordPolicyPasswordStrengthEnum +func GetPasswordPolicyPasswordStrengthEnumValues() []PasswordPolicyPasswordStrengthEnum { + values := make([]PasswordPolicyPasswordStrengthEnum, 0) + for _, v := range mappingPasswordPolicyPasswordStrengthEnum { + values = append(values, v) + } + return values +} + +// GetPasswordPolicyPasswordStrengthEnumStringValues Enumerates the set of values in String for PasswordPolicyPasswordStrengthEnum +func GetPasswordPolicyPasswordStrengthEnumStringValues() []string { + return []string{ + "Simple", + "Standard", + "Custom", + } +} + +// GetMappingPasswordPolicyPasswordStrengthEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingPasswordPolicyPasswordStrengthEnum(val string) (PasswordPolicyPasswordStrengthEnum, bool) { + enum, ok := mappingPasswordPolicyPasswordStrengthEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/password_policy_configured_password_policy_rules.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/password_policy_configured_password_policy_rules.go new file mode 100644 index 00000000000..c875bdef6ee --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/password_policy_configured_password_policy_rules.go @@ -0,0 +1,59 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// PasswordPolicyConfiguredPasswordPolicyRules List of password policy rules that have values set. This map of stringKey:stringValue pairs can be used to aid users while setting/resetting password +type PasswordPolicyConfiguredPasswordPolicyRules struct { + + // The specific password policy rule + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readOnly + // - required: true + // - returned: always + // - type: string + // - uniqueness: none + Key *string `mandatory:"true" json:"key"` + + // User-friendly text that describes a specific password policy rule + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readOnly + // - required: true + // - returned: always + // - type: string + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` +} + +func (m PasswordPolicyConfiguredPasswordPolicyRules) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m PasswordPolicyConfiguredPasswordPolicyRules) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/password_policy_groups.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/password_policy_groups.go new file mode 100644 index 00000000000..bb2a6aefe2e --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/password_policy_groups.go @@ -0,0 +1,74 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// PasswordPolicyGroups A list of groups that the password policy belongs to. +type PasswordPolicyGroups struct { + + // The identifier of the group. + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: always + // - type: string + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` + + // The URI of the corresponding Group resource to which the password policy belongs + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` + + // Group Display Name + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Display *string `mandatory:"false" json:"display"` +} + +func (m PasswordPolicyGroups) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m PasswordPolicyGroups) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/password_policy_search_request.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/password_policy_search_request.go new file mode 100644 index 00000000000..97b57903376 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/password_policy_search_request.go @@ -0,0 +1,70 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// PasswordPolicySearchRequest Clients MAY execute queries without passing parameters on the URL by using the HTTP POST verb combined with the **.search** path extension. The inclusion of **.search** on the end of a valid SCIM endpoint SHALL be used to indicate the HTTP POST verb is intended to be a query operation. To create a new query result set, a SCIM client sends an HTTP POST request to the desired SCIM resource endpoint (ending in **.search**). The body of the POST request MAY include any of the parameters. +type PasswordPolicySearchRequest struct { + + // The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. Query requests MUST be identified using the following URI: "urn:ietf:params:scim:api:messages:2.0:SearchRequest" REQUIRED. + Schemas []string `mandatory:"true" json:"schemas"` + + // A multi-valued list of strings indicating the names of resource attributes to return in the response overriding the set of attributes that would be returned by default. Attribute names MUST be in standard attribute notation (Section 3.10 (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.10)) form. See (additional retrieval query parameters (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.9)). OPTIONAL. + Attributes []string `mandatory:"false" json:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If "attributes" query parameter is also available, union of the two is fetched. Valid values : all, always, never, request, default. Values are case-insensitive. OPTIONAL. + AttributeSets []AttributeSetsEnum `mandatory:"false" json:"attributeSets,omitempty"` + + // The filter string that is used to request a subset of resources. The filter string MUST be a valid filter expression. See Section 3.4.2.2 (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.2). OPTIONAL. + Filter *string `mandatory:"false" json:"filter"` + + // A string that indicates the attribute whose value SHALL be used to order the returned responses. The sortBy attribute MUST be in standard attribute notation (Section 3.10 (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.10)) form. See Sorting section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.3). OPTIONAL. + SortBy *string `mandatory:"false" json:"sortBy"` + + // A string that indicates the order in which the sortBy parameter is applied. Allowed values are "ascending" and "descending". See (Sorting Section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.3)). OPTIONAL. + SortOrder SortOrderEnum `mandatory:"false" json:"sortOrder,omitempty"` + + // An integer that indicates the 1-based index of the first query result. See Pagination Section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.4). OPTIONAL. + StartIndex *int `mandatory:"false" json:"startIndex"` + + // An integer that indicates the desired maximum number of query results per page. 1000 is the largest value that you can use. See the Pagination section of the System for Cross-Domain Identity Management Protocol specification for more information. (Section 3.4.2.4 (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.4)). OPTIONAL. + Count *int `mandatory:"false" json:"count"` +} + +func (m PasswordPolicySearchRequest) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m PasswordPolicySearchRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + for _, val := range m.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if _, ok := GetMappingSortOrderEnum(string(m.SortOrder)); !ok && m.SortOrder != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for SortOrder: %s. Supported values are: %s.", m.SortOrder, strings.Join(GetSortOrderEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_api_key_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_api_key_request_response.go new file mode 100644 index 00000000000..bc7dadd0d7e --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_api_key_request_response.go @@ -0,0 +1,130 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// PatchApiKeyRequest wrapper for the PatchApiKey operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PatchApiKey.go.html to see an example of how to use PatchApiKeyRequest. +type PatchApiKeyRequest struct { + + // ID of the resource + ApiKeyId *string `mandatory:"true" contributesTo:"path" name:"apiKeyId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // Update the ApiKey with SCIM Patch schema. + // Before you specify an attribute-value in a request to update a resource, please check the **'mutability'** property of that attribute in the resource-type schema below. Clicking on an attribute-row will expand that row to show the **SCIM++ Properties** of that attribute. + // - Your request to create, update or replace a resource may specify in its payload a value for any attribute that is defined as *mutability:readWrite* or *mutability:writeOnly* or *mutability:immutable*: + // - The SCIM APIs to create a resource will ignore silently any value that you specify for an attribute that is defined as *mutability:readOnly*. + // - The SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify a value for an attribute that is defined as *mutability:readOnly*. + // - Similarly, the SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify any value for an attribute that is defined as *mutability:immutable* and that already has a value in the specified resource. + // Also, before you use the query-parameter attributes to request specific attributes, please check the **'returned'** property of that attribute in the resource-type schema below: + // - Your request to read a resource (or to search a resource-type) can specify as the value of attributes any attributes that are defined as *returned:default* or *returned:request* or *returned:always*: + // - If you request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the set of attributes that you requested, as well as any attribute that is defined as *returned:always*. + // - If you do not request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the the set of attributes defined as *returned:default*, as well as any attribute that is defined as *returned:always*. + // - The SCIM APIs to read a resource (or to search a resource-type) will ignore silently any request to return an attribute that is defined as *returned:never*. + PatchOp `contributesTo:"body"` + + // Used to make the request conditional on an ETag + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request PatchApiKeyRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request PatchApiKeyRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request PatchApiKeyRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request PatchApiKeyRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request PatchApiKeyRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// PatchApiKeyResponse wrapper for the PatchApiKey operation +type PatchApiKeyResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The ApiKey instance + ApiKey `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` +} + +func (response PatchApiKeyResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response PatchApiKeyResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_auth_token_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_auth_token_request_response.go new file mode 100644 index 00000000000..15b59256c02 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_auth_token_request_response.go @@ -0,0 +1,130 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// PatchAuthTokenRequest wrapper for the PatchAuthToken operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PatchAuthToken.go.html to see an example of how to use PatchAuthTokenRequest. +type PatchAuthTokenRequest struct { + + // ID of the resource + AuthTokenId *string `mandatory:"true" contributesTo:"path" name:"authTokenId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // Update the AuthToken with SCIM Patch schema. + // Before you specify an attribute-value in a request to update a resource, please check the **'mutability'** property of that attribute in the resource-type schema below. Clicking on an attribute-row will expand that row to show the **SCIM++ Properties** of that attribute. + // - Your request to create, update or replace a resource may specify in its payload a value for any attribute that is defined as *mutability:readWrite* or *mutability:writeOnly* or *mutability:immutable*: + // - The SCIM APIs to create a resource will ignore silently any value that you specify for an attribute that is defined as *mutability:readOnly*. + // - The SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify a value for an attribute that is defined as *mutability:readOnly*. + // - Similarly, the SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify any value for an attribute that is defined as *mutability:immutable* and that already has a value in the specified resource. + // Also, before you use the query-parameter attributes to request specific attributes, please check the **'returned'** property of that attribute in the resource-type schema below: + // - Your request to read a resource (or to search a resource-type) can specify as the value of attributes any attributes that are defined as *returned:default* or *returned:request* or *returned:always*: + // - If you request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the set of attributes that you requested, as well as any attribute that is defined as *returned:always*. + // - If you do not request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the the set of attributes defined as *returned:default*, as well as any attribute that is defined as *returned:always*. + // - The SCIM APIs to read a resource (or to search a resource-type) will ignore silently any request to return an attribute that is defined as *returned:never*. + PatchOp `contributesTo:"body"` + + // Used to make the request conditional on an ETag + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request PatchAuthTokenRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request PatchAuthTokenRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request PatchAuthTokenRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request PatchAuthTokenRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request PatchAuthTokenRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// PatchAuthTokenResponse wrapper for the PatchAuthToken operation +type PatchAuthTokenResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The AuthToken instance + AuthToken `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` +} + +func (response PatchAuthTokenResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response PatchAuthTokenResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_customer_secret_key_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_customer_secret_key_request_response.go new file mode 100644 index 00000000000..558406bd842 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_customer_secret_key_request_response.go @@ -0,0 +1,130 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// PatchCustomerSecretKeyRequest wrapper for the PatchCustomerSecretKey operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PatchCustomerSecretKey.go.html to see an example of how to use PatchCustomerSecretKeyRequest. +type PatchCustomerSecretKeyRequest struct { + + // ID of the resource + CustomerSecretKeyId *string `mandatory:"true" contributesTo:"path" name:"customerSecretKeyId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // Update the CustomerSecretKey with SCIM Patch schema. + // Before you specify an attribute-value in a request to update a resource, please check the **'mutability'** property of that attribute in the resource-type schema below. Clicking on an attribute-row will expand that row to show the **SCIM++ Properties** of that attribute. + // - Your request to create, update or replace a resource may specify in its payload a value for any attribute that is defined as *mutability:readWrite* or *mutability:writeOnly* or *mutability:immutable*: + // - The SCIM APIs to create a resource will ignore silently any value that you specify for an attribute that is defined as *mutability:readOnly*. + // - The SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify a value for an attribute that is defined as *mutability:readOnly*. + // - Similarly, the SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify any value for an attribute that is defined as *mutability:immutable* and that already has a value in the specified resource. + // Also, before you use the query-parameter attributes to request specific attributes, please check the **'returned'** property of that attribute in the resource-type schema below: + // - Your request to read a resource (or to search a resource-type) can specify as the value of attributes any attributes that are defined as *returned:default* or *returned:request* or *returned:always*: + // - If you request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the set of attributes that you requested, as well as any attribute that is defined as *returned:always*. + // - If you do not request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the the set of attributes defined as *returned:default*, as well as any attribute that is defined as *returned:always*. + // - The SCIM APIs to read a resource (or to search a resource-type) will ignore silently any request to return an attribute that is defined as *returned:never*. + PatchOp `contributesTo:"body"` + + // Used to make the request conditional on an ETag + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request PatchCustomerSecretKeyRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request PatchCustomerSecretKeyRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request PatchCustomerSecretKeyRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request PatchCustomerSecretKeyRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request PatchCustomerSecretKeyRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// PatchCustomerSecretKeyResponse wrapper for the PatchCustomerSecretKey operation +type PatchCustomerSecretKeyResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The CustomerSecretKey instance + CustomerSecretKey `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` +} + +func (response PatchCustomerSecretKeyResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response PatchCustomerSecretKeyResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_dynamic_resource_group_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_dynamic_resource_group_request_response.go new file mode 100644 index 00000000000..4b078bfda88 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_dynamic_resource_group_request_response.go @@ -0,0 +1,130 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// PatchDynamicResourceGroupRequest wrapper for the PatchDynamicResourceGroup operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PatchDynamicResourceGroup.go.html to see an example of how to use PatchDynamicResourceGroupRequest. +type PatchDynamicResourceGroupRequest struct { + + // ID of the resource + DynamicResourceGroupId *string `mandatory:"true" contributesTo:"path" name:"dynamicResourceGroupId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // Update the DynamicResourceGroup with SCIM Patch schema. + // Before you specify an attribute-value in a request to update a resource, please check the **'mutability'** property of that attribute in the resource-type schema below. Clicking on an attribute-row will expand that row to show the **SCIM++ Properties** of that attribute. + // - Your request to create, update or replace a resource may specify in its payload a value for any attribute that is defined as *mutability:readWrite* or *mutability:writeOnly* or *mutability:immutable*: + // - The SCIM APIs to create a resource will ignore silently any value that you specify for an attribute that is defined as *mutability:readOnly*. + // - The SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify a value for an attribute that is defined as *mutability:readOnly*. + // - Similarly, the SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify any value for an attribute that is defined as *mutability:immutable* and that already has a value in the specified resource. + // Also, before you use the query-parameter attributes to request specific attributes, please check the **'returned'** property of that attribute in the resource-type schema below: + // - Your request to read a resource (or to search a resource-type) can specify as the value of attributes any attributes that are defined as *returned:default* or *returned:request* or *returned:always*: + // - If you request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the set of attributes that you requested, as well as any attribute that is defined as *returned:always*. + // - If you do not request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the the set of attributes defined as *returned:default*, as well as any attribute that is defined as *returned:always*. + // - The SCIM APIs to read a resource (or to search a resource-type) will ignore silently any request to return an attribute that is defined as *returned:never*. + PatchOp `contributesTo:"body"` + + // Used to make the request conditional on an ETag + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request PatchDynamicResourceGroupRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request PatchDynamicResourceGroupRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request PatchDynamicResourceGroupRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request PatchDynamicResourceGroupRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request PatchDynamicResourceGroupRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// PatchDynamicResourceGroupResponse wrapper for the PatchDynamicResourceGroup operation +type PatchDynamicResourceGroupResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The DynamicResourceGroup instance + DynamicResourceGroup `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` +} + +func (response PatchDynamicResourceGroupResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response PatchDynamicResourceGroupResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_group_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_group_request_response.go new file mode 100644 index 00000000000..b9e105beffb --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_group_request_response.go @@ -0,0 +1,130 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// PatchGroupRequest wrapper for the PatchGroup operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PatchGroup.go.html to see an example of how to use PatchGroupRequest. +type PatchGroupRequest struct { + + // ID of the resource + GroupId *string `mandatory:"true" contributesTo:"path" name:"groupId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // Update the Group with SCIM Patch schema. + // Before you specify an attribute-value in a request to update a resource, please check the **'mutability'** property of that attribute in the resource-type schema below. Clicking on an attribute-row will expand that row to show the **SCIM++ Properties** of that attribute. + // - Your request to create, update or replace a resource may specify in its payload a value for any attribute that is defined as *mutability:readWrite* or *mutability:writeOnly* or *mutability:immutable*: + // - The SCIM APIs to create a resource will ignore silently any value that you specify for an attribute that is defined as *mutability:readOnly*. + // - The SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify a value for an attribute that is defined as *mutability:readOnly*. + // - Similarly, the SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify any value for an attribute that is defined as *mutability:immutable* and that already has a value in the specified resource. + // Also, before you use the query-parameter attributes to request specific attributes, please check the **'returned'** property of that attribute in the resource-type schema below: + // - Your request to read a resource (or to search a resource-type) can specify as the value of attributes any attributes that are defined as *returned:default* or *returned:request* or *returned:always*: + // - If you request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the set of attributes that you requested, as well as any attribute that is defined as *returned:always*. + // - If you do not request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the the set of attributes defined as *returned:default*, as well as any attribute that is defined as *returned:always*. + // - The SCIM APIs to read a resource (or to search a resource-type) will ignore silently any request to return an attribute that is defined as *returned:never*. + PatchOp `contributesTo:"body"` + + // Used to make the request conditional on an ETag + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request PatchGroupRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request PatchGroupRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request PatchGroupRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request PatchGroupRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request PatchGroupRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// PatchGroupResponse wrapper for the PatchGroup operation +type PatchGroupResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The Group instance + Group `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` +} + +func (response PatchGroupResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response PatchGroupResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_identity_provider_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_identity_provider_request_response.go new file mode 100644 index 00000000000..c3916dd7bc6 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_identity_provider_request_response.go @@ -0,0 +1,130 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// PatchIdentityProviderRequest wrapper for the PatchIdentityProvider operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PatchIdentityProvider.go.html to see an example of how to use PatchIdentityProviderRequest. +type PatchIdentityProviderRequest struct { + + // ID of the resource + IdentityProviderId *string `mandatory:"true" contributesTo:"path" name:"identityProviderId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // Update the IdentityProvider with SCIM Patch schema. + // Before you specify an attribute-value in a request to update a resource, please check the **'mutability'** property of that attribute in the resource-type schema below. Clicking on an attribute-row will expand that row to show the **SCIM++ Properties** of that attribute. + // - Your request to create, update or replace a resource may specify in its payload a value for any attribute that is defined as *mutability:readWrite* or *mutability:writeOnly* or *mutability:immutable*: + // - The SCIM APIs to create a resource will ignore silently any value that you specify for an attribute that is defined as *mutability:readOnly*. + // - The SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify a value for an attribute that is defined as *mutability:readOnly*. + // - Similarly, the SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify any value for an attribute that is defined as *mutability:immutable* and that already has a value in the specified resource. + // Also, before you use the query-parameter attributes to request specific attributes, please check the **'returned'** property of that attribute in the resource-type schema below: + // - Your request to read a resource (or to search a resource-type) can specify as the value of attributes any attributes that are defined as *returned:default* or *returned:request* or *returned:always*: + // - If you request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the set of attributes that you requested, as well as any attribute that is defined as *returned:always*. + // - If you do not request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the the set of attributes defined as *returned:default*, as well as any attribute that is defined as *returned:always*. + // - The SCIM APIs to read a resource (or to search a resource-type) will ignore silently any request to return an attribute that is defined as *returned:never*. + PatchOp `contributesTo:"body"` + + // Used to make the request conditional on an ETag + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request PatchIdentityProviderRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request PatchIdentityProviderRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request PatchIdentityProviderRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request PatchIdentityProviderRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request PatchIdentityProviderRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// PatchIdentityProviderResponse wrapper for the PatchIdentityProvider operation +type PatchIdentityProviderResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The IdentityProvider instance + IdentityProvider `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` +} + +func (response PatchIdentityProviderResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response PatchIdentityProviderResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_kmsi_setting_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_kmsi_setting_request_response.go new file mode 100644 index 00000000000..6e4370c69c7 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_kmsi_setting_request_response.go @@ -0,0 +1,130 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// PatchKmsiSettingRequest wrapper for the PatchKmsiSetting operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PatchKmsiSetting.go.html to see an example of how to use PatchKmsiSettingRequest. +type PatchKmsiSettingRequest struct { + + // ID of the resource + KmsiSettingId *string `mandatory:"true" contributesTo:"path" name:"kmsiSettingId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // Update the KmsiSettings with SCIM Patch schema. + // Before you specify an attribute-value in a request to update a resource, please check the **'mutability'** property of that attribute in the resource-type schema below. Clicking on an attribute-row will expand that row to show the **SCIM++ Properties** of that attribute. + // - Your request to create, update or replace a resource may specify in its payload a value for any attribute that is defined as *mutability:readWrite* or *mutability:writeOnly* or *mutability:immutable*: + // - The SCIM APIs to create a resource will ignore silently any value that you specify for an attribute that is defined as *mutability:readOnly*. + // - The SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify a value for an attribute that is defined as *mutability:readOnly*. + // - Similarly, the SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify any value for an attribute that is defined as *mutability:immutable* and that already has a value in the specified resource. + // Also, before you use the query-parameter attributes to request specific attributes, please check the **'returned'** property of that attribute in the resource-type schema below: + // - Your request to read a resource (or to search a resource-type) can specify as the value of attributes any attributes that are defined as *returned:default* or *returned:request* or *returned:always*: + // - If you request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the set of attributes that you requested, as well as any attribute that is defined as *returned:always*. + // - If you do not request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the the set of attributes defined as *returned:default*, as well as any attribute that is defined as *returned:always*. + // - The SCIM APIs to read a resource (or to search a resource-type) will ignore silently any request to return an attribute that is defined as *returned:never*. + PatchOp `contributesTo:"body"` + + // Used to make the request conditional on an ETag + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request PatchKmsiSettingRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request PatchKmsiSettingRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request PatchKmsiSettingRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request PatchKmsiSettingRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request PatchKmsiSettingRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// PatchKmsiSettingResponse wrapper for the PatchKmsiSetting operation +type PatchKmsiSettingResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The KmsiSetting instance + KmsiSetting `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` +} + +func (response PatchKmsiSettingResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response PatchKmsiSettingResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_me_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_me_request_response.go new file mode 100644 index 00000000000..21625d74436 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_me_request_response.go @@ -0,0 +1,127 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// PatchMeRequest wrapper for the PatchMe operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PatchMe.go.html to see an example of how to use PatchMeRequest. +type PatchMeRequest struct { + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // Update the Me with SCIM Patch schema. + // Before you specify an attribute-value in a request to update a resource, please check the **'mutability'** property of that attribute in the resource-type schema below. Clicking on an attribute-row will expand that row to show the **SCIM++ Properties** of that attribute. + // - Your request to create, update or replace a resource may specify in its payload a value for any attribute that is defined as *mutability:readWrite* or *mutability:writeOnly* or *mutability:immutable*: + // - The SCIM APIs to create a resource will ignore silently any value that you specify for an attribute that is defined as *mutability:readOnly*. + // - The SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify a value for an attribute that is defined as *mutability:readOnly*. + // - Similarly, the SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify any value for an attribute that is defined as *mutability:immutable* and that already has a value in the specified resource. + // Also, before you use the query-parameter attributes to request specific attributes, please check the **'returned'** property of that attribute in the resource-type schema below: + // - Your request to read a resource (or to search a resource-type) can specify as the value of attributes any attributes that are defined as *returned:default* or *returned:request* or *returned:always*: + // - If you request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the set of attributes that you requested, as well as any attribute that is defined as *returned:always*. + // - If you do not request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the the set of attributes defined as *returned:default*, as well as any attribute that is defined as *returned:always*. + // - The SCIM APIs to read a resource (or to search a resource-type) will ignore silently any request to return an attribute that is defined as *returned:never*. + PatchOp `contributesTo:"body"` + + // Used to make the request conditional on an ETag + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request PatchMeRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request PatchMeRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request PatchMeRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request PatchMeRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request PatchMeRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// PatchMeResponse wrapper for the PatchMe operation +type PatchMeResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The Me instance + Me `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` +} + +func (response PatchMeResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response PatchMeResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_my_api_key_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_my_api_key_request_response.go new file mode 100644 index 00000000000..383fb7e25ca --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_my_api_key_request_response.go @@ -0,0 +1,118 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// PatchMyApiKeyRequest wrapper for the PatchMyApiKey operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PatchMyApiKey.go.html to see an example of how to use PatchMyApiKeyRequest. +type PatchMyApiKeyRequest struct { + + // ID of the resource + MyApiKeyId *string `mandatory:"true" contributesTo:"path" name:"myApiKeyId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // Update the MyApiKey with SCIM Patch schema. + // Before you specify an attribute-value in a request to update a resource, please check the **'mutability'** property of that attribute in the resource-type schema below. Clicking on an attribute-row will expand that row to show the **SCIM++ Properties** of that attribute. + // - Your request to create, update or replace a resource may specify in its payload a value for any attribute that is defined as *mutability:readWrite* or *mutability:writeOnly* or *mutability:immutable*: + // - The SCIM APIs to create a resource will ignore silently any value that you specify for an attribute that is defined as *mutability:readOnly*. + // - The SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify a value for an attribute that is defined as *mutability:readOnly*. + // - Similarly, the SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify any value for an attribute that is defined as *mutability:immutable* and that already has a value in the specified resource. + // Also, before you use the query-parameter attributes to request specific attributes, please check the **'returned'** property of that attribute in the resource-type schema below: + // - Your request to read a resource (or to search a resource-type) can specify as the value of attributes any attributes that are defined as *returned:default* or *returned:request* or *returned:always*: + // - If you request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the set of attributes that you requested, as well as any attribute that is defined as *returned:always*. + // - If you do not request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the the set of attributes defined as *returned:default*, as well as any attribute that is defined as *returned:always*. + // - The SCIM APIs to read a resource (or to search a resource-type) will ignore silently any request to return an attribute that is defined as *returned:never*. + PatchOp `contributesTo:"body"` + + // Used to make the request conditional on an ETag + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request PatchMyApiKeyRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request PatchMyApiKeyRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request PatchMyApiKeyRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request PatchMyApiKeyRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request PatchMyApiKeyRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// PatchMyApiKeyResponse wrapper for the PatchMyApiKey operation +type PatchMyApiKeyResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The MyApiKey instance + MyApiKey `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` +} + +func (response PatchMyApiKeyResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response PatchMyApiKeyResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_my_auth_token_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_my_auth_token_request_response.go new file mode 100644 index 00000000000..2b4244bfb00 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_my_auth_token_request_response.go @@ -0,0 +1,118 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// PatchMyAuthTokenRequest wrapper for the PatchMyAuthToken operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PatchMyAuthToken.go.html to see an example of how to use PatchMyAuthTokenRequest. +type PatchMyAuthTokenRequest struct { + + // ID of the resource + MyAuthTokenId *string `mandatory:"true" contributesTo:"path" name:"myAuthTokenId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // Update the MyAuthToken with SCIM Patch schema. + // Before you specify an attribute-value in a request to update a resource, please check the **'mutability'** property of that attribute in the resource-type schema below. Clicking on an attribute-row will expand that row to show the **SCIM++ Properties** of that attribute. + // - Your request to create, update or replace a resource may specify in its payload a value for any attribute that is defined as *mutability:readWrite* or *mutability:writeOnly* or *mutability:immutable*: + // - The SCIM APIs to create a resource will ignore silently any value that you specify for an attribute that is defined as *mutability:readOnly*. + // - The SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify a value for an attribute that is defined as *mutability:readOnly*. + // - Similarly, the SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify any value for an attribute that is defined as *mutability:immutable* and that already has a value in the specified resource. + // Also, before you use the query-parameter attributes to request specific attributes, please check the **'returned'** property of that attribute in the resource-type schema below: + // - Your request to read a resource (or to search a resource-type) can specify as the value of attributes any attributes that are defined as *returned:default* or *returned:request* or *returned:always*: + // - If you request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the set of attributes that you requested, as well as any attribute that is defined as *returned:always*. + // - If you do not request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the the set of attributes defined as *returned:default*, as well as any attribute that is defined as *returned:always*. + // - The SCIM APIs to read a resource (or to search a resource-type) will ignore silently any request to return an attribute that is defined as *returned:never*. + PatchOp `contributesTo:"body"` + + // Used to make the request conditional on an ETag + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request PatchMyAuthTokenRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request PatchMyAuthTokenRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request PatchMyAuthTokenRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request PatchMyAuthTokenRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request PatchMyAuthTokenRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// PatchMyAuthTokenResponse wrapper for the PatchMyAuthToken operation +type PatchMyAuthTokenResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The MyAuthToken instance + MyAuthToken `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` +} + +func (response PatchMyAuthTokenResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response PatchMyAuthTokenResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_my_customer_secret_key_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_my_customer_secret_key_request_response.go new file mode 100644 index 00000000000..198dc40f713 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_my_customer_secret_key_request_response.go @@ -0,0 +1,118 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// PatchMyCustomerSecretKeyRequest wrapper for the PatchMyCustomerSecretKey operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PatchMyCustomerSecretKey.go.html to see an example of how to use PatchMyCustomerSecretKeyRequest. +type PatchMyCustomerSecretKeyRequest struct { + + // ID of the resource + MyCustomerSecretKeyId *string `mandatory:"true" contributesTo:"path" name:"myCustomerSecretKeyId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // Update the MyCustomerSecretKey with SCIM Patch schema. + // Before you specify an attribute-value in a request to update a resource, please check the **'mutability'** property of that attribute in the resource-type schema below. Clicking on an attribute-row will expand that row to show the **SCIM++ Properties** of that attribute. + // - Your request to create, update or replace a resource may specify in its payload a value for any attribute that is defined as *mutability:readWrite* or *mutability:writeOnly* or *mutability:immutable*: + // - The SCIM APIs to create a resource will ignore silently any value that you specify for an attribute that is defined as *mutability:readOnly*. + // - The SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify a value for an attribute that is defined as *mutability:readOnly*. + // - Similarly, the SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify any value for an attribute that is defined as *mutability:immutable* and that already has a value in the specified resource. + // Also, before you use the query-parameter attributes to request specific attributes, please check the **'returned'** property of that attribute in the resource-type schema below: + // - Your request to read a resource (or to search a resource-type) can specify as the value of attributes any attributes that are defined as *returned:default* or *returned:request* or *returned:always*: + // - If you request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the set of attributes that you requested, as well as any attribute that is defined as *returned:always*. + // - If you do not request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the the set of attributes defined as *returned:default*, as well as any attribute that is defined as *returned:always*. + // - The SCIM APIs to read a resource (or to search a resource-type) will ignore silently any request to return an attribute that is defined as *returned:never*. + PatchOp `contributesTo:"body"` + + // Used to make the request conditional on an ETag + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request PatchMyCustomerSecretKeyRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request PatchMyCustomerSecretKeyRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request PatchMyCustomerSecretKeyRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request PatchMyCustomerSecretKeyRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request PatchMyCustomerSecretKeyRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// PatchMyCustomerSecretKeyResponse wrapper for the PatchMyCustomerSecretKey operation +type PatchMyCustomerSecretKeyResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The MyCustomerSecretKey instance + MyCustomerSecretKey `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` +} + +func (response PatchMyCustomerSecretKeyResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response PatchMyCustomerSecretKeyResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_my_device_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_my_device_request_response.go new file mode 100644 index 00000000000..c50bd48582c --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_my_device_request_response.go @@ -0,0 +1,130 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// PatchMyDeviceRequest wrapper for the PatchMyDevice operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PatchMyDevice.go.html to see an example of how to use PatchMyDeviceRequest. +type PatchMyDeviceRequest struct { + + // ID of the resource + MyDeviceId *string `mandatory:"true" contributesTo:"path" name:"myDeviceId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // Update the MyDevice with SCIM Patch schema. + // Before you specify an attribute-value in a request to update a resource, please check the **'mutability'** property of that attribute in the resource-type schema below. Clicking on an attribute-row will expand that row to show the **SCIM++ Properties** of that attribute. + // - Your request to create, update or replace a resource may specify in its payload a value for any attribute that is defined as *mutability:readWrite* or *mutability:writeOnly* or *mutability:immutable*: + // - The SCIM APIs to create a resource will ignore silently any value that you specify for an attribute that is defined as *mutability:readOnly*. + // - The SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify a value for an attribute that is defined as *mutability:readOnly*. + // - Similarly, the SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify any value for an attribute that is defined as *mutability:immutable* and that already has a value in the specified resource. + // Also, before you use the query-parameter attributes to request specific attributes, please check the **'returned'** property of that attribute in the resource-type schema below: + // - Your request to read a resource (or to search a resource-type) can specify as the value of attributes any attributes that are defined as *returned:default* or *returned:request* or *returned:always*: + // - If you request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the set of attributes that you requested, as well as any attribute that is defined as *returned:always*. + // - If you do not request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the the set of attributes defined as *returned:default*, as well as any attribute that is defined as *returned:always*. + // - The SCIM APIs to read a resource (or to search a resource-type) will ignore silently any request to return an attribute that is defined as *returned:never*. + PatchOp `contributesTo:"body"` + + // Used to make the request conditional on an ETag + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request PatchMyDeviceRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request PatchMyDeviceRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request PatchMyDeviceRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request PatchMyDeviceRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request PatchMyDeviceRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// PatchMyDeviceResponse wrapper for the PatchMyDevice operation +type PatchMyDeviceResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The MyDevice instance + MyDevice `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` +} + +func (response PatchMyDeviceResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response PatchMyDeviceResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_my_o_auth2_client_credential_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_my_o_auth2_client_credential_request_response.go new file mode 100644 index 00000000000..82600af5da5 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_my_o_auth2_client_credential_request_response.go @@ -0,0 +1,118 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// PatchMyOAuth2ClientCredentialRequest wrapper for the PatchMyOAuth2ClientCredential operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PatchMyOAuth2ClientCredential.go.html to see an example of how to use PatchMyOAuth2ClientCredentialRequest. +type PatchMyOAuth2ClientCredentialRequest struct { + + // ID of the resource + MyOAuth2ClientCredentialId *string `mandatory:"true" contributesTo:"path" name:"myOAuth2ClientCredentialId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // Update the MyOAuth2ClientCredential with SCIM Patch schema. + // Before you specify an attribute-value in a request to update a resource, please check the **'mutability'** property of that attribute in the resource-type schema below. Clicking on an attribute-row will expand that row to show the **SCIM++ Properties** of that attribute. + // - Your request to create, update or replace a resource may specify in its payload a value for any attribute that is defined as *mutability:readWrite* or *mutability:writeOnly* or *mutability:immutable*: + // - The SCIM APIs to create a resource will ignore silently any value that you specify for an attribute that is defined as *mutability:readOnly*. + // - The SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify a value for an attribute that is defined as *mutability:readOnly*. + // - Similarly, the SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify any value for an attribute that is defined as *mutability:immutable* and that already has a value in the specified resource. + // Also, before you use the query-parameter attributes to request specific attributes, please check the **'returned'** property of that attribute in the resource-type schema below: + // - Your request to read a resource (or to search a resource-type) can specify as the value of attributes any attributes that are defined as *returned:default* or *returned:request* or *returned:always*: + // - If you request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the set of attributes that you requested, as well as any attribute that is defined as *returned:always*. + // - If you do not request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the the set of attributes defined as *returned:default*, as well as any attribute that is defined as *returned:always*. + // - The SCIM APIs to read a resource (or to search a resource-type) will ignore silently any request to return an attribute that is defined as *returned:never*. + PatchOp `contributesTo:"body"` + + // Used to make the request conditional on an ETag + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request PatchMyOAuth2ClientCredentialRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request PatchMyOAuth2ClientCredentialRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request PatchMyOAuth2ClientCredentialRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request PatchMyOAuth2ClientCredentialRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request PatchMyOAuth2ClientCredentialRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// PatchMyOAuth2ClientCredentialResponse wrapper for the PatchMyOAuth2ClientCredential operation +type PatchMyOAuth2ClientCredentialResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The MyOAuth2ClientCredential instance + MyOAuth2ClientCredential `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` +} + +func (response PatchMyOAuth2ClientCredentialResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response PatchMyOAuth2ClientCredentialResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_my_smtp_credential_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_my_smtp_credential_request_response.go new file mode 100644 index 00000000000..e198952a30c --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_my_smtp_credential_request_response.go @@ -0,0 +1,118 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// PatchMySmtpCredentialRequest wrapper for the PatchMySmtpCredential operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PatchMySmtpCredential.go.html to see an example of how to use PatchMySmtpCredentialRequest. +type PatchMySmtpCredentialRequest struct { + + // ID of the resource + MySmtpCredentialId *string `mandatory:"true" contributesTo:"path" name:"mySmtpCredentialId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // Update the MySmtpCredential with SCIM Patch schema. + // Before you specify an attribute-value in a request to update a resource, please check the **'mutability'** property of that attribute in the resource-type schema below. Clicking on an attribute-row will expand that row to show the **SCIM++ Properties** of that attribute. + // - Your request to create, update or replace a resource may specify in its payload a value for any attribute that is defined as *mutability:readWrite* or *mutability:writeOnly* or *mutability:immutable*: + // - The SCIM APIs to create a resource will ignore silently any value that you specify for an attribute that is defined as *mutability:readOnly*. + // - The SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify a value for an attribute that is defined as *mutability:readOnly*. + // - Similarly, the SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify any value for an attribute that is defined as *mutability:immutable* and that already has a value in the specified resource. + // Also, before you use the query-parameter attributes to request specific attributes, please check the **'returned'** property of that attribute in the resource-type schema below: + // - Your request to read a resource (or to search a resource-type) can specify as the value of attributes any attributes that are defined as *returned:default* or *returned:request* or *returned:always*: + // - If you request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the set of attributes that you requested, as well as any attribute that is defined as *returned:always*. + // - If you do not request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the the set of attributes defined as *returned:default*, as well as any attribute that is defined as *returned:always*. + // - The SCIM APIs to read a resource (or to search a resource-type) will ignore silently any request to return an attribute that is defined as *returned:never*. + PatchOp `contributesTo:"body"` + + // Used to make the request conditional on an ETag + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request PatchMySmtpCredentialRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request PatchMySmtpCredentialRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request PatchMySmtpCredentialRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request PatchMySmtpCredentialRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request PatchMySmtpCredentialRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// PatchMySmtpCredentialResponse wrapper for the PatchMySmtpCredential operation +type PatchMySmtpCredentialResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The MySmtpCredential instance + MySmtpCredential `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` +} + +func (response PatchMySmtpCredentialResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response PatchMySmtpCredentialResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_o_auth2_client_credential_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_o_auth2_client_credential_request_response.go new file mode 100644 index 00000000000..7325c7d94ad --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_o_auth2_client_credential_request_response.go @@ -0,0 +1,130 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// PatchOAuth2ClientCredentialRequest wrapper for the PatchOAuth2ClientCredential operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PatchOAuth2ClientCredential.go.html to see an example of how to use PatchOAuth2ClientCredentialRequest. +type PatchOAuth2ClientCredentialRequest struct { + + // ID of the resource + OAuth2ClientCredentialId *string `mandatory:"true" contributesTo:"path" name:"oAuth2ClientCredentialId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // Update the OAuth2ClientCredential with SCIM Patch schema. + // Before you specify an attribute-value in a request to update a resource, please check the **'mutability'** property of that attribute in the resource-type schema below. Clicking on an attribute-row will expand that row to show the **SCIM++ Properties** of that attribute. + // - Your request to create, update or replace a resource may specify in its payload a value for any attribute that is defined as *mutability:readWrite* or *mutability:writeOnly* or *mutability:immutable*: + // - The SCIM APIs to create a resource will ignore silently any value that you specify for an attribute that is defined as *mutability:readOnly*. + // - The SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify a value for an attribute that is defined as *mutability:readOnly*. + // - Similarly, the SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify any value for an attribute that is defined as *mutability:immutable* and that already has a value in the specified resource. + // Also, before you use the query-parameter attributes to request specific attributes, please check the **'returned'** property of that attribute in the resource-type schema below: + // - Your request to read a resource (or to search a resource-type) can specify as the value of attributes any attributes that are defined as *returned:default* or *returned:request* or *returned:always*: + // - If you request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the set of attributes that you requested, as well as any attribute that is defined as *returned:always*. + // - If you do not request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the the set of attributes defined as *returned:default*, as well as any attribute that is defined as *returned:always*. + // - The SCIM APIs to read a resource (or to search a resource-type) will ignore silently any request to return an attribute that is defined as *returned:never*. + PatchOp `contributesTo:"body"` + + // Used to make the request conditional on an ETag + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request PatchOAuth2ClientCredentialRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request PatchOAuth2ClientCredentialRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request PatchOAuth2ClientCredentialRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request PatchOAuth2ClientCredentialRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request PatchOAuth2ClientCredentialRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// PatchOAuth2ClientCredentialResponse wrapper for the PatchOAuth2ClientCredential operation +type PatchOAuth2ClientCredentialResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The OAuth2ClientCredential instance + OAuth2ClientCredential `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` +} + +func (response PatchOAuth2ClientCredentialResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response PatchOAuth2ClientCredentialResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_op.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_op.go new file mode 100644 index 00000000000..0e8ad1ef41e --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_op.go @@ -0,0 +1,43 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// PatchOp See Section 3.5.2 (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.5.2). HTTP PATCH is an OPTIONAL server function that enables clients to update one or more attributes of a SCIM resource using a sequence of operations to "add", "remove", or "replace" values. Clients may discover service provider support for PATCH by querying the service provider configuration. The general form of the SCIM patch request is based on JavaScript Object Notation (JSON) Patch [RFC6902]. One difference between SCIM patch and JSON patch is that SCIM servers do not support array indexing and do not support [RFC6902] operation types relating to array element manipulation such as "move". A patch request, regardless of the number of operations, SHALL be treated as atomic. If a single operation encounters an error condition, the original SCIM resource MUST be restored, and a failure status SHALL be returned. +type PatchOp struct { + + // The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. REQUIRED. + Schemas []string `mandatory:"true" json:"schemas"` + + // The body of an HTTP PATCH request MUST contain the attribute "Operations", whose value is an array of one or more patch operations. + Operations []Operations `mandatory:"true" json:"Operations"` +} + +func (m PatchOp) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m PatchOp) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_password_policy_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_password_policy_request_response.go new file mode 100644 index 00000000000..9a138cb5875 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_password_policy_request_response.go @@ -0,0 +1,130 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// PatchPasswordPolicyRequest wrapper for the PatchPasswordPolicy operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PatchPasswordPolicy.go.html to see an example of how to use PatchPasswordPolicyRequest. +type PatchPasswordPolicyRequest struct { + + // ID of the resource + PasswordPolicyId *string `mandatory:"true" contributesTo:"path" name:"passwordPolicyId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // Update the PasswordPolicy with SCIM Patch schema. + // Before you specify an attribute-value in a request to update a resource, please check the **'mutability'** property of that attribute in the resource-type schema below. Clicking on an attribute-row will expand that row to show the **SCIM++ Properties** of that attribute. + // - Your request to create, update or replace a resource may specify in its payload a value for any attribute that is defined as *mutability:readWrite* or *mutability:writeOnly* or *mutability:immutable*: + // - The SCIM APIs to create a resource will ignore silently any value that you specify for an attribute that is defined as *mutability:readOnly*. + // - The SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify a value for an attribute that is defined as *mutability:readOnly*. + // - Similarly, the SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify any value for an attribute that is defined as *mutability:immutable* and that already has a value in the specified resource. + // Also, before you use the query-parameter attributes to request specific attributes, please check the **'returned'** property of that attribute in the resource-type schema below: + // - Your request to read a resource (or to search a resource-type) can specify as the value of attributes any attributes that are defined as *returned:default* or *returned:request* or *returned:always*: + // - If you request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the set of attributes that you requested, as well as any attribute that is defined as *returned:always*. + // - If you do not request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the the set of attributes defined as *returned:default*, as well as any attribute that is defined as *returned:always*. + // - The SCIM APIs to read a resource (or to search a resource-type) will ignore silently any request to return an attribute that is defined as *returned:never*. + PatchOp `contributesTo:"body"` + + // Used to make the request conditional on an ETag + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request PatchPasswordPolicyRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request PatchPasswordPolicyRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request PatchPasswordPolicyRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request PatchPasswordPolicyRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request PatchPasswordPolicyRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// PatchPasswordPolicyResponse wrapper for the PatchPasswordPolicy operation +type PatchPasswordPolicyResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The PasswordPolicy instance + PasswordPolicy `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` +} + +func (response PatchPasswordPolicyResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response PatchPasswordPolicyResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_smtp_credential_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_smtp_credential_request_response.go new file mode 100644 index 00000000000..3a82df1b566 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_smtp_credential_request_response.go @@ -0,0 +1,130 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// PatchSmtpCredentialRequest wrapper for the PatchSmtpCredential operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PatchSmtpCredential.go.html to see an example of how to use PatchSmtpCredentialRequest. +type PatchSmtpCredentialRequest struct { + + // ID of the resource + SmtpCredentialId *string `mandatory:"true" contributesTo:"path" name:"smtpCredentialId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // Update the SmtpCredential with SCIM Patch schema. + // Before you specify an attribute-value in a request to update a resource, please check the **'mutability'** property of that attribute in the resource-type schema below. Clicking on an attribute-row will expand that row to show the **SCIM++ Properties** of that attribute. + // - Your request to create, update or replace a resource may specify in its payload a value for any attribute that is defined as *mutability:readWrite* or *mutability:writeOnly* or *mutability:immutable*: + // - The SCIM APIs to create a resource will ignore silently any value that you specify for an attribute that is defined as *mutability:readOnly*. + // - The SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify a value for an attribute that is defined as *mutability:readOnly*. + // - Similarly, the SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify any value for an attribute that is defined as *mutability:immutable* and that already has a value in the specified resource. + // Also, before you use the query-parameter attributes to request specific attributes, please check the **'returned'** property of that attribute in the resource-type schema below: + // - Your request to read a resource (or to search a resource-type) can specify as the value of attributes any attributes that are defined as *returned:default* or *returned:request* or *returned:always*: + // - If you request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the set of attributes that you requested, as well as any attribute that is defined as *returned:always*. + // - If you do not request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the the set of attributes defined as *returned:default*, as well as any attribute that is defined as *returned:always*. + // - The SCIM APIs to read a resource (or to search a resource-type) will ignore silently any request to return an attribute that is defined as *returned:never*. + PatchOp `contributesTo:"body"` + + // Used to make the request conditional on an ETag + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request PatchSmtpCredentialRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request PatchSmtpCredentialRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request PatchSmtpCredentialRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request PatchSmtpCredentialRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request PatchSmtpCredentialRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// PatchSmtpCredentialResponse wrapper for the PatchSmtpCredential operation +type PatchSmtpCredentialResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The SmtpCredential instance + SmtpCredential `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` +} + +func (response PatchSmtpCredentialResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response PatchSmtpCredentialResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_user_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_user_request_response.go new file mode 100644 index 00000000000..940ed816c20 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/patch_user_request_response.go @@ -0,0 +1,130 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// PatchUserRequest wrapper for the PatchUser operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PatchUser.go.html to see an example of how to use PatchUserRequest. +type PatchUserRequest struct { + + // ID of the resource + UserId *string `mandatory:"true" contributesTo:"path" name:"userId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // Update the User with SCIM Patch schema. + // Before you specify an attribute-value in a request to update a resource, please check the **'mutability'** property of that attribute in the resource-type schema below. Clicking on an attribute-row will expand that row to show the **SCIM++ Properties** of that attribute. + // - Your request to create, update or replace a resource may specify in its payload a value for any attribute that is defined as *mutability:readWrite* or *mutability:writeOnly* or *mutability:immutable*: + // - The SCIM APIs to create a resource will ignore silently any value that you specify for an attribute that is defined as *mutability:readOnly*. + // - The SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify a value for an attribute that is defined as *mutability:readOnly*. + // - Similarly, the SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify any value for an attribute that is defined as *mutability:immutable* and that already has a value in the specified resource. + // Also, before you use the query-parameter attributes to request specific attributes, please check the **'returned'** property of that attribute in the resource-type schema below: + // - Your request to read a resource (or to search a resource-type) can specify as the value of attributes any attributes that are defined as *returned:default* or *returned:request* or *returned:always*: + // - If you request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the set of attributes that you requested, as well as any attribute that is defined as *returned:always*. + // - If you do not request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the the set of attributes defined as *returned:default*, as well as any attribute that is defined as *returned:always*. + // - The SCIM APIs to read a resource (or to search a resource-type) will ignore silently any request to return an attribute that is defined as *returned:never*. + PatchOp `contributesTo:"body"` + + // Used to make the request conditional on an ETag + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request PatchUserRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request PatchUserRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request PatchUserRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request PatchUserRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request PatchUserRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// PatchUserResponse wrapper for the PatchUser operation +type PatchUserResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The User instance + User `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` +} + +func (response PatchUserResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response PatchUserResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/put_authentication_factor_setting_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/put_authentication_factor_setting_request_response.go new file mode 100644 index 00000000000..cb078796d79 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/put_authentication_factor_setting_request_response.go @@ -0,0 +1,130 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// PutAuthenticationFactorSettingRequest wrapper for the PutAuthenticationFactorSetting operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PutAuthenticationFactorSetting.go.html to see an example of how to use PutAuthenticationFactorSettingRequest. +type PutAuthenticationFactorSettingRequest struct { + + // ID of the resource + AuthenticationFactorSettingId *string `mandatory:"true" contributesTo:"path" name:"authenticationFactorSettingId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // Replace the current instance of AuthenticationFactorSettings with provided payload. + // Before you specify an attribute-value in a request to replace a resource, please check the **'mutability'** property of that attribute in the resource-type schema below. Clicking on an attribute-row will expand that row to show the **SCIM++ Properties** of that attribute. + // - Your request to create, update or replace a resource may specify in its payload a value for any attribute that is defined as *mutability:readWrite* or *mutability:writeOnly* or *mutability:immutable*: + // - The SCIM APIs to create a resource will ignore silently any value that you specify for an attribute that is defined as *mutability:readOnly*. + // - The SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify a value for an attribute that is defined as *mutability:readOnly*. + // - Similarly, the SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify any value for an attribute that is defined as *mutability:immutable* and that already has a value in the specified resource. + // Also, before you use the query-parameter attributes to request specific attributes, please check the **'returned'** property of that attribute in the resource-type schema below: + // - Your request to read a resource (or to search a resource-type) can specify as the value of attributes any attributes that are defined as *returned:default* or *returned:request* or *returned:always*: + // - If you request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the set of attributes that you requested, as well as any attribute that is defined as *returned:always*. + // - If you do not request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the the set of attributes defined as *returned:default*, as well as any attribute that is defined as *returned:always*. + // - The SCIM APIs to read a resource (or to search a resource-type) will ignore silently any request to return an attribute that is defined as *returned:never*. + AuthenticationFactorSetting `contributesTo:"body"` + + // Used to make the request conditional on an ETag + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request PutAuthenticationFactorSettingRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request PutAuthenticationFactorSettingRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request PutAuthenticationFactorSettingRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request PutAuthenticationFactorSettingRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request PutAuthenticationFactorSettingRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// PutAuthenticationFactorSettingResponse wrapper for the PutAuthenticationFactorSetting operation +type PutAuthenticationFactorSettingResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The AuthenticationFactorSetting instance + AuthenticationFactorSetting `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` +} + +func (response PutAuthenticationFactorSettingResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response PutAuthenticationFactorSettingResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/put_dynamic_resource_group_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/put_dynamic_resource_group_request_response.go new file mode 100644 index 00000000000..137f931a2c3 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/put_dynamic_resource_group_request_response.go @@ -0,0 +1,130 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// PutDynamicResourceGroupRequest wrapper for the PutDynamicResourceGroup operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PutDynamicResourceGroup.go.html to see an example of how to use PutDynamicResourceGroupRequest. +type PutDynamicResourceGroupRequest struct { + + // ID of the resource + DynamicResourceGroupId *string `mandatory:"true" contributesTo:"path" name:"dynamicResourceGroupId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // Replace the current instance of DynamicResourceGroup with provided payload. + // Before you specify an attribute-value in a request to replace a resource, please check the **'mutability'** property of that attribute in the resource-type schema below. Clicking on an attribute-row will expand that row to show the **SCIM++ Properties** of that attribute. + // - Your request to create, update or replace a resource may specify in its payload a value for any attribute that is defined as *mutability:readWrite* or *mutability:writeOnly* or *mutability:immutable*: + // - The SCIM APIs to create a resource will ignore silently any value that you specify for an attribute that is defined as *mutability:readOnly*. + // - The SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify a value for an attribute that is defined as *mutability:readOnly*. + // - Similarly, the SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify any value for an attribute that is defined as *mutability:immutable* and that already has a value in the specified resource. + // Also, before you use the query-parameter attributes to request specific attributes, please check the **'returned'** property of that attribute in the resource-type schema below: + // - Your request to read a resource (or to search a resource-type) can specify as the value of attributes any attributes that are defined as *returned:default* or *returned:request* or *returned:always*: + // - If you request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the set of attributes that you requested, as well as any attribute that is defined as *returned:always*. + // - If you do not request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the the set of attributes defined as *returned:default*, as well as any attribute that is defined as *returned:always*. + // - The SCIM APIs to read a resource (or to search a resource-type) will ignore silently any request to return an attribute that is defined as *returned:never*. + DynamicResourceGroup `contributesTo:"body"` + + // Used to make the request conditional on an ETag + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request PutDynamicResourceGroupRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request PutDynamicResourceGroupRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request PutDynamicResourceGroupRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request PutDynamicResourceGroupRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request PutDynamicResourceGroupRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// PutDynamicResourceGroupResponse wrapper for the PutDynamicResourceGroup operation +type PutDynamicResourceGroupResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The DynamicResourceGroup instance + DynamicResourceGroup `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` +} + +func (response PutDynamicResourceGroupResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response PutDynamicResourceGroupResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/put_group_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/put_group_request_response.go new file mode 100644 index 00000000000..143744ccb27 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/put_group_request_response.go @@ -0,0 +1,130 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// PutGroupRequest wrapper for the PutGroup operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PutGroup.go.html to see an example of how to use PutGroupRequest. +type PutGroupRequest struct { + + // ID of the resource + GroupId *string `mandatory:"true" contributesTo:"path" name:"groupId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // Replace the current instance of Group with provided payload. + // Before you specify an attribute-value in a request to replace a resource, please check the **'mutability'** property of that attribute in the resource-type schema below. Clicking on an attribute-row will expand that row to show the **SCIM++ Properties** of that attribute. + // - Your request to create, update or replace a resource may specify in its payload a value for any attribute that is defined as *mutability:readWrite* or *mutability:writeOnly* or *mutability:immutable*: + // - The SCIM APIs to create a resource will ignore silently any value that you specify for an attribute that is defined as *mutability:readOnly*. + // - The SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify a value for an attribute that is defined as *mutability:readOnly*. + // - Similarly, the SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify any value for an attribute that is defined as *mutability:immutable* and that already has a value in the specified resource. + // Also, before you use the query-parameter attributes to request specific attributes, please check the **'returned'** property of that attribute in the resource-type schema below: + // - Your request to read a resource (or to search a resource-type) can specify as the value of attributes any attributes that are defined as *returned:default* or *returned:request* or *returned:always*: + // - If you request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the set of attributes that you requested, as well as any attribute that is defined as *returned:always*. + // - If you do not request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the the set of attributes defined as *returned:default*, as well as any attribute that is defined as *returned:always*. + // - The SCIM APIs to read a resource (or to search a resource-type) will ignore silently any request to return an attribute that is defined as *returned:never*. + Group `contributesTo:"body"` + + // Used to make the request conditional on an ETag + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request PutGroupRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request PutGroupRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request PutGroupRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request PutGroupRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request PutGroupRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// PutGroupResponse wrapper for the PutGroup operation +type PutGroupResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The Group instance + Group `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` +} + +func (response PutGroupResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response PutGroupResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/put_identity_provider_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/put_identity_provider_request_response.go new file mode 100644 index 00000000000..e869dfa3e3c --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/put_identity_provider_request_response.go @@ -0,0 +1,130 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// PutIdentityProviderRequest wrapper for the PutIdentityProvider operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PutIdentityProvider.go.html to see an example of how to use PutIdentityProviderRequest. +type PutIdentityProviderRequest struct { + + // ID of the resource + IdentityProviderId *string `mandatory:"true" contributesTo:"path" name:"identityProviderId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // Replace the current instance of IdentityProvider with provided payload. + // Before you specify an attribute-value in a request to replace a resource, please check the **'mutability'** property of that attribute in the resource-type schema below. Clicking on an attribute-row will expand that row to show the **SCIM++ Properties** of that attribute. + // - Your request to create, update or replace a resource may specify in its payload a value for any attribute that is defined as *mutability:readWrite* or *mutability:writeOnly* or *mutability:immutable*: + // - The SCIM APIs to create a resource will ignore silently any value that you specify for an attribute that is defined as *mutability:readOnly*. + // - The SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify a value for an attribute that is defined as *mutability:readOnly*. + // - Similarly, the SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify any value for an attribute that is defined as *mutability:immutable* and that already has a value in the specified resource. + // Also, before you use the query-parameter attributes to request specific attributes, please check the **'returned'** property of that attribute in the resource-type schema below: + // - Your request to read a resource (or to search a resource-type) can specify as the value of attributes any attributes that are defined as *returned:default* or *returned:request* or *returned:always*: + // - If you request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the set of attributes that you requested, as well as any attribute that is defined as *returned:always*. + // - If you do not request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the the set of attributes defined as *returned:default*, as well as any attribute that is defined as *returned:always*. + // - The SCIM APIs to read a resource (or to search a resource-type) will ignore silently any request to return an attribute that is defined as *returned:never*. + IdentityProvider `contributesTo:"body"` + + // Used to make the request conditional on an ETag + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request PutIdentityProviderRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request PutIdentityProviderRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request PutIdentityProviderRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request PutIdentityProviderRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request PutIdentityProviderRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// PutIdentityProviderResponse wrapper for the PutIdentityProvider operation +type PutIdentityProviderResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The IdentityProvider instance + IdentityProvider `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` +} + +func (response PutIdentityProviderResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response PutIdentityProviderResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/put_kmsi_setting_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/put_kmsi_setting_request_response.go new file mode 100644 index 00000000000..cd0d10382d5 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/put_kmsi_setting_request_response.go @@ -0,0 +1,130 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// PutKmsiSettingRequest wrapper for the PutKmsiSetting operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PutKmsiSetting.go.html to see an example of how to use PutKmsiSettingRequest. +type PutKmsiSettingRequest struct { + + // ID of the resource + KmsiSettingId *string `mandatory:"true" contributesTo:"path" name:"kmsiSettingId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // Replace the current instance of KmsiSettings with provided payload. + // Before you specify an attribute-value in a request to replace a resource, please check the **'mutability'** property of that attribute in the resource-type schema below. Clicking on an attribute-row will expand that row to show the **SCIM++ Properties** of that attribute. + // - Your request to create, update or replace a resource may specify in its payload a value for any attribute that is defined as *mutability:readWrite* or *mutability:writeOnly* or *mutability:immutable*: + // - The SCIM APIs to create a resource will ignore silently any value that you specify for an attribute that is defined as *mutability:readOnly*. + // - The SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify a value for an attribute that is defined as *mutability:readOnly*. + // - Similarly, the SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify any value for an attribute that is defined as *mutability:immutable* and that already has a value in the specified resource. + // Also, before you use the query-parameter attributes to request specific attributes, please check the **'returned'** property of that attribute in the resource-type schema below: + // - Your request to read a resource (or to search a resource-type) can specify as the value of attributes any attributes that are defined as *returned:default* or *returned:request* or *returned:always*: + // - If you request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the set of attributes that you requested, as well as any attribute that is defined as *returned:always*. + // - If you do not request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the the set of attributes defined as *returned:default*, as well as any attribute that is defined as *returned:always*. + // - The SCIM APIs to read a resource (or to search a resource-type) will ignore silently any request to return an attribute that is defined as *returned:never*. + KmsiSetting `contributesTo:"body"` + + // Used to make the request conditional on an ETag + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request PutKmsiSettingRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request PutKmsiSettingRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request PutKmsiSettingRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request PutKmsiSettingRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request PutKmsiSettingRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// PutKmsiSettingResponse wrapper for the PutKmsiSetting operation +type PutKmsiSettingResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The KmsiSetting instance + KmsiSetting `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` +} + +func (response PutKmsiSettingResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response PutKmsiSettingResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/put_me_password_changer_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/put_me_password_changer_request_response.go new file mode 100644 index 00000000000..9b522618e55 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/put_me_password_changer_request_response.go @@ -0,0 +1,115 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// PutMePasswordChangerRequest wrapper for the PutMePasswordChanger operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PutMePasswordChanger.go.html to see an example of how to use PutMePasswordChangerRequest. +type PutMePasswordChangerRequest struct { + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // Replace the current instance of MePasswordChanger with provided payload. + // Before you specify an attribute-value in a request to replace a resource, please check the **'mutability'** property of that attribute in the resource-type schema below. Clicking on an attribute-row will expand that row to show the **SCIM++ Properties** of that attribute. + // - Your request to create, update or replace a resource may specify in its payload a value for any attribute that is defined as *mutability:readWrite* or *mutability:writeOnly* or *mutability:immutable*: + // - The SCIM APIs to create a resource will ignore silently any value that you specify for an attribute that is defined as *mutability:readOnly*. + // - The SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify a value for an attribute that is defined as *mutability:readOnly*. + // - Similarly, the SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify any value for an attribute that is defined as *mutability:immutable* and that already has a value in the specified resource. + // Also, before you use the query-parameter attributes to request specific attributes, please check the **'returned'** property of that attribute in the resource-type schema below: + // - Your request to read a resource (or to search a resource-type) can specify as the value of attributes any attributes that are defined as *returned:default* or *returned:request* or *returned:always*: + // - If you request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the set of attributes that you requested, as well as any attribute that is defined as *returned:always*. + // - If you do not request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the the set of attributes defined as *returned:default*, as well as any attribute that is defined as *returned:always*. + // - The SCIM APIs to read a resource (or to search a resource-type) will ignore silently any request to return an attribute that is defined as *returned:never*. + MePasswordChanger `contributesTo:"body"` + + // Used to make the request conditional on an ETag + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request PutMePasswordChangerRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request PutMePasswordChangerRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request PutMePasswordChangerRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request PutMePasswordChangerRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request PutMePasswordChangerRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// PutMePasswordChangerResponse wrapper for the PutMePasswordChanger operation +type PutMePasswordChangerResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The MePasswordChanger instance + MePasswordChanger `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` +} + +func (response PutMePasswordChangerResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response PutMePasswordChangerResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/put_me_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/put_me_request_response.go new file mode 100644 index 00000000000..166448cb458 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/put_me_request_response.go @@ -0,0 +1,127 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// PutMeRequest wrapper for the PutMe operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PutMe.go.html to see an example of how to use PutMeRequest. +type PutMeRequest struct { + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // Replace the current instance of Me with provided payload. + // Before you specify an attribute-value in a request to replace a resource, please check the **'mutability'** property of that attribute in the resource-type schema below. Clicking on an attribute-row will expand that row to show the **SCIM++ Properties** of that attribute. + // - Your request to create, update or replace a resource may specify in its payload a value for any attribute that is defined as *mutability:readWrite* or *mutability:writeOnly* or *mutability:immutable*: + // - The SCIM APIs to create a resource will ignore silently any value that you specify for an attribute that is defined as *mutability:readOnly*. + // - The SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify a value for an attribute that is defined as *mutability:readOnly*. + // - Similarly, the SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify any value for an attribute that is defined as *mutability:immutable* and that already has a value in the specified resource. + // Also, before you use the query-parameter attributes to request specific attributes, please check the **'returned'** property of that attribute in the resource-type schema below: + // - Your request to read a resource (or to search a resource-type) can specify as the value of attributes any attributes that are defined as *returned:default* or *returned:request* or *returned:always*: + // - If you request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the set of attributes that you requested, as well as any attribute that is defined as *returned:always*. + // - If you do not request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the the set of attributes defined as *returned:default*, as well as any attribute that is defined as *returned:always*. + // - The SCIM APIs to read a resource (or to search a resource-type) will ignore silently any request to return an attribute that is defined as *returned:never*. + Me `contributesTo:"body"` + + // Used to make the request conditional on an ETag + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request PutMeRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request PutMeRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request PutMeRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request PutMeRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request PutMeRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// PutMeResponse wrapper for the PutMe operation +type PutMeResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The Me instance + Me `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` +} + +func (response PutMeResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response PutMeResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/put_password_policy_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/put_password_policy_request_response.go new file mode 100644 index 00000000000..610a6c8f919 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/put_password_policy_request_response.go @@ -0,0 +1,130 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// PutPasswordPolicyRequest wrapper for the PutPasswordPolicy operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PutPasswordPolicy.go.html to see an example of how to use PutPasswordPolicyRequest. +type PutPasswordPolicyRequest struct { + + // ID of the resource + PasswordPolicyId *string `mandatory:"true" contributesTo:"path" name:"passwordPolicyId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // Replace the current instance of PasswordPolicy with provided payload. + // Before you specify an attribute-value in a request to replace a resource, please check the **'mutability'** property of that attribute in the resource-type schema below. Clicking on an attribute-row will expand that row to show the **SCIM++ Properties** of that attribute. + // - Your request to create, update or replace a resource may specify in its payload a value for any attribute that is defined as *mutability:readWrite* or *mutability:writeOnly* or *mutability:immutable*: + // - The SCIM APIs to create a resource will ignore silently any value that you specify for an attribute that is defined as *mutability:readOnly*. + // - The SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify a value for an attribute that is defined as *mutability:readOnly*. + // - Similarly, the SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify any value for an attribute that is defined as *mutability:immutable* and that already has a value in the specified resource. + // Also, before you use the query-parameter attributes to request specific attributes, please check the **'returned'** property of that attribute in the resource-type schema below: + // - Your request to read a resource (or to search a resource-type) can specify as the value of attributes any attributes that are defined as *returned:default* or *returned:request* or *returned:always*: + // - If you request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the set of attributes that you requested, as well as any attribute that is defined as *returned:always*. + // - If you do not request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the the set of attributes defined as *returned:default*, as well as any attribute that is defined as *returned:always*. + // - The SCIM APIs to read a resource (or to search a resource-type) will ignore silently any request to return an attribute that is defined as *returned:never*. + PasswordPolicy `contributesTo:"body"` + + // Used to make the request conditional on an ETag + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request PutPasswordPolicyRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request PutPasswordPolicyRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request PutPasswordPolicyRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request PutPasswordPolicyRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request PutPasswordPolicyRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// PutPasswordPolicyResponse wrapper for the PutPasswordPolicy operation +type PutPasswordPolicyResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The PasswordPolicy instance + PasswordPolicy `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` +} + +func (response PutPasswordPolicyResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response PutPasswordPolicyResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/put_user_capabilities_changer_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/put_user_capabilities_changer_request_response.go new file mode 100644 index 00000000000..e6036b2f249 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/put_user_capabilities_changer_request_response.go @@ -0,0 +1,118 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// PutUserCapabilitiesChangerRequest wrapper for the PutUserCapabilitiesChanger operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PutUserCapabilitiesChanger.go.html to see an example of how to use PutUserCapabilitiesChangerRequest. +type PutUserCapabilitiesChangerRequest struct { + + // ID of the resource + UserCapabilitiesChangerId *string `mandatory:"true" contributesTo:"path" name:"userCapabilitiesChangerId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // Replace the current instance of UserCapabilitiesChanger with provided payload. + // Before you specify an attribute-value in a request to replace a resource, please check the **'mutability'** property of that attribute in the resource-type schema below. Clicking on an attribute-row will expand that row to show the **SCIM++ Properties** of that attribute. + // - Your request to create, update or replace a resource may specify in its payload a value for any attribute that is defined as *mutability:readWrite* or *mutability:writeOnly* or *mutability:immutable*: + // - The SCIM APIs to create a resource will ignore silently any value that you specify for an attribute that is defined as *mutability:readOnly*. + // - The SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify a value for an attribute that is defined as *mutability:readOnly*. + // - Similarly, the SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify any value for an attribute that is defined as *mutability:immutable* and that already has a value in the specified resource. + // Also, before you use the query-parameter attributes to request specific attributes, please check the **'returned'** property of that attribute in the resource-type schema below: + // - Your request to read a resource (or to search a resource-type) can specify as the value of attributes any attributes that are defined as *returned:default* or *returned:request* or *returned:always*: + // - If you request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the set of attributes that you requested, as well as any attribute that is defined as *returned:always*. + // - If you do not request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the the set of attributes defined as *returned:default*, as well as any attribute that is defined as *returned:always*. + // - The SCIM APIs to read a resource (or to search a resource-type) will ignore silently any request to return an attribute that is defined as *returned:never*. + UserCapabilitiesChanger `contributesTo:"body"` + + // Used to make the request conditional on an ETag + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request PutUserCapabilitiesChangerRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request PutUserCapabilitiesChangerRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request PutUserCapabilitiesChangerRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request PutUserCapabilitiesChangerRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request PutUserCapabilitiesChangerRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// PutUserCapabilitiesChangerResponse wrapper for the PutUserCapabilitiesChanger operation +type PutUserCapabilitiesChangerResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The UserCapabilitiesChanger instance + UserCapabilitiesChanger `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` +} + +func (response PutUserCapabilitiesChangerResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response PutUserCapabilitiesChangerResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/put_user_password_changer_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/put_user_password_changer_request_response.go new file mode 100644 index 00000000000..1f8535d09ef --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/put_user_password_changer_request_response.go @@ -0,0 +1,118 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// PutUserPasswordChangerRequest wrapper for the PutUserPasswordChanger operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PutUserPasswordChanger.go.html to see an example of how to use PutUserPasswordChangerRequest. +type PutUserPasswordChangerRequest struct { + + // ID of the resource + UserPasswordChangerId *string `mandatory:"true" contributesTo:"path" name:"userPasswordChangerId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // Replace the current instance of UserPasswordChanger with provided payload. + // Before you specify an attribute-value in a request to replace a resource, please check the **'mutability'** property of that attribute in the resource-type schema below. Clicking on an attribute-row will expand that row to show the **SCIM++ Properties** of that attribute. + // - Your request to create, update or replace a resource may specify in its payload a value for any attribute that is defined as *mutability:readWrite* or *mutability:writeOnly* or *mutability:immutable*: + // - The SCIM APIs to create a resource will ignore silently any value that you specify for an attribute that is defined as *mutability:readOnly*. + // - The SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify a value for an attribute that is defined as *mutability:readOnly*. + // - Similarly, the SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify any value for an attribute that is defined as *mutability:immutable* and that already has a value in the specified resource. + // Also, before you use the query-parameter attributes to request specific attributes, please check the **'returned'** property of that attribute in the resource-type schema below: + // - Your request to read a resource (or to search a resource-type) can specify as the value of attributes any attributes that are defined as *returned:default* or *returned:request* or *returned:always*: + // - If you request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the set of attributes that you requested, as well as any attribute that is defined as *returned:always*. + // - If you do not request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the the set of attributes defined as *returned:default*, as well as any attribute that is defined as *returned:always*. + // - The SCIM APIs to read a resource (or to search a resource-type) will ignore silently any request to return an attribute that is defined as *returned:never*. + UserPasswordChanger `contributesTo:"body"` + + // Used to make the request conditional on an ETag + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request PutUserPasswordChangerRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request PutUserPasswordChangerRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request PutUserPasswordChangerRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request PutUserPasswordChangerRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request PutUserPasswordChangerRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// PutUserPasswordChangerResponse wrapper for the PutUserPasswordChanger operation +type PutUserPasswordChangerResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The UserPasswordChanger instance + UserPasswordChanger `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` +} + +func (response PutUserPasswordChangerResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response PutUserPasswordChangerResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/put_user_password_resetter_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/put_user_password_resetter_request_response.go new file mode 100644 index 00000000000..c017ebf6568 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/put_user_password_resetter_request_response.go @@ -0,0 +1,118 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// PutUserPasswordResetterRequest wrapper for the PutUserPasswordResetter operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PutUserPasswordResetter.go.html to see an example of how to use PutUserPasswordResetterRequest. +type PutUserPasswordResetterRequest struct { + + // ID of the resource + UserPasswordResetterId *string `mandatory:"true" contributesTo:"path" name:"userPasswordResetterId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // Replace the current instance of UserPasswordResetter with provided payload. + // Before you specify an attribute-value in a request to replace a resource, please check the **'mutability'** property of that attribute in the resource-type schema below. Clicking on an attribute-row will expand that row to show the **SCIM++ Properties** of that attribute. + // - Your request to create, update or replace a resource may specify in its payload a value for any attribute that is defined as *mutability:readWrite* or *mutability:writeOnly* or *mutability:immutable*: + // - The SCIM APIs to create a resource will ignore silently any value that you specify for an attribute that is defined as *mutability:readOnly*. + // - The SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify a value for an attribute that is defined as *mutability:readOnly*. + // - Similarly, the SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify any value for an attribute that is defined as *mutability:immutable* and that already has a value in the specified resource. + // Also, before you use the query-parameter attributes to request specific attributes, please check the **'returned'** property of that attribute in the resource-type schema below: + // - Your request to read a resource (or to search a resource-type) can specify as the value of attributes any attributes that are defined as *returned:default* or *returned:request* or *returned:always*: + // - If you request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the set of attributes that you requested, as well as any attribute that is defined as *returned:always*. + // - If you do not request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the the set of attributes defined as *returned:default*, as well as any attribute that is defined as *returned:always*. + // - The SCIM APIs to read a resource (or to search a resource-type) will ignore silently any request to return an attribute that is defined as *returned:never*. + UserPasswordResetter `contributesTo:"body"` + + // Used to make the request conditional on an ETag + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request PutUserPasswordResetterRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request PutUserPasswordResetterRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request PutUserPasswordResetterRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request PutUserPasswordResetterRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request PutUserPasswordResetterRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// PutUserPasswordResetterResponse wrapper for the PutUserPasswordResetter operation +type PutUserPasswordResetterResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The UserPasswordResetter instance + UserPasswordResetter `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` +} + +func (response PutUserPasswordResetterResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response PutUserPasswordResetterResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/put_user_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/put_user_request_response.go new file mode 100644 index 00000000000..b27029a76ae --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/put_user_request_response.go @@ -0,0 +1,130 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// PutUserRequest wrapper for the PutUser operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PutUser.go.html to see an example of how to use PutUserRequest. +type PutUserRequest struct { + + // ID of the resource + UserId *string `mandatory:"true" contributesTo:"path" name:"userId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // Replace the current instance of User with provided payload. + // Before you specify an attribute-value in a request to replace a resource, please check the **'mutability'** property of that attribute in the resource-type schema below. Clicking on an attribute-row will expand that row to show the **SCIM++ Properties** of that attribute. + // - Your request to create, update or replace a resource may specify in its payload a value for any attribute that is defined as *mutability:readWrite* or *mutability:writeOnly* or *mutability:immutable*: + // - The SCIM APIs to create a resource will ignore silently any value that you specify for an attribute that is defined as *mutability:readOnly*. + // - The SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify a value for an attribute that is defined as *mutability:readOnly*. + // - Similarly, the SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify any value for an attribute that is defined as *mutability:immutable* and that already has a value in the specified resource. + // Also, before you use the query-parameter attributes to request specific attributes, please check the **'returned'** property of that attribute in the resource-type schema below: + // - Your request to read a resource (or to search a resource-type) can specify as the value of attributes any attributes that are defined as *returned:default* or *returned:request* or *returned:always*: + // - If you request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the set of attributes that you requested, as well as any attribute that is defined as *returned:always*. + // - If you do not request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the the set of attributes defined as *returned:default*, as well as any attribute that is defined as *returned:always*. + // - The SCIM APIs to read a resource (or to search a resource-type) will ignore silently any request to return an attribute that is defined as *returned:never*. + User `contributesTo:"body"` + + // Used to make the request conditional on an ETag + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request PutUserRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request PutUserRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request PutUserRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request PutUserRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request PutUserRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// PutUserResponse wrapper for the PutUser operation +type PutUserResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The User instance + User `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` +} + +func (response PutUserResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response PutUserResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/put_user_status_changer_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/put_user_status_changer_request_response.go new file mode 100644 index 00000000000..babe631e631 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/put_user_status_changer_request_response.go @@ -0,0 +1,130 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// PutUserStatusChangerRequest wrapper for the PutUserStatusChanger operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/PutUserStatusChanger.go.html to see an example of how to use PutUserStatusChangerRequest. +type PutUserStatusChangerRequest struct { + + // ID of the resource + UserStatusChangerId *string `mandatory:"true" contributesTo:"path" name:"userStatusChangerId"` + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // A comma-delimited string that specifies the names of resource attributes that should be returned in the response. By default, a response that contains resource attributes contains only attributes that are defined in the schema for that resource type as returned=always or returned=default. An attribute that is defined as returned=request is returned in a response only if the request specifies its name in the value of this query parameter. If a request specifies this query parameter, the response contains the attributes that this query parameter specifies, as well as any attribute that is defined as returned=always. + Attributes *string `mandatory:"false" contributesTo:"query" name:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If 'attributes' query parameter is also available, union of the two is fetched. Valid values - all, always, never, request, default. Values are case-insensitive. + AttributeSets []AttributeSetsEnum `contributesTo:"query" name:"attributeSets" omitEmpty:"true" collectionFormat:"multi"` + + // Replace the current instance of UserStatusChanger with provided payload. + // Before you specify an attribute-value in a request to replace a resource, please check the **'mutability'** property of that attribute in the resource-type schema below. Clicking on an attribute-row will expand that row to show the **SCIM++ Properties** of that attribute. + // - Your request to create, update or replace a resource may specify in its payload a value for any attribute that is defined as *mutability:readWrite* or *mutability:writeOnly* or *mutability:immutable*: + // - The SCIM APIs to create a resource will ignore silently any value that you specify for an attribute that is defined as *mutability:readOnly*. + // - The SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify a value for an attribute that is defined as *mutability:readOnly*. + // - Similarly, the SCIM APIs to update or replace a resource will fail with an error 400 Bad Request if you specify any value for an attribute that is defined as *mutability:immutable* and that already has a value in the specified resource. + // Also, before you use the query-parameter attributes to request specific attributes, please check the **'returned'** property of that attribute in the resource-type schema below: + // - Your request to read a resource (or to search a resource-type) can specify as the value of attributes any attributes that are defined as *returned:default* or *returned:request* or *returned:always*: + // - If you request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the set of attributes that you requested, as well as any attribute that is defined as *returned:always*. + // - If you do not request a specific set of attributes, the SCIM APIs to read a resource (or to search a resource-type) will return in each resource the the set of attributes defined as *returned:default*, as well as any attribute that is defined as *returned:always*. + // - The SCIM APIs to read a resource (or to search a resource-type) will ignore silently any request to return an attribute that is defined as *returned:never*. + UserStatusChanger `contributesTo:"body"` + + // Used to make the request conditional on an ETag + IfMatch *string `mandatory:"false" contributesTo:"header" name:"if-match"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request PutUserStatusChangerRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request PutUserStatusChangerRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request PutUserStatusChangerRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request PutUserStatusChangerRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request PutUserStatusChangerRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + for _, val := range request.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// PutUserStatusChangerResponse wrapper for the PutUserStatusChanger operation +type PutUserStatusChangerResponse struct { + + // The underlying http response + RawResponse *http.Response + + // The UserStatusChanger instance + UserStatusChanger `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For optimistic concurrency control. See `if-match`. + Etag *string `presentIn:"header" name:"etag"` +} + +func (response PutUserStatusChangerResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response PutUserStatusChangerResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_api_keys_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_api_keys_request_response.go new file mode 100644 index 00000000000..83d4529c7e5 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_api_keys_request_response.go @@ -0,0 +1,108 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// SearchApiKeysRequest wrapper for the SearchApiKeys operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/SearchApiKeys.go.html to see an example of how to use SearchApiKeysRequest. +type SearchApiKeysRequest struct { + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // Parameters for searching ApiKeys + ApiKeySearchRequest `contributesTo:"body"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // The value of the `opc-next-page` response header from the previous 'List' call. + Page *string `mandatory:"false" contributesTo:"query" name:"page"` + + // The maximum number of items to return in a paginated 'List' call. + Limit *int `mandatory:"false" contributesTo:"query" name:"limit"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request SearchApiKeysRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request SearchApiKeysRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request SearchApiKeysRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request SearchApiKeysRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request SearchApiKeysRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// SearchApiKeysResponse wrapper for the SearchApiKeys operation +type SearchApiKeysResponse struct { + + // The underlying http response + RawResponse *http.Response + + // A list of ApiKeys instances + ApiKeys `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For pagination of a list of items. When paging through a list, if this header appears in the response, then a partial list might have been returned. Include this value as the `page` parameter for the subsequent GET request to get the next batch of items. + OpcNextPage *string `presentIn:"header" name:"opc-next-page"` +} + +func (response SearchApiKeysResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response SearchApiKeysResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_auth_tokens_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_auth_tokens_request_response.go new file mode 100644 index 00000000000..e25d9882b3c --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_auth_tokens_request_response.go @@ -0,0 +1,108 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// SearchAuthTokensRequest wrapper for the SearchAuthTokens operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/SearchAuthTokens.go.html to see an example of how to use SearchAuthTokensRequest. +type SearchAuthTokensRequest struct { + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // Parameters for searching AuthTokens + AuthTokenSearchRequest `contributesTo:"body"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // The value of the `opc-next-page` response header from the previous 'List' call. + Page *string `mandatory:"false" contributesTo:"query" name:"page"` + + // The maximum number of items to return in a paginated 'List' call. + Limit *int `mandatory:"false" contributesTo:"query" name:"limit"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request SearchAuthTokensRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request SearchAuthTokensRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request SearchAuthTokensRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request SearchAuthTokensRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request SearchAuthTokensRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// SearchAuthTokensResponse wrapper for the SearchAuthTokens operation +type SearchAuthTokensResponse struct { + + // The underlying http response + RawResponse *http.Response + + // A list of AuthTokens instances + AuthTokens `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For pagination of a list of items. When paging through a list, if this header appears in the response, then a partial list might have been returned. Include this value as the `page` parameter for the subsequent GET request to get the next batch of items. + OpcNextPage *string `presentIn:"header" name:"opc-next-page"` +} + +func (response SearchAuthTokensResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response SearchAuthTokensResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_authentication_factor_settings_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_authentication_factor_settings_request_response.go new file mode 100644 index 00000000000..4327a6f0018 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_authentication_factor_settings_request_response.go @@ -0,0 +1,108 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// SearchAuthenticationFactorSettingsRequest wrapper for the SearchAuthenticationFactorSettings operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/SearchAuthenticationFactorSettings.go.html to see an example of how to use SearchAuthenticationFactorSettingsRequest. +type SearchAuthenticationFactorSettingsRequest struct { + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // Parameters for searching AuthenticationFactorSettings + AuthenticationFactorSettingsSearchRequest `contributesTo:"body"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // The value of the `opc-next-page` response header from the previous 'List' call. + Page *string `mandatory:"false" contributesTo:"query" name:"page"` + + // The maximum number of items to return in a paginated 'List' call. + Limit *int `mandatory:"false" contributesTo:"query" name:"limit"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request SearchAuthenticationFactorSettingsRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request SearchAuthenticationFactorSettingsRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request SearchAuthenticationFactorSettingsRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request SearchAuthenticationFactorSettingsRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request SearchAuthenticationFactorSettingsRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// SearchAuthenticationFactorSettingsResponse wrapper for the SearchAuthenticationFactorSettings operation +type SearchAuthenticationFactorSettingsResponse struct { + + // The underlying http response + RawResponse *http.Response + + // A list of AuthenticationFactorSettings instances + AuthenticationFactorSettings `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For pagination of a list of items. When paging through a list, if this header appears in the response, then a partial list might have been returned. Include this value as the `page` parameter for the subsequent GET request to get the next batch of items. + OpcNextPage *string `presentIn:"header" name:"opc-next-page"` +} + +func (response SearchAuthenticationFactorSettingsResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response SearchAuthenticationFactorSettingsResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_customer_secret_keys_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_customer_secret_keys_request_response.go new file mode 100644 index 00000000000..16e409e4f3c --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_customer_secret_keys_request_response.go @@ -0,0 +1,108 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// SearchCustomerSecretKeysRequest wrapper for the SearchCustomerSecretKeys operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/SearchCustomerSecretKeys.go.html to see an example of how to use SearchCustomerSecretKeysRequest. +type SearchCustomerSecretKeysRequest struct { + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // Parameters for searching CustomerSecretKeys + CustomerSecretKeySearchRequest `contributesTo:"body"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // The value of the `opc-next-page` response header from the previous 'List' call. + Page *string `mandatory:"false" contributesTo:"query" name:"page"` + + // The maximum number of items to return in a paginated 'List' call. + Limit *int `mandatory:"false" contributesTo:"query" name:"limit"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request SearchCustomerSecretKeysRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request SearchCustomerSecretKeysRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request SearchCustomerSecretKeysRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request SearchCustomerSecretKeysRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request SearchCustomerSecretKeysRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// SearchCustomerSecretKeysResponse wrapper for the SearchCustomerSecretKeys operation +type SearchCustomerSecretKeysResponse struct { + + // The underlying http response + RawResponse *http.Response + + // A list of CustomerSecretKeys instances + CustomerSecretKeys `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For pagination of a list of items. When paging through a list, if this header appears in the response, then a partial list might have been returned. Include this value as the `page` parameter for the subsequent GET request to get the next batch of items. + OpcNextPage *string `presentIn:"header" name:"opc-next-page"` +} + +func (response SearchCustomerSecretKeysResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response SearchCustomerSecretKeysResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_dynamic_resource_groups_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_dynamic_resource_groups_request_response.go new file mode 100644 index 00000000000..3d05a0a5b68 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_dynamic_resource_groups_request_response.go @@ -0,0 +1,108 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// SearchDynamicResourceGroupsRequest wrapper for the SearchDynamicResourceGroups operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/SearchDynamicResourceGroups.go.html to see an example of how to use SearchDynamicResourceGroupsRequest. +type SearchDynamicResourceGroupsRequest struct { + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // Parameters for searching DynamicResourceGroups + DynamicResourceGroupSearchRequest `contributesTo:"body"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // The value of the `opc-next-page` response header from the previous 'List' call. + Page *string `mandatory:"false" contributesTo:"query" name:"page"` + + // The maximum number of items to return in a paginated 'List' call. + Limit *int `mandatory:"false" contributesTo:"query" name:"limit"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request SearchDynamicResourceGroupsRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request SearchDynamicResourceGroupsRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request SearchDynamicResourceGroupsRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request SearchDynamicResourceGroupsRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request SearchDynamicResourceGroupsRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// SearchDynamicResourceGroupsResponse wrapper for the SearchDynamicResourceGroups operation +type SearchDynamicResourceGroupsResponse struct { + + // The underlying http response + RawResponse *http.Response + + // A list of DynamicResourceGroups instances + DynamicResourceGroups `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For pagination of a list of items. When paging through a list, if this header appears in the response, then a partial list might have been returned. Include this value as the `page` parameter for the subsequent GET request to get the next batch of items. + OpcNextPage *string `presentIn:"header" name:"opc-next-page"` +} + +func (response SearchDynamicResourceGroupsResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response SearchDynamicResourceGroupsResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_groups_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_groups_request_response.go new file mode 100644 index 00000000000..e6a715db840 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_groups_request_response.go @@ -0,0 +1,108 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// SearchGroupsRequest wrapper for the SearchGroups operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/SearchGroups.go.html to see an example of how to use SearchGroupsRequest. +type SearchGroupsRequest struct { + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // Parameters for searching Groups + GroupSearchRequest `contributesTo:"body"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // The value of the `opc-next-page` response header from the previous 'List' call. + Page *string `mandatory:"false" contributesTo:"query" name:"page"` + + // The maximum number of items to return in a paginated 'List' call. + Limit *int `mandatory:"false" contributesTo:"query" name:"limit"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request SearchGroupsRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request SearchGroupsRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request SearchGroupsRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request SearchGroupsRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request SearchGroupsRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// SearchGroupsResponse wrapper for the SearchGroups operation +type SearchGroupsResponse struct { + + // The underlying http response + RawResponse *http.Response + + // A list of Groups instances + Groups `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For pagination of a list of items. When paging through a list, if this header appears in the response, then a partial list might have been returned. Include this value as the `page` parameter for the subsequent GET request to get the next batch of items. + OpcNextPage *string `presentIn:"header" name:"opc-next-page"` +} + +func (response SearchGroupsResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response SearchGroupsResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_identity_providers_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_identity_providers_request_response.go new file mode 100644 index 00000000000..6fc9a41b989 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_identity_providers_request_response.go @@ -0,0 +1,108 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// SearchIdentityProvidersRequest wrapper for the SearchIdentityProviders operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/SearchIdentityProviders.go.html to see an example of how to use SearchIdentityProvidersRequest. +type SearchIdentityProvidersRequest struct { + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // Parameters for searching IdentityProviders + IdentityProviderSearchRequest `contributesTo:"body"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // The value of the `opc-next-page` response header from the previous 'List' call. + Page *string `mandatory:"false" contributesTo:"query" name:"page"` + + // The maximum number of items to return in a paginated 'List' call. + Limit *int `mandatory:"false" contributesTo:"query" name:"limit"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request SearchIdentityProvidersRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request SearchIdentityProvidersRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request SearchIdentityProvidersRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request SearchIdentityProvidersRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request SearchIdentityProvidersRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// SearchIdentityProvidersResponse wrapper for the SearchIdentityProviders operation +type SearchIdentityProvidersResponse struct { + + // The underlying http response + RawResponse *http.Response + + // A list of IdentityProviders instances + IdentityProviders `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For pagination of a list of items. When paging through a list, if this header appears in the response, then a partial list might have been returned. Include this value as the `page` parameter for the subsequent GET request to get the next batch of items. + OpcNextPage *string `presentIn:"header" name:"opc-next-page"` +} + +func (response SearchIdentityProvidersResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response SearchIdentityProvidersResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_kmsi_settings_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_kmsi_settings_request_response.go new file mode 100644 index 00000000000..3241b5de69d --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_kmsi_settings_request_response.go @@ -0,0 +1,108 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// SearchKmsiSettingsRequest wrapper for the SearchKmsiSettings operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/SearchKmsiSettings.go.html to see an example of how to use SearchKmsiSettingsRequest. +type SearchKmsiSettingsRequest struct { + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // Parameters for searching KmsiSettings + KmsiSettingsSearchRequest `contributesTo:"body"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // The value of the `opc-next-page` response header from the previous 'List' call. + Page *string `mandatory:"false" contributesTo:"query" name:"page"` + + // The maximum number of items to return in a paginated 'List' call. + Limit *int `mandatory:"false" contributesTo:"query" name:"limit"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request SearchKmsiSettingsRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request SearchKmsiSettingsRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request SearchKmsiSettingsRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request SearchKmsiSettingsRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request SearchKmsiSettingsRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// SearchKmsiSettingsResponse wrapper for the SearchKmsiSettings operation +type SearchKmsiSettingsResponse struct { + + // The underlying http response + RawResponse *http.Response + + // A list of KmsiSettings instances + KmsiSettings `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For pagination of a list of items. When paging through a list, if this header appears in the response, then a partial list might have been returned. Include this value as the `page` parameter for the subsequent GET request to get the next batch of items. + OpcNextPage *string `presentIn:"header" name:"opc-next-page"` +} + +func (response SearchKmsiSettingsResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response SearchKmsiSettingsResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_my_groups_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_my_groups_request_response.go new file mode 100644 index 00000000000..4d31a78426d --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_my_groups_request_response.go @@ -0,0 +1,108 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// SearchMyGroupsRequest wrapper for the SearchMyGroups operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/SearchMyGroups.go.html to see an example of how to use SearchMyGroupsRequest. +type SearchMyGroupsRequest struct { + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // Parameters for searching MyGroups + MyGroupSearchRequest `contributesTo:"body"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // The value of the `opc-next-page` response header from the previous 'List' call. + Page *string `mandatory:"false" contributesTo:"query" name:"page"` + + // The maximum number of items to return in a paginated 'List' call. + Limit *int `mandatory:"false" contributesTo:"query" name:"limit"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request SearchMyGroupsRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request SearchMyGroupsRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request SearchMyGroupsRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request SearchMyGroupsRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request SearchMyGroupsRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// SearchMyGroupsResponse wrapper for the SearchMyGroups operation +type SearchMyGroupsResponse struct { + + // The underlying http response + RawResponse *http.Response + + // A list of MyGroups instances + MyGroups `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For pagination of a list of items. When paging through a list, if this header appears in the response, then a partial list might have been returned. Include this value as the `page` parameter for the subsequent GET request to get the next batch of items. + OpcNextPage *string `presentIn:"header" name:"opc-next-page"` +} + +func (response SearchMyGroupsResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response SearchMyGroupsResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_o_auth2_client_credentials_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_o_auth2_client_credentials_request_response.go new file mode 100644 index 00000000000..8e06a836fe0 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_o_auth2_client_credentials_request_response.go @@ -0,0 +1,108 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// SearchOAuth2ClientCredentialsRequest wrapper for the SearchOAuth2ClientCredentials operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/SearchOAuth2ClientCredentials.go.html to see an example of how to use SearchOAuth2ClientCredentialsRequest. +type SearchOAuth2ClientCredentialsRequest struct { + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // Parameters for searching OAuth2ClientCredentials + OAuth2ClientCredentialSearchRequest `contributesTo:"body"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // The value of the `opc-next-page` response header from the previous 'List' call. + Page *string `mandatory:"false" contributesTo:"query" name:"page"` + + // The maximum number of items to return in a paginated 'List' call. + Limit *int `mandatory:"false" contributesTo:"query" name:"limit"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request SearchOAuth2ClientCredentialsRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request SearchOAuth2ClientCredentialsRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request SearchOAuth2ClientCredentialsRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request SearchOAuth2ClientCredentialsRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request SearchOAuth2ClientCredentialsRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// SearchOAuth2ClientCredentialsResponse wrapper for the SearchOAuth2ClientCredentials operation +type SearchOAuth2ClientCredentialsResponse struct { + + // The underlying http response + RawResponse *http.Response + + // A list of OAuth2ClientCredentials instances + OAuth2ClientCredentials `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For pagination of a list of items. When paging through a list, if this header appears in the response, then a partial list might have been returned. Include this value as the `page` parameter for the subsequent GET request to get the next batch of items. + OpcNextPage *string `presentIn:"header" name:"opc-next-page"` +} + +func (response SearchOAuth2ClientCredentialsResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response SearchOAuth2ClientCredentialsResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_password_policies_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_password_policies_request_response.go new file mode 100644 index 00000000000..2b841d36aa5 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_password_policies_request_response.go @@ -0,0 +1,108 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// SearchPasswordPoliciesRequest wrapper for the SearchPasswordPolicies operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/SearchPasswordPolicies.go.html to see an example of how to use SearchPasswordPoliciesRequest. +type SearchPasswordPoliciesRequest struct { + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // Parameters for searching PasswordPolicies + PasswordPolicySearchRequest `contributesTo:"body"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // The value of the `opc-next-page` response header from the previous 'List' call. + Page *string `mandatory:"false" contributesTo:"query" name:"page"` + + // The maximum number of items to return in a paginated 'List' call. + Limit *int `mandatory:"false" contributesTo:"query" name:"limit"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request SearchPasswordPoliciesRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request SearchPasswordPoliciesRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request SearchPasswordPoliciesRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request SearchPasswordPoliciesRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request SearchPasswordPoliciesRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// SearchPasswordPoliciesResponse wrapper for the SearchPasswordPolicies operation +type SearchPasswordPoliciesResponse struct { + + // The underlying http response + RawResponse *http.Response + + // A list of PasswordPolicies instances + PasswordPolicies `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For pagination of a list of items. When paging through a list, if this header appears in the response, then a partial list might have been returned. Include this value as the `page` parameter for the subsequent GET request to get the next batch of items. + OpcNextPage *string `presentIn:"header" name:"opc-next-page"` +} + +func (response SearchPasswordPoliciesResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response SearchPasswordPoliciesResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_smtp_credentials_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_smtp_credentials_request_response.go new file mode 100644 index 00000000000..22375c5cf73 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_smtp_credentials_request_response.go @@ -0,0 +1,108 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// SearchSmtpCredentialsRequest wrapper for the SearchSmtpCredentials operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/SearchSmtpCredentials.go.html to see an example of how to use SearchSmtpCredentialsRequest. +type SearchSmtpCredentialsRequest struct { + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // Parameters for searching SmtpCredentials + SmtpCredentialSearchRequest `contributesTo:"body"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // The value of the `opc-next-page` response header from the previous 'List' call. + Page *string `mandatory:"false" contributesTo:"query" name:"page"` + + // The maximum number of items to return in a paginated 'List' call. + Limit *int `mandatory:"false" contributesTo:"query" name:"limit"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request SearchSmtpCredentialsRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request SearchSmtpCredentialsRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request SearchSmtpCredentialsRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request SearchSmtpCredentialsRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request SearchSmtpCredentialsRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// SearchSmtpCredentialsResponse wrapper for the SearchSmtpCredentials operation +type SearchSmtpCredentialsResponse struct { + + // The underlying http response + RawResponse *http.Response + + // A list of SmtpCredentials instances + SmtpCredentials `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For pagination of a list of items. When paging through a list, if this header appears in the response, then a partial list might have been returned. Include this value as the `page` parameter for the subsequent GET request to get the next batch of items. + OpcNextPage *string `presentIn:"header" name:"opc-next-page"` +} + +func (response SearchSmtpCredentialsResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response SearchSmtpCredentialsResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_user_db_credentials_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_user_db_credentials_request_response.go new file mode 100644 index 00000000000..1f4be280637 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_user_db_credentials_request_response.go @@ -0,0 +1,108 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// SearchUserDbCredentialsRequest wrapper for the SearchUserDbCredentials operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/SearchUserDbCredentials.go.html to see an example of how to use SearchUserDbCredentialsRequest. +type SearchUserDbCredentialsRequest struct { + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // Parameters for searching UserDbCredentials + UserDbCredentialsSearchRequest `contributesTo:"body"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // The value of the `opc-next-page` response header from the previous 'List' call. + Page *string `mandatory:"false" contributesTo:"query" name:"page"` + + // The maximum number of items to return in a paginated 'List' call. + Limit *int `mandatory:"false" contributesTo:"query" name:"limit"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request SearchUserDbCredentialsRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request SearchUserDbCredentialsRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request SearchUserDbCredentialsRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request SearchUserDbCredentialsRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request SearchUserDbCredentialsRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// SearchUserDbCredentialsResponse wrapper for the SearchUserDbCredentials operation +type SearchUserDbCredentialsResponse struct { + + // The underlying http response + RawResponse *http.Response + + // A list of UserDbCredentials instances + UserDbCredentials `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For pagination of a list of items. When paging through a list, if this header appears in the response, then a partial list might have been returned. Include this value as the `page` parameter for the subsequent GET request to get the next batch of items. + OpcNextPage *string `presentIn:"header" name:"opc-next-page"` +} + +func (response SearchUserDbCredentialsResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response SearchUserDbCredentialsResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_users_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_users_request_response.go new file mode 100644 index 00000000000..b9e178e98b3 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/search_users_request_response.go @@ -0,0 +1,108 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// SearchUsersRequest wrapper for the SearchUsers operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/identitydomains/SearchUsers.go.html to see an example of how to use SearchUsersRequest. +type SearchUsersRequest struct { + + // The Authorization field value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested. + Authorization *string `mandatory:"false" contributesTo:"header" name:"authorization"` + + // An endpoint-specific schema version number to use in the Request. Allowed version values are Earliest Version or Latest Version as specified in each REST API endpoint description, or any sequential number inbetween. All schema attributes/body parameters are a part of version 1. After version 1, any attributes added or deprecated will be tagged with the version that they were added to or deprecated in. If no version is provided, the latest schema version is returned. + ResourceTypeSchemaVersion *string `mandatory:"false" contributesTo:"header" name:"resource_type_schema_version"` + + // Parameters for searching Users + UserSearchRequest `contributesTo:"body"` + + // A token you supply to uniquely identify the request and provide idempotency if the request is retried. Idempotency tokens expire after 24 hours. + OpcRetryToken *string `mandatory:"false" contributesTo:"header" name:"opc-retry-token"` + + // The value of the `opc-next-page` response header from the previous 'List' call. + Page *string `mandatory:"false" contributesTo:"query" name:"page"` + + // The maximum number of items to return in a paginated 'List' call. + Limit *int `mandatory:"false" contributesTo:"query" name:"limit"` + + // Unique Oracle-assigned identifier for the request. + // If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request SearchUsersRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request SearchUsersRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request SearchUsersRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request SearchUsersRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request SearchUsersRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// SearchUsersResponse wrapper for the SearchUsers operation +type SearchUsersResponse struct { + + // The underlying http response + RawResponse *http.Response + + // A list of Users instances + Users `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For pagination of a list of items. When paging through a list, if this header appears in the response, then a partial list might have been returned. Include this value as the `page` parameter for the subsequent GET request to get the next batch of items. + OpcNextPage *string `presentIn:"header" name:"opc-next-page"` +} + +func (response SearchUsersResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response SearchUsersResponse) HTTPResponse() *http.Response { + return response.RawResponse +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/smtp_credential.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/smtp_credential.go new file mode 100644 index 00000000000..323a840badc --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/smtp_credential.go @@ -0,0 +1,261 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// SmtpCredential User's smtp credential +type SmtpCredential struct { + + // REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: true + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Schemas []string `mandatory:"true" json:"schemas"` + + // User name + // **SCIM++ Properties:** + // - caseExact: false + // - type: string + // - mutability: readOnly + // - required: true + // - returned: default + UserName *string `mandatory:"true" json:"userName"` + + // Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: always + // - type: string + // - uniqueness: global + Id *string `mandatory:"false" json:"id"` + + // Unique OCI identifier for the SCIM Resource. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: default + // - type: string + // - uniqueness: global + Ocid *string `mandatory:"false" json:"ocid"` + + Meta *Meta `mandatory:"false" json:"meta"` + + IdcsCreatedBy *IdcsCreatedBy `mandatory:"false" json:"idcsCreatedBy"` + + IdcsLastModifiedBy *IdcsLastModifiedBy `mandatory:"false" json:"idcsLastModifiedBy"` + + // Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsPreventedOperations []IdcsPreventedOperationsEnum `mandatory:"false" json:"idcsPreventedOperations,omitempty"` + + // A list of tags on this resource. + // **SCIM++ Properties:** + // - idcsCompositeKey: [key, value] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + Tags []Tags `mandatory:"false" json:"tags"` + + // A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + DeleteInProgress *bool `mandatory:"false" json:"deleteInProgress"` + + // The release number when the resource was upgraded. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsLastUpgradedInRelease *string `mandatory:"false" json:"idcsLastUpgradedInRelease"` + + // OCI Domain Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + DomainOcid *string `mandatory:"false" json:"domainOcid"` + + // OCI Compartment Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + CompartmentOcid *string `mandatory:"false" json:"compartmentOcid"` + + // OCI Tenant Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + TenancyOcid *string `mandatory:"false" json:"tenancyOcid"` + + // Description + // **SCIM++ Properties:** + // - caseExact: false + // - type: string + // - mutability: readWrite + // - required: false + // - returned: default + Description *string `mandatory:"false" json:"description"` + + // User credential status + // **Added In:** 2109090424 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: never + // - type: string + // - uniqueness: none + Status SmtpCredentialStatusEnum `mandatory:"false" json:"status,omitempty"` + + // User credential expires on + // **Added In:** 2109090424 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: default + // - type: dateTime + // - uniqueness: none + ExpiresOn *string `mandatory:"false" json:"expiresOn"` + + User *SmtpCredentialUser `mandatory:"false" json:"user"` + + UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser *ExtensionSelfChangeUser `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:selfChange:User"` +} + +func (m SmtpCredential) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m SmtpCredential) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + for _, val := range m.IdcsPreventedOperations { + if _, ok := GetMappingIdcsPreventedOperationsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for IdcsPreventedOperations: %s. Supported values are: %s.", val, strings.Join(GetIdcsPreventedOperationsEnumStringValues(), ","))) + } + } + + if _, ok := GetMappingSmtpCredentialStatusEnum(string(m.Status)); !ok && m.Status != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Status: %s. Supported values are: %s.", m.Status, strings.Join(GetSmtpCredentialStatusEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// SmtpCredentialStatusEnum Enum with underlying type: string +type SmtpCredentialStatusEnum string + +// Set of constants representing the allowable values for SmtpCredentialStatusEnum +const ( + SmtpCredentialStatusActive SmtpCredentialStatusEnum = "ACTIVE" + SmtpCredentialStatusInactive SmtpCredentialStatusEnum = "INACTIVE" +) + +var mappingSmtpCredentialStatusEnum = map[string]SmtpCredentialStatusEnum{ + "ACTIVE": SmtpCredentialStatusActive, + "INACTIVE": SmtpCredentialStatusInactive, +} + +var mappingSmtpCredentialStatusEnumLowerCase = map[string]SmtpCredentialStatusEnum{ + "active": SmtpCredentialStatusActive, + "inactive": SmtpCredentialStatusInactive, +} + +// GetSmtpCredentialStatusEnumValues Enumerates the set of values for SmtpCredentialStatusEnum +func GetSmtpCredentialStatusEnumValues() []SmtpCredentialStatusEnum { + values := make([]SmtpCredentialStatusEnum, 0) + for _, v := range mappingSmtpCredentialStatusEnum { + values = append(values, v) + } + return values +} + +// GetSmtpCredentialStatusEnumStringValues Enumerates the set of values in String for SmtpCredentialStatusEnum +func GetSmtpCredentialStatusEnumStringValues() []string { + return []string{ + "ACTIVE", + "INACTIVE", + } +} + +// GetMappingSmtpCredentialStatusEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingSmtpCredentialStatusEnum(val string) (SmtpCredentialStatusEnum, bool) { + enum, ok := mappingSmtpCredentialStatusEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/smtp_credential_search_request.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/smtp_credential_search_request.go new file mode 100644 index 00000000000..d4c74ceeb12 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/smtp_credential_search_request.go @@ -0,0 +1,70 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// SmtpCredentialSearchRequest Clients MAY execute queries without passing parameters on the URL by using the HTTP POST verb combined with the **.search** path extension. The inclusion of **.search** on the end of a valid SCIM endpoint SHALL be used to indicate the HTTP POST verb is intended to be a query operation. To create a new query result set, a SCIM client sends an HTTP POST request to the desired SCIM resource endpoint (ending in **.search**). The body of the POST request MAY include any of the parameters. +type SmtpCredentialSearchRequest struct { + + // The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. Query requests MUST be identified using the following URI: "urn:ietf:params:scim:api:messages:2.0:SearchRequest" REQUIRED. + Schemas []string `mandatory:"true" json:"schemas"` + + // A multi-valued list of strings indicating the names of resource attributes to return in the response overriding the set of attributes that would be returned by default. Attribute names MUST be in standard attribute notation (Section 3.10 (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.10)) form. See (additional retrieval query parameters (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.9)). OPTIONAL. + Attributes []string `mandatory:"false" json:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If "attributes" query parameter is also available, union of the two is fetched. Valid values : all, always, never, request, default. Values are case-insensitive. OPTIONAL. + AttributeSets []AttributeSetsEnum `mandatory:"false" json:"attributeSets,omitempty"` + + // The filter string that is used to request a subset of resources. The filter string MUST be a valid filter expression. See Section 3.4.2.2 (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.2). OPTIONAL. + Filter *string `mandatory:"false" json:"filter"` + + // A string that indicates the attribute whose value SHALL be used to order the returned responses. The sortBy attribute MUST be in standard attribute notation (Section 3.10 (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.10)) form. See Sorting section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.3). OPTIONAL. + SortBy *string `mandatory:"false" json:"sortBy"` + + // A string that indicates the order in which the sortBy parameter is applied. Allowed values are "ascending" and "descending". See (Sorting Section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.3)). OPTIONAL. + SortOrder SortOrderEnum `mandatory:"false" json:"sortOrder,omitempty"` + + // An integer that indicates the 1-based index of the first query result. See Pagination Section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.4). OPTIONAL. + StartIndex *int `mandatory:"false" json:"startIndex"` + + // An integer that indicates the desired maximum number of query results per page. 1000 is the largest value that you can use. See the Pagination section of the System for Cross-Domain Identity Management Protocol specification for more information. (Section 3.4.2.4 (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.4)). OPTIONAL. + Count *int `mandatory:"false" json:"count"` +} + +func (m SmtpCredentialSearchRequest) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m SmtpCredentialSearchRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + for _, val := range m.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if _, ok := GetMappingSortOrderEnum(string(m.SortOrder)); !ok && m.SortOrder != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for SortOrder: %s. Supported values are: %s.", m.SortOrder, strings.Join(GetSortOrderEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/smtp_credential_user.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/smtp_credential_user.go new file mode 100644 index 00000000000..c56f8d3c788 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/smtp_credential_user.go @@ -0,0 +1,106 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// SmtpCredentialUser User linked to smtp credential +// **SCIM++ Properties:** +// - caseExact: false +// - idcsSearchable: true +// - multiValued: false +// - mutability: immutable +// - required: false +// - returned: default +// - type: complex +// - uniqueness: none +type SmtpCredentialUser struct { + + // User's id + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: always + // - type: string + // - uniqueness: none + Value *string `mandatory:"false" json:"value"` + + // User's ocid + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: always + // - type: string + // - uniqueness: none + Ocid *string `mandatory:"false" json:"ocid"` + + // The URI that corresponds to the user linked to this credential + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` + + // User display name + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Display *string `mandatory:"false" json:"display"` + + // User name + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Name *string `mandatory:"false" json:"name"` +} + +func (m SmtpCredentialUser) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m SmtpCredentialUser) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/smtp_credentials.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/smtp_credentials.go new file mode 100644 index 00000000000..bd3f1260baa --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/smtp_credentials.go @@ -0,0 +1,52 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// SmtpCredentials The SCIM protocol defines a standard set of query parameters that can be used to filter, sort, and paginate to return zero or more resources in a query response. Queries MAY be made against a single resource or a resource type endpoint (e.g., /Users), or the service provider Base URI. +type SmtpCredentials struct { + + // The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. REQUIRED. + Schemas []string `mandatory:"true" json:"schemas"` + + // The total number of results returned by the list or query operation. The value may be larger than the number of resources returned such as when returning a single page of results where multiple pages are available. REQUIRED. + TotalResults *int `mandatory:"true" json:"totalResults"` + + // A multi-valued list of complex objects containing the requested resources. This MAY be a subset of the full set of resources if pagination is requested. REQUIRED if "totalResults" is non-zero. + Resources []SmtpCredential `mandatory:"true" json:"Resources"` + + // The 1-based index of the first result in the current set of list results. REQUIRED when partial results returned due to pagination. + StartIndex *int `mandatory:"true" json:"startIndex"` + + // The number of resources returned in a list response page. REQUIRED when partial results returned due to pagination. + ItemsPerPage *int `mandatory:"true" json:"itemsPerPage"` +} + +func (m SmtpCredentials) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m SmtpCredentials) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/sort_order.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/sort_order.go new file mode 100644 index 00000000000..85bf8c7990e --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/sort_order.go @@ -0,0 +1,57 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "strings" +) + +// SortOrderEnum Enum with underlying type: string +type SortOrderEnum string + +// Set of constants representing the allowable values for SortOrderEnum +const ( + SortOrderAscending SortOrderEnum = "ASCENDING" + SortOrderDescending SortOrderEnum = "DESCENDING" +) + +var mappingSortOrderEnum = map[string]SortOrderEnum{ + "ASCENDING": SortOrderAscending, + "DESCENDING": SortOrderDescending, +} + +var mappingSortOrderEnumLowerCase = map[string]SortOrderEnum{ + "ascending": SortOrderAscending, + "descending": SortOrderDescending, +} + +// GetSortOrderEnumValues Enumerates the set of values for SortOrderEnum +func GetSortOrderEnumValues() []SortOrderEnum { + values := make([]SortOrderEnum, 0) + for _, v := range mappingSortOrderEnum { + values = append(values, v) + } + return values +} + +// GetSortOrderEnumStringValues Enumerates the set of values in String for SortOrderEnum +func GetSortOrderEnumStringValues() []string { + return []string{ + "ASCENDING", + "DESCENDING", + } +} + +// GetMappingSortOrderEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingSortOrderEnum(val string) (SortOrderEnum, bool) { + enum, ok := mappingSortOrderEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/tags.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/tags.go new file mode 100644 index 00000000000..71614a889ff --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/tags.go @@ -0,0 +1,61 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// Tags A list of tags on this resource. +type Tags struct { + + // Key or name of the tag. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Key *string `mandatory:"true" json:"key"` + + // Value of the tag. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` +} + +func (m Tags) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m Tags) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user.go new file mode 100644 index 00000000000..23f35ccc151 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user.go @@ -0,0 +1,574 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// User User Account +type User struct { + + // REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: true + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Schemas []string `mandatory:"true" json:"schemas"` + + // User name + // **SCIM++ Properties:** + // - caseExact: false + // - idcsCsvAttributeName: User ID + // - idcsCsvAttributeNameMappings: [[columnHeaderName:User Name, deprecatedColumnHeaderName:User ID]] + // - idcsPii: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: always + // - type: string + // - uniqueness: global + UserName *string `mandatory:"true" json:"userName"` + + Name *UserName `mandatory:"true" json:"name"` + + // Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: always + // - type: string + // - uniqueness: global + Id *string `mandatory:"false" json:"id"` + + // Unique OCI identifier for the SCIM Resource. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: default + // - type: string + // - uniqueness: global + Ocid *string `mandatory:"false" json:"ocid"` + + Meta *Meta `mandatory:"false" json:"meta"` + + IdcsCreatedBy *IdcsCreatedBy `mandatory:"false" json:"idcsCreatedBy"` + + IdcsLastModifiedBy *IdcsLastModifiedBy `mandatory:"false" json:"idcsLastModifiedBy"` + + // Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsPreventedOperations []IdcsPreventedOperationsEnum `mandatory:"false" json:"idcsPreventedOperations,omitempty"` + + // A list of tags on this resource. + // **SCIM++ Properties:** + // - idcsCompositeKey: [key, value] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + Tags []Tags `mandatory:"false" json:"tags"` + + // A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + DeleteInProgress *bool `mandatory:"false" json:"deleteInProgress"` + + // The release number when the resource was upgraded. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsLastUpgradedInRelease *string `mandatory:"false" json:"idcsLastUpgradedInRelease"` + + // OCI Domain Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + DomainOcid *string `mandatory:"false" json:"domainOcid"` + + // OCI Compartment Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + CompartmentOcid *string `mandatory:"false" json:"compartmentOcid"` + + // OCI Tenant Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + TenancyOcid *string `mandatory:"false" json:"tenancyOcid"` + + // An identifier for the Resource as defined by the Service Consumer. The externalId may simplify identification of the Resource between Service Consumer and Service Provider by allowing the Consumer to refer to the Resource with its own identifier, obviating the need to store a local mapping between the local identifier of the Resource and the identifier used by the Service Provider. Each Resource MAY include a non-empty externalId value. The value of the externalId attribute is always issued by the Service Consumer and can never be specified by the Service Provider. The Service Provider MUST always interpret the externalId as scoped to the Service Consumer's tenant. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsCsvAttributeNameMappings: [[columnHeaderName:External Id]] + // - idcsPii: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + ExternalId *string `mandatory:"false" json:"externalId"` + + // Description of the user + // **Added In:** 2012271618 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsPii: true + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Description *string `mandatory:"false" json:"description"` + + // Display name + // **SCIM++ Properties:** + // - caseExact: false + // - idcsCsvAttributeName: Display Name + // - idcsCsvAttributeNameMappings: [[columnHeaderName:Display Name]] + // - idcsPii: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + DisplayName *string `mandatory:"false" json:"displayName"` + + // Nick name + // **SCIM++ Properties:** + // - caseExact: false + // - idcsCsvAttributeName: Nick Name + // - idcsCsvAttributeNameMappings: [[columnHeaderName:Nick Name]] + // - idcsPii: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + NickName *string `mandatory:"false" json:"nickName"` + + // A fully-qualified URL to a page representing the User's online profile + // **SCIM++ Properties:** + // - caseExact: false + // - idcsCsvAttributeName: Profile URL + // - idcsCsvAttributeNameMappings: [[columnHeaderName:Profile Url]] + // - idcsPii: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + ProfileUrl *string `mandatory:"false" json:"profileUrl"` + + // Title + // **SCIM++ Properties:** + // - caseExact: false + // - idcsCsvAttributeName: Title + // - idcsCsvAttributeNameMappings: [[columnHeaderName:Title]] + // - idcsPii: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Title *string `mandatory:"false" json:"title"` + + // Used to identify the organization-to-user relationship + // **SCIM++ Properties:** + // - caseExact: false + // - idcsCsvAttributeName: User Type + // - idcsCsvAttributeNameMappings: [[columnHeaderName:User Type]] + // - idcsPii: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + UserType UserUserTypeEnum `mandatory:"false" json:"userType,omitempty"` + + // Used to indicate the User's default location for purposes of localizing items such as currency, date and time format, numerical representations, and so on. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsCsvAttributeName: Locale + // - idcsCsvAttributeNameMappings: [[columnHeaderName:Locale]] + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Locale *string `mandatory:"false" json:"locale"` + + // User's preferred written or spoken language used for localized user interfaces + // **SCIM++ Properties:** + // - caseExact: false + // - idcsCsvAttributeName: Preferred Language + // - idcsCsvAttributeNameMappings: [[columnHeaderName:Preferred Language]] + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + PreferredLanguage *string `mandatory:"false" json:"preferredLanguage"` + + // User's timezone + // **SCIM++ Properties:** + // - caseExact: false + // - idcsCanonicalValueSourceFilter: attrName eq "timezones" and attrValues.value eq "$(timezone)" + // - idcsCanonicalValueSourceResourceType: AllowedValue + // - idcsCsvAttributeName: TimeZone + // - idcsCsvAttributeNameMappings: [[columnHeaderName:Time Zone, deprecatedColumnHeaderName:TimeZone]] + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Timezone *string `mandatory:"false" json:"timezone"` + + // User status + // **SCIM++ Properties:** + // - caseExact: false + // - idcsCsvAttributeName: Active + // - idcsCsvAttributeNameMappings: [[columnHeaderName:Active]] + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + Active *bool `mandatory:"false" json:"active"` + + // Password attribute. Max length for password is controlled via Password Policy. + // **SCIM++ Properties:** + // - idcsCsvAttributeName: Password + // - idcsCsvAttributeNameMappings: [[columnHeaderName:Password]] + // - idcsPii: true + // - idcsSearchable: false + // - idcsSensitive: hash + // - multiValued: false + // - mutability: writeOnly + // - required: false + // - returned: never + // - type: string + // - uniqueness: none + Password *string `mandatory:"false" json:"password"` + + // A complex attribute representing emails + // **SCIM++ Properties:** + // - idcsCompositeKey: [value, type] + // - idcsCsvAttributeNameMappings: [[columnHeaderName:Work Email, mapsTo:emails[work].value], [columnHeaderName:Home Email, mapsTo:emails[home].value], [columnHeaderName:Primary Email Type, mapsTo:emails[$(type)].primary], [columnHeaderName:Other Email, mapsTo:emails[other].value], [columnHeaderName:Recovery Email, mapsTo:emails[recovery].value], [columnHeaderName:Work Email Verified, mapsTo:emails[work].verified], [columnHeaderName:Home Email Verified, mapsTo:emails[home].verified], [columnHeaderName:Other Email Verified, mapsTo:emails[other].verified], [columnHeaderName:Recovery Email Verified, mapsTo:emails[recovery].verified]] + // - idcsPii: true + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: default + // - type: complex + // - uniqueness: none + Emails []UserEmails `mandatory:"false" json:"emails"` + + // Phone numbers + // **SCIM++ Properties:** + // - idcsCompositeKey: [value, type] + // - idcsCsvAttributeNameMappings: [[columnHeaderName:Work Phone, mapsTo:phoneNumbers[work].value], [columnHeaderName:Mobile No, mapsTo:phoneNumbers[mobile].value], [columnHeaderName:Home Phone, mapsTo:phoneNumbers[home].value], [columnHeaderName:Fax, mapsTo:phoneNumbers[fax].value], [columnHeaderName:Pager, mapsTo:phoneNumbers[pager].value], [columnHeaderName:Other Phone, mapsTo:phoneNumbers[other].value], [columnHeaderName:Recovery Phone, mapsTo:phoneNumbers[recovery].value], [columnHeaderName:Primary Phone Type, mapsTo:phoneNumbers[$(type)].primary]] + // - idcsPii: true + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: default + // - type: complex + // - uniqueness: none + PhoneNumbers []UserPhoneNumbers `mandatory:"false" json:"phoneNumbers"` + + // User's instant messaging addresses + // **SCIM++ Properties:** + // - idcsCompositeKey: [value, type] + // - idcsPii: true + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: default + // - type: complex + // - uniqueness: none + Ims []UserIms `mandatory:"false" json:"ims"` + + // URLs of photos for the User + // **SCIM++ Properties:** + // - idcsCompositeKey: [value, type] + // - idcsPii: true + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: default + // - type: complex + // - uniqueness: none + Photos []UserPhotos `mandatory:"false" json:"photos"` + + // A physical mailing address for this User, as described in (address Element). Canonical Type Values of work, home, and other. The value attribute is a complex type with the following sub-attributes. + // **SCIM++ Properties:** + // - idcsCompositeKey: [type] + // - idcsCsvAttributeNameMappings: [[columnHeaderName:Work Address Street, deprecatedColumnHeaderName:Work Street Address, mapsTo:addresses[work].streetAddress], [columnHeaderName:Work Address Locality, deprecatedColumnHeaderName:Work City, mapsTo:addresses[work].locality], [columnHeaderName:Work Address Region, deprecatedColumnHeaderName:Work State, mapsTo:addresses[work].region], [columnHeaderName:Work Address Postal Code, deprecatedColumnHeaderName:Work Postal Code, mapsTo:addresses[work].postalCode], [columnHeaderName:Work Address Country, deprecatedColumnHeaderName:Work Country, mapsTo:addresses[work].country], [columnHeaderName:Work Address Formatted, mapsTo:addresses[work].formatted], [columnHeaderName:Home Address Formatted, mapsTo:addresses[home].formatted], [columnHeaderName:Other Address Formatted, mapsTo:addresses[other].formatted], [columnHeaderName:Home Address Street, mapsTo:addresses[home].streetAddress], [columnHeaderName:Other Address Street, mapsTo:addresses[other].streetAddress], [columnHeaderName:Home Address Locality, mapsTo:addresses[home].locality], [columnHeaderName:Other Address Locality, mapsTo:addresses[other].locality], [columnHeaderName:Home Address Region, mapsTo:addresses[home].region], [columnHeaderName:Other Address Region, mapsTo:addresses[other].region], [columnHeaderName:Home Address Country, mapsTo:addresses[home].country], [columnHeaderName:Other Address Country, mapsTo:addresses[other].country], [columnHeaderName:Home Address Postal Code, mapsTo:addresses[home].postalCode], [columnHeaderName:Other Address Postal Code, mapsTo:addresses[other].postalCode], [columnHeaderName:Primary Address Type, mapsTo:addresses[$(type)].primary]] + // - idcsPii: true + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: default + // - type: complex + // - uniqueness: none + Addresses []Addresses `mandatory:"false" json:"addresses"` + + // A list of groups that the user belongs to, either thorough direct membership, nested groups, or dynamically calculated + // **SCIM++ Properties:** + // - idcsCompositeKey: [value] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + Groups []UserGroups `mandatory:"false" json:"groups"` + + // A list of entitlements for the User that represent a thing the User has. + // **SCIM++ Properties:** + // - idcsCompositeKey: [value, type] + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: default + // - type: complex + // - uniqueness: none + Entitlements []UserEntitlements `mandatory:"false" json:"entitlements"` + + // A list of roles for the User that collectively represent who the User is; e.g., 'Student', 'Faculty'. + // **SCIM++ Properties:** + // - idcsCompositeKey: [value, type] + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: default + // - type: complex + // - uniqueness: none + Roles []UserRoles `mandatory:"false" json:"roles"` + + // A list of certificates issued to the User. + // **SCIM++ Properties:** + // - idcsCompositeKey: [value] + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: default + // - type: complex + // - uniqueness: none + X509Certificates []UserX509Certificates `mandatory:"false" json:"x509Certificates"` + + UrnIetfParamsScimSchemasExtensionEnterprise2_0User *ExtensionEnterprise20User `mandatory:"false" json:"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"` + + UrnIetfParamsScimSchemasOracleIdcsExtensionUserUser *ExtensionUserUser `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:user:User"` + + UrnIetfParamsScimSchemasOracleIdcsExtensionPasswordStateUser *ExtensionPasswordStateUser `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:passwordState:User"` + + UrnIetfParamsScimSchemasOracleIdcsExtensionUserStateUser *ExtensionUserStateUser `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:userState:User"` + + UrnIetfParamsScimSchemasOracleIdcsExtensionPosixUser *ExtensionPosixUser `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:posix:User"` + + UrnIetfParamsScimSchemasOracleIdcsExtensionKerberosUserUser *ExtensionKerberosUserUser `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:kerberosUser:User"` + + UrnIetfParamsScimSchemasOracleIdcsExtensionMfaUser *ExtensionMfaUser `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:mfa:User"` + + UrnIetfParamsScimSchemasOracleIdcsExtensionAdaptiveUser *ExtensionAdaptiveUser `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:adaptive:User"` + + UrnIetfParamsScimSchemasOracleIdcsExtensionSffUser *ExtensionSffUser `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:sff:User"` + + UrnIetfParamsScimSchemasOracleIdcsExtensionSecurityQuestionsUser *ExtensionSecurityQuestionsUser `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:securityQuestions:User"` + + UrnIetfParamsScimSchemasOracleIdcsExtensionSelfRegistrationUser *ExtensionSelfRegistrationUser `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:selfRegistration:User"` + + UrnIetfParamsScimSchemasOracleIdcsExtensionSocialAccountUser *ExtensionSocialAccountUser `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:socialAccount:User"` + + UrnIetfParamsScimSchemasOracleIdcsExtensionDbUserUser *ExtensionDbUserUser `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:dbUser:User"` + + UrnIetfParamsScimSchemasOracleIdcsExtensionTermsOfUseUser *ExtensionTermsOfUseUser `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:termsOfUse:User"` + + UrnIetfParamsScimSchemasOracleIdcsExtensionPasswordlessUser *ExtensionPasswordlessUser `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:passwordless:User"` + + UrnIetfParamsScimSchemasOracleIdcsExtensionOciTags *ExtensionOciTags `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:OCITags"` + + UrnIetfParamsScimSchemasOracleIdcsExtensionUserCredentialsUser *ExtensionUserCredentialsUser `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:userCredentials:User"` + + UrnIetfParamsScimSchemasOracleIdcsExtensionCapabilitiesUser *ExtensionCapabilitiesUser `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:capabilities:User"` + + UrnIetfParamsScimSchemasOracleIdcsExtensionDbCredentialsUser *ExtensionDbCredentialsUser `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:dbCredentials:User"` + + UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser *ExtensionSelfChangeUser `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:selfChange:User"` +} + +func (m User) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m User) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + for _, val := range m.IdcsPreventedOperations { + if _, ok := GetMappingIdcsPreventedOperationsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for IdcsPreventedOperations: %s. Supported values are: %s.", val, strings.Join(GetIdcsPreventedOperationsEnumStringValues(), ","))) + } + } + + if _, ok := GetMappingUserUserTypeEnum(string(m.UserType)); !ok && m.UserType != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for UserType: %s. Supported values are: %s.", m.UserType, strings.Join(GetUserUserTypeEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// UserUserTypeEnum Enum with underlying type: string +type UserUserTypeEnum string + +// Set of constants representing the allowable values for UserUserTypeEnum +const ( + UserUserTypeContractor UserUserTypeEnum = "Contractor" + UserUserTypeEmployee UserUserTypeEnum = "Employee" + UserUserTypeIntern UserUserTypeEnum = "Intern" + UserUserTypeTemp UserUserTypeEnum = "Temp" + UserUserTypeExternal UserUserTypeEnum = "External" + UserUserTypeService UserUserTypeEnum = "Service" + UserUserTypeGeneric UserUserTypeEnum = "Generic" +) + +var mappingUserUserTypeEnum = map[string]UserUserTypeEnum{ + "Contractor": UserUserTypeContractor, + "Employee": UserUserTypeEmployee, + "Intern": UserUserTypeIntern, + "Temp": UserUserTypeTemp, + "External": UserUserTypeExternal, + "Service": UserUserTypeService, + "Generic": UserUserTypeGeneric, +} + +var mappingUserUserTypeEnumLowerCase = map[string]UserUserTypeEnum{ + "contractor": UserUserTypeContractor, + "employee": UserUserTypeEmployee, + "intern": UserUserTypeIntern, + "temp": UserUserTypeTemp, + "external": UserUserTypeExternal, + "service": UserUserTypeService, + "generic": UserUserTypeGeneric, +} + +// GetUserUserTypeEnumValues Enumerates the set of values for UserUserTypeEnum +func GetUserUserTypeEnumValues() []UserUserTypeEnum { + values := make([]UserUserTypeEnum, 0) + for _, v := range mappingUserUserTypeEnum { + values = append(values, v) + } + return values +} + +// GetUserUserTypeEnumStringValues Enumerates the set of values in String for UserUserTypeEnum +func GetUserUserTypeEnumStringValues() []string { + return []string{ + "Contractor", + "Employee", + "Intern", + "Temp", + "External", + "Service", + "Generic", + } +} + +// GetMappingUserUserTypeEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingUserUserTypeEnum(val string) (UserUserTypeEnum, bool) { + enum, ok := mappingUserUserTypeEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_capabilities_changer.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_capabilities_changer.go new file mode 100644 index 00000000000..7af9c164281 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_capabilities_changer.go @@ -0,0 +1,254 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UserCapabilitiesChanger User Capabilities Changer +type UserCapabilitiesChanger struct { + + // REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: true + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Schemas []string `mandatory:"true" json:"schemas"` + + // Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: always + // - type: string + // - uniqueness: global + Id *string `mandatory:"false" json:"id"` + + // Unique OCI identifier for the SCIM Resource. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: default + // - type: string + // - uniqueness: global + Ocid *string `mandatory:"false" json:"ocid"` + + Meta *Meta `mandatory:"false" json:"meta"` + + IdcsCreatedBy *IdcsCreatedBy `mandatory:"false" json:"idcsCreatedBy"` + + IdcsLastModifiedBy *IdcsLastModifiedBy `mandatory:"false" json:"idcsLastModifiedBy"` + + // Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsPreventedOperations []IdcsPreventedOperationsEnum `mandatory:"false" json:"idcsPreventedOperations,omitempty"` + + // A list of tags on this resource. + // **SCIM++ Properties:** + // - idcsCompositeKey: [key, value] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + Tags []Tags `mandatory:"false" json:"tags"` + + // A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + DeleteInProgress *bool `mandatory:"false" json:"deleteInProgress"` + + // The release number when the resource was upgraded. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsLastUpgradedInRelease *string `mandatory:"false" json:"idcsLastUpgradedInRelease"` + + // OCI Domain Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + DomainOcid *string `mandatory:"false" json:"domainOcid"` + + // OCI Compartment Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + CompartmentOcid *string `mandatory:"false" json:"compartmentOcid"` + + // OCI Tenant Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + TenancyOcid *string `mandatory:"false" json:"tenancyOcid"` + + // Indicates weather a user can use api keys + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + CanUseApiKeys *bool `mandatory:"false" json:"canUseApiKeys"` + + // Indicates weather a user can use auth tokens + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + CanUseAuthTokens *bool `mandatory:"false" json:"canUseAuthTokens"` + + // Indicates weather a user can use console password + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + CanUseConsolePassword *bool `mandatory:"false" json:"canUseConsolePassword"` + + // Indicates weather a user can use customer secret keys + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + CanUseCustomerSecretKeys *bool `mandatory:"false" json:"canUseCustomerSecretKeys"` + + // Indicates weather a user can use oauth2 client credentials + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + CanUseOAuth2ClientCredentials *bool `mandatory:"false" json:"canUseOAuth2ClientCredentials"` + + // Indicates weather a user can use smtp credentials + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + CanUseSmtpCredentials *bool `mandatory:"false" json:"canUseSmtpCredentials"` + + // Indicates weather a user can use db credentials + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + CanUseDbCredentials *bool `mandatory:"false" json:"canUseDbCredentials"` + + UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser *ExtensionSelfChangeUser `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:selfChange:User"` +} + +func (m UserCapabilitiesChanger) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UserCapabilitiesChanger) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + for _, val := range m.IdcsPreventedOperations { + if _, ok := GetMappingIdcsPreventedOperationsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for IdcsPreventedOperations: %s. Supported values are: %s.", val, strings.Join(GetIdcsPreventedOperationsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_db_credential.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_db_credential.go new file mode 100644 index 00000000000..ed3e003f75e --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_db_credential.go @@ -0,0 +1,309 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UserDbCredential User's Db Credential +type UserDbCredential struct { + + // REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: true + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Schemas []string `mandatory:"true" json:"schemas"` + + // The db password of the user + // **SCIM++ Properties:** + // - type: string + // - mutability: immutable + // - returned: default + // - required: true + DbPassword *string `mandatory:"true" json:"dbPassword"` + + // Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: always + // - type: string + // - uniqueness: global + Id *string `mandatory:"false" json:"id"` + + // Unique OCI identifier for the SCIM Resource. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: default + // - type: string + // - uniqueness: global + Ocid *string `mandatory:"false" json:"ocid"` + + Meta *Meta `mandatory:"false" json:"meta"` + + IdcsCreatedBy *IdcsCreatedBy `mandatory:"false" json:"idcsCreatedBy"` + + IdcsLastModifiedBy *IdcsLastModifiedBy `mandatory:"false" json:"idcsLastModifiedBy"` + + // Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsPreventedOperations []IdcsPreventedOperationsEnum `mandatory:"false" json:"idcsPreventedOperations,omitempty"` + + // A list of tags on this resource. + // **SCIM++ Properties:** + // - idcsCompositeKey: [key, value] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + Tags []Tags `mandatory:"false" json:"tags"` + + // A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + DeleteInProgress *bool `mandatory:"false" json:"deleteInProgress"` + + // The release number when the resource was upgraded. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsLastUpgradedInRelease *string `mandatory:"false" json:"idcsLastUpgradedInRelease"` + + // OCI Domain Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + DomainOcid *string `mandatory:"false" json:"domainOcid"` + + // OCI Compartment Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + CompartmentOcid *string `mandatory:"false" json:"compartmentOcid"` + + // OCI Tenant Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + TenancyOcid *string `mandatory:"false" json:"tenancyOcid"` + + // Name + // **Added In:** 2109090424 + // **SCIM++ Properties:** + // - caseExact: false + // - type: string + // - mutability: readOnly + // - required: false + // - returned: default + Name *string `mandatory:"false" json:"name"` + + // Description + // **Added In:** 2109020413 + // **SCIM++ Properties:** + // - caseExact: false + // - type: string + // - mutability: readWrite + // - required: false + // - returned: default + Description *string `mandatory:"false" json:"description"` + + // The db password of the user with mixed salt + // **SCIM++ Properties:** + // - type: string + // - mutability: readOnly + // - returned: default + // - required: false + MixedDbPassword *string `mandatory:"false" json:"mixedDbPassword"` + + // The salt of the password + // **SCIM++ Properties:** + // - type: string + // - mutability: readOnly + // - returned: default + // - required: false + Salt *string `mandatory:"false" json:"salt"` + + // The mixed salt of the password + // **SCIM++ Properties:** + // - type: string + // - mutability: readOnly + // - returned: default + // - required: false + MixedSalt *string `mandatory:"false" json:"mixedSalt"` + + // A DateTime that specifies the date and time when the current db password was set + // **SCIM++ Properties:** + // - type: dateTime + // - mutability: readOnly + // - returned: default + LastSetDate *string `mandatory:"false" json:"lastSetDate"` + + // Indicates that the db password has expired + // **SCIM++ Properties:** + // - type: boolean + // - mutability: readOnly + // - returned: default + Expired *bool `mandatory:"false" json:"expired"` + + // User credential status + // **Added In:** 2109090424 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: never + // - type: string + // - uniqueness: none + Status UserDbCredentialStatusEnum `mandatory:"false" json:"status,omitempty"` + + // User credential expires on + // **Added In:** 2109090424 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: default + // - type: dateTime + // - uniqueness: none + ExpiresOn *string `mandatory:"false" json:"expiresOn"` + + User *UserDbCredentialsUser `mandatory:"false" json:"user"` + + UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser *ExtensionSelfChangeUser `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:selfChange:User"` +} + +func (m UserDbCredential) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UserDbCredential) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + for _, val := range m.IdcsPreventedOperations { + if _, ok := GetMappingIdcsPreventedOperationsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for IdcsPreventedOperations: %s. Supported values are: %s.", val, strings.Join(GetIdcsPreventedOperationsEnumStringValues(), ","))) + } + } + + if _, ok := GetMappingUserDbCredentialStatusEnum(string(m.Status)); !ok && m.Status != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Status: %s. Supported values are: %s.", m.Status, strings.Join(GetUserDbCredentialStatusEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// UserDbCredentialStatusEnum Enum with underlying type: string +type UserDbCredentialStatusEnum string + +// Set of constants representing the allowable values for UserDbCredentialStatusEnum +const ( + UserDbCredentialStatusActive UserDbCredentialStatusEnum = "ACTIVE" + UserDbCredentialStatusInactive UserDbCredentialStatusEnum = "INACTIVE" +) + +var mappingUserDbCredentialStatusEnum = map[string]UserDbCredentialStatusEnum{ + "ACTIVE": UserDbCredentialStatusActive, + "INACTIVE": UserDbCredentialStatusInactive, +} + +var mappingUserDbCredentialStatusEnumLowerCase = map[string]UserDbCredentialStatusEnum{ + "active": UserDbCredentialStatusActive, + "inactive": UserDbCredentialStatusInactive, +} + +// GetUserDbCredentialStatusEnumValues Enumerates the set of values for UserDbCredentialStatusEnum +func GetUserDbCredentialStatusEnumValues() []UserDbCredentialStatusEnum { + values := make([]UserDbCredentialStatusEnum, 0) + for _, v := range mappingUserDbCredentialStatusEnum { + values = append(values, v) + } + return values +} + +// GetUserDbCredentialStatusEnumStringValues Enumerates the set of values in String for UserDbCredentialStatusEnum +func GetUserDbCredentialStatusEnumStringValues() []string { + return []string{ + "ACTIVE", + "INACTIVE", + } +} + +// GetMappingUserDbCredentialStatusEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingUserDbCredentialStatusEnum(val string) (UserDbCredentialStatusEnum, bool) { + enum, ok := mappingUserDbCredentialStatusEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_db_credentials.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_db_credentials.go new file mode 100644 index 00000000000..c1ca5c0c7c4 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_db_credentials.go @@ -0,0 +1,52 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UserDbCredentials The SCIM protocol defines a standard set of query parameters that can be used to filter, sort, and paginate to return zero or more resources in a query response. Queries MAY be made against a single resource or a resource type endpoint (e.g., /Users), or the service provider Base URI. +type UserDbCredentials struct { + + // The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. REQUIRED. + Schemas []string `mandatory:"true" json:"schemas"` + + // The total number of results returned by the list or query operation. The value may be larger than the number of resources returned such as when returning a single page of results where multiple pages are available. REQUIRED. + TotalResults *int `mandatory:"true" json:"totalResults"` + + // A multi-valued list of complex objects containing the requested resources. This MAY be a subset of the full set of resources if pagination is requested. REQUIRED if "totalResults" is non-zero. + Resources []UserDbCredential `mandatory:"true" json:"Resources"` + + // The 1-based index of the first result in the current set of list results. REQUIRED when partial results returned due to pagination. + StartIndex *int `mandatory:"true" json:"startIndex"` + + // The number of resources returned in a list response page. REQUIRED when partial results returned due to pagination. + ItemsPerPage *int `mandatory:"true" json:"itemsPerPage"` +} + +func (m UserDbCredentials) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UserDbCredentials) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_db_credentials_search_request.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_db_credentials_search_request.go new file mode 100644 index 00000000000..de3167c2a4f --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_db_credentials_search_request.go @@ -0,0 +1,70 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UserDbCredentialsSearchRequest Clients MAY execute queries without passing parameters on the URL by using the HTTP POST verb combined with the **.search** path extension. The inclusion of **.search** on the end of a valid SCIM endpoint SHALL be used to indicate the HTTP POST verb is intended to be a query operation. To create a new query result set, a SCIM client sends an HTTP POST request to the desired SCIM resource endpoint (ending in **.search**). The body of the POST request MAY include any of the parameters. +type UserDbCredentialsSearchRequest struct { + + // The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. Query requests MUST be identified using the following URI: "urn:ietf:params:scim:api:messages:2.0:SearchRequest" REQUIRED. + Schemas []string `mandatory:"true" json:"schemas"` + + // A multi-valued list of strings indicating the names of resource attributes to return in the response overriding the set of attributes that would be returned by default. Attribute names MUST be in standard attribute notation (Section 3.10 (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.10)) form. See (additional retrieval query parameters (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.9)). OPTIONAL. + Attributes []string `mandatory:"false" json:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If "attributes" query parameter is also available, union of the two is fetched. Valid values : all, always, never, request, default. Values are case-insensitive. OPTIONAL. + AttributeSets []AttributeSetsEnum `mandatory:"false" json:"attributeSets,omitempty"` + + // The filter string that is used to request a subset of resources. The filter string MUST be a valid filter expression. See Section 3.4.2.2 (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.2). OPTIONAL. + Filter *string `mandatory:"false" json:"filter"` + + // A string that indicates the attribute whose value SHALL be used to order the returned responses. The sortBy attribute MUST be in standard attribute notation (Section 3.10 (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.10)) form. See Sorting section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.3). OPTIONAL. + SortBy *string `mandatory:"false" json:"sortBy"` + + // A string that indicates the order in which the sortBy parameter is applied. Allowed values are "ascending" and "descending". See (Sorting Section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.3)). OPTIONAL. + SortOrder SortOrderEnum `mandatory:"false" json:"sortOrder,omitempty"` + + // An integer that indicates the 1-based index of the first query result. See Pagination Section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.4). OPTIONAL. + StartIndex *int `mandatory:"false" json:"startIndex"` + + // An integer that indicates the desired maximum number of query results per page. 1000 is the largest value that you can use. See the Pagination section of the System for Cross-Domain Identity Management Protocol specification for more information. (Section 3.4.2.4 (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.4)). OPTIONAL. + Count *int `mandatory:"false" json:"count"` +} + +func (m UserDbCredentialsSearchRequest) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UserDbCredentialsSearchRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + for _, val := range m.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if _, ok := GetMappingSortOrderEnum(string(m.SortOrder)); !ok && m.SortOrder != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for SortOrder: %s. Supported values are: %s.", m.SortOrder, strings.Join(GetSortOrderEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_db_credentials_user.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_db_credentials_user.go new file mode 100644 index 00000000000..8eab9e05834 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_db_credentials_user.go @@ -0,0 +1,107 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UserDbCredentialsUser User linked to db credential +// **SCIM++ Properties:** +// - caseExact: false +// - idcsCompositeKey: [value] +// - idcsSearchable: true +// - multiValued: false +// - mutability: immutable +// - required: false +// - returned: default +// - type: complex +// - uniqueness: none +type UserDbCredentialsUser struct { + + // User's id + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: true + // - returned: always + // - type: string + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` + + // User's ocid + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: always + // - type: string + // - uniqueness: none + Ocid *string `mandatory:"false" json:"ocid"` + + // The URI that corresponds to the user linked to this credential + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` + + // User display name + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Display *string `mandatory:"false" json:"display"` + + // User name + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Name *string `mandatory:"false" json:"name"` +} + +func (m UserDbCredentialsUser) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UserDbCredentialsUser) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_emails.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_emails.go new file mode 100644 index 00000000000..2b9a9e68d57 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_emails.go @@ -0,0 +1,163 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UserEmails A complex attribute representing emails +type UserEmails struct { + + // Email address + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` + + // Type of email address + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Type UserEmailsTypeEnum `mandatory:"true" json:"type"` + + // A Boolean value that indicates whether the email address is the primary email address. The primary attribute value 'true' MUST appear no more than once. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + Primary *bool `mandatory:"false" json:"primary"` + + // A Boolean value that indicates whether the email address is the secondary email address. The secondary attribute value 'true' MUST appear no more than once. + // **Added In:** 18.2.6 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + Secondary *bool `mandatory:"false" json:"secondary"` + + // A Boolean value that indicates whether or not the e-mail address is verified + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + Verified *bool `mandatory:"false" json:"verified"` + + // Pending e-mail address verification + // **Added In:** 19.1.4 + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + PendingVerificationData *string `mandatory:"false" json:"pendingVerificationData"` +} + +func (m UserEmails) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UserEmails) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingUserEmailsTypeEnum(string(m.Type)); !ok && m.Type != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Type: %s. Supported values are: %s.", m.Type, strings.Join(GetUserEmailsTypeEnumStringValues(), ","))) + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// UserEmailsTypeEnum Enum with underlying type: string +type UserEmailsTypeEnum string + +// Set of constants representing the allowable values for UserEmailsTypeEnum +const ( + UserEmailsTypeWork UserEmailsTypeEnum = "work" + UserEmailsTypeHome UserEmailsTypeEnum = "home" + UserEmailsTypeOther UserEmailsTypeEnum = "other" + UserEmailsTypeRecovery UserEmailsTypeEnum = "recovery" +) + +var mappingUserEmailsTypeEnum = map[string]UserEmailsTypeEnum{ + "work": UserEmailsTypeWork, + "home": UserEmailsTypeHome, + "other": UserEmailsTypeOther, + "recovery": UserEmailsTypeRecovery, +} + +var mappingUserEmailsTypeEnumLowerCase = map[string]UserEmailsTypeEnum{ + "work": UserEmailsTypeWork, + "home": UserEmailsTypeHome, + "other": UserEmailsTypeOther, + "recovery": UserEmailsTypeRecovery, +} + +// GetUserEmailsTypeEnumValues Enumerates the set of values for UserEmailsTypeEnum +func GetUserEmailsTypeEnumValues() []UserEmailsTypeEnum { + values := make([]UserEmailsTypeEnum, 0) + for _, v := range mappingUserEmailsTypeEnum { + values = append(values, v) + } + return values +} + +// GetUserEmailsTypeEnumStringValues Enumerates the set of values in String for UserEmailsTypeEnum +func GetUserEmailsTypeEnumStringValues() []string { + return []string{ + "work", + "home", + "other", + "recovery", + } +} + +// GetMappingUserEmailsTypeEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingUserEmailsTypeEnum(val string) (UserEmailsTypeEnum, bool) { + enum, ok := mappingUserEmailsTypeEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_entitlements.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_entitlements.go new file mode 100644 index 00000000000..ddc8c2e5d29 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_entitlements.go @@ -0,0 +1,82 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UserEntitlements A list of entitlements for the User that represent a thing the User has. +type UserEntitlements struct { + + // The value of an entitlement. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` + + // A label indicating the attribute's function. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Type *string `mandatory:"true" json:"type"` + + // A human readable name, primarily used for display purposes. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Display *string `mandatory:"false" json:"display"` + + // A Boolean value indicating the 'primary' or preferred attribute value for this attribute. The primary attribute value 'true' MUST appear no more than once. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + Primary *bool `mandatory:"false" json:"primary"` +} + +func (m UserEntitlements) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UserEntitlements) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_accounts.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_accounts.go new file mode 100644 index 00000000000..72597ecaef7 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_accounts.go @@ -0,0 +1,106 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UserExtAccounts Accounts assigned to this User. Each value of this attribute refers to an app-specific identity that is owned by this User. Therefore, this attribute is a convenience that allows one to see on each User the Apps to which that User has access. +// **SCIM++ Properties:** +// - idcsPii: true +// - idcsSearchable: true +// - multiValued: true +// - mutability: readOnly +// - required: false +// - returned: request +// - type: complex +// - uniqueness: none +type UserExtAccounts struct { + + // The Id of the Account assigned to the User. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: always + // - type: string + // - uniqueness: none + Value *string `mandatory:"false" json:"value"` + + // The URI of the Account assigned to the User. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` + + // The ID of the App to which this Account gives access. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + AppId *string `mandatory:"false" json:"appId"` + + // Name of the account assigned to the User. + // **Added In:** 17.4.6 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Name *string `mandatory:"false" json:"name"` + + // Status of the account + // **Added In:** 17.4.6 + // **SCIM++ Properties:** + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + Active *bool `mandatory:"false" json:"active"` +} + +func (m UserExtAccounts) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UserExtAccounts) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_api_keys.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_api_keys.go new file mode 100644 index 00000000000..7c05959f857 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_api_keys.go @@ -0,0 +1,98 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UserExtApiKeys A list of api keys corresponding to user. +// **Added In:** 2012271618 +// **SCIM++ Properties:** +// - idcsCompositeKey: [value] +// - idcsSearchable: true +// - multiValued: true +// - mutability: readOnly +// - required: false +// - returned: request +// - type: complex +// - uniqueness: none +type UserExtApiKeys struct { + + // The value of of the User's api key. + // **Added In:** 2106240046 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: always + // - type: string + // - uniqueness: none + Key *string `mandatory:"false" json:"key"` + + // The identifier of the User's api key. + // **Added In:** 2012271618 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: always + // - type: string + // - uniqueness: none + Value *string `mandatory:"false" json:"value"` + + // Ocid of the User's api key. + // **Added In:** 2012271618 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: always + // - type: string + // - uniqueness: none + Ocid *string `mandatory:"false" json:"ocid"` + + // The URI of the corresponding ApiKey resource to which the user belongs + // **Added In:** 2012271618 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` +} + +func (m UserExtApiKeys) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UserExtApiKeys) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_app_roles.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_app_roles.go new file mode 100644 index 00000000000..39d28f2f6cc --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_app_roles.go @@ -0,0 +1,185 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UserExtAppRoles A list of all AppRoles to which this User belongs directly, indirectly or implicitly. The User could belong directly because the User is a member of the AppRole, could belong indirectly because the User is a member of a Group that is a member of the AppRole, or could belong implicitly because the AppRole is public. +// **SCIM++ Properties:** +// - idcsCompositeKey: [value] +// - multiValued: true +// - mutability: readOnly +// - required: false +// - returned: request +// - type: complex +// - uniqueness: none +type UserExtAppRoles struct { + + // The Id of the AppRole assigned to the User. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: true + // - returned: always + // - type: string + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` + + // The URI of the AppRole assigned to the User. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` + + // The display name of the AppRole assigned to the User. + // **SCIM++ Properties:** + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Display *string `mandatory:"false" json:"display"` + + // The kind of membership this User has in the AppRole. A value of 'direct' indicates that the User is a member of the AppRole. A value of 'indirect' indicates that the User is a member of a Group that is a member of the AppRole. A value of 'implicit' indicates that the AppRole is public. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + Type UserExtAppRolesTypeEnum `mandatory:"false" json:"type,omitempty"` + + // The ID of the App that defines this AppRole. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + AppId *string `mandatory:"false" json:"appId"` + + // The name (Client ID) of the App that defines this AppRole. + // **SCIM++ Properties:** + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + AppName *string `mandatory:"false" json:"appName"` + + // If true, then the role provides administrative access privileges. READ-ONLY. + // **SCIM++ Properties:** + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + AdminRole *bool `mandatory:"false" json:"adminRole"` + + // The name (if any) under which this AppRole should appear in this User's group-memberships for reasons of backward compatibility. OCI IAM distinguishes between Groups and AppRoles, but some services still expect AppRoles appear as if they were service-instance-specific Groups. + // **SCIM++ Properties:** + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + LegacyGroupName *string `mandatory:"false" json:"legacyGroupName"` +} + +func (m UserExtAppRoles) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UserExtAppRoles) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if _, ok := GetMappingUserExtAppRolesTypeEnum(string(m.Type)); !ok && m.Type != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Type: %s. Supported values are: %s.", m.Type, strings.Join(GetUserExtAppRolesTypeEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// UserExtAppRolesTypeEnum Enum with underlying type: string +type UserExtAppRolesTypeEnum string + +// Set of constants representing the allowable values for UserExtAppRolesTypeEnum +const ( + UserExtAppRolesTypeDirect UserExtAppRolesTypeEnum = "direct" + UserExtAppRolesTypeIndirect UserExtAppRolesTypeEnum = "indirect" + UserExtAppRolesTypeImplicit UserExtAppRolesTypeEnum = "implicit" +) + +var mappingUserExtAppRolesTypeEnum = map[string]UserExtAppRolesTypeEnum{ + "direct": UserExtAppRolesTypeDirect, + "indirect": UserExtAppRolesTypeIndirect, + "implicit": UserExtAppRolesTypeImplicit, +} + +var mappingUserExtAppRolesTypeEnumLowerCase = map[string]UserExtAppRolesTypeEnum{ + "direct": UserExtAppRolesTypeDirect, + "indirect": UserExtAppRolesTypeIndirect, + "implicit": UserExtAppRolesTypeImplicit, +} + +// GetUserExtAppRolesTypeEnumValues Enumerates the set of values for UserExtAppRolesTypeEnum +func GetUserExtAppRolesTypeEnumValues() []UserExtAppRolesTypeEnum { + values := make([]UserExtAppRolesTypeEnum, 0) + for _, v := range mappingUserExtAppRolesTypeEnum { + values = append(values, v) + } + return values +} + +// GetUserExtAppRolesTypeEnumStringValues Enumerates the set of values in String for UserExtAppRolesTypeEnum +func GetUserExtAppRolesTypeEnumStringValues() []string { + return []string{ + "direct", + "indirect", + "implicit", + } +} + +// GetMappingUserExtAppRolesTypeEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingUserExtAppRolesTypeEnum(val string) (UserExtAppRolesTypeEnum, bool) { + enum, ok := mappingUserExtAppRolesTypeEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_applicable_authentication_target_app.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_applicable_authentication_target_app.go new file mode 100644 index 00000000000..8f6e5298fe4 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_applicable_authentication_target_app.go @@ -0,0 +1,107 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UserExtApplicableAuthenticationTargetApp The app against which the user will authenticate. The value is not persisted but rather calculated. If the user's delegatedAuthenticationTargetApp is set, that value is returned. Otherwise, the app returned by evaluating the user's applicable Delegated Authentication Policy is returned. +// **Added In:** 18.1.6 +// **SCIM++ Properties:** +// - idcsCompositeKey: [value] +// - multiValued: false +// - mutability: readOnly +// - required: false +// - returned: request +// - type: complex +// - uniqueness: none +type UserExtApplicableAuthenticationTargetApp struct { + + // A label that indicates whether this is an App or IdentitySource. + // **Added In:** 18.1.6 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Type *string `mandatory:"true" json:"type"` + + // App identifier + // **Added In:** 18.1.6 + // **SCIM++ Properties:** + // - caseExact: true + // - multiValued: false + // - mutability: readOnly + // - returned: default + // - type: string + // - uniqueness: none + Value *string `mandatory:"false" json:"value"` + + // App URI + // **Added In:** 18.1.6 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` + + // App Display Name + // **Added In:** 18.1.6 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Display *string `mandatory:"false" json:"display"` + + // Timeout interval for Synchronization TargetAction in milliseconds + // **Added In:** 18.2.6 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: integer + // - uniqueness: none + TargetRequestTimeout *int `mandatory:"false" json:"targetRequestTimeout"` +} + +func (m UserExtApplicableAuthenticationTargetApp) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UserExtApplicableAuthenticationTargetApp) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_applicable_password_policy.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_applicable_password_policy.go new file mode 100644 index 00000000000..24d7887a536 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_applicable_password_policy.go @@ -0,0 +1,97 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UserExtApplicablePasswordPolicy Applicable Password Policy +// **Added In:** 20.1.3 +// **SCIM++ Properties:** +// - caseExact: false +// - idcsCompositeKey: [value] +// - idcsSearchable: true +// - multiValued: false +// - mutability: readOnly +// - required: false +// - returned: request +// - type: complex +// - uniqueness: none +type UserExtApplicablePasswordPolicy struct { + + // The identifier of the password policy. + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: true + // - returned: always + // - type: string + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` + + // The URI of the corresponding PasswordPolicy resource. + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` + + // Password Policy Display Name + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Display *string `mandatory:"false" json:"display"` + + // PasswordPolicy priority + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: integer + // - uniqueness: none + Priority *int `mandatory:"false" json:"priority"` +} + +func (m UserExtApplicablePasswordPolicy) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UserExtApplicablePasswordPolicy) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_auth_tokens.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_auth_tokens.go new file mode 100644 index 00000000000..9e819d134a0 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_auth_tokens.go @@ -0,0 +1,85 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UserExtAuthTokens A list of auth tokens corresponding to user. +// **Added In:** 2012271618 +// **SCIM++ Properties:** +// - idcsCompositeKey: [value] +// - idcsSearchable: true +// - multiValued: true +// - mutability: readOnly +// - required: false +// - returned: request +// - type: complex +// - uniqueness: none +type UserExtAuthTokens struct { + + // The identifier of the User's auth token. + // **Added In:** 2012271618 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: always + // - type: string + // - uniqueness: none + Value *string `mandatory:"false" json:"value"` + + // Ocid of the User's auth token. + // **Added In:** 2012271618 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: always + // - type: string + // - uniqueness: none + Ocid *string `mandatory:"false" json:"ocid"` + + // The URI of the corresponding AuthToken resource to which the user belongs + // **Added In:** 2012271618 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` +} + +func (m UserExtAuthTokens) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UserExtAuthTokens) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_bypass_codes.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_bypass_codes.go new file mode 100644 index 00000000000..e4c345acbd7 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_bypass_codes.go @@ -0,0 +1,71 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UserExtBypassCodes A list of bypass codes belongs to user +// **Added In:** 18.3.6 +// **SCIM++ Properties:** +// - idcsCompositeKey: [value] +// - multiValued: true +// - mutability: readOnly +// - required: false +// - returned: request +// - type: complex +// - uniqueness: none +type UserExtBypassCodes struct { + + // The identifier of the User's bypass code. + // **Added In:** 18.3.6 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: true + // - returned: always + // - type: string + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` + + // The URI of the corresponding BypassCode resource which belongs to user + // **Added In:** 18.3.6 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` +} + +func (m UserExtBypassCodes) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UserExtBypassCodes) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_customer_secret_keys.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_customer_secret_keys.go new file mode 100644 index 00000000000..8919063be53 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_customer_secret_keys.go @@ -0,0 +1,85 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UserExtCustomerSecretKeys A list of customer secret keys corresponding to user. +// **Added In:** 2102181953 +// **SCIM++ Properties:** +// - idcsCompositeKey: [value] +// - idcsSearchable: true +// - multiValued: true +// - mutability: readOnly +// - required: false +// - returned: request +// - type: complex +// - uniqueness: none +type UserExtCustomerSecretKeys struct { + + // The identifier of the User's customer secret key. + // **Added In:** 2102181953 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: always + // - type: string + // - uniqueness: none + Value *string `mandatory:"false" json:"value"` + + // Ocid of the User's customer secret key. + // **Added In:** 2102181953 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: always + // - type: string + // - uniqueness: none + Ocid *string `mandatory:"false" json:"ocid"` + + // The URI of the corresponding CustomerSecretKey resource to which the user belongs + // **Added In:** 2102181953 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` +} + +func (m UserExtCustomerSecretKeys) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UserExtCustomerSecretKeys) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_db_credentials.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_db_credentials.go new file mode 100644 index 00000000000..79e2f4a937a --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_db_credentials.go @@ -0,0 +1,85 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UserExtDbCredentials A list of db credentials corresponding to user. +// **Added In:** 2102181953 +// **SCIM++ Properties:** +// - idcsCompositeKey: [value] +// - idcsSearchable: true +// - multiValued: true +// - mutability: readOnly +// - required: false +// - returned: request +// - type: complex +// - uniqueness: none +type UserExtDbCredentials struct { + + // The identifier of the User's db credential. + // **Added In:** 2102181953 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: always + // - type: string + // - uniqueness: none + Value *string `mandatory:"false" json:"value"` + + // The URI of the corresponding UserDbCredential resource to which the user belongs + // **Added In:** 2102181953 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` + + // Ocid of the User's db credential. + // **Added In:** 2102181953 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: always + // - type: string + // - uniqueness: none + Ocid *string `mandatory:"false" json:"ocid"` +} + +func (m UserExtDbCredentials) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UserExtDbCredentials) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_delegated_authentication_target_app.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_delegated_authentication_target_app.go new file mode 100644 index 00000000000..9d04397a13b --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_delegated_authentication_target_app.go @@ -0,0 +1,143 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UserExtDelegatedAuthenticationTargetApp If set, indicates the user's preferred authentication target app. If not set and the user's \"syncedFromApp\" is set and is enabled for delegated authentication, it is used. Otherwise, the user authenticates locally to OCI IAM. +// **Added In:** 17.4.6 +// **SCIM++ Properties:** +// - idcsCompositeKey: [value] +// - idcsSearchable: true +// - multiValued: false +// - mutability: readWrite +// - required: false +// - returned: default +// - type: complex +// - uniqueness: none +type UserExtDelegatedAuthenticationTargetApp struct { + + // App identifier + // **Added In:** 17.4.6 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` + + // A label that indicates whether this is an App or IdentitySource. + // **Added In:** 17.4.6 + // **SCIM++ Properties:** + // - idcsDefaultValue: IdentitySource + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Type UserExtDelegatedAuthenticationTargetAppTypeEnum `mandatory:"true" json:"type"` + + // App URI + // **Added In:** 17.4.6 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` + + // App Display Name + // **Added In:** 17.4.6 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Display *string `mandatory:"false" json:"display"` +} + +func (m UserExtDelegatedAuthenticationTargetApp) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UserExtDelegatedAuthenticationTargetApp) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingUserExtDelegatedAuthenticationTargetAppTypeEnum(string(m.Type)); !ok && m.Type != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Type: %s. Supported values are: %s.", m.Type, strings.Join(GetUserExtDelegatedAuthenticationTargetAppTypeEnumStringValues(), ","))) + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// UserExtDelegatedAuthenticationTargetAppTypeEnum Enum with underlying type: string +type UserExtDelegatedAuthenticationTargetAppTypeEnum string + +// Set of constants representing the allowable values for UserExtDelegatedAuthenticationTargetAppTypeEnum +const ( + UserExtDelegatedAuthenticationTargetAppTypeApp UserExtDelegatedAuthenticationTargetAppTypeEnum = "App" + UserExtDelegatedAuthenticationTargetAppTypeIdentitysource UserExtDelegatedAuthenticationTargetAppTypeEnum = "IdentitySource" +) + +var mappingUserExtDelegatedAuthenticationTargetAppTypeEnum = map[string]UserExtDelegatedAuthenticationTargetAppTypeEnum{ + "App": UserExtDelegatedAuthenticationTargetAppTypeApp, + "IdentitySource": UserExtDelegatedAuthenticationTargetAppTypeIdentitysource, +} + +var mappingUserExtDelegatedAuthenticationTargetAppTypeEnumLowerCase = map[string]UserExtDelegatedAuthenticationTargetAppTypeEnum{ + "app": UserExtDelegatedAuthenticationTargetAppTypeApp, + "identitysource": UserExtDelegatedAuthenticationTargetAppTypeIdentitysource, +} + +// GetUserExtDelegatedAuthenticationTargetAppTypeEnumValues Enumerates the set of values for UserExtDelegatedAuthenticationTargetAppTypeEnum +func GetUserExtDelegatedAuthenticationTargetAppTypeEnumValues() []UserExtDelegatedAuthenticationTargetAppTypeEnum { + values := make([]UserExtDelegatedAuthenticationTargetAppTypeEnum, 0) + for _, v := range mappingUserExtDelegatedAuthenticationTargetAppTypeEnum { + values = append(values, v) + } + return values +} + +// GetUserExtDelegatedAuthenticationTargetAppTypeEnumStringValues Enumerates the set of values in String for UserExtDelegatedAuthenticationTargetAppTypeEnum +func GetUserExtDelegatedAuthenticationTargetAppTypeEnumStringValues() []string { + return []string{ + "App", + "IdentitySource", + } +} + +// GetMappingUserExtDelegatedAuthenticationTargetAppTypeEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingUserExtDelegatedAuthenticationTargetAppTypeEnum(val string) (UserExtDelegatedAuthenticationTargetAppTypeEnum, bool) { + enum, ok := mappingUserExtDelegatedAuthenticationTargetAppTypeEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_devices.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_devices.go new file mode 100644 index 00000000000..873543f20e8 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_devices.go @@ -0,0 +1,155 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UserExtDevices A list of devices enrolled by the user. +// **Added In:** 18.3.6 +// **SCIM++ Properties:** +// - idcsCompositeKey: [value] +// - multiValued: true +// - mutability: readOnly +// - required: false +// - returned: request +// - type: complex +// - uniqueness: none +type UserExtDevices struct { + + // The identifier of the User's device. + // **Added In:** 18.3.6 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: true + // - returned: always + // - type: string + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` + + // The URI of the corresponding Device resource which belongs to user + // **Added In:** 18.3.6 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` + + // A human readable name, primarily used for display purposes. READ-ONLY. + // **Added In:** 18.3.6 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Display *string `mandatory:"false" json:"display"` + + // Device status. + // **Added In:** 18.4.2 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Status *string `mandatory:"false" json:"status"` + + // Last Sync time for device. + // **Added In:** 18.4.2 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: dateTime + // - uniqueness: none + LastSyncTime *string `mandatory:"false" json:"lastSyncTime"` + + // Device authentication factor type. + // **Added In:** 18.4.2 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + FactorType *string `mandatory:"false" json:"factorType"` + + // Device authentication factor status. + // **Added In:** 18.4.2 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + FactorStatus *string `mandatory:"false" json:"factorStatus"` + + // Authentication method. + // **Added In:** 2009232244 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + AuthenticationMethod *string `mandatory:"false" json:"authenticationMethod"` + + // Third party factor vendor name. + // **Added In:** 2009232244 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + ThirdPartyVendorName *string `mandatory:"false" json:"thirdPartyVendorName"` +} + +func (m UserExtDevices) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UserExtDevices) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_factor_identifier.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_factor_identifier.go new file mode 100644 index 00000000000..8fe4c8af9ce --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_factor_identifier.go @@ -0,0 +1,85 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UserExtFactorIdentifier Factor Identifier ID +// **Added In:** 20.1.3 +// **SCIM++ Properties:** +// - caseExact: false +// - idcsSearchable: true +// - multiValued: false +// - mutability: readWrite +// - required: false +// - returned: default +// - type: complex +// - uniqueness: none +type UserExtFactorIdentifier struct { + + // The identifier of the User's preferred device + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` + + // The URI that corresponds to the device resource + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` + + // Factor Identifier display name + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Display *string `mandatory:"false" json:"display"` +} + +func (m UserExtFactorIdentifier) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UserExtFactorIdentifier) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_grants.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_grants.go new file mode 100644 index 00000000000..49a3fa0283a --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_grants.go @@ -0,0 +1,174 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UserExtGrants Grants to this User. Each value of this attribute refers to a Grant to this User of some App (and optionally of some entitlement). Therefore, this attribute is a convenience that allows one to see on each User all of the Grants to that User. +// **SCIM++ Properties:** +// - idcsSearchable: true +// - multiValued: true +// - mutability: readOnly +// - required: false +// - returned: request +// - type: complex +// - uniqueness: none +type UserExtGrants struct { + + // The ID of this Grant to this User. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Value *string `mandatory:"false" json:"value"` + + // The URI of this Grant to this User. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` + + // The ID of the App in this Grant. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + AppId *string `mandatory:"false" json:"appId"` + + // Each value of grantMechanism indicates how (or by what component) some App (or App-Entitlement) was granted.\nA customer or the UI should use only grantMechanism values that start with 'ADMINISTRATOR':\n - 'ADMINISTRATOR_TO_USER' is for a direct grant to a specific User.\n - 'ADMINISTRATOR_TO_GROUP' is for a grant to a specific Group, which results in indirect grants to Users who are members of that Group.\n - 'ADMINISTRATOR_TO_APP' is for a grant to a specific App. The grantee (client) App gains access to the granted (server) App. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + GrantMechanism UserExtGrantsGrantMechanismEnum `mandatory:"false" json:"grantMechanism,omitempty"` + + // Grantor identifier + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + GrantorId *string `mandatory:"false" json:"grantorId"` +} + +func (m UserExtGrants) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UserExtGrants) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if _, ok := GetMappingUserExtGrantsGrantMechanismEnum(string(m.GrantMechanism)); !ok && m.GrantMechanism != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for GrantMechanism: %s. Supported values are: %s.", m.GrantMechanism, strings.Join(GetUserExtGrantsGrantMechanismEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// UserExtGrantsGrantMechanismEnum Enum with underlying type: string +type UserExtGrantsGrantMechanismEnum string + +// Set of constants representing the allowable values for UserExtGrantsGrantMechanismEnum +const ( + UserExtGrantsGrantMechanismImportApproleMembers UserExtGrantsGrantMechanismEnum = "IMPORT_APPROLE_MEMBERS" + UserExtGrantsGrantMechanismAdministratorToUser UserExtGrantsGrantMechanismEnum = "ADMINISTRATOR_TO_USER" + UserExtGrantsGrantMechanismAdministratorToGroup UserExtGrantsGrantMechanismEnum = "ADMINISTRATOR_TO_GROUP" + UserExtGrantsGrantMechanismServiceManagerToUser UserExtGrantsGrantMechanismEnum = "SERVICE_MANAGER_TO_USER" + UserExtGrantsGrantMechanismAdministratorToApp UserExtGrantsGrantMechanismEnum = "ADMINISTRATOR_TO_APP" + UserExtGrantsGrantMechanismServiceManagerToApp UserExtGrantsGrantMechanismEnum = "SERVICE_MANAGER_TO_APP" + UserExtGrantsGrantMechanismOpcInfraToApp UserExtGrantsGrantMechanismEnum = "OPC_INFRA_TO_APP" + UserExtGrantsGrantMechanismGroupMembership UserExtGrantsGrantMechanismEnum = "GROUP_MEMBERSHIP" +) + +var mappingUserExtGrantsGrantMechanismEnum = map[string]UserExtGrantsGrantMechanismEnum{ + "IMPORT_APPROLE_MEMBERS": UserExtGrantsGrantMechanismImportApproleMembers, + "ADMINISTRATOR_TO_USER": UserExtGrantsGrantMechanismAdministratorToUser, + "ADMINISTRATOR_TO_GROUP": UserExtGrantsGrantMechanismAdministratorToGroup, + "SERVICE_MANAGER_TO_USER": UserExtGrantsGrantMechanismServiceManagerToUser, + "ADMINISTRATOR_TO_APP": UserExtGrantsGrantMechanismAdministratorToApp, + "SERVICE_MANAGER_TO_APP": UserExtGrantsGrantMechanismServiceManagerToApp, + "OPC_INFRA_TO_APP": UserExtGrantsGrantMechanismOpcInfraToApp, + "GROUP_MEMBERSHIP": UserExtGrantsGrantMechanismGroupMembership, +} + +var mappingUserExtGrantsGrantMechanismEnumLowerCase = map[string]UserExtGrantsGrantMechanismEnum{ + "import_approle_members": UserExtGrantsGrantMechanismImportApproleMembers, + "administrator_to_user": UserExtGrantsGrantMechanismAdministratorToUser, + "administrator_to_group": UserExtGrantsGrantMechanismAdministratorToGroup, + "service_manager_to_user": UserExtGrantsGrantMechanismServiceManagerToUser, + "administrator_to_app": UserExtGrantsGrantMechanismAdministratorToApp, + "service_manager_to_app": UserExtGrantsGrantMechanismServiceManagerToApp, + "opc_infra_to_app": UserExtGrantsGrantMechanismOpcInfraToApp, + "group_membership": UserExtGrantsGrantMechanismGroupMembership, +} + +// GetUserExtGrantsGrantMechanismEnumValues Enumerates the set of values for UserExtGrantsGrantMechanismEnum +func GetUserExtGrantsGrantMechanismEnumValues() []UserExtGrantsGrantMechanismEnum { + values := make([]UserExtGrantsGrantMechanismEnum, 0) + for _, v := range mappingUserExtGrantsGrantMechanismEnum { + values = append(values, v) + } + return values +} + +// GetUserExtGrantsGrantMechanismEnumStringValues Enumerates the set of values in String for UserExtGrantsGrantMechanismEnum +func GetUserExtGrantsGrantMechanismEnumStringValues() []string { + return []string{ + "IMPORT_APPROLE_MEMBERS", + "ADMINISTRATOR_TO_USER", + "ADMINISTRATOR_TO_GROUP", + "SERVICE_MANAGER_TO_USER", + "ADMINISTRATOR_TO_APP", + "SERVICE_MANAGER_TO_APP", + "OPC_INFRA_TO_APP", + "GROUP_MEMBERSHIP", + } +} + +// GetMappingUserExtGrantsGrantMechanismEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingUserExtGrantsGrantMechanismEnum(val string) (UserExtGrantsGrantMechanismEnum, bool) { + enum, ok := mappingUserExtGrantsGrantMechanismEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_idcs_app_roles_limited_to_groups.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_idcs_app_roles_limited_to_groups.go new file mode 100644 index 00000000000..5fba82c6e29 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_idcs_app_roles_limited_to_groups.go @@ -0,0 +1,110 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UserExtIdcsAppRolesLimitedToGroups Description: +// **Added In:** 19.2.1 +// **SCIM++ Properties:** +// - idcsCompositeKey: [value, idcsAppRoleId] +// - idcsSearchable: true +// - multiValued: true +// - mutability: readOnly +// - required: false +// - returned: request +// - type: complex +type UserExtIdcsAppRolesLimitedToGroups struct { + + // The id of the OCI IAM AppRole grant limited to one or more Groups. + // **Added In:** 19.2.1 + // **SCIM++ Properties:** + // - idcsCsvAttributeName: IDCS AppRole Name + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + IdcsAppRoleId *string `mandatory:"true" json:"idcsAppRoleId"` + + // The id of a Group the AppRole Grant is limited to + // **Added In:** 19.2.1 + // **SCIM++ Properties:** + // - idcsCsvAttributeName: Group Name + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` + + // The URI of the SCIM resource representing the Group manager. RECOMMENDED. + // **Added In:** 19.2.1 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` + + // Group display name + // **Added In:** 19.2.1 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Display *string `mandatory:"false" json:"display"` + + // The ocid of a Group the AppRole Grant is limited to + // **Added In:** 2202230830 + // **SCIM++ Properties:** + // - idcsCsvAttributeName: Group Ocid + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Ocid *string `mandatory:"false" json:"ocid"` +} + +func (m UserExtIdcsAppRolesLimitedToGroups) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UserExtIdcsAppRolesLimitedToGroups) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_locked.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_locked.go new file mode 100644 index 00000000000..17dfb1aa099 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_locked.go @@ -0,0 +1,94 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UserExtLocked A complex attribute that indicates an account is locked (blocking new sessions) +// **SCIM++ Properties:** +// - idcsCsvAttributeNameMappings: [[columnHeaderName:Locked, mapsTo:locked.on], [columnHeaderName:Locked Reason, mapsTo:locked.reason], [columnHeaderName:Locked Date, mapsTo:locked.lockDate]] +// - idcsSearchable: false +// - idcsAllowUpdatesInReadOnlyMode: true +// - multiValued: false +// - mutability: readWrite +// - required: false +// - returned: default +// - type: complex +// - uniqueness: none +type UserExtLocked struct { + + // Indicates the reason for locking. Valid values are: 0 - failed password login attempts, 1 - admin lock, 2 - failed reset password attempts, 3 - failed MFA login attempts, 4 - failed MFA login attempts for federated user, 5 - failed Database login attempts + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: integer + // - uniqueness: none + Reason *int `mandatory:"false" json:"reason"` + + // Indicates tat the account is locked + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + On *bool `mandatory:"false" json:"on"` + + // The date and time that the current resource was locked + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: dateTime + // - uniqueness: none + LockDate *string `mandatory:"false" json:"lockDate"` + + // Indicates whether user password is expired. If this value is false, password expiry will still be evaluated during user login. + // **Added In:** 20.1.3 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: request + // - type: boolean + // - uniqueness: none + Expired *bool `mandatory:"false" json:"expired"` +} + +func (m UserExtLocked) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UserExtLocked) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_manager.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_manager.go new file mode 100644 index 00000000000..a5406c31a2f --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_manager.go @@ -0,0 +1,80 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UserExtManager The User's manager. A complex type that optionally allows Service Providers to represent organizational hierarchy by referencing the 'id' attribute of another User. +// **SCIM++ Properties:** +// - idcsCsvAttributeNameMappings: [[columnHeaderName:Manager, deprecatedColumnHeaderName:Manager Name, mapsTo:manager.value]] +// - idcsPii: true +// - multiValued: false +// - mutability: readWrite +// - required: false +// - returned: default +// - type: complex +// - uniqueness: none +type UserExtManager struct { + + // The id of the SCIM resource representing the User's manager. RECOMMENDED. + // **SCIM++ Properties:** + // - idcsCsvAttributeName: Manager Name + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Value *string `mandatory:"false" json:"value"` + + // The URI of the SCIM resource representing the User's manager. RECOMMENDED. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` + + // The displayName of the User's manager. OPTIONAL and READ-ONLY. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + DisplayName *string `mandatory:"false" json:"displayName"` +} + +func (m UserExtManager) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UserExtManager) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_o_auth2_client_credentials.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_o_auth2_client_credentials.go new file mode 100644 index 00000000000..6064a7a77d9 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_o_auth2_client_credentials.go @@ -0,0 +1,85 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UserExtOAuth2ClientCredentials A list of oauth2 client credentials corresponding to user. +// **Added In:** 2012271618 +// **SCIM++ Properties:** +// - idcsCompositeKey: [value] +// - idcsSearchable: true +// - multiValued: true +// - mutability: readOnly +// - required: false +// - returned: request +// - type: complex +// - uniqueness: none +type UserExtOAuth2ClientCredentials struct { + + // The identifier of the User's oAuth2 client credential. + // **Added In:** 2012271618 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: always + // - type: string + // - uniqueness: none + Value *string `mandatory:"false" json:"value"` + + // Ocid of the User's oAuth2 client credential. + // **Added In:** 2012271618 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: always + // - type: string + // - uniqueness: none + Ocid *string `mandatory:"false" json:"ocid"` + + // The URI of the corresponding OAuth2ClientCredential resource to which the user belongs + // **Added In:** 2012271618 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` +} + +func (m UserExtOAuth2ClientCredentials) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UserExtOAuth2ClientCredentials) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_password_verifiers.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_password_verifiers.go new file mode 100644 index 00000000000..e937d104f55 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_password_verifiers.go @@ -0,0 +1,74 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UserExtPasswordVerifiers Password Verifiers for DB User. +// **Added In:** 18.2.2 +// **SCIM++ Properties:** +// - idcsCompositeKey: [type] +// - idcsSearchable: true +// - multiValued: true +// - mutability: readOnly +// - required: false +// - returned: request +// - type: complex +// - uniqueness: none +type UserExtPasswordVerifiers struct { + + // Type of database password verifier (for example, MR-SHA512 or SSHA). + // **Added In:** 18.2.2 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Type *string `mandatory:"true" json:"type"` + + // Hash value of database password verifier. + // **Added In:** 18.2.2 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - idcsSensitive: none + // - multiValued: false + // - mutability: readOnly + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` +} + +func (m UserExtPasswordVerifiers) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UserExtPasswordVerifiers) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_preferred_device.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_preferred_device.go new file mode 100644 index 00000000000..aa48cabf8cd --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_preferred_device.go @@ -0,0 +1,85 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UserExtPreferredDevice User preferred device +// **Added In:** 18.3.6 +// **SCIM++ Properties:** +// - caseExact: false +// - idcsSearchable: true +// - multiValued: false +// - mutability: readWrite +// - required: false +// - returned: default +// - type: complex +// - uniqueness: none +type UserExtPreferredDevice struct { + + // The identifier of the User's preferred device + // **Added In:** 18.3.6 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` + + // The URI that corresponds to the device resource + // **Added In:** 18.3.6 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` + + // Device display name + // **Added In:** 18.3.6 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Display *string `mandatory:"false" json:"display"` +} + +func (m UserExtPreferredDevice) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UserExtPreferredDevice) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_realm_users.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_realm_users.go new file mode 100644 index 00000000000..93753c452b2 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_realm_users.go @@ -0,0 +1,91 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UserExtRealmUsers A list of kerberos realm users for an OCI IAM User +// **SCIM++ Properties:** +// - idcsCompositeKey: [value] +// - multiValued: true +// - mutability: readWrite +// - required: false +// - returned: request +// - type: complex +// - uniqueness: none +type UserExtRealmUsers struct { + + // id of the KerberosRealmUser associated with the OCI IAM User. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` + + // The URI of the corresponding KerberosRealmUser resource associated with the OCI IAM User. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` + + // Principal Name of the KerberosRealmUser associated with the OCI IAM User. + // **SCIM++ Properties:** + // - idcsPii: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + PrincipalName *string `mandatory:"false" json:"principalName"` + + // Realm Name for the KerberosRealmUser associated with the OCI IAM User. + // **SCIM++ Properties:** + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + RealmName *string `mandatory:"false" json:"realmName"` +} + +func (m UserExtRealmUsers) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UserExtRealmUsers) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_recovery_locked.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_recovery_locked.go new file mode 100644 index 00000000000..664ad87a29a --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_recovery_locked.go @@ -0,0 +1,71 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UserExtRecoveryLocked A complex attribute that indicates an password recovery is locked (blocking new sessions) +// **Added In:** 19.1.4 +// **SCIM++ Properties:** +// - idcsSearchable: false +// - multiValued: false +// - mutability: readWrite +// - required: false +// - returned: default +// - type: complex +// - uniqueness: none +type UserExtRecoveryLocked struct { + + // Indicates that the rev is locked + // **Added In:** 19.1.4 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + On *bool `mandatory:"false" json:"on"` + + // The date and time that the current resource was locked + // **Added In:** 19.1.4 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: dateTime + // - uniqueness: none + LockDate *string `mandatory:"false" json:"lockDate"` +} + +func (m UserExtRecoveryLocked) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UserExtRecoveryLocked) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_risk_scores.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_risk_scores.go new file mode 100644 index 00000000000..c169e0d053b --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_risk_scores.go @@ -0,0 +1,186 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UserExtRiskScores The risk score pertaining to the user. +// **Added In:** 18.1.6 +// **SCIM++ Properties:** +// - caseExact: false +// - idcsCompositeKey: [value] +// - multiValued: true +// - mutability: readWrite +// - required: false +// - returned: request +// - type: complex +// - uniqueness: none +type UserExtRiskScores struct { + + // Risk Provider Profile: Identifier for the provider service from which the risk score was received. + // **Added In:** 18.1.6 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: always + // - type: string + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` + + // Risk Score value + // **Added In:** 18.1.6 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: always + // - type: integer + // - uniqueness: none + Score *int `mandatory:"true" json:"score"` + + // Risk Level + // **Added In:** 18.1.6 + // **SCIM++ Properties:** + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: always + // - type: string + // - uniqueness: none + RiskLevel UserExtRiskScoresRiskLevelEnum `mandatory:"true" json:"riskLevel"` + + // Last update timestamp for the risk score + // **Added In:** 18.1.6 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: always + // - type: dateTime + // - uniqueness: none + LastUpdateTimestamp *string `mandatory:"true" json:"lastUpdateTimestamp"` + + // Risk Provider Profile URI: URI that corresponds to risk source identifier. + // **Added In:** 18.1.6 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: always + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` + + // Risk Provider Profile Source + // **Added In:** 18.1.6 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: always + // - type: string + // - uniqueness: none + Source *string `mandatory:"false" json:"source"` + + // Risk Provider Profile status + // **Added In:** 18.1.6 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: always + // - type: string + // - uniqueness: none + Status *string `mandatory:"false" json:"status"` +} + +func (m UserExtRiskScores) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UserExtRiskScores) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingUserExtRiskScoresRiskLevelEnum(string(m.RiskLevel)); !ok && m.RiskLevel != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for RiskLevel: %s. Supported values are: %s.", m.RiskLevel, strings.Join(GetUserExtRiskScoresRiskLevelEnumStringValues(), ","))) + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// UserExtRiskScoresRiskLevelEnum Enum with underlying type: string +type UserExtRiskScoresRiskLevelEnum string + +// Set of constants representing the allowable values for UserExtRiskScoresRiskLevelEnum +const ( + UserExtRiskScoresRiskLevelLow UserExtRiskScoresRiskLevelEnum = "LOW" + UserExtRiskScoresRiskLevelMedium UserExtRiskScoresRiskLevelEnum = "MEDIUM" + UserExtRiskScoresRiskLevelHigh UserExtRiskScoresRiskLevelEnum = "HIGH" +) + +var mappingUserExtRiskScoresRiskLevelEnum = map[string]UserExtRiskScoresRiskLevelEnum{ + "LOW": UserExtRiskScoresRiskLevelLow, + "MEDIUM": UserExtRiskScoresRiskLevelMedium, + "HIGH": UserExtRiskScoresRiskLevelHigh, +} + +var mappingUserExtRiskScoresRiskLevelEnumLowerCase = map[string]UserExtRiskScoresRiskLevelEnum{ + "low": UserExtRiskScoresRiskLevelLow, + "medium": UserExtRiskScoresRiskLevelMedium, + "high": UserExtRiskScoresRiskLevelHigh, +} + +// GetUserExtRiskScoresRiskLevelEnumValues Enumerates the set of values for UserExtRiskScoresRiskLevelEnum +func GetUserExtRiskScoresRiskLevelEnumValues() []UserExtRiskScoresRiskLevelEnum { + values := make([]UserExtRiskScoresRiskLevelEnum, 0) + for _, v := range mappingUserExtRiskScoresRiskLevelEnum { + values = append(values, v) + } + return values +} + +// GetUserExtRiskScoresRiskLevelEnumStringValues Enumerates the set of values in String for UserExtRiskScoresRiskLevelEnum +func GetUserExtRiskScoresRiskLevelEnumStringValues() []string { + return []string{ + "LOW", + "MEDIUM", + "HIGH", + } +} + +// GetMappingUserExtRiskScoresRiskLevelEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingUserExtRiskScoresRiskLevelEnum(val string) (UserExtRiskScoresRiskLevelEnum, bool) { + enum, ok := mappingUserExtRiskScoresRiskLevelEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_sec_questions.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_sec_questions.go new file mode 100644 index 00000000000..b26e83b4a82 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_sec_questions.go @@ -0,0 +1,93 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UserExtSecQuestions Security question and answers provided by end-user for Account recovery and/or MFA. While setting up security questions, end-user can also provide hint along with answer. +// **SCIM++ Properties:** +// - idcsCompositeKey: [value] +// - multiValued: true +// - mutability: readWrite +// - required: false +// - returned: request +// - type: complex +// - uniqueness: none +type UserExtSecQuestions struct { + + // Id of the question selected by user while setting up Security Question. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: always + // - type: string + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` + + // Answer provided by an user for a security question. + // **SCIM++ Properties:** + // - idcsCsvAttributeName: Answer + // - idcsSearchable: false + // - idcsSensitive: hash + // - multiValued: false + // - mutability: writeOnly + // - required: true + // - returned: never + // - type: string + // - uniqueness: none + // - idcsPii: true + Answer *string `mandatory:"true" json:"answer"` + + // The URI of the corresponding SecurityQuestion resource + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` + + // Hint for an answer given by user while setting up Security Question. + // **SCIM++ Properties:** + // - caseExact: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + HintText *string `mandatory:"false" json:"hintText"` +} + +func (m UserExtSecQuestions) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UserExtSecQuestions) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_self_registration_profile.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_self_registration_profile.go new file mode 100644 index 00000000000..785bd4cb0fd --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_self_registration_profile.go @@ -0,0 +1,79 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UserExtSelfRegistrationProfile Self registration profile used when user is self registered. +// **SCIM++ Properties:** +// - idcsSearchable: true +// - multiValued: false +// - mutability: immutable +// - required: true +// - returned: request +// - type: complex +// - uniqueness: none +type UserExtSelfRegistrationProfile struct { + + // Self Registration Profile Id + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: true + // - returned: always + // - type: string + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` + + // URI of the profile. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` + + // A human readable name, primarily used for display purposes. READ-ONLY. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + Display *string `mandatory:"false" json:"display"` +} + +func (m UserExtSelfRegistrationProfile) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UserExtSelfRegistrationProfile) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_smtp_credentials.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_smtp_credentials.go new file mode 100644 index 00000000000..e27335c4e9d --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_smtp_credentials.go @@ -0,0 +1,85 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UserExtSmtpCredentials A list of smtp credentials corresponding to user. +// **Added In:** 2012271618 +// **SCIM++ Properties:** +// - idcsCompositeKey: [value] +// - idcsSearchable: true +// - multiValued: true +// - mutability: readOnly +// - required: false +// - returned: request +// - type: complex +// - uniqueness: none +type UserExtSmtpCredentials struct { + + // The identifier of the User's smtp credential. + // **Added In:** 2012271618 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: always + // - type: string + // - uniqueness: none + Value *string `mandatory:"false" json:"value"` + + // Ocid of the User's auth token. + // **Added In:** 2012271618 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: always + // - type: string + // - uniqueness: none + Ocid *string `mandatory:"false" json:"ocid"` + + // The URI of the corresponding SmtpCredential resource to which the user belongs + // **Added In:** 2012271618 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` +} + +func (m UserExtSmtpCredentials) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UserExtSmtpCredentials) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_social_accounts.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_social_accounts.go new file mode 100644 index 00000000000..9c9f43b1df4 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_social_accounts.go @@ -0,0 +1,70 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UserExtSocialAccounts Description: +// **SCIM++ Properties:** +// - idcsCompositeKey: [value] +// - idcsSearchable: true +// - multiValued: true +// - mutability: readOnly +// - required: false +// - returned: request +// - idcsPii: true +// - type: complex +// - uniqueness: none +type UserExtSocialAccounts struct { + Value *string `mandatory:"true" json:"value"` + + // A human readable name, primarily used for display purposes. READ-ONLY. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Display *string `mandatory:"false" json:"display"` + + // The URI of the corresponding SocialAccount resource linked with the user + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` +} + +func (m UserExtSocialAccounts) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UserExtSocialAccounts) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_support_accounts.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_support_accounts.go new file mode 100644 index 00000000000..9b0a392c2ea --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_support_accounts.go @@ -0,0 +1,111 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UserExtSupportAccounts A list of Support Accounts corresponding to user. +// **Added In:** 2103141444 +// **SCIM++ Properties:** +// - idcsCompositeKey: [value] +// - idcsSearchable: true +// - multiValued: true +// - mutability: readOnly +// - required: false +// - returned: request +// - type: complex +// - uniqueness: none +type UserExtSupportAccounts struct { + + // The identifier of the User's support Account. + // **Added In:** 2103141444 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: always + // - type: string + // - uniqueness: none + Value *string `mandatory:"false" json:"value"` + + // User Support Account Provider + // **Added In:** 2103141444 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: always + // - type: string + // - uniqueness: none + Provider *string `mandatory:"false" json:"provider"` + + // User Support User Id + // **Added In:** 2103141444 + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: always + // - type: string + // - uniqueness: none + UserId *string `mandatory:"false" json:"userId"` + + // Ocid of the User's Support Account. + // **Added In:** 2103141444 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: always + // - type: string + // - uniqueness: none + Ocid *string `mandatory:"false" json:"ocid"` + + // The URI of the corresponding Support Account resource to which the user belongs + // **Added In:** 2103141444 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` +} + +func (m UserExtSupportAccounts) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UserExtSupportAccounts) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_synced_from_app.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_synced_from_app.go new file mode 100644 index 00000000000..8d0365fd8a0 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_synced_from_app.go @@ -0,0 +1,147 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UserExtSyncedFromApp Managed App or an Identity Source from where the user is synced. If enabled, this Managed App or Identity Source can be used for performing delegated authentication. +// **Added In:** 18.2.6 +// **SCIM++ Properties:** +// - idcsCompositeKey: [value] +// - idcsSearchable: true +// - multiValued: false +// - mutability: readOnly +// - required: false +// - returned: default +// - type: complex +// - uniqueness: none +type UserExtSyncedFromApp struct { + + // App identifier + // **Added In:** 18.2.6 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` + + // A label that indicates whether this is an App or IdentitySource. + // **Added In:** 18.2.6 + // **SCIM++ Properties:** + // - idcsDefaultValue: IdentitySource + // - idcsSearchable: false + // - multiValued: false + // - mutability: immutable + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Type UserExtSyncedFromAppTypeEnum `mandatory:"true" json:"type"` + + // App URI + // **Added In:** 18.2.6 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` + + // App Display Name + // **Added In:** 18.2.6 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Display *string `mandatory:"false" json:"display"` +} + +func (m UserExtSyncedFromApp) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UserExtSyncedFromApp) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingUserExtSyncedFromAppTypeEnum(string(m.Type)); !ok && m.Type != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Type: %s. Supported values are: %s.", m.Type, strings.Join(GetUserExtSyncedFromAppTypeEnumStringValues(), ","))) + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// UserExtSyncedFromAppTypeEnum Enum with underlying type: string +type UserExtSyncedFromAppTypeEnum string + +// Set of constants representing the allowable values for UserExtSyncedFromAppTypeEnum +const ( + UserExtSyncedFromAppTypeIdentitysource UserExtSyncedFromAppTypeEnum = "IdentitySource" + UserExtSyncedFromAppTypeApp UserExtSyncedFromAppTypeEnum = "App" + UserExtSyncedFromAppTypeIdentityprovider UserExtSyncedFromAppTypeEnum = "IdentityProvider" +) + +var mappingUserExtSyncedFromAppTypeEnum = map[string]UserExtSyncedFromAppTypeEnum{ + "IdentitySource": UserExtSyncedFromAppTypeIdentitysource, + "App": UserExtSyncedFromAppTypeApp, + "IdentityProvider": UserExtSyncedFromAppTypeIdentityprovider, +} + +var mappingUserExtSyncedFromAppTypeEnumLowerCase = map[string]UserExtSyncedFromAppTypeEnum{ + "identitysource": UserExtSyncedFromAppTypeIdentitysource, + "app": UserExtSyncedFromAppTypeApp, + "identityprovider": UserExtSyncedFromAppTypeIdentityprovider, +} + +// GetUserExtSyncedFromAppTypeEnumValues Enumerates the set of values for UserExtSyncedFromAppTypeEnum +func GetUserExtSyncedFromAppTypeEnumValues() []UserExtSyncedFromAppTypeEnum { + values := make([]UserExtSyncedFromAppTypeEnum, 0) + for _, v := range mappingUserExtSyncedFromAppTypeEnum { + values = append(values, v) + } + return values +} + +// GetUserExtSyncedFromAppTypeEnumStringValues Enumerates the set of values in String for UserExtSyncedFromAppTypeEnum +func GetUserExtSyncedFromAppTypeEnumStringValues() []string { + return []string{ + "IdentitySource", + "App", + "IdentityProvider", + } +} + +// GetMappingUserExtSyncedFromAppTypeEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingUserExtSyncedFromAppTypeEnum(val string) (UserExtSyncedFromAppTypeEnum, bool) { + enum, ok := mappingUserExtSyncedFromAppTypeEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_terms_of_use_consents.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_terms_of_use_consents.go new file mode 100644 index 00000000000..4ae6bdea0e2 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_terms_of_use_consents.go @@ -0,0 +1,60 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UserExtTermsOfUseConsents Description: +// **Added In:** 18.2.6 +// **SCIM++ Properties:** +// - idcsCompositeKey: [value] +// - idcsSearchable: true +// - multiValued: true +// - mutability: readWrite +// - required: false +// - returned: request +// - type: complex +// - uniqueness: none +type UserExtTermsOfUseConsents struct { + Value *string `mandatory:"true" json:"value"` + + // The URI of the corresponding TermsOfUseConsent resource linked with the user + // **Added In:** 18.2.6 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` +} + +func (m UserExtTermsOfUseConsents) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UserExtTermsOfUseConsents) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_trusted_user_agents.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_trusted_user_agents.go new file mode 100644 index 00000000000..bff6e4306ec --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_trusted_user_agents.go @@ -0,0 +1,83 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UserExtTrustedUserAgents A list of trusted User Agents owned by this user. Multi-Factored Authentication uses Trusted User Agents to authenticate users. A User Agent is software application that a user uses to issue requests. For example, a User Agent could be a particular browser (possibly one of several executing on a desktop or laptop) or a particular mobile application (again, oneof several executing on a particular mobile device). A User Agent is trusted once the Multi-Factor Authentication has verified it in some way. +// **Added In:** 18.3.6 +// **SCIM++ Properties:** +// - idcsCompositeKey: [value] +// - multiValued: true +// - mutability: readWrite +// - required: false +// - returned: request +// - type: complex +// - uniqueness: none +type UserExtTrustedUserAgents struct { + + // The identifier of the User's trusted user agent. + // **Added In:** 18.3.6 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: always + // - type: string + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` + + // The URI of the corresponding trusted user agent resource. + // **Added In:** 18.3.6 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` + + // A human-readable identifier for this trusted user agent, used primarily for display purposes. READ-ONLY. + // **Added In:** 18.3.6 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Display *string `mandatory:"false" json:"display"` +} + +func (m UserExtTrustedUserAgents) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UserExtTrustedUserAgents) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_user_token.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_user_token.go new file mode 100644 index 00000000000..68f0b3890b5 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ext_user_token.go @@ -0,0 +1,71 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UserExtUserToken User token returned if userFlowControlledByExternalClient is true +// **Added In:** 18.4.2 +// **SCIM++ Properties:** +// - caseExact: false +// - multiValued: false +// - mutability: readOnly +// - required: false +// - returned: default +// - type: complex +// - uniqueness: none +type UserExtUserToken struct { + + // User Token identifier + // **Added In:** 18.4.2 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Value *string `mandatory:"false" json:"value"` + + // User Token URI + // **Added In:** 18.4.2 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` +} + +func (m UserExtUserToken) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UserExtUserToken) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_groups.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_groups.go new file mode 100644 index 00000000000..2ad61b7f678 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_groups.go @@ -0,0 +1,187 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UserGroups A list of groups that the user belongs to, either thorough direct membership, nested groups, or dynamically calculated +type UserGroups struct { + + // The identifier of the User's group. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: true + // - returned: always + // - type: string + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` + + // Ocid of the User's group. + // **Added In:** 2102181953 + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Ocid *string `mandatory:"false" json:"ocid"` + + // The URI of the corresponding Group resource to which the user belongs + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` + + // A human readable name, primarily used for display purposes. READ-ONLY. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Display *string `mandatory:"false" json:"display"` + + // A human readable name for Group as defined by the Service Consumer. READ-ONLY. + // **Added In:** 2011192329 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + NonUniqueDisplay *string `mandatory:"false" json:"nonUniqueDisplay"` + + // An identifier for the Resource as defined by the Service Consumer. READ-ONLY. + // **Added In:** 2011192329 + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + ExternalId *string `mandatory:"false" json:"externalId"` + + // A label indicating the attribute's function; e.g., 'direct' or 'indirect'. + // **SCIM++ Properties:** + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + Type UserGroupsTypeEnum `mandatory:"false" json:"type,omitempty"` + + // Membership Ocid + // **Added In:** 2103141444 + // **SCIM++ Properties:** + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + MembershipOcid *string `mandatory:"false" json:"membershipOcid"` + + // Date when the member is Added to the group + // **Added In:** 2105200541 + // **SCIM++ Properties:** + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: dateTime + // - uniqueness: none + DateAdded *string `mandatory:"false" json:"dateAdded"` +} + +func (m UserGroups) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UserGroups) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if _, ok := GetMappingUserGroupsTypeEnum(string(m.Type)); !ok && m.Type != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Type: %s. Supported values are: %s.", m.Type, strings.Join(GetUserGroupsTypeEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// UserGroupsTypeEnum Enum with underlying type: string +type UserGroupsTypeEnum string + +// Set of constants representing the allowable values for UserGroupsTypeEnum +const ( + UserGroupsTypeDirect UserGroupsTypeEnum = "direct" + UserGroupsTypeIndirect UserGroupsTypeEnum = "indirect" +) + +var mappingUserGroupsTypeEnum = map[string]UserGroupsTypeEnum{ + "direct": UserGroupsTypeDirect, + "indirect": UserGroupsTypeIndirect, +} + +var mappingUserGroupsTypeEnumLowerCase = map[string]UserGroupsTypeEnum{ + "direct": UserGroupsTypeDirect, + "indirect": UserGroupsTypeIndirect, +} + +// GetUserGroupsTypeEnumValues Enumerates the set of values for UserGroupsTypeEnum +func GetUserGroupsTypeEnumValues() []UserGroupsTypeEnum { + values := make([]UserGroupsTypeEnum, 0) + for _, v := range mappingUserGroupsTypeEnum { + values = append(values, v) + } + return values +} + +// GetUserGroupsTypeEnumStringValues Enumerates the set of values in String for UserGroupsTypeEnum +func GetUserGroupsTypeEnumStringValues() []string { + return []string{ + "direct", + "indirect", + } +} + +// GetMappingUserGroupsTypeEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingUserGroupsTypeEnum(val string) (UserGroupsTypeEnum, bool) { + enum, ok := mappingUserGroupsTypeEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ims.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ims.go new file mode 100644 index 00000000000..4c4782ad0a4 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_ims.go @@ -0,0 +1,154 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UserIms User's instant messaging addresses +type UserIms struct { + + // User's instant messaging address + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` + + // A label that indicates the attribute's function--for example, 'aim', 'gtalk', or 'mobile' + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Type UserImsTypeEnum `mandatory:"true" json:"type"` + + // A human-readable name, primarily used for display purposes + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Display *string `mandatory:"false" json:"display"` + + // A Boolean value that indicates the 'primary' or preferred attribute value for this attribute--for example, the preferred messenger or primary messenger. The primary attribute value 'true' MUST appear no more than once. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + Primary *bool `mandatory:"false" json:"primary"` +} + +func (m UserIms) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UserIms) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingUserImsTypeEnum(string(m.Type)); !ok && m.Type != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Type: %s. Supported values are: %s.", m.Type, strings.Join(GetUserImsTypeEnumStringValues(), ","))) + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// UserImsTypeEnum Enum with underlying type: string +type UserImsTypeEnum string + +// Set of constants representing the allowable values for UserImsTypeEnum +const ( + UserImsTypeAim UserImsTypeEnum = "aim" + UserImsTypeGtalk UserImsTypeEnum = "gtalk" + UserImsTypeIcq UserImsTypeEnum = "icq" + UserImsTypeXmpp UserImsTypeEnum = "xmpp" + UserImsTypeMsn UserImsTypeEnum = "msn" + UserImsTypeSkype UserImsTypeEnum = "skype" + UserImsTypeQq UserImsTypeEnum = "qq" + UserImsTypeYahoo UserImsTypeEnum = "yahoo" +) + +var mappingUserImsTypeEnum = map[string]UserImsTypeEnum{ + "aim": UserImsTypeAim, + "gtalk": UserImsTypeGtalk, + "icq": UserImsTypeIcq, + "xmpp": UserImsTypeXmpp, + "msn": UserImsTypeMsn, + "skype": UserImsTypeSkype, + "qq": UserImsTypeQq, + "yahoo": UserImsTypeYahoo, +} + +var mappingUserImsTypeEnumLowerCase = map[string]UserImsTypeEnum{ + "aim": UserImsTypeAim, + "gtalk": UserImsTypeGtalk, + "icq": UserImsTypeIcq, + "xmpp": UserImsTypeXmpp, + "msn": UserImsTypeMsn, + "skype": UserImsTypeSkype, + "qq": UserImsTypeQq, + "yahoo": UserImsTypeYahoo, +} + +// GetUserImsTypeEnumValues Enumerates the set of values for UserImsTypeEnum +func GetUserImsTypeEnumValues() []UserImsTypeEnum { + values := make([]UserImsTypeEnum, 0) + for _, v := range mappingUserImsTypeEnum { + values = append(values, v) + } + return values +} + +// GetUserImsTypeEnumStringValues Enumerates the set of values in String for UserImsTypeEnum +func GetUserImsTypeEnumStringValues() []string { + return []string{ + "aim", + "gtalk", + "icq", + "xmpp", + "msn", + "skype", + "qq", + "yahoo", + } +} + +// GetMappingUserImsTypeEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingUserImsTypeEnum(val string) (UserImsTypeEnum, bool) { + enum, ok := mappingUserImsTypeEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_name.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_name.go new file mode 100644 index 00000000000..c402a0a9a03 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_name.go @@ -0,0 +1,121 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UserName A complex attribute that contains attributes representing the name +// **SCIM++ Properties:** +// - idcsCsvAttributeNameMappings: [[columnHeaderName:Formatted Name, mapsTo:name.formatted], [columnHeaderName:Honorific Prefix, mapsTo:name.honorificPrefix], [columnHeaderName:First Name, mapsTo:name.givenName], [columnHeaderName:Middle Name, mapsTo:name.middleName], [columnHeaderName:Last Name, mapsTo:name.familyName], [columnHeaderName:Honorific Suffix, mapsTo:name.honorificSuffix]] +// - idcsPii: true +// - multiValued: false +// - mutability: readWrite +// - required: true +// - returned: default +// - type: complex +// - uniqueness: none +type UserName struct { + + // Last name + // **SCIM++ Properties:** + // - caseExact: false + // - idcsCsvAttributeName: Last Name + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + FamilyName *string `mandatory:"true" json:"familyName"` + + // Full name + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Formatted *string `mandatory:"false" json:"formatted"` + + // First name + // **SCIM++ Properties:** + // - caseExact: false + // - idcsCsvAttributeName: First Name + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + GivenName *string `mandatory:"false" json:"givenName"` + + // Middle name + // **SCIM++ Properties:** + // - caseExact: false + // - idcsCsvAttributeName: Middle Name + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + MiddleName *string `mandatory:"false" json:"middleName"` + + // Prefix + // **SCIM++ Properties:** + // - idcsCsvAttributeName: Honorific Prefix + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + HonorificPrefix *string `mandatory:"false" json:"honorificPrefix"` + + // Suffix + // **SCIM++ Properties:** + // - idcsCsvAttributeName: Honorific Suffix + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + HonorificSuffix *string `mandatory:"false" json:"honorificSuffix"` +} + +func (m UserName) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UserName) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_password_changer.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_password_changer.go new file mode 100644 index 00000000000..47cd0995e25 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_password_changer.go @@ -0,0 +1,215 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UserPasswordChanger Schema to handle userpassword change by administrator. +type UserPasswordChanger struct { + + // REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: true + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Schemas []string `mandatory:"true" json:"schemas"` + + // Password attribute. Max length for password is controlled via Password Policy. + // **SCIM++ Properties:** + // - type: string + // - multiValued: false + // - required: true + // - mutability: writeOnly + // - returned: never + // - uniqueness: none + // - idcsSensitive: none + Password *string `mandatory:"true" json:"password"` + + // Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: always + // - type: string + // - uniqueness: global + Id *string `mandatory:"false" json:"id"` + + // Unique OCI identifier for the SCIM Resource. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: default + // - type: string + // - uniqueness: global + Ocid *string `mandatory:"false" json:"ocid"` + + Meta *Meta `mandatory:"false" json:"meta"` + + IdcsCreatedBy *IdcsCreatedBy `mandatory:"false" json:"idcsCreatedBy"` + + IdcsLastModifiedBy *IdcsLastModifiedBy `mandatory:"false" json:"idcsLastModifiedBy"` + + // Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsPreventedOperations []IdcsPreventedOperationsEnum `mandatory:"false" json:"idcsPreventedOperations,omitempty"` + + // A list of tags on this resource. + // **SCIM++ Properties:** + // - idcsCompositeKey: [key, value] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + Tags []Tags `mandatory:"false" json:"tags"` + + // A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + DeleteInProgress *bool `mandatory:"false" json:"deleteInProgress"` + + // The release number when the resource was upgraded. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsLastUpgradedInRelease *string `mandatory:"false" json:"idcsLastUpgradedInRelease"` + + // OCI Domain Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + DomainOcid *string `mandatory:"false" json:"domainOcid"` + + // OCI Compartment Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + CompartmentOcid *string `mandatory:"false" json:"compartmentOcid"` + + // OCI Tenant Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + TenancyOcid *string `mandatory:"false" json:"tenancyOcid"` + + // An identifier for the Resource as defined by the Service Consumer. The externalId may simplify identification of the Resource between Service Consumer and Service Provider by allowing the Consumer to refer to the Resource with its own identifier, obviating the need to store a local mapping between the local identifier of the Resource and the identifier used by the Service Provider. Each Resource MAY include a non-empty externalId value. The value of the externalId attribute is always issued by the Service Consumer and can never be specified by the Service Provider. The Service Provider MUST always interpret the externalId as scoped to the Service Consumer's tenant. + // **SCIM++ Properties:** + // - type: string + // - multiValued: false + // - required: false + // - mutability: readWrite + // - returned: default + // - uniqueness: none + ExternalId *string `mandatory:"false" json:"externalId"` + + // A Boolean value indicating whether or not to send email notification after password is changed. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: never + // - type: boolean + // - uniqueness: none + BypassNotification *bool `mandatory:"false" json:"bypassNotification"` + + // Specifies the EmailTemplate to be used when sending notification to the user this request is for. If specified, it overrides the default EmailTemplate for this event. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: writeOnly + // - required: false + // - returned: never + // - type: string + // - uniqueness: none + NotificationEmailTemplateId *string `mandatory:"false" json:"notificationEmailTemplateId"` + + UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser *ExtensionSelfChangeUser `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:selfChange:User"` +} + +func (m UserPasswordChanger) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UserPasswordChanger) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + for _, val := range m.IdcsPreventedOperations { + if _, ok := GetMappingIdcsPreventedOperationsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for IdcsPreventedOperations: %s. Supported values are: %s.", val, strings.Join(GetIdcsPreventedOperationsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_password_resetter.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_password_resetter.go new file mode 100644 index 00000000000..9698a892a4b --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_password_resetter.go @@ -0,0 +1,230 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UserPasswordResetter Schema to handle userpassword reset by administrator. +type UserPasswordResetter struct { + + // REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: true + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Schemas []string `mandatory:"true" json:"schemas"` + + // Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: always + // - type: string + // - uniqueness: global + Id *string `mandatory:"false" json:"id"` + + // Unique OCI identifier for the SCIM Resource. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: default + // - type: string + // - uniqueness: global + Ocid *string `mandatory:"false" json:"ocid"` + + Meta *Meta `mandatory:"false" json:"meta"` + + IdcsCreatedBy *IdcsCreatedBy `mandatory:"false" json:"idcsCreatedBy"` + + IdcsLastModifiedBy *IdcsLastModifiedBy `mandatory:"false" json:"idcsLastModifiedBy"` + + // Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsPreventedOperations []IdcsPreventedOperationsEnum `mandatory:"false" json:"idcsPreventedOperations,omitempty"` + + // A list of tags on this resource. + // **SCIM++ Properties:** + // - idcsCompositeKey: [key, value] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + Tags []Tags `mandatory:"false" json:"tags"` + + // A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + DeleteInProgress *bool `mandatory:"false" json:"deleteInProgress"` + + // The release number when the resource was upgraded. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsLastUpgradedInRelease *string `mandatory:"false" json:"idcsLastUpgradedInRelease"` + + // OCI Domain Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + DomainOcid *string `mandatory:"false" json:"domainOcid"` + + // OCI Compartment Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + CompartmentOcid *string `mandatory:"false" json:"compartmentOcid"` + + // OCI Tenant Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + TenancyOcid *string `mandatory:"false" json:"tenancyOcid"` + + // An identifier for the Resource as defined by the Service Consumer. The externalId may simplify identification of the Resource between Service Consumer and Service Provider by allowing the Consumer to refer to the Resource with its own identifier, obviating the need to store a local mapping between the local identifier of the Resource and the identifier used by the Service Provider. Each Resource MAY include a non-empty externalId value. The value of the externalId attribute is always issued by the Service Consumer and can never be specified by the Service Provider. The Service Provider MUST always interpret the externalId as scoped to the Service Consumer's tenant. + // **SCIM++ Properties:** + // - type: string + // - multiValued: false + // - required: false + // - mutability: readWrite + // - returned: default + // - uniqueness: none + ExternalId *string `mandatory:"false" json:"externalId"` + + // A Boolean value indicating whether or not to send email notification after resetting the password of the OCI IAM user. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: never + // - type: boolean + // - uniqueness: none + BypassNotification *bool `mandatory:"false" json:"bypassNotification"` + + // A Boolean value indicating whether to bypass notification and return user token to be used by an external client to control the user flow. + // **SCIM++ Properties:** + // - type: boolean + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: never + // - uniqueness: none + UserFlowControlledByExternalClient *bool `mandatory:"false" json:"userFlowControlledByExternalClient"` + + UserToken *UserPasswordResetterUserToken `mandatory:"false" json:"userToken"` + + // Specifies the EmailTemplate to be used when sending notification to the user this request is for. If specified, it overrides the default EmailTemplate for this event. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: writeOnly + // - required: false + // - returned: never + // - type: string + // - uniqueness: none + NotificationEmailTemplateId *string `mandatory:"false" json:"notificationEmailTemplateId"` + + // One time password will be returned when user does not have primary email address + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + OneTimePassword *string `mandatory:"false" json:"oneTimePassword"` + + UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser *ExtensionSelfChangeUser `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:selfChange:User"` +} + +func (m UserPasswordResetter) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UserPasswordResetter) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + for _, val := range m.IdcsPreventedOperations { + if _, ok := GetMappingIdcsPreventedOperationsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for IdcsPreventedOperations: %s. Supported values are: %s.", val, strings.Join(GetIdcsPreventedOperationsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_password_resetter_user_token.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_password_resetter_user_token.go new file mode 100644 index 00000000000..1c2f279ab19 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_password_resetter_user_token.go @@ -0,0 +1,68 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UserPasswordResetterUserToken User token returned if userFlowControlledByExternalClient is true +// **SCIM++ Properties:** +// - type: complex +// - multiValued: false +// - required: false +// - caseExact: false +// - mutability: readOnly +// - returned: default +// - uniqueness: none +type UserPasswordResetterUserToken struct { + + // User Token identifier + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Value *string `mandatory:"false" json:"value"` + + // User Token URI + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: reference + // - uniqueness: none + Ref *string `mandatory:"false" json:"$ref"` +} + +func (m UserPasswordResetterUserToken) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UserPasswordResetterUserToken) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_phone_numbers.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_phone_numbers.go new file mode 100644 index 00000000000..83844df2a80 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_phone_numbers.go @@ -0,0 +1,162 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UserPhoneNumbers Phone numbers +type UserPhoneNumbers struct { + + // User's phone number + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` + + // A label that indicates the attribute's function- for example, 'work', 'home', or 'mobile' + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Type UserPhoneNumbersTypeEnum `mandatory:"true" json:"type"` + + // A human-readable name, primarily used for display purposes. READ ONLY + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Display *string `mandatory:"false" json:"display"` + + // A Boolean value that indicates the 'primary' or preferred attribute value for this attribute--for example, the preferred phone number or primary phone number. The primary attribute value 'true' MUST appear no more than once. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + Primary *bool `mandatory:"false" json:"primary"` + + // A Boolean value that indicates if the phone number is verified. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + Verified *bool `mandatory:"false" json:"verified"` +} + +func (m UserPhoneNumbers) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UserPhoneNumbers) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingUserPhoneNumbersTypeEnum(string(m.Type)); !ok && m.Type != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Type: %s. Supported values are: %s.", m.Type, strings.Join(GetUserPhoneNumbersTypeEnumStringValues(), ","))) + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// UserPhoneNumbersTypeEnum Enum with underlying type: string +type UserPhoneNumbersTypeEnum string + +// Set of constants representing the allowable values for UserPhoneNumbersTypeEnum +const ( + UserPhoneNumbersTypeWork UserPhoneNumbersTypeEnum = "work" + UserPhoneNumbersTypeHome UserPhoneNumbersTypeEnum = "home" + UserPhoneNumbersTypeMobile UserPhoneNumbersTypeEnum = "mobile" + UserPhoneNumbersTypeFax UserPhoneNumbersTypeEnum = "fax" + UserPhoneNumbersTypePager UserPhoneNumbersTypeEnum = "pager" + UserPhoneNumbersTypeOther UserPhoneNumbersTypeEnum = "other" + UserPhoneNumbersTypeRecovery UserPhoneNumbersTypeEnum = "recovery" +) + +var mappingUserPhoneNumbersTypeEnum = map[string]UserPhoneNumbersTypeEnum{ + "work": UserPhoneNumbersTypeWork, + "home": UserPhoneNumbersTypeHome, + "mobile": UserPhoneNumbersTypeMobile, + "fax": UserPhoneNumbersTypeFax, + "pager": UserPhoneNumbersTypePager, + "other": UserPhoneNumbersTypeOther, + "recovery": UserPhoneNumbersTypeRecovery, +} + +var mappingUserPhoneNumbersTypeEnumLowerCase = map[string]UserPhoneNumbersTypeEnum{ + "work": UserPhoneNumbersTypeWork, + "home": UserPhoneNumbersTypeHome, + "mobile": UserPhoneNumbersTypeMobile, + "fax": UserPhoneNumbersTypeFax, + "pager": UserPhoneNumbersTypePager, + "other": UserPhoneNumbersTypeOther, + "recovery": UserPhoneNumbersTypeRecovery, +} + +// GetUserPhoneNumbersTypeEnumValues Enumerates the set of values for UserPhoneNumbersTypeEnum +func GetUserPhoneNumbersTypeEnumValues() []UserPhoneNumbersTypeEnum { + values := make([]UserPhoneNumbersTypeEnum, 0) + for _, v := range mappingUserPhoneNumbersTypeEnum { + values = append(values, v) + } + return values +} + +// GetUserPhoneNumbersTypeEnumStringValues Enumerates the set of values in String for UserPhoneNumbersTypeEnum +func GetUserPhoneNumbersTypeEnumStringValues() []string { + return []string{ + "work", + "home", + "mobile", + "fax", + "pager", + "other", + "recovery", + } +} + +// GetMappingUserPhoneNumbersTypeEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingUserPhoneNumbersTypeEnum(val string) (UserPhoneNumbersTypeEnum, bool) { + enum, ok := mappingUserPhoneNumbersTypeEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_photos.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_photos.go new file mode 100644 index 00000000000..bc64b5def0b --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_photos.go @@ -0,0 +1,126 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UserPhotos URLs of photos for the User +type UserPhotos struct { + + // URL of a photo for the User + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: reference + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` + + // A label indicating the attribute's function; e.g., 'photo' or 'thumbnail'. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Type UserPhotosTypeEnum `mandatory:"true" json:"type"` + + // A human readable name, primarily used for display purposes. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Display *string `mandatory:"false" json:"display"` + + // A Boolean value indicating the 'primary' or preferred attribute value for this attribute, e.g., the preferred photo or thumbnail. The primary attribute value 'true' MUST appear no more than once. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + Primary *bool `mandatory:"false" json:"primary"` +} + +func (m UserPhotos) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UserPhotos) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingUserPhotosTypeEnum(string(m.Type)); !ok && m.Type != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Type: %s. Supported values are: %s.", m.Type, strings.Join(GetUserPhotosTypeEnumStringValues(), ","))) + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// UserPhotosTypeEnum Enum with underlying type: string +type UserPhotosTypeEnum string + +// Set of constants representing the allowable values for UserPhotosTypeEnum +const ( + UserPhotosTypePhoto UserPhotosTypeEnum = "photo" + UserPhotosTypeThumbnail UserPhotosTypeEnum = "thumbnail" +) + +var mappingUserPhotosTypeEnum = map[string]UserPhotosTypeEnum{ + "photo": UserPhotosTypePhoto, + "thumbnail": UserPhotosTypeThumbnail, +} + +var mappingUserPhotosTypeEnumLowerCase = map[string]UserPhotosTypeEnum{ + "photo": UserPhotosTypePhoto, + "thumbnail": UserPhotosTypeThumbnail, +} + +// GetUserPhotosTypeEnumValues Enumerates the set of values for UserPhotosTypeEnum +func GetUserPhotosTypeEnumValues() []UserPhotosTypeEnum { + values := make([]UserPhotosTypeEnum, 0) + for _, v := range mappingUserPhotosTypeEnum { + values = append(values, v) + } + return values +} + +// GetUserPhotosTypeEnumStringValues Enumerates the set of values in String for UserPhotosTypeEnum +func GetUserPhotosTypeEnumStringValues() []string { + return []string{ + "photo", + "thumbnail", + } +} + +// GetMappingUserPhotosTypeEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingUserPhotosTypeEnum(val string) (UserPhotosTypeEnum, bool) { + enum, ok := mappingUserPhotosTypeEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_roles.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_roles.go new file mode 100644 index 00000000000..fa61802f989 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_roles.go @@ -0,0 +1,82 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UserRoles A list of roles for the User that collectively represent who the User is; e.g., 'Student', 'Faculty'. +type UserRoles struct { + + // The value of a role. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Value *string `mandatory:"true" json:"value"` + + // A label indicating the attribute's function. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Type *string `mandatory:"true" json:"type"` + + // A human readable name, primarily used for display purposes. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Display *string `mandatory:"false" json:"display"` + + // A Boolean value indicating the 'primary' or preferred attribute value for this attribute. The primary attribute value 'true' MUST appear no more than once. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + Primary *bool `mandatory:"false" json:"primary"` +} + +func (m UserRoles) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UserRoles) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_search_request.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_search_request.go new file mode 100644 index 00000000000..b7444664e13 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_search_request.go @@ -0,0 +1,70 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UserSearchRequest Clients MAY execute queries without passing parameters on the URL by using the HTTP POST verb combined with the **.search** path extension. The inclusion of **.search** on the end of a valid SCIM endpoint SHALL be used to indicate the HTTP POST verb is intended to be a query operation. To create a new query result set, a SCIM client sends an HTTP POST request to the desired SCIM resource endpoint (ending in **.search**). The body of the POST request MAY include any of the parameters. +type UserSearchRequest struct { + + // The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. Query requests MUST be identified using the following URI: "urn:ietf:params:scim:api:messages:2.0:SearchRequest" REQUIRED. + Schemas []string `mandatory:"true" json:"schemas"` + + // A multi-valued list of strings indicating the names of resource attributes to return in the response overriding the set of attributes that would be returned by default. Attribute names MUST be in standard attribute notation (Section 3.10 (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.10)) form. See (additional retrieval query parameters (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.9)). OPTIONAL. + Attributes []string `mandatory:"false" json:"attributes"` + + // A multi-valued list of strings indicating the return type of attribute definition. The specified set of attributes can be fetched by the return type of the attribute. One or more values can be given together to fetch more than one group of attributes. If "attributes" query parameter is also available, union of the two is fetched. Valid values : all, always, never, request, default. Values are case-insensitive. OPTIONAL. + AttributeSets []AttributeSetsEnum `mandatory:"false" json:"attributeSets,omitempty"` + + // The filter string that is used to request a subset of resources. The filter string MUST be a valid filter expression. See Section 3.4.2.2 (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.2). OPTIONAL. + Filter *string `mandatory:"false" json:"filter"` + + // A string that indicates the attribute whose value SHALL be used to order the returned responses. The sortBy attribute MUST be in standard attribute notation (Section 3.10 (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.10)) form. See Sorting section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.3). OPTIONAL. + SortBy *string `mandatory:"false" json:"sortBy"` + + // A string that indicates the order in which the sortBy parameter is applied. Allowed values are "ascending" and "descending". See (Sorting Section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.3)). OPTIONAL. + SortOrder SortOrderEnum `mandatory:"false" json:"sortOrder,omitempty"` + + // An integer that indicates the 1-based index of the first query result. See Pagination Section (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.4). OPTIONAL. + StartIndex *int `mandatory:"false" json:"startIndex"` + + // An integer that indicates the desired maximum number of query results per page. 1000 is the largest value that you can use. See the Pagination section of the System for Cross-Domain Identity Management Protocol specification for more information. (Section 3.4.2.4 (https://tools.ietf.org/html/draft-ietf-scim-api-19#section-3.4.2.4)). OPTIONAL. + Count *int `mandatory:"false" json:"count"` +} + +func (m UserSearchRequest) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UserSearchRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + for _, val := range m.AttributeSets { + if _, ok := GetMappingAttributeSetsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for AttributeSets: %s. Supported values are: %s.", val, strings.Join(GetAttributeSetsEnumStringValues(), ","))) + } + } + + if _, ok := GetMappingSortOrderEnum(string(m.SortOrder)); !ok && m.SortOrder != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for SortOrder: %s. Supported values are: %s.", m.SortOrder, strings.Join(GetSortOrderEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_status_changer.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_status_changer.go new file mode 100644 index 00000000000..6d63faefc80 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_status_changer.go @@ -0,0 +1,194 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UserStatusChanger Schema to handle user status change by administrator. +type UserStatusChanger struct { + + // REQUIRED. The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. This specification defines URIs for User, Group, and a standard \"enterprise\" extension. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: true + // - mutability: readWrite + // - required: true + // - returned: default + // - type: string + // - uniqueness: none + Schemas []string `mandatory:"true" json:"schemas"` + + // Unique identifier for the SCIM Resource as defined by the Service Provider. Each representation of the Resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of Resources. It MUST be a stable, non-reassignable identifier that does not change when the same Resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. bulkId: is a reserved keyword and MUST NOT be used in the unique identifier. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: always + // - type: string + // - uniqueness: global + Id *string `mandatory:"false" json:"id"` + + // Unique OCI identifier for the SCIM Resource. + // **SCIM++ Properties:** + // - caseExact: true + // - idcsSearchable: true + // - multiValued: false + // - mutability: immutable + // - required: false + // - returned: default + // - type: string + // - uniqueness: global + Ocid *string `mandatory:"false" json:"ocid"` + + Meta *Meta `mandatory:"false" json:"meta"` + + IdcsCreatedBy *IdcsCreatedBy `mandatory:"false" json:"idcsCreatedBy"` + + IdcsLastModifiedBy *IdcsLastModifiedBy `mandatory:"false" json:"idcsLastModifiedBy"` + + // Each value of this attribute specifies an operation that only an internal client may perform on this particular resource. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: true + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsPreventedOperations []IdcsPreventedOperationsEnum `mandatory:"false" json:"idcsPreventedOperations,omitempty"` + + // A list of tags on this resource. + // **SCIM++ Properties:** + // - idcsCompositeKey: [key, value] + // - idcsSearchable: true + // - multiValued: true + // - mutability: readWrite + // - required: false + // - returned: request + // - type: complex + // - uniqueness: none + Tags []Tags `mandatory:"false" json:"tags"` + + // A boolean flag indicating this resource in the process of being deleted. Usually set to true when synchronous deletion of the resource would take too long. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + DeleteInProgress *bool `mandatory:"false" json:"deleteInProgress"` + + // The release number when the resource was upgraded. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: request + // - type: string + // - uniqueness: none + IdcsLastUpgradedInRelease *string `mandatory:"false" json:"idcsLastUpgradedInRelease"` + + // OCI Domain Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + DomainOcid *string `mandatory:"false" json:"domainOcid"` + + // OCI Compartment Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + CompartmentOcid *string `mandatory:"false" json:"compartmentOcid"` + + // OCI Tenant Id (ocid) in which the resource lives. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: false + // - multiValued: false + // - mutability: readOnly + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + TenancyOcid *string `mandatory:"false" json:"tenancyOcid"` + + // An identifier for the Resource as defined by the Service Consumer. The externalId may simplify identification of the Resource between Service Consumer and Service Provider by allowing the Consumer to refer to the Resource with its own identifier, obviating the need to store a local mapping between the local identifier of the Resource and the identifier used by the Service Provider. Each Resource MAY include a non-empty externalId value. The value of the externalId attribute is always issued by the Service Consumer and can never be specified by the Service Provider. The Service Provider MUST always interpret the externalId as scoped to the Service Consumer's tenant. + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + ExternalId *string `mandatory:"false" json:"externalId"` + + // User status + // **SCIM++ Properties:** + // - caseExact: false + // - idcsSearchable: true + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + Active *bool `mandatory:"false" json:"active"` + + UrnIetfParamsScimSchemasOracleIdcsExtensionSelfChangeUser *ExtensionSelfChangeUser `mandatory:"false" json:"urn:ietf:params:scim:schemas:oracle:idcs:extension:selfChange:User"` +} + +func (m UserStatusChanger) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UserStatusChanger) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + for _, val := range m.IdcsPreventedOperations { + if _, ok := GetMappingIdcsPreventedOperationsEnum(string(val)); !ok && val != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for IdcsPreventedOperations: %s. Supported values are: %s.", val, strings.Join(GetIdcsPreventedOperationsEnumStringValues(), ","))) + } + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_x509_certificates.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_x509_certificates.go new file mode 100644 index 00000000000..2d14be6597c --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/user_x509_certificates.go @@ -0,0 +1,81 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// UserX509Certificates A list of certificates issued to the User. +type UserX509Certificates struct { + + // The value of a X509 certificate. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: true + // - returned: default + // - type: binary + // - uniqueness: none + Value *interface{} `mandatory:"true" json:"value"` + + // A human readable name, primarily used for display purposes. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Display *string `mandatory:"false" json:"display"` + + // A label indicating the attribute's function. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: string + // - uniqueness: none + Type *string `mandatory:"false" json:"type"` + + // A Boolean value indicating the 'primary' or preferred attribute value for this attribute. The primary attribute value 'true' MUST appear no more than once. + // **SCIM++ Properties:** + // - idcsSearchable: false + // - multiValued: false + // - mutability: readWrite + // - required: false + // - returned: default + // - type: boolean + // - uniqueness: none + Primary *bool `mandatory:"false" json:"primary"` +} + +func (m UserX509Certificates) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m UserX509Certificates) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/users.go b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/users.go new file mode 100644 index 00000000000..6cbd69bc8f1 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/identitydomains/users.go @@ -0,0 +1,52 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Identity Domains API +// +// Use the Identity Domains API to manage resources within an identity domain, for example, users, dynamic resource groups, groups, and identity providers. For information about managing resources within identity domains, see Identity and Access Management (with identity domains) (https://docs.oracle.com/iaas/Content/Identity/home.htm). This REST API is SCIM compliant. +// Use the table of contents and search tool to explore the Identity Domains API. +// + +package identitydomains + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// Users The SCIM protocol defines a standard set of query parameters that can be used to filter, sort, and paginate to return zero or more resources in a query response. Queries MAY be made against a single resource or a resource type endpoint (e.g., /Users), or the service provider Base URI. +type Users struct { + + // The schemas attribute is an array of Strings which allows introspection of the supported schema version for a SCIM representation as well any schema extensions supported by that representation. Each String value must be a unique URI. All representations of SCIM schema MUST include a non-zero value array with value(s) of the URIs supported by that representation. Duplicate values MUST NOT be included. Value order is not specified and MUST not impact behavior. REQUIRED. + Schemas []string `mandatory:"true" json:"schemas"` + + // The total number of results returned by the list or query operation. The value may be larger than the number of resources returned such as when returning a single page of results where multiple pages are available. REQUIRED. + TotalResults *int `mandatory:"true" json:"totalResults"` + + // A multi-valued list of complex objects containing the requested resources. This MAY be a subset of the full set of resources if pagination is requested. REQUIRED if "totalResults" is non-zero. + Resources []User `mandatory:"true" json:"Resources"` + + // The 1-based index of the first result in the current set of list results. REQUIRED when partial results returned due to pagination. + StartIndex *int `mandatory:"true" json:"startIndex"` + + // The number of resources returned in a list response page. REQUIRED when partial results returned due to pagination. + ItemsPerPage *int `mandatory:"true" json:"itemsPerPage"` +} + +func (m Users) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m Users) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/opsi/create_pe_comanaged_exadata_vmcluster_details.go b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/create_pe_comanaged_exadata_vmcluster_details.go index 843e669a070..d992751b3d0 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/opsi/create_pe_comanaged_exadata_vmcluster_details.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/create_pe_comanaged_exadata_vmcluster_details.go @@ -17,18 +17,18 @@ import ( "strings" ) -// CreatePeComanagedExadataVmclusterDetails The information of the VM Cluster which contains databases. +// CreatePeComanagedExadataVmclusterDetails The information of the VM Cluster which contains databases. Either an opsiPrivateEndpointId or dbmPrivateEndpointId must be specified. If the dbmPrivateEndpointId is specified, a new Operations Insights private endpoint will be created. type CreatePeComanagedExadataVmclusterDetails struct { // The OCID (https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VM Cluster. VmclusterId *string `mandatory:"true" json:"vmclusterId"` - // The OCID (https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the OPSI private endpoint - OpsiPrivateEndpointId *string `mandatory:"true" json:"opsiPrivateEndpointId"` - // The OCID (https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment. CompartmentId *string `mandatory:"true" json:"compartmentId"` + // The OCID (https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the OPSI private endpoint + OpsiPrivateEndpointId *string `mandatory:"false" json:"opsiPrivateEndpointId"` + // The databases that belong to the VM Cluster MemberDatabaseDetails []CreatePeComanagedDatabaseInsightDetails `mandatory:"false" json:"memberDatabaseDetails"` } diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/opsi/host_configuration_metric_group.go b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/host_configuration_metric_group.go index 1281c69fff7..422b515e08f 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/opsi/host_configuration_metric_group.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/host_configuration_metric_group.go @@ -66,6 +66,10 @@ func (m *hostconfigurationmetricgroup) UnmarshalPolymorphicJSON(data []byte) (in mm := HostProduct{} err = json.Unmarshal(data, &mm) return mm, err + case "HOST_FILESYSTEM_CONFIGURATION": + mm := HostFilesystemConfiguration{} + err = json.Unmarshal(data, &mm) + return mm, err case "HOST_NETWORK_CONFIGURATION": mm := HostNetworkConfiguration{} err = json.Unmarshal(data, &mm) @@ -124,6 +128,7 @@ const ( HostConfigurationMetricGroupMetricNameCpuHardwareConfiguration HostConfigurationMetricGroupMetricNameEnum = "HOST_CPU_HARDWARE_CONFIGURATION" HostConfigurationMetricGroupMetricNameNetworkConfiguration HostConfigurationMetricGroupMetricNameEnum = "HOST_NETWORK_CONFIGURATION" HostConfigurationMetricGroupMetricNameEntites HostConfigurationMetricGroupMetricNameEnum = "HOST_ENTITES" + HostConfigurationMetricGroupMetricNameFilesystemConfiguration HostConfigurationMetricGroupMetricNameEnum = "HOST_FILESYSTEM_CONFIGURATION" ) var mappingHostConfigurationMetricGroupMetricNameEnum = map[string]HostConfigurationMetricGroupMetricNameEnum{ @@ -134,6 +139,7 @@ var mappingHostConfigurationMetricGroupMetricNameEnum = map[string]HostConfigura "HOST_CPU_HARDWARE_CONFIGURATION": HostConfigurationMetricGroupMetricNameCpuHardwareConfiguration, "HOST_NETWORK_CONFIGURATION": HostConfigurationMetricGroupMetricNameNetworkConfiguration, "HOST_ENTITES": HostConfigurationMetricGroupMetricNameEntites, + "HOST_FILESYSTEM_CONFIGURATION": HostConfigurationMetricGroupMetricNameFilesystemConfiguration, } var mappingHostConfigurationMetricGroupMetricNameEnumLowerCase = map[string]HostConfigurationMetricGroupMetricNameEnum{ @@ -144,6 +150,7 @@ var mappingHostConfigurationMetricGroupMetricNameEnumLowerCase = map[string]Host "host_cpu_hardware_configuration": HostConfigurationMetricGroupMetricNameCpuHardwareConfiguration, "host_network_configuration": HostConfigurationMetricGroupMetricNameNetworkConfiguration, "host_entites": HostConfigurationMetricGroupMetricNameEntites, + "host_filesystem_configuration": HostConfigurationMetricGroupMetricNameFilesystemConfiguration, } // GetHostConfigurationMetricGroupMetricNameEnumValues Enumerates the set of values for HostConfigurationMetricGroupMetricNameEnum @@ -165,6 +172,7 @@ func GetHostConfigurationMetricGroupMetricNameEnumStringValues() []string { "HOST_CPU_HARDWARE_CONFIGURATION", "HOST_NETWORK_CONFIGURATION", "HOST_ENTITES", + "HOST_FILESYSTEM_CONFIGURATION", } } diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/opsi/host_filesystem_configuration.go b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/host_filesystem_configuration.go new file mode 100644 index 00000000000..1b848b28b20 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/host_filesystem_configuration.go @@ -0,0 +1,71 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Operations Insights API +// +// Use the Operations Insights API to perform data extraction operations to obtain database +// resource utilization, performance statistics, and reference information. For more information, +// see About Oracle Cloud Infrastructure Operations Insights (https://docs.cloud.oracle.com/en-us/iaas/operations-insights/doc/operations-insights.html). +// + +package opsi + +import ( + "encoding/json" + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// HostFilesystemConfiguration Filesystem Configuration metric for the host. +type HostFilesystemConfiguration struct { + + // Collection timestamp + // Example: `"2020-05-06T00:00:00.000Z"` + TimeCollected *common.SDKTime `mandatory:"true" json:"timeCollected"` + + // Name of filesystem + FileSystemName *string `mandatory:"true" json:"fileSystemName"` + + // Mount points are specialized NTFS filesystem objects + MountPoint *string `mandatory:"true" json:"mountPoint"` + + // Size of filesystem + FileSystemSizeInGB *float64 `mandatory:"true" json:"fileSystemSizeInGB"` +} + +//GetTimeCollected returns TimeCollected +func (m HostFilesystemConfiguration) GetTimeCollected() *common.SDKTime { + return m.TimeCollected +} + +func (m HostFilesystemConfiguration) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m HostFilesystemConfiguration) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// MarshalJSON marshals to json representation +func (m HostFilesystemConfiguration) MarshalJSON() (buff []byte, e error) { + type MarshalTypeHostFilesystemConfiguration HostFilesystemConfiguration + s := struct { + DiscriminatorParam string `json:"metricName"` + MarshalTypeHostFilesystemConfiguration + }{ + "HOST_FILESYSTEM_CONFIGURATION", + (MarshalTypeHostFilesystemConfiguration)(m), + } + + return json.Marshal(&s) +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/opsi/host_filesystem_usage.go b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/host_filesystem_usage.go new file mode 100644 index 00000000000..4a4888f3302 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/host_filesystem_usage.go @@ -0,0 +1,69 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Operations Insights API +// +// Use the Operations Insights API to perform data extraction operations to obtain database +// resource utilization, performance statistics, and reference information. For more information, +// see About Oracle Cloud Infrastructure Operations Insights (https://docs.cloud.oracle.com/en-us/iaas/operations-insights/doc/operations-insights.html). +// + +package opsi + +import ( + "encoding/json" + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// HostFilesystemUsage Filesystem Usage metric for the host. +type HostFilesystemUsage struct { + + // Collection timestamp + // Example: `"2020-05-06T00:00:00.000Z"` + TimeCollected *common.SDKTime `mandatory:"true" json:"timeCollected"` + + // Mount points are specialized NTFS filesystem objects + MountPoint *string `mandatory:"false" json:"mountPoint"` + + FileSystemUsageInGB *float64 `mandatory:"false" json:"fileSystemUsageInGB"` + + FileSystemAvailInPercent *float64 `mandatory:"false" json:"fileSystemAvailInPercent"` +} + +//GetTimeCollected returns TimeCollected +func (m HostFilesystemUsage) GetTimeCollected() *common.SDKTime { + return m.TimeCollected +} + +func (m HostFilesystemUsage) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m HostFilesystemUsage) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// MarshalJSON marshals to json representation +func (m HostFilesystemUsage) MarshalJSON() (buff []byte, e error) { + type MarshalTypeHostFilesystemUsage HostFilesystemUsage + s := struct { + DiscriminatorParam string `json:"metricName"` + MarshalTypeHostFilesystemUsage + }{ + "HOST_FILESYSTEM_USAGE", + (MarshalTypeHostFilesystemUsage)(m), + } + + return json.Marshal(&s) +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/opsi/host_network_activity_summary.go b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/host_network_activity_summary.go index a5ab1103af3..eaa4430a9ad 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/opsi/host_network_activity_summary.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/host_network_activity_summary.go @@ -25,6 +25,9 @@ type HostNetworkActivitySummary struct { // Example: `"2020-05-06T00:00:00.000Z"` TimeCollected *common.SDKTime `mandatory:"true" json:"timeCollected"` + // Name of the network interface + InterfaceName *string `mandatory:"false" json:"interfaceName"` + // All network interfaces read rate in Mbps AllNetworkReadInMbps *float64 `mandatory:"false" json:"allNetworkReadInMbps"` diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/opsi/host_network_statistics.go b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/host_network_statistics.go new file mode 100644 index 00000000000..952793d3a21 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/host_network_statistics.go @@ -0,0 +1,89 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Operations Insights API +// +// Use the Operations Insights API to perform data extraction operations to obtain database +// resource utilization, performance statistics, and reference information. For more information, +// see About Oracle Cloud Infrastructure Operations Insights (https://docs.cloud.oracle.com/en-us/iaas/operations-insights/doc/operations-insights.html). +// + +package opsi + +import ( + "encoding/json" + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// HostNetworkStatistics Contains network statistics. +type HostNetworkStatistics struct { + + // Total amount used of the resource metric type (CPU, STORAGE). + Usage *float64 `mandatory:"true" json:"usage"` + + // The maximum allocated amount of the resource metric type (CPU, STORAGE) for a set of databases. + Capacity *float64 `mandatory:"true" json:"capacity"` + + // Resource utilization in percentage. + UtilizationPercent *float64 `mandatory:"true" json:"utilizationPercent"` + + // Change in resource utilization in percentage + UsageChangePercent *float64 `mandatory:"true" json:"usageChangePercent"` + + NetworkReadInMBs *float64 `mandatory:"false" json:"networkReadInMBs"` + + NetworkWriteInMBs *float64 `mandatory:"false" json:"networkWriteInMBs"` +} + +//GetUsage returns Usage +func (m HostNetworkStatistics) GetUsage() *float64 { + return m.Usage +} + +//GetCapacity returns Capacity +func (m HostNetworkStatistics) GetCapacity() *float64 { + return m.Capacity +} + +//GetUtilizationPercent returns UtilizationPercent +func (m HostNetworkStatistics) GetUtilizationPercent() *float64 { + return m.UtilizationPercent +} + +//GetUsageChangePercent returns UsageChangePercent +func (m HostNetworkStatistics) GetUsageChangePercent() *float64 { + return m.UsageChangePercent +} + +func (m HostNetworkStatistics) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m HostNetworkStatistics) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// MarshalJSON marshals to json representation +func (m HostNetworkStatistics) MarshalJSON() (buff []byte, e error) { + type MarshalTypeHostNetworkStatistics HostNetworkStatistics + s := struct { + DiscriminatorParam string `json:"resourceName"` + MarshalTypeHostNetworkStatistics + }{ + "HOST_NETWORK_STATISTICS", + (MarshalTypeHostNetworkStatistics)(m), + } + + return json.Marshal(&s) +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/opsi/host_performance_metric_group.go b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/host_performance_metric_group.go index 56414edc55e..1c0ec0de14f 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/opsi/host_performance_metric_group.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/host_performance_metric_group.go @@ -70,6 +70,10 @@ func (m *hostperformancemetricgroup) UnmarshalPolymorphicJSON(data []byte) (inte mm := HostCpuUsage{} err = json.Unmarshal(data, &mm) return mm, err + case "HOST_FILESYSTEM_USAGE": + mm := HostFilesystemUsage{} + err = json.Unmarshal(data, &mm) + return mm, err case "HOST_NETWORK_ACTIVITY_SUMMARY": mm := HostNetworkActivitySummary{} err = json.Unmarshal(data, &mm) @@ -109,6 +113,7 @@ const ( HostPerformanceMetricGroupMetricNameMemoryUsage HostPerformanceMetricGroupMetricNameEnum = "HOST_MEMORY_USAGE" HostPerformanceMetricGroupMetricNameNetworkActivitySummary HostPerformanceMetricGroupMetricNameEnum = "HOST_NETWORK_ACTIVITY_SUMMARY" HostPerformanceMetricGroupMetricNameTopProcesses HostPerformanceMetricGroupMetricNameEnum = "HOST_TOP_PROCESSES" + HostPerformanceMetricGroupMetricNameFilesystemUsage HostPerformanceMetricGroupMetricNameEnum = "HOST_FILESYSTEM_USAGE" ) var mappingHostPerformanceMetricGroupMetricNameEnum = map[string]HostPerformanceMetricGroupMetricNameEnum{ @@ -116,6 +121,7 @@ var mappingHostPerformanceMetricGroupMetricNameEnum = map[string]HostPerformance "HOST_MEMORY_USAGE": HostPerformanceMetricGroupMetricNameMemoryUsage, "HOST_NETWORK_ACTIVITY_SUMMARY": HostPerformanceMetricGroupMetricNameNetworkActivitySummary, "HOST_TOP_PROCESSES": HostPerformanceMetricGroupMetricNameTopProcesses, + "HOST_FILESYSTEM_USAGE": HostPerformanceMetricGroupMetricNameFilesystemUsage, } var mappingHostPerformanceMetricGroupMetricNameEnumLowerCase = map[string]HostPerformanceMetricGroupMetricNameEnum{ @@ -123,6 +129,7 @@ var mappingHostPerformanceMetricGroupMetricNameEnumLowerCase = map[string]HostPe "host_memory_usage": HostPerformanceMetricGroupMetricNameMemoryUsage, "host_network_activity_summary": HostPerformanceMetricGroupMetricNameNetworkActivitySummary, "host_top_processes": HostPerformanceMetricGroupMetricNameTopProcesses, + "host_filesystem_usage": HostPerformanceMetricGroupMetricNameFilesystemUsage, } // GetHostPerformanceMetricGroupMetricNameEnumValues Enumerates the set of values for HostPerformanceMetricGroupMetricNameEnum @@ -141,6 +148,7 @@ func GetHostPerformanceMetricGroupMetricNameEnumStringValues() []string { "HOST_MEMORY_USAGE", "HOST_NETWORK_ACTIVITY_SUMMARY", "HOST_TOP_PROCESSES", + "HOST_FILESYSTEM_USAGE", } } diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/opsi/host_resource_statistics.go b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/host_resource_statistics.go index 77d9a8b3125..be73e4cbd6b 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/opsi/host_resource_statistics.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/host_resource_statistics.go @@ -72,6 +72,14 @@ func (m *hostresourcestatistics) UnmarshalPolymorphicJSON(data []byte) (interfac var err error switch m.ResourceName { + case "HOST_NETWORK_STATISTICS": + mm := HostNetworkStatistics{} + err = json.Unmarshal(data, &mm) + return mm, err + case "HOST_STORAGE_STATISTICS": + mm := HostStorageStatistics{} + err = json.Unmarshal(data, &mm) + return mm, err case "HOST_MEMORY_STATISTICS": mm := HostMemoryStatistics{} err = json.Unmarshal(data, &mm) @@ -126,18 +134,24 @@ type HostResourceStatisticsResourceNameEnum string // Set of constants representing the allowable values for HostResourceStatisticsResourceNameEnum const ( - HostResourceStatisticsResourceNameCpuStatistics HostResourceStatisticsResourceNameEnum = "HOST_CPU_STATISTICS" - HostResourceStatisticsResourceNameMemoryStatistics HostResourceStatisticsResourceNameEnum = "HOST_MEMORY_STATISTICS" + HostResourceStatisticsResourceNameCpuStatistics HostResourceStatisticsResourceNameEnum = "HOST_CPU_STATISTICS" + HostResourceStatisticsResourceNameMemoryStatistics HostResourceStatisticsResourceNameEnum = "HOST_MEMORY_STATISTICS" + HostResourceStatisticsResourceNameStorageStatistics HostResourceStatisticsResourceNameEnum = "HOST_STORAGE_STATISTICS" + HostResourceStatisticsResourceNameNetworkStatistics HostResourceStatisticsResourceNameEnum = "HOST_NETWORK_STATISTICS" ) var mappingHostResourceStatisticsResourceNameEnum = map[string]HostResourceStatisticsResourceNameEnum{ - "HOST_CPU_STATISTICS": HostResourceStatisticsResourceNameCpuStatistics, - "HOST_MEMORY_STATISTICS": HostResourceStatisticsResourceNameMemoryStatistics, + "HOST_CPU_STATISTICS": HostResourceStatisticsResourceNameCpuStatistics, + "HOST_MEMORY_STATISTICS": HostResourceStatisticsResourceNameMemoryStatistics, + "HOST_STORAGE_STATISTICS": HostResourceStatisticsResourceNameStorageStatistics, + "HOST_NETWORK_STATISTICS": HostResourceStatisticsResourceNameNetworkStatistics, } var mappingHostResourceStatisticsResourceNameEnumLowerCase = map[string]HostResourceStatisticsResourceNameEnum{ - "host_cpu_statistics": HostResourceStatisticsResourceNameCpuStatistics, - "host_memory_statistics": HostResourceStatisticsResourceNameMemoryStatistics, + "host_cpu_statistics": HostResourceStatisticsResourceNameCpuStatistics, + "host_memory_statistics": HostResourceStatisticsResourceNameMemoryStatistics, + "host_storage_statistics": HostResourceStatisticsResourceNameStorageStatistics, + "host_network_statistics": HostResourceStatisticsResourceNameNetworkStatistics, } // GetHostResourceStatisticsResourceNameEnumValues Enumerates the set of values for HostResourceStatisticsResourceNameEnum @@ -154,6 +168,8 @@ func GetHostResourceStatisticsResourceNameEnumStringValues() []string { return []string{ "HOST_CPU_STATISTICS", "HOST_MEMORY_STATISTICS", + "HOST_STORAGE_STATISTICS", + "HOST_NETWORK_STATISTICS", } } diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/opsi/host_storage_statistics.go b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/host_storage_statistics.go new file mode 100644 index 00000000000..26bc93e6d75 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/host_storage_statistics.go @@ -0,0 +1,87 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Operations Insights API +// +// Use the Operations Insights API to perform data extraction operations to obtain database +// resource utilization, performance statistics, and reference information. For more information, +// see About Oracle Cloud Infrastructure Operations Insights (https://docs.cloud.oracle.com/en-us/iaas/operations-insights/doc/operations-insights.html). +// + +package opsi + +import ( + "encoding/json" + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// HostStorageStatistics Contains storage statistics. +type HostStorageStatistics struct { + + // Total amount used of the resource metric type (CPU, STORAGE). + Usage *float64 `mandatory:"true" json:"usage"` + + // The maximum allocated amount of the resource metric type (CPU, STORAGE) for a set of databases. + Capacity *float64 `mandatory:"true" json:"capacity"` + + // Resource utilization in percentage. + UtilizationPercent *float64 `mandatory:"true" json:"utilizationPercent"` + + // Change in resource utilization in percentage + UsageChangePercent *float64 `mandatory:"true" json:"usageChangePercent"` + + FilesystemAvailableInPercent *float64 `mandatory:"false" json:"filesystemAvailableInPercent"` +} + +//GetUsage returns Usage +func (m HostStorageStatistics) GetUsage() *float64 { + return m.Usage +} + +//GetCapacity returns Capacity +func (m HostStorageStatistics) GetCapacity() *float64 { + return m.Capacity +} + +//GetUtilizationPercent returns UtilizationPercent +func (m HostStorageStatistics) GetUtilizationPercent() *float64 { + return m.UtilizationPercent +} + +//GetUsageChangePercent returns UsageChangePercent +func (m HostStorageStatistics) GetUsageChangePercent() *float64 { + return m.UsageChangePercent +} + +func (m HostStorageStatistics) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m HostStorageStatistics) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// MarshalJSON marshals to json representation +func (m HostStorageStatistics) MarshalJSON() (buff []byte, e error) { + type MarshalTypeHostStorageStatistics HostStorageStatistics + s := struct { + DiscriminatorParam string `json:"resourceName"` + MarshalTypeHostStorageStatistics + }{ + "HOST_STORAGE_STATISTICS", + (MarshalTypeHostStorageStatistics)(m), + } + + return json.Marshal(&s) +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/opsi/network_usage_trend.go b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/network_usage_trend.go new file mode 100644 index 00000000000..62429cf00ef --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/network_usage_trend.go @@ -0,0 +1,50 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Operations Insights API +// +// Use the Operations Insights API to perform data extraction operations to obtain database +// resource utilization, performance statistics, and reference information. For more information, +// see About Oracle Cloud Infrastructure Operations Insights (https://docs.cloud.oracle.com/en-us/iaas/operations-insights/doc/operations-insights.html). +// + +package opsi + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// NetworkUsageTrend Usage data samples. +type NetworkUsageTrend struct { + + // The timestamp in which the current sampling period ends in RFC 3339 format. + EndTimestamp *common.SDKTime `mandatory:"true" json:"endTimestamp"` + + // Network read in Mbps. + AllNetworkReadInMbps *float64 `mandatory:"true" json:"allNetworkReadInMbps"` + + // Network write in Mbps. + AllNetworkWriteInMbps *float64 `mandatory:"true" json:"allNetworkWriteInMbps"` + + // Network input/output in Mbps. + AllNetworkIoInMbps *float64 `mandatory:"true" json:"allNetworkIoInMbps"` +} + +func (m NetworkUsageTrend) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m NetworkUsageTrend) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/opsi/network_usage_trend_aggregation.go b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/network_usage_trend_aggregation.go new file mode 100644 index 00000000000..74a2d17c93e --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/network_usage_trend_aggregation.go @@ -0,0 +1,50 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Operations Insights API +// +// Use the Operations Insights API to perform data extraction operations to obtain database +// resource utilization, performance statistics, and reference information. For more information, +// see About Oracle Cloud Infrastructure Operations Insights (https://docs.cloud.oracle.com/en-us/iaas/operations-insights/doc/operations-insights.html). +// + +package opsi + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// NetworkUsageTrendAggregation Usage data per network interface. +type NetworkUsageTrendAggregation struct { + + // Name of interface. + InterfaceName *string `mandatory:"true" json:"interfaceName"` + + // Address that is connected to a computer network that uses the Internet Protocol for communication. + IpAddress *string `mandatory:"true" json:"ipAddress"` + + // Unique identifier assigned to a network interface. + MacAddress *string `mandatory:"true" json:"macAddress"` + + // List of usage data samples for a network interface. + UsageData []NetworkUsageTrend `mandatory:"true" json:"usageData"` +} + +func (m NetworkUsageTrendAggregation) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m NetworkUsageTrendAggregation) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/opsi/opsi_operationsinsights_client.go b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/opsi_operationsinsights_client.go index 572e491d703..e8937dc78df 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/opsi/opsi_operationsinsights_client.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/opsi_operationsinsights_client.go @@ -6851,6 +6851,64 @@ func (client OperationsInsightsClient) summarizeExadataMembers(ctx context.Conte return response, err } +// SummarizeHostInsightNetworkUsageTrend Returns response with usage time series data with breakdown by network interface for the time period specified. +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/opsi/SummarizeHostInsightNetworkUsageTrend.go.html to see an example of how to use SummarizeHostInsightNetworkUsageTrend API. +// A default retry strategy applies to this operation SummarizeHostInsightNetworkUsageTrend() +func (client OperationsInsightsClient) SummarizeHostInsightNetworkUsageTrend(ctx context.Context, request SummarizeHostInsightNetworkUsageTrendRequest) (response SummarizeHostInsightNetworkUsageTrendResponse, err error) { + var ociResponse common.OCIResponse + policy := common.DefaultRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + ociResponse, err = common.Retry(ctx, request, client.summarizeHostInsightNetworkUsageTrend, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = SummarizeHostInsightNetworkUsageTrendResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = SummarizeHostInsightNetworkUsageTrendResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(SummarizeHostInsightNetworkUsageTrendResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into SummarizeHostInsightNetworkUsageTrendResponse") + } + return +} + +// summarizeHostInsightNetworkUsageTrend implements the OCIOperation interface (enables retrying operations) +func (client OperationsInsightsClient) summarizeHostInsightNetworkUsageTrend(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/hostInsights/networkUsageTrend", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response SummarizeHostInsightNetworkUsageTrendResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/operations-insights/20200630/HostInsights/SummarizeHostInsightNetworkUsageTrend" + err = common.PostProcessServiceError(err, "OperationsInsights", "SummarizeHostInsightNetworkUsageTrend", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + // SummarizeHostInsightResourceCapacityTrend Returns response with time series data (endTimestamp, capacity) for the time period specified. // The maximum time range for analysis is 2 years, hence this is intentionally not paginated. // If compartmentIdInSubtree is specified, aggregates resources in a compartment and in all sub-compartments. @@ -7209,6 +7267,64 @@ func (client OperationsInsightsClient) summarizeHostInsightResourceUtilizationIn return response, err } +// SummarizeHostInsightStorageUsageTrend Returns response with usage time series data with breakdown by filesystem for the time period specified. +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/opsi/SummarizeHostInsightStorageUsageTrend.go.html to see an example of how to use SummarizeHostInsightStorageUsageTrend API. +// A default retry strategy applies to this operation SummarizeHostInsightStorageUsageTrend() +func (client OperationsInsightsClient) SummarizeHostInsightStorageUsageTrend(ctx context.Context, request SummarizeHostInsightStorageUsageTrendRequest) (response SummarizeHostInsightStorageUsageTrendResponse, err error) { + var ociResponse common.OCIResponse + policy := common.DefaultRetryPolicy() + if client.RetryPolicy() != nil { + policy = *client.RetryPolicy() + } + if request.RetryPolicy() != nil { + policy = *request.RetryPolicy() + } + ociResponse, err = common.Retry(ctx, request, client.summarizeHostInsightStorageUsageTrend, policy) + if err != nil { + if ociResponse != nil { + if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil { + opcRequestId := httpResponse.Header.Get("opc-request-id") + response = SummarizeHostInsightStorageUsageTrendResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId} + } else { + response = SummarizeHostInsightStorageUsageTrendResponse{} + } + } + return + } + if convertedResponse, ok := ociResponse.(SummarizeHostInsightStorageUsageTrendResponse); ok { + response = convertedResponse + } else { + err = fmt.Errorf("failed to convert OCIResponse into SummarizeHostInsightStorageUsageTrendResponse") + } + return +} + +// summarizeHostInsightStorageUsageTrend implements the OCIOperation interface (enables retrying operations) +func (client OperationsInsightsClient) summarizeHostInsightStorageUsageTrend(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) { + + httpRequest, err := request.HTTPRequest(http.MethodGet, "/hostInsights/storageUsageTrend", binaryReqBody, extraHeaders) + if err != nil { + return nil, err + } + + var response SummarizeHostInsightStorageUsageTrendResponse + var httpResponse *http.Response + httpResponse, err = client.Call(ctx, &httpRequest) + defer common.CloseBodyIfValid(httpResponse) + response.RawResponse = httpResponse + if err != nil { + apiReferenceLink := "https://docs.oracle.com/iaas/api/#/en/operations-insights/20200630/HostInsights/SummarizeHostInsightStorageUsageTrend" + err = common.PostProcessServiceError(err, "OperationsInsights", "SummarizeHostInsightStorageUsageTrend", apiReferenceLink) + return response, err + } + + err = common.UnmarshalResponse(httpResponse, &response) + return response, err +} + // SummarizeHostInsightTopProcessesUsage Returns response with aggregated data (timestamp, usageData) for top processes on a specific date. // Data is aggregated for the time specified and processes are sorted descendent by the process metric specified (CPU, MEMORY, VIRTUAL_MEMORY). // hostInsightId, processMetric must be specified. diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/opsi/storage_usage_trend.go b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/storage_usage_trend.go new file mode 100644 index 00000000000..bfdd04e9ce7 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/storage_usage_trend.go @@ -0,0 +1,47 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Operations Insights API +// +// Use the Operations Insights API to perform data extraction operations to obtain database +// resource utilization, performance statistics, and reference information. For more information, +// see About Oracle Cloud Infrastructure Operations Insights (https://docs.cloud.oracle.com/en-us/iaas/operations-insights/doc/operations-insights.html). +// + +package opsi + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// StorageUsageTrend Usage data samples. +type StorageUsageTrend struct { + + // The timestamp in which the current sampling period ends in RFC 3339 format. + EndTimestamp *common.SDKTime `mandatory:"true" json:"endTimestamp"` + + // Filesystem usage in GB. + FileSystemUsageInGBs *float64 `mandatory:"true" json:"fileSystemUsageInGBs"` + + // Filesystem available in percent. + FileSystemAvailInPercent *float64 `mandatory:"true" json:"fileSystemAvailInPercent"` +} + +func (m StorageUsageTrend) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m StorageUsageTrend) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/opsi/storage_usage_trend_aggregation.go b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/storage_usage_trend_aggregation.go new file mode 100644 index 00000000000..031a5ea7c44 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/storage_usage_trend_aggregation.go @@ -0,0 +1,50 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Operations Insights API +// +// Use the Operations Insights API to perform data extraction operations to obtain database +// resource utilization, performance statistics, and reference information. For more information, +// see About Oracle Cloud Infrastructure Operations Insights (https://docs.cloud.oracle.com/en-us/iaas/operations-insights/doc/operations-insights.html). +// + +package opsi + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// StorageUsageTrendAggregation Usage data per filesystem. +type StorageUsageTrendAggregation struct { + + // Name of filesystem. + FileSystemName *string `mandatory:"true" json:"fileSystemName"` + + // Mount points are specialized NTFS filesystem objects. + MountPoint *string `mandatory:"true" json:"mountPoint"` + + // Size of filesystem. + FileSystemSizeInGBs *float64 `mandatory:"true" json:"fileSystemSizeInGBs"` + + // List of usage data samples for a filesystem. + UsageData []StorageUsageTrend `mandatory:"true" json:"usageData"` +} + +func (m StorageUsageTrendAggregation) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m StorageUsageTrendAggregation) ValidateEnumValue() (bool, error) { + errMessage := []string{} + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_database_insight_resource_statistics_aggregation_collection.go b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_database_insight_resource_statistics_aggregation_collection.go index cc6eb792c62..3c2b74cdbe2 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_database_insight_resource_statistics_aggregation_collection.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_database_insight_resource_statistics_aggregation_collection.go @@ -17,7 +17,7 @@ import ( "strings" ) -// SummarizeDatabaseInsightResourceStatisticsAggregationCollection Returns list of the Databases with resource statistics like usage,capacity,utilization and usage change percent. +// SummarizeDatabaseInsightResourceStatisticsAggregationCollection Returns list of the Databases with resource statistics like usage, capacity, utilization and usage change percent. type SummarizeDatabaseInsightResourceStatisticsAggregationCollection struct { // The start timestamp that was passed into the request. diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_network_usage_trend_aggregation_collection.go b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_network_usage_trend_aggregation_collection.go new file mode 100644 index 00000000000..43b2c37b5e1 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_network_usage_trend_aggregation_collection.go @@ -0,0 +1,110 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Operations Insights API +// +// Use the Operations Insights API to perform data extraction operations to obtain database +// resource utilization, performance statistics, and reference information. For more information, +// see About Oracle Cloud Infrastructure Operations Insights (https://docs.cloud.oracle.com/en-us/iaas/operations-insights/doc/operations-insights.html). +// + +package opsi + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// SummarizeHostInsightNetworkUsageTrendAggregationCollection Top level response object. +type SummarizeHostInsightNetworkUsageTrendAggregationCollection struct { + + // The start timestamp that was passed into the request. + TimeIntervalStart *common.SDKTime `mandatory:"true" json:"timeIntervalStart"` + + // The end timestamp that was passed into the request. + TimeIntervalEnd *common.SDKTime `mandatory:"true" json:"timeIntervalEnd"` + + // Displays usage unit ( CORES, GB , PERCENT, MBPS) + UsageUnit SummarizeHostInsightNetworkUsageTrendAggregationCollectionUsageUnitEnum `mandatory:"true" json:"usageUnit"` + + // Time duration in milliseconds between data points (one hour or one day). + ItemDurationInMs *int64 `mandatory:"true" json:"itemDurationInMs"` + + // Collection of Usage Data with time stamps for all network interfaces. + Items []NetworkUsageTrendAggregation `mandatory:"true" json:"items"` +} + +func (m SummarizeHostInsightNetworkUsageTrendAggregationCollection) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m SummarizeHostInsightNetworkUsageTrendAggregationCollection) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingSummarizeHostInsightNetworkUsageTrendAggregationCollectionUsageUnitEnum(string(m.UsageUnit)); !ok && m.UsageUnit != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for UsageUnit: %s. Supported values are: %s.", m.UsageUnit, strings.Join(GetSummarizeHostInsightNetworkUsageTrendAggregationCollectionUsageUnitEnumStringValues(), ","))) + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// SummarizeHostInsightNetworkUsageTrendAggregationCollectionUsageUnitEnum Enum with underlying type: string +type SummarizeHostInsightNetworkUsageTrendAggregationCollectionUsageUnitEnum string + +// Set of constants representing the allowable values for SummarizeHostInsightNetworkUsageTrendAggregationCollectionUsageUnitEnum +const ( + SummarizeHostInsightNetworkUsageTrendAggregationCollectionUsageUnitCores SummarizeHostInsightNetworkUsageTrendAggregationCollectionUsageUnitEnum = "CORES" + SummarizeHostInsightNetworkUsageTrendAggregationCollectionUsageUnitGb SummarizeHostInsightNetworkUsageTrendAggregationCollectionUsageUnitEnum = "GB" + SummarizeHostInsightNetworkUsageTrendAggregationCollectionUsageUnitMbps SummarizeHostInsightNetworkUsageTrendAggregationCollectionUsageUnitEnum = "MBPS" + SummarizeHostInsightNetworkUsageTrendAggregationCollectionUsageUnitIops SummarizeHostInsightNetworkUsageTrendAggregationCollectionUsageUnitEnum = "IOPS" + SummarizeHostInsightNetworkUsageTrendAggregationCollectionUsageUnitPercent SummarizeHostInsightNetworkUsageTrendAggregationCollectionUsageUnitEnum = "PERCENT" +) + +var mappingSummarizeHostInsightNetworkUsageTrendAggregationCollectionUsageUnitEnum = map[string]SummarizeHostInsightNetworkUsageTrendAggregationCollectionUsageUnitEnum{ + "CORES": SummarizeHostInsightNetworkUsageTrendAggregationCollectionUsageUnitCores, + "GB": SummarizeHostInsightNetworkUsageTrendAggregationCollectionUsageUnitGb, + "MBPS": SummarizeHostInsightNetworkUsageTrendAggregationCollectionUsageUnitMbps, + "IOPS": SummarizeHostInsightNetworkUsageTrendAggregationCollectionUsageUnitIops, + "PERCENT": SummarizeHostInsightNetworkUsageTrendAggregationCollectionUsageUnitPercent, +} + +var mappingSummarizeHostInsightNetworkUsageTrendAggregationCollectionUsageUnitEnumLowerCase = map[string]SummarizeHostInsightNetworkUsageTrendAggregationCollectionUsageUnitEnum{ + "cores": SummarizeHostInsightNetworkUsageTrendAggregationCollectionUsageUnitCores, + "gb": SummarizeHostInsightNetworkUsageTrendAggregationCollectionUsageUnitGb, + "mbps": SummarizeHostInsightNetworkUsageTrendAggregationCollectionUsageUnitMbps, + "iops": SummarizeHostInsightNetworkUsageTrendAggregationCollectionUsageUnitIops, + "percent": SummarizeHostInsightNetworkUsageTrendAggregationCollectionUsageUnitPercent, +} + +// GetSummarizeHostInsightNetworkUsageTrendAggregationCollectionUsageUnitEnumValues Enumerates the set of values for SummarizeHostInsightNetworkUsageTrendAggregationCollectionUsageUnitEnum +func GetSummarizeHostInsightNetworkUsageTrendAggregationCollectionUsageUnitEnumValues() []SummarizeHostInsightNetworkUsageTrendAggregationCollectionUsageUnitEnum { + values := make([]SummarizeHostInsightNetworkUsageTrendAggregationCollectionUsageUnitEnum, 0) + for _, v := range mappingSummarizeHostInsightNetworkUsageTrendAggregationCollectionUsageUnitEnum { + values = append(values, v) + } + return values +} + +// GetSummarizeHostInsightNetworkUsageTrendAggregationCollectionUsageUnitEnumStringValues Enumerates the set of values in String for SummarizeHostInsightNetworkUsageTrendAggregationCollectionUsageUnitEnum +func GetSummarizeHostInsightNetworkUsageTrendAggregationCollectionUsageUnitEnumStringValues() []string { + return []string{ + "CORES", + "GB", + "MBPS", + "IOPS", + "PERCENT", + } +} + +// GetMappingSummarizeHostInsightNetworkUsageTrendAggregationCollectionUsageUnitEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingSummarizeHostInsightNetworkUsageTrendAggregationCollectionUsageUnitEnum(val string) (SummarizeHostInsightNetworkUsageTrendAggregationCollectionUsageUnitEnum, bool) { + enum, ok := mappingSummarizeHostInsightNetworkUsageTrendAggregationCollectionUsageUnitEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_network_usage_trend_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_network_usage_trend_request_response.go new file mode 100644 index 00000000000..42f05243215 --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_network_usage_trend_request_response.go @@ -0,0 +1,181 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package opsi + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// SummarizeHostInsightNetworkUsageTrendRequest wrapper for the SummarizeHostInsightNetworkUsageTrend operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/opsi/SummarizeHostInsightNetworkUsageTrend.go.html to see an example of how to use SummarizeHostInsightNetworkUsageTrendRequest. +type SummarizeHostInsightNetworkUsageTrendRequest struct { + + // The OCID (https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment. + CompartmentId *string `mandatory:"true" contributesTo:"query" name:"compartmentId"` + + // Required OCID (https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the host insight resource. + Id *string `mandatory:"true" contributesTo:"query" name:"id"` + + // Specify time period in ISO 8601 format with respect to current time. + // Default is last 30 days represented by P30D. + // If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. + // Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months), . Maximum value allowed is 25 months prior to current time (P25M). + AnalysisTimeInterval *string `mandatory:"false" contributesTo:"query" name:"analysisTimeInterval"` + + // Analysis start time in UTC in ISO 8601 format(inclusive). + // Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). + // The minimum allowed value is 2 years prior to the current day. + // timeIntervalStart and timeIntervalEnd parameters are used together. + // If analysisTimeInterval is specified, this parameter is ignored. + TimeIntervalStart *common.SDKTime `mandatory:"false" contributesTo:"query" name:"timeIntervalStart"` + + // Analysis end time in UTC in ISO 8601 format(exclusive). + // Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). + // timeIntervalStart and timeIntervalEnd are used together. + // If timeIntervalEnd is not specified, current time is used as timeIntervalEnd. + TimeIntervalEnd *common.SDKTime `mandatory:"false" contributesTo:"query" name:"timeIntervalEnd"` + + // Optional OCID (https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the host (Compute Id) + HostId *string `mandatory:"false" contributesTo:"query" name:"hostId"` + + // For list pagination. The value of the `opc-next-page` response header from + // the previous "List" call. For important details about how pagination works, + // see List Pagination (https://docs.cloud.oracle.com/Content/API/Concepts/usingapi.htm#nine). + Page *string `mandatory:"false" contributesTo:"query" name:"page"` + + // For list pagination. The maximum number of results per page, or items to + // return in a paginated "List" call. + // For important details about how pagination works, see + // List Pagination (https://docs.cloud.oracle.com/Content/API/Concepts/usingapi.htm#nine). + // Example: `50` + Limit *int `mandatory:"false" contributesTo:"query" name:"limit"` + + // Choose the type of statistic metric data to be used for forecasting. + Statistic SummarizeHostInsightNetworkUsageTrendStatisticEnum `mandatory:"false" contributesTo:"query" name:"statistic" omitEmpty:"true"` + + // Unique Oracle-assigned identifier for the request. If you need to contact + // Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request SummarizeHostInsightNetworkUsageTrendRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request SummarizeHostInsightNetworkUsageTrendRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request SummarizeHostInsightNetworkUsageTrendRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request SummarizeHostInsightNetworkUsageTrendRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request SummarizeHostInsightNetworkUsageTrendRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingSummarizeHostInsightNetworkUsageTrendStatisticEnum(string(request.Statistic)); !ok && request.Statistic != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Statistic: %s. Supported values are: %s.", request.Statistic, strings.Join(GetSummarizeHostInsightNetworkUsageTrendStatisticEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// SummarizeHostInsightNetworkUsageTrendResponse wrapper for the SummarizeHostInsightNetworkUsageTrend operation +type SummarizeHostInsightNetworkUsageTrendResponse struct { + + // The underlying http response + RawResponse *http.Response + + // A list of SummarizeHostInsightNetworkUsageTrendAggregationCollection instances + SummarizeHostInsightNetworkUsageTrendAggregationCollection `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact + // Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For pagination of a list of items. When paging through a list, if this header appears in the response, + // then a partial list might have been returned. Include this value as the `page` parameter for the + // subsequent GET request to get the next batch of items. + OpcNextPage *string `presentIn:"header" name:"opc-next-page"` +} + +func (response SummarizeHostInsightNetworkUsageTrendResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response SummarizeHostInsightNetworkUsageTrendResponse) HTTPResponse() *http.Response { + return response.RawResponse +} + +// SummarizeHostInsightNetworkUsageTrendStatisticEnum Enum with underlying type: string +type SummarizeHostInsightNetworkUsageTrendStatisticEnum string + +// Set of constants representing the allowable values for SummarizeHostInsightNetworkUsageTrendStatisticEnum +const ( + SummarizeHostInsightNetworkUsageTrendStatisticAvg SummarizeHostInsightNetworkUsageTrendStatisticEnum = "AVG" + SummarizeHostInsightNetworkUsageTrendStatisticMax SummarizeHostInsightNetworkUsageTrendStatisticEnum = "MAX" +) + +var mappingSummarizeHostInsightNetworkUsageTrendStatisticEnum = map[string]SummarizeHostInsightNetworkUsageTrendStatisticEnum{ + "AVG": SummarizeHostInsightNetworkUsageTrendStatisticAvg, + "MAX": SummarizeHostInsightNetworkUsageTrendStatisticMax, +} + +var mappingSummarizeHostInsightNetworkUsageTrendStatisticEnumLowerCase = map[string]SummarizeHostInsightNetworkUsageTrendStatisticEnum{ + "avg": SummarizeHostInsightNetworkUsageTrendStatisticAvg, + "max": SummarizeHostInsightNetworkUsageTrendStatisticMax, +} + +// GetSummarizeHostInsightNetworkUsageTrendStatisticEnumValues Enumerates the set of values for SummarizeHostInsightNetworkUsageTrendStatisticEnum +func GetSummarizeHostInsightNetworkUsageTrendStatisticEnumValues() []SummarizeHostInsightNetworkUsageTrendStatisticEnum { + values := make([]SummarizeHostInsightNetworkUsageTrendStatisticEnum, 0) + for _, v := range mappingSummarizeHostInsightNetworkUsageTrendStatisticEnum { + values = append(values, v) + } + return values +} + +// GetSummarizeHostInsightNetworkUsageTrendStatisticEnumStringValues Enumerates the set of values in String for SummarizeHostInsightNetworkUsageTrendStatisticEnum +func GetSummarizeHostInsightNetworkUsageTrendStatisticEnumStringValues() []string { + return []string{ + "AVG", + "MAX", + } +} + +// GetMappingSummarizeHostInsightNetworkUsageTrendStatisticEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingSummarizeHostInsightNetworkUsageTrendStatisticEnum(val string) (SummarizeHostInsightNetworkUsageTrendStatisticEnum, bool) { + enum, ok := mappingSummarizeHostInsightNetworkUsageTrendStatisticEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_resource_capacity_trend_aggregation_collection.go b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_resource_capacity_trend_aggregation_collection.go index 0a32e6c7065..430e0593d4f 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_resource_capacity_trend_aggregation_collection.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_resource_capacity_trend_aggregation_collection.go @@ -26,6 +26,12 @@ type SummarizeHostInsightResourceCapacityTrendAggregationCollection struct { // The end timestamp that was passed into the request. TimeIntervalEnd *common.SDKTime `mandatory:"true" json:"timeIntervalEnd"` + // Percent value in which a resource metric is considered highly utilized. + HighUtilizationThreshold *int `mandatory:"true" json:"highUtilizationThreshold"` + + // Percent value in which a resource metric is considered lowly utilized. + LowUtilizationThreshold *int `mandatory:"true" json:"lowUtilizationThreshold"` + // Defines the type of resource metric (CPU, Physical Memory, Logical Memory) ResourceMetric SummarizeHostInsightResourceCapacityTrendAggregationCollectionResourceMetricEnum `mandatory:"true" json:"resourceMetric"` @@ -69,18 +75,24 @@ const ( SummarizeHostInsightResourceCapacityTrendAggregationCollectionResourceMetricCpu SummarizeHostInsightResourceCapacityTrendAggregationCollectionResourceMetricEnum = "CPU" SummarizeHostInsightResourceCapacityTrendAggregationCollectionResourceMetricMemory SummarizeHostInsightResourceCapacityTrendAggregationCollectionResourceMetricEnum = "MEMORY" SummarizeHostInsightResourceCapacityTrendAggregationCollectionResourceMetricLogicalMemory SummarizeHostInsightResourceCapacityTrendAggregationCollectionResourceMetricEnum = "LOGICAL_MEMORY" + SummarizeHostInsightResourceCapacityTrendAggregationCollectionResourceMetricStorage SummarizeHostInsightResourceCapacityTrendAggregationCollectionResourceMetricEnum = "STORAGE" + SummarizeHostInsightResourceCapacityTrendAggregationCollectionResourceMetricNetwork SummarizeHostInsightResourceCapacityTrendAggregationCollectionResourceMetricEnum = "NETWORK" ) var mappingSummarizeHostInsightResourceCapacityTrendAggregationCollectionResourceMetricEnum = map[string]SummarizeHostInsightResourceCapacityTrendAggregationCollectionResourceMetricEnum{ "CPU": SummarizeHostInsightResourceCapacityTrendAggregationCollectionResourceMetricCpu, "MEMORY": SummarizeHostInsightResourceCapacityTrendAggregationCollectionResourceMetricMemory, "LOGICAL_MEMORY": SummarizeHostInsightResourceCapacityTrendAggregationCollectionResourceMetricLogicalMemory, + "STORAGE": SummarizeHostInsightResourceCapacityTrendAggregationCollectionResourceMetricStorage, + "NETWORK": SummarizeHostInsightResourceCapacityTrendAggregationCollectionResourceMetricNetwork, } var mappingSummarizeHostInsightResourceCapacityTrendAggregationCollectionResourceMetricEnumLowerCase = map[string]SummarizeHostInsightResourceCapacityTrendAggregationCollectionResourceMetricEnum{ "cpu": SummarizeHostInsightResourceCapacityTrendAggregationCollectionResourceMetricCpu, "memory": SummarizeHostInsightResourceCapacityTrendAggregationCollectionResourceMetricMemory, "logical_memory": SummarizeHostInsightResourceCapacityTrendAggregationCollectionResourceMetricLogicalMemory, + "storage": SummarizeHostInsightResourceCapacityTrendAggregationCollectionResourceMetricStorage, + "network": SummarizeHostInsightResourceCapacityTrendAggregationCollectionResourceMetricNetwork, } // GetSummarizeHostInsightResourceCapacityTrendAggregationCollectionResourceMetricEnumValues Enumerates the set of values for SummarizeHostInsightResourceCapacityTrendAggregationCollectionResourceMetricEnum @@ -98,6 +110,8 @@ func GetSummarizeHostInsightResourceCapacityTrendAggregationCollectionResourceMe "CPU", "MEMORY", "LOGICAL_MEMORY", + "STORAGE", + "NETWORK", } } diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_resource_capacity_trend_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_resource_capacity_trend_request_response.go index c6e1782bd10..c468a887186 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_resource_capacity_trend_request_response.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_resource_capacity_trend_request_response.go @@ -22,6 +22,7 @@ type SummarizeHostInsightResourceCapacityTrendRequest struct { CompartmentId *string `mandatory:"true" contributesTo:"query" name:"compartmentId"` // Filter by host resource metric. + // Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK. ResourceMetric *string `mandatory:"true" contributesTo:"query" name:"resourceMetric"` // Specify time period in ISO 8601 format with respect to current time. @@ -115,6 +116,12 @@ type SummarizeHostInsightResourceCapacityTrendRequest struct { // Optional list of Exadata Insight VM cluster name. VmclusterName []string `contributesTo:"query" name:"vmclusterName" collectionFormat:"multi"` + // Percent value in which a resource metric is considered highly utilized. + HighUtilizationThreshold *int `mandatory:"false" contributesTo:"query" name:"highUtilizationThreshold"` + + // Percent value in which a resource metric is considered low utilized. + LowUtilizationThreshold *int `mandatory:"false" contributesTo:"query" name:"lowUtilizationThreshold"` + // Metadata about the request. This information will not be transmitted to the service, but // represents information that the SDK will consume to drive retry behavior. RequestMetadata common.RequestMetadata diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_resource_forecast_trend_aggregation.go b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_resource_forecast_trend_aggregation.go index c164d73e757..26202e9cf89 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_resource_forecast_trend_aggregation.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_resource_forecast_trend_aggregation.go @@ -26,6 +26,12 @@ type SummarizeHostInsightResourceForecastTrendAggregation struct { // The end timestamp that was passed into the request. TimeIntervalEnd *common.SDKTime `mandatory:"true" json:"timeIntervalEnd"` + // Percent value in which a resource metric is considered highly utilized. + HighUtilizationThreshold *int `mandatory:"true" json:"highUtilizationThreshold"` + + // Percent value in which a resource metric is considered lowly utilized. + LowUtilizationThreshold *int `mandatory:"true" json:"lowUtilizationThreshold"` + // Defines the type of resource metric (CPU, Physical Memory, Logical Memory) ResourceMetric SummarizeHostInsightResourceForecastTrendAggregationResourceMetricEnum `mandatory:"true" json:"resourceMetric"` @@ -75,18 +81,24 @@ const ( SummarizeHostInsightResourceForecastTrendAggregationResourceMetricCpu SummarizeHostInsightResourceForecastTrendAggregationResourceMetricEnum = "CPU" SummarizeHostInsightResourceForecastTrendAggregationResourceMetricMemory SummarizeHostInsightResourceForecastTrendAggregationResourceMetricEnum = "MEMORY" SummarizeHostInsightResourceForecastTrendAggregationResourceMetricLogicalMemory SummarizeHostInsightResourceForecastTrendAggregationResourceMetricEnum = "LOGICAL_MEMORY" + SummarizeHostInsightResourceForecastTrendAggregationResourceMetricStorage SummarizeHostInsightResourceForecastTrendAggregationResourceMetricEnum = "STORAGE" + SummarizeHostInsightResourceForecastTrendAggregationResourceMetricNetwork SummarizeHostInsightResourceForecastTrendAggregationResourceMetricEnum = "NETWORK" ) var mappingSummarizeHostInsightResourceForecastTrendAggregationResourceMetricEnum = map[string]SummarizeHostInsightResourceForecastTrendAggregationResourceMetricEnum{ "CPU": SummarizeHostInsightResourceForecastTrendAggregationResourceMetricCpu, "MEMORY": SummarizeHostInsightResourceForecastTrendAggregationResourceMetricMemory, "LOGICAL_MEMORY": SummarizeHostInsightResourceForecastTrendAggregationResourceMetricLogicalMemory, + "STORAGE": SummarizeHostInsightResourceForecastTrendAggregationResourceMetricStorage, + "NETWORK": SummarizeHostInsightResourceForecastTrendAggregationResourceMetricNetwork, } var mappingSummarizeHostInsightResourceForecastTrendAggregationResourceMetricEnumLowerCase = map[string]SummarizeHostInsightResourceForecastTrendAggregationResourceMetricEnum{ "cpu": SummarizeHostInsightResourceForecastTrendAggregationResourceMetricCpu, "memory": SummarizeHostInsightResourceForecastTrendAggregationResourceMetricMemory, "logical_memory": SummarizeHostInsightResourceForecastTrendAggregationResourceMetricLogicalMemory, + "storage": SummarizeHostInsightResourceForecastTrendAggregationResourceMetricStorage, + "network": SummarizeHostInsightResourceForecastTrendAggregationResourceMetricNetwork, } // GetSummarizeHostInsightResourceForecastTrendAggregationResourceMetricEnumValues Enumerates the set of values for SummarizeHostInsightResourceForecastTrendAggregationResourceMetricEnum @@ -104,6 +116,8 @@ func GetSummarizeHostInsightResourceForecastTrendAggregationResourceMetricEnumSt "CPU", "MEMORY", "LOGICAL_MEMORY", + "STORAGE", + "NETWORK", } } diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_resource_forecast_trend_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_resource_forecast_trend_request_response.go index a7796137202..8eaf345b58e 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_resource_forecast_trend_request_response.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_resource_forecast_trend_request_response.go @@ -22,6 +22,7 @@ type SummarizeHostInsightResourceForecastTrendRequest struct { CompartmentId *string `mandatory:"true" contributesTo:"query" name:"compartmentId"` // Filter by host resource metric. + // Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK. ResourceMetric *string `mandatory:"true" contributesTo:"query" name:"resourceMetric"` // Specify time period in ISO 8601 format with respect to current time. @@ -129,6 +130,18 @@ type SummarizeHostInsightResourceForecastTrendRequest struct { // Optional list of Exadata Insight VM cluster name. VmclusterName []string `contributesTo:"query" name:"vmclusterName" collectionFormat:"multi"` + // Percent value in which a resource metric is considered highly utilized. + HighUtilizationThreshold *int `mandatory:"false" contributesTo:"query" name:"highUtilizationThreshold"` + + // Percent value in which a resource metric is considered low utilized. + LowUtilizationThreshold *int `mandatory:"false" contributesTo:"query" name:"lowUtilizationThreshold"` + + // Mount points are specialized NTFS filesystem objects. + MountPoint *string `mandatory:"false" contributesTo:"query" name:"mountPoint"` + + // Name of the network interface. + InterfaceName *string `mandatory:"false" contributesTo:"query" name:"interfaceName"` + // Metadata about the request. This information will not be transmitted to the service, but // represents information that the SDK will consume to drive retry behavior. RequestMetadata common.RequestMetadata diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_resource_statistics_aggregation_collection.go b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_resource_statistics_aggregation_collection.go index ef5bd5459f6..dd367e1c9bb 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_resource_statistics_aggregation_collection.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_resource_statistics_aggregation_collection.go @@ -26,6 +26,12 @@ type SummarizeHostInsightResourceStatisticsAggregationCollection struct { // The end timestamp that was passed into the request. TimeIntervalEnd *common.SDKTime `mandatory:"true" json:"timeIntervalEnd"` + // Percent value in which a resource metric is considered highly utilized. + HighUtilizationThreshold *int `mandatory:"true" json:"highUtilizationThreshold"` + + // Percent value in which a resource metric is considered lowly utilized. + LowUtilizationThreshold *int `mandatory:"true" json:"lowUtilizationThreshold"` + // Defines the type of resource metric (CPU, Physical Memory, Logical Memory) ResourceMetric SummarizeHostInsightResourceStatisticsAggregationCollectionResourceMetricEnum `mandatory:"true" json:"resourceMetric"` @@ -66,18 +72,24 @@ const ( SummarizeHostInsightResourceStatisticsAggregationCollectionResourceMetricCpu SummarizeHostInsightResourceStatisticsAggregationCollectionResourceMetricEnum = "CPU" SummarizeHostInsightResourceStatisticsAggregationCollectionResourceMetricMemory SummarizeHostInsightResourceStatisticsAggregationCollectionResourceMetricEnum = "MEMORY" SummarizeHostInsightResourceStatisticsAggregationCollectionResourceMetricLogicalMemory SummarizeHostInsightResourceStatisticsAggregationCollectionResourceMetricEnum = "LOGICAL_MEMORY" + SummarizeHostInsightResourceStatisticsAggregationCollectionResourceMetricStorage SummarizeHostInsightResourceStatisticsAggregationCollectionResourceMetricEnum = "STORAGE" + SummarizeHostInsightResourceStatisticsAggregationCollectionResourceMetricNetwork SummarizeHostInsightResourceStatisticsAggregationCollectionResourceMetricEnum = "NETWORK" ) var mappingSummarizeHostInsightResourceStatisticsAggregationCollectionResourceMetricEnum = map[string]SummarizeHostInsightResourceStatisticsAggregationCollectionResourceMetricEnum{ "CPU": SummarizeHostInsightResourceStatisticsAggregationCollectionResourceMetricCpu, "MEMORY": SummarizeHostInsightResourceStatisticsAggregationCollectionResourceMetricMemory, "LOGICAL_MEMORY": SummarizeHostInsightResourceStatisticsAggregationCollectionResourceMetricLogicalMemory, + "STORAGE": SummarizeHostInsightResourceStatisticsAggregationCollectionResourceMetricStorage, + "NETWORK": SummarizeHostInsightResourceStatisticsAggregationCollectionResourceMetricNetwork, } var mappingSummarizeHostInsightResourceStatisticsAggregationCollectionResourceMetricEnumLowerCase = map[string]SummarizeHostInsightResourceStatisticsAggregationCollectionResourceMetricEnum{ "cpu": SummarizeHostInsightResourceStatisticsAggregationCollectionResourceMetricCpu, "memory": SummarizeHostInsightResourceStatisticsAggregationCollectionResourceMetricMemory, "logical_memory": SummarizeHostInsightResourceStatisticsAggregationCollectionResourceMetricLogicalMemory, + "storage": SummarizeHostInsightResourceStatisticsAggregationCollectionResourceMetricStorage, + "network": SummarizeHostInsightResourceStatisticsAggregationCollectionResourceMetricNetwork, } // GetSummarizeHostInsightResourceStatisticsAggregationCollectionResourceMetricEnumValues Enumerates the set of values for SummarizeHostInsightResourceStatisticsAggregationCollectionResourceMetricEnum @@ -95,6 +107,8 @@ func GetSummarizeHostInsightResourceStatisticsAggregationCollectionResourceMetri "CPU", "MEMORY", "LOGICAL_MEMORY", + "STORAGE", + "NETWORK", } } diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_resource_statistics_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_resource_statistics_request_response.go index 12e6752bee3..aa153770aa7 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_resource_statistics_request_response.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_resource_statistics_request_response.go @@ -22,6 +22,7 @@ type SummarizeHostInsightResourceStatisticsRequest struct { CompartmentId *string `mandatory:"true" contributesTo:"query" name:"compartmentId"` // Filter by host resource metric. + // Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK. ResourceMetric *string `mandatory:"true" contributesTo:"query" name:"resourceMetric"` // Specify time period in ISO 8601 format with respect to current time. @@ -126,6 +127,12 @@ type SummarizeHostInsightResourceStatisticsRequest struct { // Optional list of Exadata Insight VM cluster name. VmclusterName []string `contributesTo:"query" name:"vmclusterName" collectionFormat:"multi"` + // Percent value in which a resource metric is considered highly utilized. + HighUtilizationThreshold *int `mandatory:"false" contributesTo:"query" name:"highUtilizationThreshold"` + + // Percent value in which a resource metric is considered low utilized. + LowUtilizationThreshold *int `mandatory:"false" contributesTo:"query" name:"lowUtilizationThreshold"` + // Metadata about the request. This information will not be transmitted to the service, but // represents information that the SDK will consume to drive retry behavior. RequestMetadata common.RequestMetadata diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_resource_usage_aggregation.go b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_resource_usage_aggregation.go index 0e1bd140268..b02a3954602 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_resource_usage_aggregation.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_resource_usage_aggregation.go @@ -72,18 +72,24 @@ const ( SummarizeHostInsightResourceUsageAggregationResourceMetricCpu SummarizeHostInsightResourceUsageAggregationResourceMetricEnum = "CPU" SummarizeHostInsightResourceUsageAggregationResourceMetricMemory SummarizeHostInsightResourceUsageAggregationResourceMetricEnum = "MEMORY" SummarizeHostInsightResourceUsageAggregationResourceMetricLogicalMemory SummarizeHostInsightResourceUsageAggregationResourceMetricEnum = "LOGICAL_MEMORY" + SummarizeHostInsightResourceUsageAggregationResourceMetricStorage SummarizeHostInsightResourceUsageAggregationResourceMetricEnum = "STORAGE" + SummarizeHostInsightResourceUsageAggregationResourceMetricNetwork SummarizeHostInsightResourceUsageAggregationResourceMetricEnum = "NETWORK" ) var mappingSummarizeHostInsightResourceUsageAggregationResourceMetricEnum = map[string]SummarizeHostInsightResourceUsageAggregationResourceMetricEnum{ "CPU": SummarizeHostInsightResourceUsageAggregationResourceMetricCpu, "MEMORY": SummarizeHostInsightResourceUsageAggregationResourceMetricMemory, "LOGICAL_MEMORY": SummarizeHostInsightResourceUsageAggregationResourceMetricLogicalMemory, + "STORAGE": SummarizeHostInsightResourceUsageAggregationResourceMetricStorage, + "NETWORK": SummarizeHostInsightResourceUsageAggregationResourceMetricNetwork, } var mappingSummarizeHostInsightResourceUsageAggregationResourceMetricEnumLowerCase = map[string]SummarizeHostInsightResourceUsageAggregationResourceMetricEnum{ "cpu": SummarizeHostInsightResourceUsageAggregationResourceMetricCpu, "memory": SummarizeHostInsightResourceUsageAggregationResourceMetricMemory, "logical_memory": SummarizeHostInsightResourceUsageAggregationResourceMetricLogicalMemory, + "storage": SummarizeHostInsightResourceUsageAggregationResourceMetricStorage, + "network": SummarizeHostInsightResourceUsageAggregationResourceMetricNetwork, } // GetSummarizeHostInsightResourceUsageAggregationResourceMetricEnumValues Enumerates the set of values for SummarizeHostInsightResourceUsageAggregationResourceMetricEnum @@ -101,6 +107,8 @@ func GetSummarizeHostInsightResourceUsageAggregationResourceMetricEnumStringValu "CPU", "MEMORY", "LOGICAL_MEMORY", + "STORAGE", + "NETWORK", } } diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_resource_usage_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_resource_usage_request_response.go index b06d88b7fcb..d9eaba8a09c 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_resource_usage_request_response.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_resource_usage_request_response.go @@ -22,6 +22,7 @@ type SummarizeHostInsightResourceUsageRequest struct { CompartmentId *string `mandatory:"true" contributesTo:"query" name:"compartmentId"` // Filter by host resource metric. + // Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK. ResourceMetric *string `mandatory:"true" contributesTo:"query" name:"resourceMetric"` // Specify time period in ISO 8601 format with respect to current time. diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_resource_usage_trend_aggregation_collection.go b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_resource_usage_trend_aggregation_collection.go index c101b3a7bbe..91fd6870b5c 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_resource_usage_trend_aggregation_collection.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_resource_usage_trend_aggregation_collection.go @@ -69,18 +69,24 @@ const ( SummarizeHostInsightResourceUsageTrendAggregationCollectionResourceMetricCpu SummarizeHostInsightResourceUsageTrendAggregationCollectionResourceMetricEnum = "CPU" SummarizeHostInsightResourceUsageTrendAggregationCollectionResourceMetricMemory SummarizeHostInsightResourceUsageTrendAggregationCollectionResourceMetricEnum = "MEMORY" SummarizeHostInsightResourceUsageTrendAggregationCollectionResourceMetricLogicalMemory SummarizeHostInsightResourceUsageTrendAggregationCollectionResourceMetricEnum = "LOGICAL_MEMORY" + SummarizeHostInsightResourceUsageTrendAggregationCollectionResourceMetricStorage SummarizeHostInsightResourceUsageTrendAggregationCollectionResourceMetricEnum = "STORAGE" + SummarizeHostInsightResourceUsageTrendAggregationCollectionResourceMetricNetwork SummarizeHostInsightResourceUsageTrendAggregationCollectionResourceMetricEnum = "NETWORK" ) var mappingSummarizeHostInsightResourceUsageTrendAggregationCollectionResourceMetricEnum = map[string]SummarizeHostInsightResourceUsageTrendAggregationCollectionResourceMetricEnum{ "CPU": SummarizeHostInsightResourceUsageTrendAggregationCollectionResourceMetricCpu, "MEMORY": SummarizeHostInsightResourceUsageTrendAggregationCollectionResourceMetricMemory, "LOGICAL_MEMORY": SummarizeHostInsightResourceUsageTrendAggregationCollectionResourceMetricLogicalMemory, + "STORAGE": SummarizeHostInsightResourceUsageTrendAggregationCollectionResourceMetricStorage, + "NETWORK": SummarizeHostInsightResourceUsageTrendAggregationCollectionResourceMetricNetwork, } var mappingSummarizeHostInsightResourceUsageTrendAggregationCollectionResourceMetricEnumLowerCase = map[string]SummarizeHostInsightResourceUsageTrendAggregationCollectionResourceMetricEnum{ "cpu": SummarizeHostInsightResourceUsageTrendAggregationCollectionResourceMetricCpu, "memory": SummarizeHostInsightResourceUsageTrendAggregationCollectionResourceMetricMemory, "logical_memory": SummarizeHostInsightResourceUsageTrendAggregationCollectionResourceMetricLogicalMemory, + "storage": SummarizeHostInsightResourceUsageTrendAggregationCollectionResourceMetricStorage, + "network": SummarizeHostInsightResourceUsageTrendAggregationCollectionResourceMetricNetwork, } // GetSummarizeHostInsightResourceUsageTrendAggregationCollectionResourceMetricEnumValues Enumerates the set of values for SummarizeHostInsightResourceUsageTrendAggregationCollectionResourceMetricEnum @@ -98,6 +104,8 @@ func GetSummarizeHostInsightResourceUsageTrendAggregationCollectionResourceMetri "CPU", "MEMORY", "LOGICAL_MEMORY", + "STORAGE", + "NETWORK", } } diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_resource_usage_trend_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_resource_usage_trend_request_response.go index cef8c131913..fba7666cec6 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_resource_usage_trend_request_response.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_resource_usage_trend_request_response.go @@ -22,6 +22,7 @@ type SummarizeHostInsightResourceUsageTrendRequest struct { CompartmentId *string `mandatory:"true" contributesTo:"query" name:"compartmentId"` // Filter by host resource metric. + // Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK. ResourceMetric *string `mandatory:"true" contributesTo:"query" name:"resourceMetric"` // Specify time period in ISO 8601 format with respect to current time. diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_resource_utilization_insight_aggregation.go b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_resource_utilization_insight_aggregation.go index 5ade6ee5cf4..e6b1e9e8ebd 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_resource_utilization_insight_aggregation.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_resource_utilization_insight_aggregation.go @@ -26,6 +26,12 @@ type SummarizeHostInsightResourceUtilizationInsightAggregation struct { // The end timestamp that was passed into the request. TimeIntervalEnd *common.SDKTime `mandatory:"true" json:"timeIntervalEnd"` + // Percent value in which a resource metric is considered highly utilized. + HighUtilizationThreshold *int `mandatory:"true" json:"highUtilizationThreshold"` + + // Percent value in which a resource metric is considered lowly utilized. + LowUtilizationThreshold *int `mandatory:"true" json:"lowUtilizationThreshold"` + // Defines the type of resource metric (CPU, Physical Memory, Logical Memory) ResourceMetric SummarizeHostInsightResourceUtilizationInsightAggregationResourceMetricEnum `mandatory:"true" json:"resourceMetric"` @@ -61,18 +67,24 @@ const ( SummarizeHostInsightResourceUtilizationInsightAggregationResourceMetricCpu SummarizeHostInsightResourceUtilizationInsightAggregationResourceMetricEnum = "CPU" SummarizeHostInsightResourceUtilizationInsightAggregationResourceMetricMemory SummarizeHostInsightResourceUtilizationInsightAggregationResourceMetricEnum = "MEMORY" SummarizeHostInsightResourceUtilizationInsightAggregationResourceMetricLogicalMemory SummarizeHostInsightResourceUtilizationInsightAggregationResourceMetricEnum = "LOGICAL_MEMORY" + SummarizeHostInsightResourceUtilizationInsightAggregationResourceMetricStorage SummarizeHostInsightResourceUtilizationInsightAggregationResourceMetricEnum = "STORAGE" + SummarizeHostInsightResourceUtilizationInsightAggregationResourceMetricNetwork SummarizeHostInsightResourceUtilizationInsightAggregationResourceMetricEnum = "NETWORK" ) var mappingSummarizeHostInsightResourceUtilizationInsightAggregationResourceMetricEnum = map[string]SummarizeHostInsightResourceUtilizationInsightAggregationResourceMetricEnum{ "CPU": SummarizeHostInsightResourceUtilizationInsightAggregationResourceMetricCpu, "MEMORY": SummarizeHostInsightResourceUtilizationInsightAggregationResourceMetricMemory, "LOGICAL_MEMORY": SummarizeHostInsightResourceUtilizationInsightAggregationResourceMetricLogicalMemory, + "STORAGE": SummarizeHostInsightResourceUtilizationInsightAggregationResourceMetricStorage, + "NETWORK": SummarizeHostInsightResourceUtilizationInsightAggregationResourceMetricNetwork, } var mappingSummarizeHostInsightResourceUtilizationInsightAggregationResourceMetricEnumLowerCase = map[string]SummarizeHostInsightResourceUtilizationInsightAggregationResourceMetricEnum{ "cpu": SummarizeHostInsightResourceUtilizationInsightAggregationResourceMetricCpu, "memory": SummarizeHostInsightResourceUtilizationInsightAggregationResourceMetricMemory, "logical_memory": SummarizeHostInsightResourceUtilizationInsightAggregationResourceMetricLogicalMemory, + "storage": SummarizeHostInsightResourceUtilizationInsightAggregationResourceMetricStorage, + "network": SummarizeHostInsightResourceUtilizationInsightAggregationResourceMetricNetwork, } // GetSummarizeHostInsightResourceUtilizationInsightAggregationResourceMetricEnumValues Enumerates the set of values for SummarizeHostInsightResourceUtilizationInsightAggregationResourceMetricEnum @@ -90,6 +102,8 @@ func GetSummarizeHostInsightResourceUtilizationInsightAggregationResourceMetricE "CPU", "MEMORY", "LOGICAL_MEMORY", + "STORAGE", + "NETWORK", } } diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_resource_utilization_insight_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_resource_utilization_insight_request_response.go index 19dd2657166..91a144573c1 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_resource_utilization_insight_request_response.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_resource_utilization_insight_request_response.go @@ -22,6 +22,7 @@ type SummarizeHostInsightResourceUtilizationInsightRequest struct { CompartmentId *string `mandatory:"true" contributesTo:"query" name:"compartmentId"` // Filter by host resource metric. + // Supported values are CPU, MEMORY, LOGICAL_MEMORY, STORAGE and NETWORK. ResourceMetric *string `mandatory:"true" contributesTo:"query" name:"resourceMetric"` // Specify time period in ISO 8601 format with respect to current time. @@ -105,6 +106,12 @@ type SummarizeHostInsightResourceUtilizationInsightRequest struct { // Optional list of Exadata Insight VM cluster name. VmclusterName []string `contributesTo:"query" name:"vmclusterName" collectionFormat:"multi"` + // Percent value in which a resource metric is considered highly utilized. + HighUtilizationThreshold *int `mandatory:"false" contributesTo:"query" name:"highUtilizationThreshold"` + + // Percent value in which a resource metric is considered low utilized. + LowUtilizationThreshold *int `mandatory:"false" contributesTo:"query" name:"lowUtilizationThreshold"` + // Metadata about the request. This information will not be transmitted to the service, but // represents information that the SDK will consume to drive retry behavior. RequestMetadata common.RequestMetadata diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_storage_usage_trend_aggregation_collection.go b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_storage_usage_trend_aggregation_collection.go new file mode 100644 index 00000000000..c2c1a3ee40c --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_storage_usage_trend_aggregation_collection.go @@ -0,0 +1,110 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +// Operations Insights API +// +// Use the Operations Insights API to perform data extraction operations to obtain database +// resource utilization, performance statistics, and reference information. For more information, +// see About Oracle Cloud Infrastructure Operations Insights (https://docs.cloud.oracle.com/en-us/iaas/operations-insights/doc/operations-insights.html). +// + +package opsi + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "strings" +) + +// SummarizeHostInsightStorageUsageTrendAggregationCollection Top level response object. +type SummarizeHostInsightStorageUsageTrendAggregationCollection struct { + + // The start timestamp that was passed into the request. + TimeIntervalStart *common.SDKTime `mandatory:"true" json:"timeIntervalStart"` + + // The end timestamp that was passed into the request. + TimeIntervalEnd *common.SDKTime `mandatory:"true" json:"timeIntervalEnd"` + + // Displays usage unit ( CORES, GB , PERCENT, MBPS) + UsageUnit SummarizeHostInsightStorageUsageTrendAggregationCollectionUsageUnitEnum `mandatory:"true" json:"usageUnit"` + + // Time duration in milliseconds between data points (one hour or one day). + ItemDurationInMs *int64 `mandatory:"true" json:"itemDurationInMs"` + + // Collection of Usage Data with time stamps for all filesystems. + Items []StorageUsageTrendAggregation `mandatory:"true" json:"items"` +} + +func (m SummarizeHostInsightStorageUsageTrendAggregationCollection) String() string { + return common.PointerString(m) +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (m SummarizeHostInsightStorageUsageTrendAggregationCollection) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingSummarizeHostInsightStorageUsageTrendAggregationCollectionUsageUnitEnum(string(m.UsageUnit)); !ok && m.UsageUnit != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for UsageUnit: %s. Supported values are: %s.", m.UsageUnit, strings.Join(GetSummarizeHostInsightStorageUsageTrendAggregationCollectionUsageUnitEnumStringValues(), ","))) + } + + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// SummarizeHostInsightStorageUsageTrendAggregationCollectionUsageUnitEnum Enum with underlying type: string +type SummarizeHostInsightStorageUsageTrendAggregationCollectionUsageUnitEnum string + +// Set of constants representing the allowable values for SummarizeHostInsightStorageUsageTrendAggregationCollectionUsageUnitEnum +const ( + SummarizeHostInsightStorageUsageTrendAggregationCollectionUsageUnitCores SummarizeHostInsightStorageUsageTrendAggregationCollectionUsageUnitEnum = "CORES" + SummarizeHostInsightStorageUsageTrendAggregationCollectionUsageUnitGb SummarizeHostInsightStorageUsageTrendAggregationCollectionUsageUnitEnum = "GB" + SummarizeHostInsightStorageUsageTrendAggregationCollectionUsageUnitMbps SummarizeHostInsightStorageUsageTrendAggregationCollectionUsageUnitEnum = "MBPS" + SummarizeHostInsightStorageUsageTrendAggregationCollectionUsageUnitIops SummarizeHostInsightStorageUsageTrendAggregationCollectionUsageUnitEnum = "IOPS" + SummarizeHostInsightStorageUsageTrendAggregationCollectionUsageUnitPercent SummarizeHostInsightStorageUsageTrendAggregationCollectionUsageUnitEnum = "PERCENT" +) + +var mappingSummarizeHostInsightStorageUsageTrendAggregationCollectionUsageUnitEnum = map[string]SummarizeHostInsightStorageUsageTrendAggregationCollectionUsageUnitEnum{ + "CORES": SummarizeHostInsightStorageUsageTrendAggregationCollectionUsageUnitCores, + "GB": SummarizeHostInsightStorageUsageTrendAggregationCollectionUsageUnitGb, + "MBPS": SummarizeHostInsightStorageUsageTrendAggregationCollectionUsageUnitMbps, + "IOPS": SummarizeHostInsightStorageUsageTrendAggregationCollectionUsageUnitIops, + "PERCENT": SummarizeHostInsightStorageUsageTrendAggregationCollectionUsageUnitPercent, +} + +var mappingSummarizeHostInsightStorageUsageTrendAggregationCollectionUsageUnitEnumLowerCase = map[string]SummarizeHostInsightStorageUsageTrendAggregationCollectionUsageUnitEnum{ + "cores": SummarizeHostInsightStorageUsageTrendAggregationCollectionUsageUnitCores, + "gb": SummarizeHostInsightStorageUsageTrendAggregationCollectionUsageUnitGb, + "mbps": SummarizeHostInsightStorageUsageTrendAggregationCollectionUsageUnitMbps, + "iops": SummarizeHostInsightStorageUsageTrendAggregationCollectionUsageUnitIops, + "percent": SummarizeHostInsightStorageUsageTrendAggregationCollectionUsageUnitPercent, +} + +// GetSummarizeHostInsightStorageUsageTrendAggregationCollectionUsageUnitEnumValues Enumerates the set of values for SummarizeHostInsightStorageUsageTrendAggregationCollectionUsageUnitEnum +func GetSummarizeHostInsightStorageUsageTrendAggregationCollectionUsageUnitEnumValues() []SummarizeHostInsightStorageUsageTrendAggregationCollectionUsageUnitEnum { + values := make([]SummarizeHostInsightStorageUsageTrendAggregationCollectionUsageUnitEnum, 0) + for _, v := range mappingSummarizeHostInsightStorageUsageTrendAggregationCollectionUsageUnitEnum { + values = append(values, v) + } + return values +} + +// GetSummarizeHostInsightStorageUsageTrendAggregationCollectionUsageUnitEnumStringValues Enumerates the set of values in String for SummarizeHostInsightStorageUsageTrendAggregationCollectionUsageUnitEnum +func GetSummarizeHostInsightStorageUsageTrendAggregationCollectionUsageUnitEnumStringValues() []string { + return []string{ + "CORES", + "GB", + "MBPS", + "IOPS", + "PERCENT", + } +} + +// GetMappingSummarizeHostInsightStorageUsageTrendAggregationCollectionUsageUnitEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingSummarizeHostInsightStorageUsageTrendAggregationCollectionUsageUnitEnum(val string) (SummarizeHostInsightStorageUsageTrendAggregationCollectionUsageUnitEnum, bool) { + enum, ok := mappingSummarizeHostInsightStorageUsageTrendAggregationCollectionUsageUnitEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_storage_usage_trend_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_storage_usage_trend_request_response.go new file mode 100644 index 00000000000..f8fd0ad27dd --- /dev/null +++ b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_storage_usage_trend_request_response.go @@ -0,0 +1,181 @@ +// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved. +// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. +// Code generated. DO NOT EDIT. + +package opsi + +import ( + "fmt" + "github.com/oracle/oci-go-sdk/v65/common" + "net/http" + "strings" +) + +// SummarizeHostInsightStorageUsageTrendRequest wrapper for the SummarizeHostInsightStorageUsageTrend operation +// +// See also +// +// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/opsi/SummarizeHostInsightStorageUsageTrend.go.html to see an example of how to use SummarizeHostInsightStorageUsageTrendRequest. +type SummarizeHostInsightStorageUsageTrendRequest struct { + + // The OCID (https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment. + CompartmentId *string `mandatory:"true" contributesTo:"query" name:"compartmentId"` + + // Required OCID (https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the host insight resource. + Id *string `mandatory:"true" contributesTo:"query" name:"id"` + + // Specify time period in ISO 8601 format with respect to current time. + // Default is last 30 days represented by P30D. + // If timeInterval is specified, then timeIntervalStart and timeIntervalEnd will be ignored. + // Examples P90D (last 90 days), P4W (last 4 weeks), P2M (last 2 months), P1Y (last 12 months), . Maximum value allowed is 25 months prior to current time (P25M). + AnalysisTimeInterval *string `mandatory:"false" contributesTo:"query" name:"analysisTimeInterval"` + + // Analysis start time in UTC in ISO 8601 format(inclusive). + // Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). + // The minimum allowed value is 2 years prior to the current day. + // timeIntervalStart and timeIntervalEnd parameters are used together. + // If analysisTimeInterval is specified, this parameter is ignored. + TimeIntervalStart *common.SDKTime `mandatory:"false" contributesTo:"query" name:"timeIntervalStart"` + + // Analysis end time in UTC in ISO 8601 format(exclusive). + // Example 2019-10-30T00:00:00Z (yyyy-MM-ddThh:mm:ssZ). + // timeIntervalStart and timeIntervalEnd are used together. + // If timeIntervalEnd is not specified, current time is used as timeIntervalEnd. + TimeIntervalEnd *common.SDKTime `mandatory:"false" contributesTo:"query" name:"timeIntervalEnd"` + + // Optional OCID (https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the host (Compute Id) + HostId *string `mandatory:"false" contributesTo:"query" name:"hostId"` + + // For list pagination. The value of the `opc-next-page` response header from + // the previous "List" call. For important details about how pagination works, + // see List Pagination (https://docs.cloud.oracle.com/Content/API/Concepts/usingapi.htm#nine). + Page *string `mandatory:"false" contributesTo:"query" name:"page"` + + // For list pagination. The maximum number of results per page, or items to + // return in a paginated "List" call. + // For important details about how pagination works, see + // List Pagination (https://docs.cloud.oracle.com/Content/API/Concepts/usingapi.htm#nine). + // Example: `50` + Limit *int `mandatory:"false" contributesTo:"query" name:"limit"` + + // Choose the type of statistic metric data to be used for forecasting. + Statistic SummarizeHostInsightStorageUsageTrendStatisticEnum `mandatory:"false" contributesTo:"query" name:"statistic" omitEmpty:"true"` + + // Unique Oracle-assigned identifier for the request. If you need to contact + // Oracle about a particular request, please provide the request ID. + OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"` + + // Metadata about the request. This information will not be transmitted to the service, but + // represents information that the SDK will consume to drive retry behavior. + RequestMetadata common.RequestMetadata +} + +func (request SummarizeHostInsightStorageUsageTrendRequest) String() string { + return common.PointerString(request) +} + +// HTTPRequest implements the OCIRequest interface +func (request SummarizeHostInsightStorageUsageTrendRequest) HTTPRequest(method, path string, binaryRequestBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (http.Request, error) { + + _, err := request.ValidateEnumValue() + if err != nil { + return http.Request{}, err + } + return common.MakeDefaultHTTPRequestWithTaggedStructAndExtraHeaders(method, path, request, extraHeaders) +} + +// BinaryRequestBody implements the OCIRequest interface +func (request SummarizeHostInsightStorageUsageTrendRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) { + + return nil, false + +} + +// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy. +func (request SummarizeHostInsightStorageUsageTrendRequest) RetryPolicy() *common.RetryPolicy { + return request.RequestMetadata.RetryPolicy +} + +// ValidateEnumValue returns an error when providing an unsupported enum value +// This function is being called during constructing API request process +// Not recommended for calling this function directly +func (request SummarizeHostInsightStorageUsageTrendRequest) ValidateEnumValue() (bool, error) { + errMessage := []string{} + if _, ok := GetMappingSummarizeHostInsightStorageUsageTrendStatisticEnum(string(request.Statistic)); !ok && request.Statistic != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Statistic: %s. Supported values are: %s.", request.Statistic, strings.Join(GetSummarizeHostInsightStorageUsageTrendStatisticEnumStringValues(), ","))) + } + if len(errMessage) > 0 { + return true, fmt.Errorf(strings.Join(errMessage, "\n")) + } + return false, nil +} + +// SummarizeHostInsightStorageUsageTrendResponse wrapper for the SummarizeHostInsightStorageUsageTrend operation +type SummarizeHostInsightStorageUsageTrendResponse struct { + + // The underlying http response + RawResponse *http.Response + + // A list of SummarizeHostInsightStorageUsageTrendAggregationCollection instances + SummarizeHostInsightStorageUsageTrendAggregationCollection `presentIn:"body"` + + // Unique Oracle-assigned identifier for the request. If you need to contact + // Oracle about a particular request, please provide the request ID. + OpcRequestId *string `presentIn:"header" name:"opc-request-id"` + + // For pagination of a list of items. When paging through a list, if this header appears in the response, + // then a partial list might have been returned. Include this value as the `page` parameter for the + // subsequent GET request to get the next batch of items. + OpcNextPage *string `presentIn:"header" name:"opc-next-page"` +} + +func (response SummarizeHostInsightStorageUsageTrendResponse) String() string { + return common.PointerString(response) +} + +// HTTPResponse implements the OCIResponse interface +func (response SummarizeHostInsightStorageUsageTrendResponse) HTTPResponse() *http.Response { + return response.RawResponse +} + +// SummarizeHostInsightStorageUsageTrendStatisticEnum Enum with underlying type: string +type SummarizeHostInsightStorageUsageTrendStatisticEnum string + +// Set of constants representing the allowable values for SummarizeHostInsightStorageUsageTrendStatisticEnum +const ( + SummarizeHostInsightStorageUsageTrendStatisticAvg SummarizeHostInsightStorageUsageTrendStatisticEnum = "AVG" + SummarizeHostInsightStorageUsageTrendStatisticMax SummarizeHostInsightStorageUsageTrendStatisticEnum = "MAX" +) + +var mappingSummarizeHostInsightStorageUsageTrendStatisticEnum = map[string]SummarizeHostInsightStorageUsageTrendStatisticEnum{ + "AVG": SummarizeHostInsightStorageUsageTrendStatisticAvg, + "MAX": SummarizeHostInsightStorageUsageTrendStatisticMax, +} + +var mappingSummarizeHostInsightStorageUsageTrendStatisticEnumLowerCase = map[string]SummarizeHostInsightStorageUsageTrendStatisticEnum{ + "avg": SummarizeHostInsightStorageUsageTrendStatisticAvg, + "max": SummarizeHostInsightStorageUsageTrendStatisticMax, +} + +// GetSummarizeHostInsightStorageUsageTrendStatisticEnumValues Enumerates the set of values for SummarizeHostInsightStorageUsageTrendStatisticEnum +func GetSummarizeHostInsightStorageUsageTrendStatisticEnumValues() []SummarizeHostInsightStorageUsageTrendStatisticEnum { + values := make([]SummarizeHostInsightStorageUsageTrendStatisticEnum, 0) + for _, v := range mappingSummarizeHostInsightStorageUsageTrendStatisticEnum { + values = append(values, v) + } + return values +} + +// GetSummarizeHostInsightStorageUsageTrendStatisticEnumStringValues Enumerates the set of values in String for SummarizeHostInsightStorageUsageTrendStatisticEnum +func GetSummarizeHostInsightStorageUsageTrendStatisticEnumStringValues() []string { + return []string{ + "AVG", + "MAX", + } +} + +// GetMappingSummarizeHostInsightStorageUsageTrendStatisticEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingSummarizeHostInsightStorageUsageTrendStatisticEnum(val string) (SummarizeHostInsightStorageUsageTrendStatisticEnum, bool) { + enum, ok := mappingSummarizeHostInsightStorageUsageTrendStatisticEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_top_processes_usage_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_top_processes_usage_request_response.go index 564aa093ce9..351de01ec99 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_top_processes_usage_request_response.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_top_processes_usage_request_response.go @@ -74,6 +74,9 @@ type SummarizeHostInsightTopProcessesUsageRequest struct { // Optional OCID (https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the host (Compute Id) HostId *string `mandatory:"false" contributesTo:"query" name:"hostId"` + // Choose the type of statistic metric data to be used for forecasting. + Statistic SummarizeHostInsightTopProcessesUsageStatisticEnum `mandatory:"false" contributesTo:"query" name:"statistic" omitEmpty:"true"` + // Metadata about the request. This information will not be transmitted to the service, but // represents information that the SDK will consume to drive retry behavior. RequestMetadata common.RequestMetadata @@ -110,6 +113,9 @@ func (request SummarizeHostInsightTopProcessesUsageRequest) RetryPolicy() *commo // Not recommended for calling this function directly func (request SummarizeHostInsightTopProcessesUsageRequest) ValidateEnumValue() (bool, error) { errMessage := []string{} + if _, ok := GetMappingSummarizeHostInsightTopProcessesUsageStatisticEnum(string(request.Statistic)); !ok && request.Statistic != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Statistic: %s. Supported values are: %s.", request.Statistic, strings.Join(GetSummarizeHostInsightTopProcessesUsageStatisticEnumStringValues(), ","))) + } if len(errMessage) > 0 { return true, fmt.Errorf(strings.Join(errMessage, "\n")) } @@ -143,3 +149,45 @@ func (response SummarizeHostInsightTopProcessesUsageResponse) String() string { func (response SummarizeHostInsightTopProcessesUsageResponse) HTTPResponse() *http.Response { return response.RawResponse } + +// SummarizeHostInsightTopProcessesUsageStatisticEnum Enum with underlying type: string +type SummarizeHostInsightTopProcessesUsageStatisticEnum string + +// Set of constants representing the allowable values for SummarizeHostInsightTopProcessesUsageStatisticEnum +const ( + SummarizeHostInsightTopProcessesUsageStatisticAvg SummarizeHostInsightTopProcessesUsageStatisticEnum = "AVG" + SummarizeHostInsightTopProcessesUsageStatisticMax SummarizeHostInsightTopProcessesUsageStatisticEnum = "MAX" +) + +var mappingSummarizeHostInsightTopProcessesUsageStatisticEnum = map[string]SummarizeHostInsightTopProcessesUsageStatisticEnum{ + "AVG": SummarizeHostInsightTopProcessesUsageStatisticAvg, + "MAX": SummarizeHostInsightTopProcessesUsageStatisticMax, +} + +var mappingSummarizeHostInsightTopProcessesUsageStatisticEnumLowerCase = map[string]SummarizeHostInsightTopProcessesUsageStatisticEnum{ + "avg": SummarizeHostInsightTopProcessesUsageStatisticAvg, + "max": SummarizeHostInsightTopProcessesUsageStatisticMax, +} + +// GetSummarizeHostInsightTopProcessesUsageStatisticEnumValues Enumerates the set of values for SummarizeHostInsightTopProcessesUsageStatisticEnum +func GetSummarizeHostInsightTopProcessesUsageStatisticEnumValues() []SummarizeHostInsightTopProcessesUsageStatisticEnum { + values := make([]SummarizeHostInsightTopProcessesUsageStatisticEnum, 0) + for _, v := range mappingSummarizeHostInsightTopProcessesUsageStatisticEnum { + values = append(values, v) + } + return values +} + +// GetSummarizeHostInsightTopProcessesUsageStatisticEnumStringValues Enumerates the set of values in String for SummarizeHostInsightTopProcessesUsageStatisticEnum +func GetSummarizeHostInsightTopProcessesUsageStatisticEnumStringValues() []string { + return []string{ + "AVG", + "MAX", + } +} + +// GetMappingSummarizeHostInsightTopProcessesUsageStatisticEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingSummarizeHostInsightTopProcessesUsageStatisticEnum(val string) (SummarizeHostInsightTopProcessesUsageStatisticEnum, bool) { + enum, ok := mappingSummarizeHostInsightTopProcessesUsageStatisticEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_top_processes_usage_trend_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_top_processes_usage_trend_request_response.go index d3d721bb13f..8b5afffb3a6 100644 --- a/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_top_processes_usage_trend_request_response.go +++ b/vendor/github.com/oracle/oci-go-sdk/v65/opsi/summarize_host_insight_top_processes_usage_trend_request_response.go @@ -73,6 +73,9 @@ type SummarizeHostInsightTopProcessesUsageTrendRequest struct { // Unique identifier for a process. ProcessHash *string `mandatory:"false" contributesTo:"query" name:"processHash"` + // Choose the type of statistic metric data to be used for forecasting. + Statistic SummarizeHostInsightTopProcessesUsageTrendStatisticEnum `mandatory:"false" contributesTo:"query" name:"statistic" omitEmpty:"true"` + // Metadata about the request. This information will not be transmitted to the service, but // represents information that the SDK will consume to drive retry behavior. RequestMetadata common.RequestMetadata @@ -109,6 +112,9 @@ func (request SummarizeHostInsightTopProcessesUsageTrendRequest) RetryPolicy() * // Not recommended for calling this function directly func (request SummarizeHostInsightTopProcessesUsageTrendRequest) ValidateEnumValue() (bool, error) { errMessage := []string{} + if _, ok := GetMappingSummarizeHostInsightTopProcessesUsageTrendStatisticEnum(string(request.Statistic)); !ok && request.Statistic != "" { + errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Statistic: %s. Supported values are: %s.", request.Statistic, strings.Join(GetSummarizeHostInsightTopProcessesUsageTrendStatisticEnumStringValues(), ","))) + } if len(errMessage) > 0 { return true, fmt.Errorf(strings.Join(errMessage, "\n")) } @@ -142,3 +148,45 @@ func (response SummarizeHostInsightTopProcessesUsageTrendResponse) String() stri func (response SummarizeHostInsightTopProcessesUsageTrendResponse) HTTPResponse() *http.Response { return response.RawResponse } + +// SummarizeHostInsightTopProcessesUsageTrendStatisticEnum Enum with underlying type: string +type SummarizeHostInsightTopProcessesUsageTrendStatisticEnum string + +// Set of constants representing the allowable values for SummarizeHostInsightTopProcessesUsageTrendStatisticEnum +const ( + SummarizeHostInsightTopProcessesUsageTrendStatisticAvg SummarizeHostInsightTopProcessesUsageTrendStatisticEnum = "AVG" + SummarizeHostInsightTopProcessesUsageTrendStatisticMax SummarizeHostInsightTopProcessesUsageTrendStatisticEnum = "MAX" +) + +var mappingSummarizeHostInsightTopProcessesUsageTrendStatisticEnum = map[string]SummarizeHostInsightTopProcessesUsageTrendStatisticEnum{ + "AVG": SummarizeHostInsightTopProcessesUsageTrendStatisticAvg, + "MAX": SummarizeHostInsightTopProcessesUsageTrendStatisticMax, +} + +var mappingSummarizeHostInsightTopProcessesUsageTrendStatisticEnumLowerCase = map[string]SummarizeHostInsightTopProcessesUsageTrendStatisticEnum{ + "avg": SummarizeHostInsightTopProcessesUsageTrendStatisticAvg, + "max": SummarizeHostInsightTopProcessesUsageTrendStatisticMax, +} + +// GetSummarizeHostInsightTopProcessesUsageTrendStatisticEnumValues Enumerates the set of values for SummarizeHostInsightTopProcessesUsageTrendStatisticEnum +func GetSummarizeHostInsightTopProcessesUsageTrendStatisticEnumValues() []SummarizeHostInsightTopProcessesUsageTrendStatisticEnum { + values := make([]SummarizeHostInsightTopProcessesUsageTrendStatisticEnum, 0) + for _, v := range mappingSummarizeHostInsightTopProcessesUsageTrendStatisticEnum { + values = append(values, v) + } + return values +} + +// GetSummarizeHostInsightTopProcessesUsageTrendStatisticEnumStringValues Enumerates the set of values in String for SummarizeHostInsightTopProcessesUsageTrendStatisticEnum +func GetSummarizeHostInsightTopProcessesUsageTrendStatisticEnumStringValues() []string { + return []string{ + "AVG", + "MAX", + } +} + +// GetMappingSummarizeHostInsightTopProcessesUsageTrendStatisticEnum performs case Insensitive comparison on enum value and return the desired enum +func GetMappingSummarizeHostInsightTopProcessesUsageTrendStatisticEnum(val string) (SummarizeHostInsightTopProcessesUsageTrendStatisticEnum, bool) { + enum, ok := mappingSummarizeHostInsightTopProcessesUsageTrendStatisticEnumLowerCase[strings.ToLower(val)] + return enum, ok +} diff --git a/vendor/modules.txt b/vendor/modules.txt index 2cc0b1c3d7f..5dd56de05fb 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -248,7 +248,7 @@ github.com/mitchellh/reflectwalk # github.com/oklog/run v1.0.0 ## explicit github.com/oklog/run -# github.com/oracle/oci-go-sdk/v65 v65.32.0 +# github.com/oracle/oci-go-sdk/v65 v65.32.0 => ./vendor/github.com/oracle/oci-go-sdk ## explicit; go 1.13 github.com/oracle/oci-go-sdk/v65/adm github.com/oracle/oci-go-sdk/v65/aianomalydetection @@ -304,6 +304,7 @@ github.com/oracle/oci-go-sdk/v65/goldengate github.com/oracle/oci-go-sdk/v65/healthchecks github.com/oracle/oci-go-sdk/v65/identity github.com/oracle/oci-go-sdk/v65/identitydataplane +github.com/oracle/oci-go-sdk/v65/identitydomains github.com/oracle/oci-go-sdk/v65/integration github.com/oracle/oci-go-sdk/v65/jms github.com/oracle/oci-go-sdk/v65/keymanagement From 00b59bb88b3ec20ce845ee21e01da1167ba401dc Mon Sep 17 00:00:00 2001 From: rashik_bhasin Date: Fri, 10 Mar 2023 17:46:24 -0800 Subject: [PATCH 08/12] Finalize changelog and release for version v4.112.0 --- CHANGELOG.md | 11 ++ internal/globalvar/version.go | 4 +- website/oci.erb | 213 ++++++++++++++++++++++++++++++++++ 3 files changed, 226 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6b050a45b67..6025e8fa305 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,14 @@ +## 4.112.0 (Unreleased) + +### Added +- Support for GoldenGate Maintenance +- Platform Config support for AMD Milan GPU +- Support for SDK generation for IDCS APIs +- Support for BM/VM | OS Patching Support +### Bug Fix +- Investigate Replication Resource Discovery +- Fixed response reordering issue in Network Firewall + ## 4.111.0 (March 08, 2023) ### Added diff --git a/internal/globalvar/version.go b/internal/globalvar/version.go index 388cca1e326..09dc9cb37bd 100644 --- a/internal/globalvar/version.go +++ b/internal/globalvar/version.go @@ -7,8 +7,8 @@ import ( "log" ) -const Version = "4.111.0" -const ReleaseDate = "2023-03-08" +const Version = "4.112.0" +const ReleaseDate = "2023-03-15" func PrintVersion() { log.Printf("[INFO] terraform-provider-oci %s\n", Version) diff --git a/website/oci.erb b/website/oci.erb index c05f6277cae..5c7ac9d3d80 100644 --- a/website/oci.erb +++ b/website/oci.erb @@ -4030,6 +4030,9 @@
  • oci_golden_gate_deployment_upgrades
  • +
  • + oci_golden_gate_deployment_versions +
  • oci_golden_gate_deployments
  • @@ -4360,6 +4363,216 @@ + > + Identity Domains + + > Integration