diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8c7978557bf..7f712415446 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,15 @@
+## 5.16.0 (October 11, 2023)
+
+### Added
+- Support for Resource Usage Tracking Enhancement | ADB-C@C
+- Support for PDB Mgmt v2
+- Support for VCN Flow Logs for Telesis - Network command center
+- Support for DIS: Import / Export
+- Support for Marketplace Publisher Service, enhance Marketplace and Marketplace Publishing Services
+### Bug Fix
+- Deprecating OCVS v20200501 API support
+- Only trigger recreation while change subnet_id for endpoint config on native vcn cluster
+
## 5.15.0 (October 04, 2023)
### Added
diff --git a/examples/database/exadata_cc/adbd/acd.tf b/examples/database/exadata_cc/adbd/acd.tf
index 6e59ee45be7..c1703569c5a 100644
--- a/examples/database/exadata_cc/adbd/acd.tf
+++ b/examples/database/exadata_cc/adbd/acd.tf
@@ -25,4 +25,9 @@ resource "oci_database_autonomous_container_database" "autonomous_container_data
patch_model = "RELEASE_UPDATES"
service_level_agreement_type = "STANDARD"
version_preference = "LATEST_RELEASE_UPDATE"
+}
+
+data "oci_database_autonomous_container_database_resource_usage" "test_autonomous_container_database_resource_usages" {
+ #Required
+ autonomous_container_database_id = oci_database_autonomous_container_database.autonomous_container_database.id
}
\ No newline at end of file
diff --git a/examples/database/exadata_cc/adbd/datasources.tf b/examples/database/exadata_cc/adbd/datasources.tf
index 65f172965ab..185e61a1369 100644
--- a/examples/database/exadata_cc/adbd/datasources.tf
+++ b/examples/database/exadata_cc/adbd/datasources.tf
@@ -23,4 +23,17 @@ data "oci_database_autonomous_virtual_machines" "test_autonomous_virtual_machine
#Optional
state = var.autonomous_virtual_machine_state
+}
+
+data "oci_database_autonomous_vm_cluster_acd_resource_usages" "test_autonomous_vm_cluster_acd_resource_usages" {
+ #Required
+ autonomous_vm_cluster_id = oci_database_autonomous_vm_cluster.test_autonomous_vm_cluster.id
+
+ #Optional
+ compartment_id = var.compartment_ocid
+}
+
+data "oci_database_autonomous_vm_cluster_resource_usage" "test_autonomous_vm_cluster_resource_usages" {
+ #Required
+ autonomous_vm_cluster_id = oci_database_autonomous_vm_cluster.test_autonomous_vm_cluster.id
}
\ No newline at end of file
diff --git a/examples/database/pluggable_databases/LocalClone.tf b/examples/database/pluggable_databases/LocalClone.tf
index 77cd4faa9ec..130440e8195 100644
--- a/examples/database/pluggable_databases/LocalClone.tf
+++ b/examples/database/pluggable_databases/LocalClone.tf
@@ -1,12 +1,16 @@
// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved.
// Licensed under the Mozilla Public License v2.0
-resource "oci_database_pluggable_databases_local_clone" "test_pluggable_databases_local_clone" {
- cloned_pdb_name = "NewSalesPdb"
+resource "oci_database_pluggable_database" "test_pluggable_databases_local_clone" {
+ pdb_name = "localClonePdb"
+ container_database_id = "${data.oci_database_database.t.id}"
lifecycle {
ignore_changes = ["defined_tags"]
}
pdb_admin_password = "BEstrO0ng_#11"
- pluggable_database_id = "${oci_database_pluggable_database.test_pluggable_database.id}"
- target_tde_wallet_password = "BEstrO0ng_#11"
+ tde_wallet_password = "BEstrO0ng_#11"
+ pdb_creation_type_details {
+ creation_type = "LOCAL_CLONE_PDB"
+ source_pluggable_database_id = "${data.oci_database_pluggable_database.test_pluggable_database.id}"
+ }
}
\ No newline at end of file
diff --git a/examples/database/pluggable_databases/RemoteClone.tf b/examples/database/pluggable_databases/RemoteClone.tf
index 3ed53534eb7..a534b7b11c3 100644
--- a/examples/database/pluggable_databases/RemoteClone.tf
+++ b/examples/database/pluggable_databases/RemoteClone.tf
@@ -65,7 +65,7 @@ resource "oci_database_db_system" "tClone" {
database_edition = "ENTERPRISE_EDITION"
availability_domain = "${data.oci_identity_availability_domains.ADsClone.availability_domains.0.name}"
disk_redundancy = "NORMAL"
- shape = "VM.Standard1.1"
+ shape = "VM.Standard2.1"
ssh_public_keys = ["ssh-rsa KKKLK3NzaC1yc2EAAAADAQABAAABAQC+UC9MFNA55NIVtKPIBCNw7++ACXhD0hx+Zyj25JfHykjz/QU3Q5FAU3DxDbVXyubgXfb/GJnrKRY8O4QDdvnZZRvQFFEOaApThAmCAM5MuFUIHdFvlqP+0W+ZQnmtDhwVe2NCfcmOrMuaPEgOKO3DOW6I/qOOdO691Xe2S9NgT9HhN0ZfFtEODVgvYulgXuCCXsJs+NUqcHAOxxFUmwkbPvYi0P0e2DT8JKeiOOC8VKUEgvVx+GKmqasm+Y6zHFW7vv3g2GstE1aRs3mttHRoC/JPM86PRyIxeWXEMzyG5wHqUu4XZpDbnWNxi6ugxnAGiL3CrIFdCgRNgHz5qS1l MustWin"]
display_name = "-tf-dbSystem-clone-001"
domain = "${oci_core_subnet.tClone.dns_label}.${oci_core_virtual_network.tClone.dns_label}.oraclevcn.com"
@@ -73,9 +73,10 @@ resource "oci_database_db_system" "tClone" {
data_storage_size_in_gb = "256"
license_model = "LICENSE_INCLUDED"
node_count = "1"
+ cpu_core_count = "${var.cpu_core_count}"
fault_domains = ["FAULT-DOMAIN-1"]
db_home {
- db_version = "12.2.0.1"
+ db_version = "21.8.0.0"
display_name = "-tf-db-home-clone"
database {
admin_password = "BEstrO0ng_#11"
@@ -132,11 +133,17 @@ data "oci_database_database" "tClone" {
database_id = "${data.oci_database_databases.tClone.databases.0.id}"
}
-resource "oci_database_pluggable_databases_remote_clone" "test_pluggable_databases_remote_clone" {
- cloned_pdb_name = "NewSalesPdb"
+resource "oci_database_pluggable_database" "test_pluggable_databases_remote_clone" {
+ pdb_name = "pdbRemoteClone"
+ container_database_id = "${data.oci_database_database.tClone.id}"
+ tde_wallet_password = "BEstrO0ng_#11"
pdb_admin_password = "BEstrO0ng_#11"
- pluggable_database_id = "${oci_database_pluggable_database.test_pluggable_database.id}"
- source_container_db_admin_password = "BEstrO0ng_#11"
- target_container_database_id = "${data.oci_database_database.tClone.id}"
- target_tde_wallet_password = "BEstrO0ng_#11"
+ pdb_creation_type_details {
+ creation_type = "REMOTE_CLONE_PDB"
+ refreshable_clone_details { is_refreshable_clone = true }
+ dblink_username = "DBLINKUSER"
+ dblink_user_password = "DBLINKPWD"
+ source_pluggable_database_id = "${oci_database_pluggable_database.test_pluggable_database.id}"
+ source_container_database_admin_password = "BEstrO0ng_#11"
+ }
}
diff --git a/examples/database/pluggable_databases/main.tf b/examples/database/pluggable_databases/main.tf
index 87ff9c71617..3e7f31929b4 100644
--- a/examples/database/pluggable_databases/main.tf
+++ b/examples/database/pluggable_databases/main.tf
@@ -86,7 +86,8 @@ resource "oci_database_db_system" "t" {
database_edition = "ENTERPRISE_EDITION"
availability_domain = "${data.oci_identity_availability_domains.ADs.availability_domains.0.name}"
disk_redundancy = "NORMAL"
- shape = "VM.Standard1.1"
+ shape = "VM.Standard2.1"
+ cpu_core_count = "${var.cpu_core_count}"
ssh_public_keys = ["ssh-rsa KKKLK3NzaC1yc2EAAAADAQABAAABAQC+UC9MFNA55NIVtKPIBCNw7++ACXhD0hx+Zyj25JfHykjz/QU3Q5FAU3DxDbVXyubgXfb/GJnrKRY8O4QDdvnZZRvQFFEOaApThAmCAM5MuFUIHdFvlqP+0W+ZQnmtDhwVe2NCfcmOrMuaPEgOKO3DOW6I/qOOdO691Xe2S9NgT9HhN0ZfFtEODVgvYulgXuCCXsJs+NUqcHAOxxFUmwkbPvYi0P0e2DT8JKeiOOC8VKUEgvVx+GKmqasm+Y6zHFW7vv3g2GstE1aRs3mttHRoC/JPM86PRyIxeWXEMzyG5wHqUu4XZpDbnWNxi6ugxnAGiL3CrIFdCgRNgHz5qS1l MustWin"]
display_name = "-tf-dbSystem-001"
domain = "${oci_core_subnet.t.dns_label}.${oci_core_virtual_network.t.dns_label}.oraclevcn.com"
@@ -96,7 +97,7 @@ resource "oci_database_db_system" "t" {
node_count = "1"
fault_domains = ["FAULT-DOMAIN-1"]
db_home {
- db_version = "12.2.0.1"
+ db_version = "21.8.0.0"
display_name = "-tf-db-home"
database {
admin_password = "BEstrO0ng_#11"
@@ -161,3 +162,21 @@ resource "oci_database_pluggable_database" "test_pluggable_database" {
pdb_name = "SalesPdb"
tde_wallet_password = "BEstrO0ng_#11"
}
+
+resource "oci_database_pluggable_database" "test_pluggable_database2" {
+ container_database_id = "${data.oci_database_database.t.id}"
+ lifecycle {
+ ignore_changes = ["defined_tags"]
+ }
+ pdb_admin_password = "BEstrO0ng_#11"
+ pdb_name = "Pdb2"
+ tde_wallet_password = "BEstrO0ng_#11"
+}
+
+data "oci_database_pluggable_database" "test_pluggable_database" {
+ pluggable_database_id = "${oci_database_pluggable_database.test_pluggable_database.id}"
+}
+
+data "oci_database_pluggable_database" "test_pluggable_database2" {
+ pluggable_database_id = "${oci_database_pluggable_database.test_pluggable_database2.id}"
+}
\ No newline at end of file
diff --git a/examples/database/pluggable_databases/relocate.tf b/examples/database/pluggable_databases/relocate.tf
new file mode 100644
index 00000000000..1b18067b0da
--- /dev/null
+++ b/examples/database/pluggable_databases/relocate.tf
@@ -0,0 +1,146 @@
+// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved.
+// Licensed under the Mozilla Public License v2.0
+
+data "oci_identity_availability_domains" "ADsRelocate" {
+ compartment_id = "${var.compartment_id}"
+}
+
+resource "oci_core_virtual_network" "relocate" {
+ compartment_id = "${var.compartment_id}"
+ cidr_block = "10.1.0.0/16"
+ display_name = "-tf-vcn-clone"
+ dns_label = "tfvcnclone"
+}
+
+resource "oci_core_route_table" "relocate" {
+ compartment_id = "${var.compartment_id}"
+ vcn_id = "${oci_core_virtual_network.relocate.id}"
+ route_rules {
+ cidr_block = "0.0.0.0/0"
+ network_entity_id = "${oci_core_internet_gateway.relocate.id}"
+ }
+}
+resource "oci_core_internet_gateway" "relocate" {
+ compartment_id = "${var.compartment_id}"
+ vcn_id = "${oci_core_virtual_network.relocate.id}"
+ display_name = "-tf-internet-gateway-clone"
+}
+
+resource "oci_core_subnet" "relocate" {
+ availability_domain = "${data.oci_identity_availability_domains.ADsRelocate.availability_domains.0.name}"
+ cidr_block = "10.1.20.0/24"
+ display_name = "TFSubnetClone1"
+ compartment_id = "${var.compartment_id}"
+ vcn_id = "${oci_core_virtual_network.relocate.id}"
+ route_table_id = "${oci_core_route_table.relocate.id}"
+ dhcp_options_id = "${oci_core_virtual_network.relocate.default_dhcp_options_id}"
+ security_list_ids = ["${oci_core_virtual_network.relocate.default_security_list_id}"]
+ dns_label = "tfsubnetclone"
+}
+resource "oci_core_subnet" "t2Clone" {
+ availability_domain = "${data.oci_identity_availability_domains.ADsRelocate.availability_domains.0.name}"
+ cidr_block = "10.1.21.0/24"
+ display_name = "TFSubnetClone2"
+ compartment_id = "${var.compartment_id}"
+ vcn_id = "${oci_core_virtual_network.relocate.id}"
+ route_table_id = "${oci_core_route_table.relocate.id}"
+ dhcp_options_id = "${oci_core_virtual_network.relocate.default_dhcp_options_id}"
+ security_list_ids = ["${oci_core_virtual_network.relocate.default_security_list_id}"]
+ dns_label = "tfsubnetclone2"
+}
+resource "oci_core_network_security_group" "test_network_security_group_clone" {
+ compartment_id = "${var.compartment_id}"
+ vcn_id = "${oci_core_virtual_network.relocate.id}"
+ display_name = "displayName"
+}
+
+resource "oci_core_network_security_group" "test_network_security_group_clone2" {
+ compartment_id = "${var.compartment_id}"
+ vcn_id = "${oci_core_virtual_network.relocate.id}"
+}
+
+resource "oci_database_db_system" "relocate" {
+ compartment_id = "${var.compartment_id}"
+ subnet_id = "${oci_core_subnet.relocate.id}"
+ database_edition = "ENTERPRISE_EDITION"
+ availability_domain = "${data.oci_identity_availability_domains.ADsRelocate.availability_domains.0.name}"
+ disk_redundancy = "NORMAL"
+ shape = "VM.Standard2.1"
+ ssh_public_keys = ["ssh-rsa KKKLK3NzaC1yc2EAAAADAQABAAABAQC+UC9MFNA55NIVtKPIBCNw7++ACXhD0hx+Zyj25JfHykjz/QU3Q5FAU3DxDbVXyubgXfb/GJnrKRY8O4QDdvnZZRvQFFEOaApThAmCAM5MuFUIHdFvlqP+0W+ZQnmtDhwVe2NCfcmOrMuaPEgOKO3DOW6I/qOOdO691Xe2S9NgT9HhN0ZfFtEODVgvYulgXuCCXsJs+NUqcHAOxxFUmwkbPvYi0P0e2DT8JKeiOOC8VKUEgvVx+GKmqasm+Y6zHFW7vv3g2GstE1aRs3mttHRoC/JPM86PRyIxeWXEMzyG5wHqUu4XZpDbnWNxi6ugxnAGiL3CrIFdCgRNgHz5qS1l MustWin"]
+ display_name = "-tf-dbSystem-clone-001"
+ domain = "${oci_core_subnet.relocate.dns_label}.${oci_core_virtual_network.relocate.dns_label}.oraclevcn.com"
+ hostname = "myOracleDB" // this will be lowercased server side
+ data_storage_size_in_gb = "256"
+ license_model = "LICENSE_INCLUDED"
+ node_count = "1"
+ cpu_core_count = "${var.cpu_core_count}"
+ fault_domains = ["FAULT-DOMAIN-1"]
+ db_home {
+ db_version = "21.8.0.0"
+ display_name = "-tf-db-home-clone"
+ database {
+ admin_password = "BEstrO0ng_#11"
+ db_name = "aTFdbC"
+ character_set = "AL32UTF8"
+ defined_tags = "${map("example-tag-namespace-all.example-tag", "originalValue")}"
+ freeform_tags = {"Department" = "Finance"}
+ ncharacter_set = "AL16UTF16"
+ db_workload = "OLTP"
+ pdb_name = "pdbName"
+ }
+ }
+ db_system_options {
+ storage_management = "LVM"
+ }
+ defined_tags = "${map("example-tag-namespace-all.example-tag", "originalValue")}"
+ freeform_tags = {"Department" = "Finance"}
+ nsg_ids = ["${oci_core_network_security_group.test_network_security_group_clone.id}"]
+ lifecycle {
+ ignore_changes = [
+ db_home.0.db_version,
+ defined_tags,
+ db_home.0.database.0.defined_tags,
+ ]
+ }
+}
+data "oci_database_db_systems" "relocate" {
+ compartment_id = "${var.compartment_id}"
+ filter {
+ name = "id"
+ values = ["${oci_database_db_system.relocate.id}"]
+ }
+}
+data "oci_database_db_homes" "relocate" {
+ compartment_id = "${var.compartment_id}"
+ db_system_id = "${oci_database_db_system.relocate.id}"
+ filter {
+ name = "db_system_id"
+ values = ["${oci_database_db_system.relocate.id}"]
+ }
+}
+data "oci_database_db_home" "relocate" {
+ db_home_id = "${data.oci_database_db_homes.relocate.db_homes.0.db_home_id}"
+}
+data "oci_database_databases" "relocate" {
+ compartment_id = "${var.compartment_id}"
+ db_home_id = "${data.oci_database_db_homes.relocate.db_homes.0.id}"
+ filter {
+ name = "db_name"
+ values = ["${oci_database_db_system.relocate.db_home.0.database.0.db_name}"]
+ }
+}
+data "oci_database_database" "relocate" {
+ database_id = "${data.oci_database_databases.relocate.databases.0.id}"
+}
+
+resource "oci_database_pluggable_databases_local_clone" "test_pluggable_databases_relocate" {
+ pdb_name = "pdbRelocate"
+ container_database_id = "${data.oci_database_database.relocate.id}"
+ tde_wallet_password = "BEstrO0ng_#11"
+ pdb_admin_password = "BEstrO0ng_#11"
+ pdb_creation_type_details {
+ creation_type = "RELOCATE"
+ source_pluggable_database_id = "${oci_database_pluggable_database.test_pluggable_database2.id}"
+ source_container_database_admin_password = "BEstrO0ng_#11"
+ }
+}
\ No newline at end of file
diff --git a/examples/database/pluggable_databases/variables.tf b/examples/database/pluggable_databases/variables.tf
index 8981f3b7e9b..6111338fccf 100644
--- a/examples/database/pluggable_databases/variables.tf
+++ b/examples/database/pluggable_databases/variables.tf
@@ -23,3 +23,7 @@ variable "fingerprint" {
variable defined_tag_namespace_name {
default = ""
}
+
+variable "cpu_core_count" {
+ default = "2"
+}
diff --git a/examples/dataintegration/workspace_export_requests/provider.tf b/examples/dataintegration/workspace_export_requests/provider.tf
new file mode 100644
index 00000000000..aa43169a0d1
--- /dev/null
+++ b/examples/dataintegration/workspace_export_requests/provider.tf
@@ -0,0 +1,25 @@
+// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved.
+// Licensed under the Mozilla Public License v2.0
+
+variable "region" {
+}
+
+variable "tenancy_ocid" {
+}
+
+variable "user_ocid" {
+}
+
+variable "fingerprint" {
+}
+
+variable "private_key_path" {
+}
+
+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
+}
\ No newline at end of file
diff --git a/examples/dataintegration/workspace_export_requests/workspace_export_request.tf b/examples/dataintegration/workspace_export_requests/workspace_export_request.tf
new file mode 100644
index 00000000000..530775bca16
--- /dev/null
+++ b/examples/dataintegration/workspace_export_requests/workspace_export_request.tf
@@ -0,0 +1,82 @@
+// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved.
+// Licensed under the Mozilla Public License v2.0
+
+variable "workspace_export_request_are_references_included" {
+ default = false
+}
+
+variable "workspace_export_request_bucket" {
+ default = "bucket"
+}
+
+variable "workspace_export_request_export_status" {
+ default = "SUCCESSFUL"
+}
+
+variable "workspace_export_request_file_name" {
+ default = "MyExportObjects.zip"
+}
+
+variable "workspace_export_request_filters" {
+ default = []
+}
+
+variable "workspace_export_request_is_object_overwrite_enabled" {
+ default = true
+}
+
+variable "workspace_export_request_name" {
+ default = "name"
+}
+
+variable "workspace_export_request_object_keys" {
+ default = []
+}
+
+variable "workspace_export_request_object_storage_region" {
+ default = "us-ashburn-1"
+}
+
+variable "workspace_export_request_projection" {
+ default = "SUMMARY"
+}
+
+variable "workspace_export_request_time_ended_in_millis" {
+}
+
+variable "workspace_export_request_time_started_in_millis" {
+}
+
+variable "workspace_id" {
+}
+
+variable "tenancy_id" {
+}
+
+resource "oci_dataintegration_workspace_export_request" "test_workspace_export_request" {
+ #Required
+ bucket = var.workspace_export_request_bucket
+ workspace_id = var.workspace_id
+
+ #Optional
+ are_references_included = var.workspace_export_request_are_references_included
+ file_name = var.workspace_export_request_file_name
+ filters = var.workspace_export_request_filters
+ is_object_overwrite_enabled = var.workspace_export_request_is_object_overwrite_enabled
+ object_keys = var.workspace_export_request_object_keys
+ object_storage_region = var.workspace_export_request_object_storage_region
+ object_storage_tenancy_id = var.tenancy_id
+}
+
+data "oci_dataintegration_workspace_export_requests" "test_workspace_export_requests" {
+ #Required
+ workspace_id = var.workspace_id
+
+ #Optional
+ export_status = var.workspace_export_request_export_status
+ name = var.workspace_export_request_name
+ projection = var.workspace_export_request_projection
+ time_ended_in_millis = var.workspace_export_request_time_ended_in_millis
+ time_started_in_millis = var.workspace_export_request_time_started_in_millis
+}
+
diff --git a/examples/dataintegration/workspace_import_requests/provider.tf b/examples/dataintegration/workspace_import_requests/provider.tf
new file mode 100644
index 00000000000..aa43169a0d1
--- /dev/null
+++ b/examples/dataintegration/workspace_import_requests/provider.tf
@@ -0,0 +1,25 @@
+// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved.
+// Licensed under the Mozilla Public License v2.0
+
+variable "region" {
+}
+
+variable "tenancy_ocid" {
+}
+
+variable "user_ocid" {
+}
+
+variable "fingerprint" {
+}
+
+variable "private_key_path" {
+}
+
+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
+}
\ No newline at end of file
diff --git a/examples/dataintegration/workspace_import_requests/workspace_import_request.tf b/examples/dataintegration/workspace_import_requests/workspace_import_request.tf
new file mode 100644
index 00000000000..bbd0d45bfb8
--- /dev/null
+++ b/examples/dataintegration/workspace_import_requests/workspace_import_request.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 "workspace_import_request_bucket" {
+ default = "bucket"
+}
+
+variable "workspace_import_request_file_name" {
+ default = "MyExportObjects.zip"
+}
+
+variable "workspace_import_request_import_conflict_resolution_duplicate_prefix" {
+ default = "duplicatePrefix"
+}
+
+variable "workspace_import_request_import_conflict_resolution_duplicate_suffix" {
+ default = "duplicateSuffix"
+}
+
+variable "workspace_import_request_import_conflict_resolution_import_conflict_resolution_type" {
+ default = "REPLACE"
+}
+
+variable "workspace_import_request_import_status" {
+ default = "SUCCESSFUL"
+}
+
+variable "workspace_import_request_name" {
+ default = "name"
+}
+
+variable "workspace_import_request_object_key_for_import" {
+ default = ""
+}
+
+variable "workspace_import_request_object_storage_region" {
+ default = "us-ashburn-1"
+}
+
+variable "workspace_import_request_projection" {
+ default = "SUMMARY"
+}
+
+variable "workspace_import_request_time_ended_in_millis" {
+}
+
+variable "workspace_import_request_time_started_in_millis" {
+}
+
+variable "workspace_id" {
+}
+
+variable "tenancy_id" {
+}
+
+resource "oci_dataintegration_workspace_import_request" "test_workspace_import_request" {
+ #Required
+ bucket = var.workspace_import_request_bucket
+ file_name = var.workspace_import_request_file_name
+ workspace_id = var.workspace_id
+
+ #Optional
+ import_conflict_resolution {
+ #Required
+ import_conflict_resolution_type = var.workspace_import_request_import_conflict_resolution_import_conflict_resolution_type
+
+ #Optional
+ duplicate_prefix = var.workspace_import_request_import_conflict_resolution_duplicate_prefix
+ duplicate_suffix = var.workspace_import_request_import_conflict_resolution_duplicate_suffix
+ }
+ object_key_for_import = var.workspace_import_request_object_key_for_import
+ object_storage_region = var.workspace_import_request_object_storage_region
+ object_storage_tenancy_id = var.tenancy_id
+}
+
+data "oci_dataintegration_workspace_import_requests" "test_workspace_import_requests" {
+ #Required
+ workspace_id = var.workspace_id
+
+ #Optional
+ import_status = var.workspace_import_request_import_status
+ name = var.workspace_import_request_name
+ projection = var.workspace_import_request_projection
+ time_ended_in_millis = var.workspace_import_request_time_ended_in_millis
+ time_started_in_millis = var.workspace_import_request_time_started_in_millis
+}
+
diff --git a/examples/networking/capture_filter/capture_filter.tf b/examples/networking/capture_filter/capture_filter.tf
index 989f8a69b99..94c5fffe59a 100644
--- a/examples/networking/capture_filter/capture_filter.tf
+++ b/examples/networking/capture_filter/capture_filter.tf
@@ -36,3 +36,16 @@ resource "oci_core_capture_filter" "example_capture_filter" {
}
}
+resource "oci_core_capture_filter" "example_flowlog_capture_filter" {
+ compartment_id = var.compartment_ocid
+ display_name = "exampleFlowLogCaptureFilter"
+ filter_type = "FLOWLOG"
+ flow_log_capture_filter_rules {
+ is_enabled = true
+ priority = "2"
+ sampling_rate = "5"
+ flow_log_type = "ALL"
+ rule_action = "EXCLUDE"
+ }
+}
+
diff --git a/go.mod b/go.mod
index ca050eb9adf..cbe72027ed8 100644
--- a/go.mod
+++ b/go.mod
@@ -53,7 +53,7 @@ require (
github.com/mitchellh/mapstructure v1.1.2 // indirect
github.com/mitchellh/reflectwalk v1.0.2 // indirect
github.com/oklog/run v1.0.0 // indirect
- github.com/oracle/oci-go-sdk/v65 v65.49.3
+ github.com/oracle/oci-go-sdk/v65 v65.49.4
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/sony/gobreaker v0.5.0 // indirect
github.com/ulikunitz/xz v0.5.8 // indirect
diff --git a/go.sum b/go.sum
index a1ef6f4f768..c2a3d052f68 100644
--- a/go.sum
+++ b/go.sum
@@ -289,8 +289,8 @@ github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQ
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
-github.com/oracle/oci-go-sdk/v65 v65.49.3 h1:HHv+XMZiBYHtoU8Ac/fURdp9v1vJPPCpIbJAWeadREw=
-github.com/oracle/oci-go-sdk/v65 v65.49.3/go.mod h1:IBEV9l1qBzUpo7zgGaRUhbB05BVfcDGYRFBCPlTcPp0=
+github.com/oracle/oci-go-sdk/v65 v65.49.4 h1:RcJ5jV8DNm62Eb39RY18P/UlnE4RWhISQPNQhDD1fNw=
+github.com/oracle/oci-go-sdk/v65 v65.49.4/go.mod h1:IBEV9l1qBzUpo7zgGaRUhbB05BVfcDGYRFBCPlTcPp0=
github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
diff --git a/internal/globalvar/version.go b/internal/globalvar/version.go
index 11506c185cb..99fb36754e6 100644
--- a/internal/globalvar/version.go
+++ b/internal/globalvar/version.go
@@ -7,8 +7,8 @@ import (
"log"
)
-const Version = "5.15.0"
-const ReleaseDate = "2023-10-04"
+const Version = "5.16.0"
+const ReleaseDate = "2023-10-11"
func PrintVersion() {
log.Printf("[INFO] terraform-provider-oci %s\n", Version)
diff --git a/internal/integrationtest/containerengine_cluster_test.go b/internal/integrationtest/containerengine_cluster_test.go
index 3cf0cf1faa8..fc29e4db257 100644
--- a/internal/integrationtest/containerengine_cluster_test.go
+++ b/internal/integrationtest/containerengine_cluster_test.go
@@ -26,6 +26,19 @@ import (
)
var (
+ ContainerengineNativeVCNMigrationClusterRepresentation = map[string]interface{}{
+ "compartment_id": acctest.Representation{RepType: acctest.Required, Create: `${var.compartment_id}`},
+ "kubernetes_version": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_containerengine_cluster_option.test_cluster_option.kubernetes_versions[length(data.oci_containerengine_cluster_option.test_cluster_option.kubernetes_versions)-1]}`},
+ "name": acctest.Representation{RepType: acctest.Required, Create: `test_cluster`},
+ "vcn_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_core_vcn.test_vcn.id}`},
+ "endpoint_config": acctest.RepresentationGroup{RepType: acctest.Optional, Group: ContainerengineNativeVCNMIgrationClusterEndpointConfigRepresentation},
+ }
+
+ ContainerengineNativeVCNMIgrationClusterEndpointConfigRepresentation = map[string]interface{}{
+ "nsg_ids": acctest.Representation{RepType: acctest.Optional, Create: []string{`${oci_core_network_security_group.test_network_security_group.id}`}, Update: []string{}},
+ "subnet_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_core_subnet.test_subnet.id}`, Update: `${oci_core_subnet.test_subnet2.id}`},
+ }
+
ContainerengineClusterRequiredOnlyResource = ContainerengineClusterResourceDependencies +
acctest.GenerateResourceFromRepresentationMap("oci_containerengine_cluster", "test_cluster", acctest.Required, acctest.Create, ContainerengineClusterRepresentation)
@@ -96,6 +109,7 @@ var (
acctest.GenerateDataSourceFromRepresentationMap("oci_containerengine_cluster_option", "test_cluster_option", acctest.Required, acctest.Create, ContainerengineContainerengineClusterOptionSingularDataSourceRepresentation) +
acctest.GenerateResourceFromRepresentationMap("oci_core_network_security_group", "test_network_security_group", acctest.Required, acctest.Create, CoreNetworkSecurityGroupRepresentation) +
acctest.GenerateResourceFromRepresentationMap("oci_core_subnet", "test_subnet", acctest.Required, acctest.Create, CoreSubnetRepresentation) +
+ acctest.GenerateResourceFromRepresentationMap("oci_core_subnet", "test_subnet2", acctest.Required, acctest.Create, acctest.RepresentationCopyWithNewProperties(CoreSubnetRepresentation, map[string]interface{}{"cidr_block": acctest.Representation{RepType: acctest.Required, Create: `10.0.22.0/24`}})) +
acctest.GenerateResourceFromRepresentationMap("oci_core_vcn", "test_vcn", acctest.Required, acctest.Create, acctest.RepresentationCopyWithNewProperties(CoreVcnRepresentation, map[string]interface{}{
"dns_label": acctest.Representation{RepType: acctest.Required, Create: `dnslabel`},
})) +
@@ -410,3 +424,114 @@ func ContainerengineClusterSweepResponseFetchOperation(client *tf_client.OracleC
})
return err
}
+
+// issue-routing-tag: containerengine/default
+func TestContainerengineNativeVcnMigration_test(t *testing.T) {
+ httpreplay.SetScenario("TestContainerengineNativeVcnMigration_test")
+ defer httpreplay.SaveScenario()
+
+ config := acctest.ProviderTestConfig()
+
+ compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid")
+ compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId)
+
+ resourceName := "oci_containerengine_cluster.test_cluster"
+ singularDatasourceName := "data.oci_containerengine_migrate_to_native_vcn_status.test_migrate_to_native_vcn_status"
+
+ var resId, resId2 string
+
+ acctest.SaveConfigContent("", "", "", t)
+
+ acctest.ResourceTest(t, nil, []resource.TestStep{
+ // Create V1h Cluster
+ {
+ Config: config + compartmentIdVariableStr + ContainerengineClusterResourceDependencies +
+ acctest.GenerateResourceFromRepresentationMap("oci_containerengine_cluster", "test_cluster", acctest.Required, acctest.Create, ContainerengineNativeVCNMigrationClusterRepresentation),
+ Check: acctest.ComposeAggregateTestCheckFuncWrapper(
+ resource.TestCheckResourceAttr(resourceName, "compartment_id", compartmentId),
+ resource.TestCheckResourceAttrSet(resourceName, "kubernetes_version"),
+ resource.TestCheckResourceAttr(resourceName, "name", "test_cluster"),
+ resource.TestCheckResourceAttrSet(resourceName, "vcn_id"),
+
+ func(s *terraform.State) (err error) {
+ resId, err = acctest.FromInstanceState(s, resourceName, "id")
+ return err
+ },
+ ),
+ },
+ // verify V1h Cluster migrates to V2
+ {
+ Config: config + compartmentIdVariableStr + ContainerengineClusterResourceDependencies +
+ acctest.GenerateResourceFromRepresentationMap("oci_containerengine_cluster", "test_cluster", acctest.Optional, acctest.Update, ContainerengineNativeVCNMigrationClusterRepresentation),
+ Check: acctest.ComposeAggregateTestCheckFuncWrapper(
+ resource.TestCheckResourceAttr(resourceName, "compartment_id", compartmentId),
+ resource.TestCheckResourceAttr(resourceName, "endpoint_config.#", "1"),
+ resource.TestCheckResourceAttr(resourceName, "endpoint_config.0.is_public_ip_enabled", "false"),
+ resource.TestCheckResourceAttrSet(resourceName, "endpoint_config.0.subnet_id"),
+ resource.TestCheckResourceAttrSet(resourceName, "kubernetes_version"),
+ resource.TestCheckResourceAttrSet(resourceName, "vcn_id"),
+
+ 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 singular datasource
+ {
+ Config: config + compartmentIdVariableStr + ContainerengineClusterResourceDependencies + acctest.GenerateResourceFromRepresentationMap("oci_containerengine_cluster", "test_cluster", acctest.Optional, acctest.Update, ContainerengineNativeVCNMigrationClusterRepresentation) + acctest.GenerateDataSourceFromRepresentationMap(
+ "oci_containerengine_migrate_to_native_vcn_status", "test_migrate_to_native_vcn_status",
+ acctest.Optional, acctest.Create, ContainerengineContainerengineMigrateToNativeVcnStatuSingularDataSourceRepresentation),
+ Check: acctest.ComposeAggregateTestCheckFuncWrapper(
+ resource.TestCheckResourceAttrSet(singularDatasourceName, "cluster_id"),
+ resource.TestCheckResourceAttrSet(singularDatasourceName, "state"),
+ resource.TestCheckResourceAttrSet(singularDatasourceName, "time_decommission_scheduled"),
+ ),
+ },
+ // delete before next Create
+ {
+ Config: config + compartmentIdVariableStr + ContainerengineClusterResourceDependencies,
+ },
+ // create v2 cluster
+ {
+ Config: config + compartmentIdVariableStr + ContainerengineClusterResourceDependencies +
+ acctest.GenerateResourceFromRepresentationMap("oci_containerengine_cluster", "test_cluster", acctest.Optional, acctest.Create, ContainerengineNativeVCNMigrationClusterRepresentation),
+ Check: acctest.ComposeAggregateTestCheckFuncWrapper(
+ resource.TestCheckResourceAttr(resourceName, "compartment_id", compartmentId),
+ resource.TestCheckResourceAttrSet(resourceName, "kubernetes_version"),
+ resource.TestCheckResourceAttr(resourceName, "name", "test_cluster"),
+ resource.TestCheckResourceAttrSet(resourceName, "vcn_id"),
+ resource.TestCheckResourceAttr(resourceName, "endpoint_config.#", "1"),
+ resource.TestCheckResourceAttr(resourceName, "endpoint_config.0.nsg_ids.#", "1"),
+ resource.TestCheckResourceAttrSet(resourceName, "endpoint_config.0.subnet_id"),
+ func(s *terraform.State) (err error) {
+ resId, err = acctest.FromInstanceState(s, resourceName, "id")
+ return err
+ },
+ ),
+ },
+ //verify recreation when changing endpointconfig.subnetId
+ {
+ Config: config + compartmentIdVariableStr + ContainerengineClusterResourceDependencies +
+ acctest.GenerateResourceFromRepresentationMap("oci_containerengine_cluster", "test_cluster", acctest.Optional, acctest.Update, ContainerengineNativeVCNMigrationClusterRepresentation),
+ Check: acctest.ComposeAggregateTestCheckFuncWrapper(
+ resource.TestCheckResourceAttr(resourceName, "compartment_id", compartmentId),
+ resource.TestCheckResourceAttr(resourceName, "endpoint_config.#", "1"),
+ resource.TestCheckResourceAttr(resourceName, "endpoint_config.0.is_public_ip_enabled", "false"),
+ resource.TestCheckResourceAttrSet(resourceName, "endpoint_config.0.subnet_id"),
+ resource.TestCheckResourceAttrSet(resourceName, "kubernetes_version"),
+ resource.TestCheckResourceAttrSet(resourceName, "vcn_id"),
+ func(s *terraform.State) (err error) {
+ resId2, err = acctest.FromInstanceState(s, resourceName, "id")
+ if resId == resId2 {
+ return fmt.Errorf("resource is supposed to be recreated when endpoint_config.subnet_id updated")
+ }
+ return err
+ },
+ ),
+ },
+ })
+}
diff --git a/internal/integrationtest/core_capture_filter_flowlogs_test.go b/internal/integrationtest/core_capture_filter_flowlogs_test.go
new file mode 100644
index 00000000000..dde7f082875
--- /dev/null
+++ b/internal/integrationtest/core_capture_filter_flowlogs_test.go
@@ -0,0 +1,393 @@
+// 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"
+ "strconv"
+ "testing"
+
+ "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_core "github.com/oracle/oci-go-sdk/v65/core"
+
+ "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 (
+ CoreCaptureFilterFlowLogsRequiredOnlyResource = CoreCaptureFilterFlowLogsResourceDependencies +
+ acctest.GenerateResourceFromRepresentationMap("oci_core_capture_filter", "test_capture_filter", acctest.Required, acctest.Create, CoreCaptureFilterFlowLogsRepresentation)
+
+ CoreCaptureFilterFlowLogsResourceConfig = CoreCaptureFilterFlowLogsResourceDependencies +
+ acctest.GenerateResourceFromRepresentationMap("oci_core_capture_filter", "test_capture_filter", acctest.Optional, acctest.Update, CoreCaptureFilterFlowLogsRepresentation)
+
+ CoreCoreCaptureFilterFlowLogsSingularDataSourceRepresentation = map[string]interface{}{
+ "capture_filter_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_core_capture_filter.test_capture_filter.id}`},
+ }
+
+ CoreCoreCaptureFilterFlowLogsDataSourceRepresentation = map[string]interface{}{
+ "compartment_id": acctest.Representation{RepType: acctest.Required, Create: `${var.compartment_id}`},
+ "display_name": acctest.Representation{RepType: acctest.Optional, Create: `MyCaptureFilter`, Update: `displayName2`},
+ "state": acctest.Representation{RepType: acctest.Optional, Create: `AVAILABLE`},
+ "filter": acctest.RepresentationGroup{RepType: acctest.Required, Group: CoreCaptureFilterFlowLogsDataSourceFilterRepresentation}}
+ CoreCaptureFilterFlowLogsDataSourceFilterRepresentation = map[string]interface{}{
+ "name": acctest.Representation{RepType: acctest.Required, Create: `id`},
+ "values": acctest.Representation{RepType: acctest.Required, Create: []string{`${oci_core_capture_filter.test_capture_filter.id}`}},
+ }
+
+ CoreCaptureFilterFlowLogsRepresentation = map[string]interface{}{
+ "compartment_id": acctest.Representation{RepType: acctest.Required, Create: `${var.compartment_id}`},
+ // maybe this should be required now, and in VTAP file, also check if it creates VTAP capture filter if filter_type is null (or make that optional there)
+ "filter_type": acctest.Representation{RepType: acctest.Required, Create: `FLOWLOG`},
+ "flow_log_capture_filter_rules": acctest.RepresentationGroup{RepType: acctest.Required, Group: CoreCaptureFilterFlowLogCaptureFilterRulesRepresentation},
+ "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: `MyCaptureFilter`, Update: `displayName2`},
+ "freeform_tags": acctest.Representation{RepType: acctest.Optional, Create: map[string]string{"Department": "Finance"}, Update: map[string]string{"Department": "Accounting"}},
+ }
+
+ CoreCaptureFilterFlowLogCaptureFilterRulesRepresentation = map[string]interface{}{
+ "flow_log_type": acctest.Representation{RepType: acctest.Required, Create: `ALL`, Update: `REJECT`},
+ "is_enabled": acctest.Representation{RepType: acctest.Required, Create: `false`, Update: `true`},
+ "priority": acctest.Representation{RepType: acctest.Required, Create: `2`, Update: `3`},
+ "rule_action": acctest.Representation{RepType: acctest.Required, Create: `INCLUDE`, Update: `EXCLUDE`},
+ "sampling_rate": acctest.Representation{RepType: acctest.Required, Create: `10`, Update: `11`},
+ "destination_cidr": acctest.Representation{RepType: acctest.Optional, Create: `10.3.0.0/16`, Update: `10.4.0.0/16`},
+ "protocol": acctest.Representation{RepType: acctest.Optional, Create: `6`},
+ "source_cidr": acctest.Representation{RepType: acctest.Optional, Create: `10.0.0.1/32`, Update: `10.0.0.2/32`},
+ "tcp_options": acctest.RepresentationGroup{RepType: acctest.Optional, Group: CoreCaptureFilterFlowLogCaptureFilterRulesTcpOptionsRepresentation},
+ }
+
+ CoreCaptureFilterFlowLogCaptureFilterRulesTcpOptionsRepresentation = map[string]interface{}{
+ "destination_port_range": acctest.RepresentationGroup{RepType: acctest.Optional, Group: CoreCaptureFilterFlowLogCaptureFilterRulesTcpOptionsDestinationPortRangeRepresentation},
+ "source_port_range": acctest.RepresentationGroup{RepType: acctest.Optional, Group: CoreCaptureFilterFlowLogCaptureFilterRulesTcpOptionsSourcePortRangeRepresentation},
+ }
+
+ CoreCaptureFilterFlowLogCaptureFilterRulesTcpOptionsDestinationPortRangeRepresentation = map[string]interface{}{
+ "max": acctest.Representation{RepType: acctest.Required, Create: `10`, Update: `11`},
+ "min": acctest.Representation{RepType: acctest.Required, Create: `10`, Update: `11`},
+ }
+
+ CoreCaptureFilterFlowLogCaptureFilterRulesTcpOptionsSourcePortRangeRepresentation = map[string]interface{}{
+ "max": acctest.Representation{RepType: acctest.Required, Create: `10`, Update: `11`},
+ "min": acctest.Representation{RepType: acctest.Required, Create: `10`, Update: `11`},
+ }
+
+ // These are needed only if the protocol is set to UDP/ICMP. If its set to TCP then these fields will be null
+ //CoreCaptureFilterFlowLogCaptureFilterRulesUdpOptionsDestinationPortRangeRepresentation = map[string]interface{}{
+ // "max": acctest.Representation{RepType: acctest.Required, Create: `10`, Update: `11`},
+ // "min": acctest.Representation{RepType: acctest.Required, Create: `10`, Update: `11`},
+ //}
+ //
+ //CoreCaptureFilterFlowLogCaptureFilterRulesUdpOptionsSourcePortRangeRepresentation = map[string]interface{}{
+ // "max": acctest.Representation{RepType: acctest.Required, Create: `10`, Update: `11`},
+ // "min": acctest.Representation{RepType: acctest.Required, Create: `10`, Update: `11`},
+ //}
+ //
+ //CoreCaptureFilterFlowLogCaptureFilterRulesUdpOptionsRepresentation = map[string]interface{}{
+ // "destination_port_range": acctest.RepresentationGroup{RepType: acctest.Optional, Group: CoreCaptureFilterFlowLogCaptureFilterRulesUdpOptionsDestinationPortRangeRepresentation},
+ // "source_port_range": acctest.RepresentationGroup{RepType: acctest.Optional, Group: CoreCaptureFilterFlowLogCaptureFilterRulesUdpOptionsSourcePortRangeRepresentation},
+ //}
+ //
+ //CoreCaptureFilterFlowLogCaptureFilterRulesIcmpOptionsRepresentation = map[string]interface{}{
+ // "type": acctest.Representation{RepType: acctest.Required, Create: `10`, Update: `11`},
+ // "code": acctest.Representation{RepType: acctest.Optional, Create: `10`, Update: `11`},
+ //}
+
+ CoreCaptureFilterFlowLogsResourceDependencies = DefinedTagsDependencies
+)
+
+// issue-routing-tag: core/virtualNetwork
+func TestCoreCaptureFilterFlowLogsResource_basic(t *testing.T) {
+ httpreplay.SetScenario("TestCoreCaptureFilterFlowLogsResource_basic")
+ defer httpreplay.SaveScenario()
+
+ config := acctest.ProviderTestConfig()
+
+ compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid")
+ compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId)
+
+ compartmentIdU := utils.GetEnvSettingWithDefault("compartment_id_for_update", compartmentId)
+ compartmentIdUVariableStr := fmt.Sprintf("variable \"compartment_id_for_update\" { default = \"%s\" }\n", compartmentIdU)
+
+ resourceName := "oci_core_capture_filter.test_capture_filter"
+ datasourceName := "data.oci_core_capture_filters.test_capture_filters"
+ singularDatasourceName := "data.oci_core_capture_filter.test_capture_filter"
+
+ 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+CoreCaptureFilterFlowLogsResourceDependencies+
+ acctest.GenerateResourceFromRepresentationMap("oci_core_capture_filter", "test_capture_filter", acctest.Optional, acctest.Create, CoreCaptureFilterFlowLogsRepresentation), "core", "captureFilter", t)
+
+ acctest.ResourceTest(t, testAccCheckCoreCaptureFilterFlowLogsDestroy, []resource.TestStep{
+ // verify Create
+ {
+ Config: config + compartmentIdVariableStr + CoreCaptureFilterFlowLogsResourceDependencies +
+ acctest.GenerateResourceFromRepresentationMap("oci_core_capture_filter", "test_capture_filter", acctest.Required, acctest.Create, CoreCaptureFilterFlowLogsRepresentation),
+ Check: acctest.ComposeAggregateTestCheckFuncWrapper(
+ resource.TestCheckResourceAttr(resourceName, "compartment_id", compartmentId),
+ resource.TestCheckResourceAttr(resourceName, "filter_type", "FLOWLOG"),
+
+ resource.TestCheckResourceAttr(resourceName, "flow_log_capture_filter_rules.0.flow_log_type", "ALL"),
+ resource.TestCheckResourceAttr(resourceName, "flow_log_capture_filter_rules.0.is_enabled", "false"),
+ resource.TestCheckResourceAttr(resourceName, "flow_log_capture_filter_rules.0.rule_action", "INCLUDE"),
+ resource.TestCheckResourceAttr(resourceName, "flow_log_capture_filter_rules.0.sampling_rate", "10"),
+ resource.TestCheckResourceAttr(resourceName, "flow_log_capture_filter_rules.0.priority", "2"),
+
+ func(s *terraform.State) (err error) {
+ resId, err = acctest.FromInstanceState(s, resourceName, "id")
+ return err
+ },
+ ),
+ },
+
+ // delete before next Create
+ {
+ Config: config + compartmentIdVariableStr + CoreCaptureFilterFlowLogsResourceDependencies,
+ },
+ // verify Create with optionals
+ {
+ Config: config + compartmentIdVariableStr + CoreCaptureFilterFlowLogsResourceDependencies +
+ acctest.GenerateResourceFromRepresentationMap("oci_core_capture_filter", "test_capture_filter", acctest.Optional, acctest.Create, CoreCaptureFilterFlowLogsRepresentation),
+ Check: acctest.ComposeAggregateTestCheckFuncWrapper(
+ resource.TestCheckResourceAttr(resourceName, "compartment_id", compartmentId),
+ resource.TestCheckResourceAttr(resourceName, "display_name", "MyCaptureFilter"),
+ resource.TestCheckResourceAttr(resourceName, "filter_type", "FLOWLOG"),
+ resource.TestCheckResourceAttr(resourceName, "freeform_tags.%", "1"),
+ resource.TestCheckResourceAttrSet(resourceName, "id"),
+ resource.TestCheckResourceAttrSet(resourceName, "state"),
+ resource.TestCheckResourceAttr(resourceName, "flow_log_capture_filter_rules.#", "1"),
+ resource.TestCheckResourceAttr(resourceName, "flow_log_capture_filter_rules.0.destination_cidr", "10.3.0.0/16"),
+ resource.TestCheckResourceAttr(resourceName, "flow_log_capture_filter_rules.0.flow_log_type", "ALL"),
+ resource.TestCheckResourceAttr(resourceName, "flow_log_capture_filter_rules.0.is_enabled", "false"),
+ resource.TestCheckResourceAttr(resourceName, "flow_log_capture_filter_rules.0.priority", "2"),
+ resource.TestCheckResourceAttr(resourceName, "flow_log_capture_filter_rules.0.protocol", "6"),
+ resource.TestCheckResourceAttr(resourceName, "flow_log_capture_filter_rules.0.rule_action", "INCLUDE"),
+ resource.TestCheckResourceAttr(resourceName, "flow_log_capture_filter_rules.0.sampling_rate", "10"),
+ resource.TestCheckResourceAttr(resourceName, "flow_log_capture_filter_rules.0.source_cidr", "10.0.0.1/32"),
+ resource.TestCheckResourceAttr(resourceName, "flow_log_capture_filter_rules.0.tcp_options.#", "1"),
+ resource.TestCheckResourceAttr(resourceName, "flow_log_capture_filter_rules.0.tcp_options.0.destination_port_range.#", "1"),
+ resource.TestCheckResourceAttr(resourceName, "flow_log_capture_filter_rules.0.tcp_options.0.destination_port_range.0.max", "10"),
+ resource.TestCheckResourceAttr(resourceName, "flow_log_capture_filter_rules.0.tcp_options.0.destination_port_range.0.min", "10"),
+ resource.TestCheckResourceAttr(resourceName, "flow_log_capture_filter_rules.0.tcp_options.0.source_port_range.#", "1"),
+ resource.TestCheckResourceAttr(resourceName, "flow_log_capture_filter_rules.0.tcp_options.0.source_port_range.0.max", "10"),
+ resource.TestCheckResourceAttr(resourceName, "flow_log_capture_filter_rules.0.tcp_options.0.source_port_range.0.min", "10"),
+
+ func(s *terraform.State) (err error) {
+ resId, err = acctest.FromInstanceState(s, resourceName, "id")
+ if isEnableExportCompartment, _ := strconv.ParseBool(utils.GetEnvSettingWithDefault("enable_export_compartment", "true")); isEnableExportCompartment {
+ if errExport := resourcediscovery.TestExportCompartmentWithResourceName(&resId, &compartmentId, resourceName); errExport != nil {
+ return errExport
+ }
+ }
+ return err
+ },
+ ),
+ },
+
+ // verify Update to the compartment (the compartment will be switched back in the next step)
+ {
+ Config: config + compartmentIdVariableStr + compartmentIdUVariableStr + CoreCaptureFilterFlowLogsResourceDependencies +
+ acctest.GenerateResourceFromRepresentationMap("oci_core_capture_filter", "test_capture_filter", acctest.Optional, acctest.Create,
+ acctest.RepresentationCopyWithNewProperties(CoreCaptureFilterFlowLogsRepresentation, map[string]interface{}{
+ "compartment_id": acctest.Representation{RepType: acctest.Required, Create: `${var.compartment_id_for_update}`},
+ })),
+ Check: acctest.ComposeAggregateTestCheckFuncWrapper(
+ resource.TestCheckResourceAttr(resourceName, "flow_log_capture_filter_rules.#", "1"),
+ resource.TestCheckResourceAttr(resourceName, "compartment_id", compartmentIdU),
+ resource.TestCheckResourceAttr(resourceName, "display_name", "MyCaptureFilter"),
+ resource.TestCheckResourceAttr(resourceName, "filter_type", "FLOWLOG"),
+ resource.TestCheckResourceAttr(resourceName, "freeform_tags.%", "1"),
+ resource.TestCheckResourceAttrSet(resourceName, "id"),
+ resource.TestCheckResourceAttrSet(resourceName, "state"),
+ resource.TestCheckResourceAttr(resourceName, "flow_log_capture_filter_rules.0.destination_cidr", "10.3.0.0/16"),
+ resource.TestCheckResourceAttr(resourceName, "flow_log_capture_filter_rules.0.flow_log_type", "ALL"),
+ resource.TestCheckResourceAttr(resourceName, "flow_log_capture_filter_rules.0.is_enabled", "false"),
+ resource.TestCheckResourceAttr(resourceName, "flow_log_capture_filter_rules.0.priority", "2"),
+ resource.TestCheckResourceAttr(resourceName, "flow_log_capture_filter_rules.0.protocol", "6"),
+ resource.TestCheckResourceAttr(resourceName, "flow_log_capture_filter_rules.0.rule_action", "INCLUDE"),
+ resource.TestCheckResourceAttr(resourceName, "flow_log_capture_filter_rules.0.sampling_rate", "10"),
+ resource.TestCheckResourceAttr(resourceName, "flow_log_capture_filter_rules.0.source_cidr", "10.0.0.1/32"),
+ resource.TestCheckResourceAttr(resourceName, "flow_log_capture_filter_rules.0.tcp_options.#", "1"),
+ resource.TestCheckResourceAttr(resourceName, "flow_log_capture_filter_rules.0.tcp_options.0.destination_port_range.#", "1"),
+ resource.TestCheckResourceAttr(resourceName, "flow_log_capture_filter_rules.0.tcp_options.0.destination_port_range.0.max", "10"),
+ resource.TestCheckResourceAttr(resourceName, "flow_log_capture_filter_rules.0.tcp_options.0.destination_port_range.0.min", "10"),
+ resource.TestCheckResourceAttr(resourceName, "flow_log_capture_filter_rules.0.tcp_options.0.source_port_range.#", "1"),
+ resource.TestCheckResourceAttr(resourceName, "flow_log_capture_filter_rules.0.tcp_options.0.source_port_range.0.max", "10"),
+ resource.TestCheckResourceAttr(resourceName, "flow_log_capture_filter_rules.0.tcp_options.0.source_port_range.0.min", "10"),
+
+ 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 updates to updatable parameters
+ {
+ Config: config + compartmentIdVariableStr + CoreCaptureFilterFlowLogsResourceDependencies +
+ acctest.GenerateResourceFromRepresentationMap("oci_core_capture_filter", "test_capture_filter", acctest.Optional, acctest.Update, CoreCaptureFilterFlowLogsRepresentation),
+ Check: acctest.ComposeAggregateTestCheckFuncWrapper(
+ resource.TestCheckResourceAttr(resourceName, "compartment_id", compartmentId),
+ resource.TestCheckResourceAttr(resourceName, "display_name", "displayName2"),
+ resource.TestCheckResourceAttr(resourceName, "filter_type", "FLOWLOG"),
+ resource.TestCheckResourceAttr(resourceName, "freeform_tags.%", "1"),
+ resource.TestCheckResourceAttrSet(resourceName, "id"),
+ resource.TestCheckResourceAttrSet(resourceName, "state"),
+ resource.TestCheckResourceAttr(resourceName, "flow_log_capture_filter_rules.#", "1"),
+ resource.TestCheckResourceAttr(resourceName, "flow_log_capture_filter_rules.0.destination_cidr", "10.4.0.0/16"),
+ resource.TestCheckResourceAttr(resourceName, "flow_log_capture_filter_rules.0.flow_log_type", "REJECT"),
+ resource.TestCheckResourceAttr(resourceName, "flow_log_capture_filter_rules.0.is_enabled", "true"),
+ resource.TestCheckResourceAttr(resourceName, "flow_log_capture_filter_rules.0.priority", "3"),
+
+ // protocol cannot be updated
+ //resource.TestCheckResourceAttr(resourceName, "flow_log_capture_filter_rules.0.protocol", "protocol2"),
+ resource.TestCheckResourceAttr(resourceName, "flow_log_capture_filter_rules.0.rule_action", "EXCLUDE"),
+ resource.TestCheckResourceAttr(resourceName, "flow_log_capture_filter_rules.0.sampling_rate", "11"),
+ resource.TestCheckResourceAttr(resourceName, "flow_log_capture_filter_rules.0.source_cidr", "10.0.0.2/32"),
+ resource.TestCheckResourceAttr(resourceName, "flow_log_capture_filter_rules.0.tcp_options.#", "1"),
+ resource.TestCheckResourceAttr(resourceName, "flow_log_capture_filter_rules.0.tcp_options.0.destination_port_range.#", "1"),
+ resource.TestCheckResourceAttr(resourceName, "flow_log_capture_filter_rules.0.tcp_options.0.destination_port_range.0.max", "11"),
+ resource.TestCheckResourceAttr(resourceName, "flow_log_capture_filter_rules.0.tcp_options.0.destination_port_range.0.min", "11"),
+ resource.TestCheckResourceAttr(resourceName, "flow_log_capture_filter_rules.0.tcp_options.0.source_port_range.#", "1"),
+ resource.TestCheckResourceAttr(resourceName, "flow_log_capture_filter_rules.0.tcp_options.0.source_port_range.0.max", "11"),
+ resource.TestCheckResourceAttr(resourceName, "flow_log_capture_filter_rules.0.tcp_options.0.source_port_range.0.min", "11"),
+
+ 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_core_capture_filters", "test_capture_filters", acctest.Optional, acctest.Update, CoreCoreCaptureFilterFlowLogsDataSourceRepresentation) +
+ compartmentIdVariableStr + CoreCaptureFilterFlowLogsResourceDependencies +
+ acctest.GenerateResourceFromRepresentationMap("oci_core_capture_filter", "test_capture_filter", acctest.Optional, acctest.Update, CoreCaptureFilterFlowLogsRepresentation),
+ Check: acctest.ComposeAggregateTestCheckFuncWrapper(
+ resource.TestCheckResourceAttr(datasourceName, "compartment_id", compartmentId),
+ resource.TestCheckResourceAttr(datasourceName, "display_name", "displayName2"),
+ resource.TestCheckResourceAttr(datasourceName, "state", "AVAILABLE"),
+
+ resource.TestCheckResourceAttr(datasourceName, "capture_filters.#", "1"),
+ resource.TestCheckResourceAttr(datasourceName, "capture_filters.0.compartment_id", compartmentId),
+ resource.TestCheckResourceAttr(datasourceName, "capture_filters.0.display_name", "displayName2"),
+ resource.TestCheckResourceAttr(datasourceName, "capture_filters.0.filter_type", "FLOWLOG"),
+ resource.TestCheckResourceAttr(datasourceName, "capture_filters.0.freeform_tags.%", "1"),
+ resource.TestCheckResourceAttrSet(datasourceName, "capture_filters.0.id"),
+ resource.TestCheckResourceAttrSet(datasourceName, "capture_filters.0.state"),
+ resource.TestCheckResourceAttrSet(datasourceName, "capture_filters.0.time_created"),
+ resource.TestCheckResourceAttr(datasourceName, "capture_filters.0.flow_log_capture_filter_rules.#", "1"),
+ resource.TestCheckResourceAttr(datasourceName, "capture_filters.0.flow_log_capture_filter_rules.0.destination_cidr", "10.4.0.0/16"),
+ resource.TestCheckResourceAttr(datasourceName, "capture_filters.0.flow_log_capture_filter_rules.0.flow_log_type", "REJECT"),
+ resource.TestCheckResourceAttr(datasourceName, "capture_filters.0.flow_log_capture_filter_rules.0.is_enabled", "true"),
+ resource.TestCheckResourceAttr(datasourceName, "capture_filters.0.flow_log_capture_filter_rules.0.priority", "3"),
+ resource.TestCheckResourceAttr(datasourceName, "capture_filters.0.flow_log_capture_filter_rules.0.protocol", "6"),
+ resource.TestCheckResourceAttr(datasourceName, "capture_filters.0.flow_log_capture_filter_rules.0.rule_action", "EXCLUDE"),
+ resource.TestCheckResourceAttr(datasourceName, "capture_filters.0.flow_log_capture_filter_rules.0.sampling_rate", "11"),
+ resource.TestCheckResourceAttr(datasourceName, "capture_filters.0.flow_log_capture_filter_rules.0.source_cidr", "10.0.0.2/32"),
+ resource.TestCheckResourceAttr(datasourceName, "capture_filters.0.flow_log_capture_filter_rules.0.tcp_options.#", "1"),
+ resource.TestCheckResourceAttr(datasourceName, "capture_filters.0.flow_log_capture_filter_rules.0.tcp_options.0.destination_port_range.#", "1"),
+ resource.TestCheckResourceAttr(datasourceName, "capture_filters.0.flow_log_capture_filter_rules.0.tcp_options.0.destination_port_range.0.max", "11"),
+ resource.TestCheckResourceAttr(datasourceName, "capture_filters.0.flow_log_capture_filter_rules.0.tcp_options.0.destination_port_range.0.min", "11"),
+ resource.TestCheckResourceAttr(datasourceName, "capture_filters.0.flow_log_capture_filter_rules.0.tcp_options.0.source_port_range.#", "1"),
+ resource.TestCheckResourceAttr(datasourceName, "capture_filters.0.flow_log_capture_filter_rules.0.tcp_options.0.source_port_range.0.max", "11"),
+ resource.TestCheckResourceAttr(datasourceName, "capture_filters.0.flow_log_capture_filter_rules.0.tcp_options.0.source_port_range.0.min", "11"),
+ ),
+ },
+ // verify singular datasource
+ {
+ Config: config +
+ acctest.GenerateDataSourceFromRepresentationMap("oci_core_capture_filter", "test_capture_filter", acctest.Required, acctest.Create, CoreCoreCaptureFilterFlowLogsSingularDataSourceRepresentation) +
+ compartmentIdVariableStr + CoreCaptureFilterFlowLogsResourceConfig,
+ Check: acctest.ComposeAggregateTestCheckFuncWrapper(
+ resource.TestCheckResourceAttrSet(singularDatasourceName, "capture_filter_id"),
+
+ resource.TestCheckResourceAttr(singularDatasourceName, "compartment_id", compartmentId),
+ resource.TestCheckResourceAttr(singularDatasourceName, "display_name", "displayName2"),
+ resource.TestCheckResourceAttr(singularDatasourceName, "filter_type", "FLOWLOG"),
+ resource.TestCheckResourceAttr(singularDatasourceName, "freeform_tags.%", "1"),
+ resource.TestCheckResourceAttrSet(singularDatasourceName, "id"),
+ resource.TestCheckResourceAttrSet(singularDatasourceName, "state"),
+ resource.TestCheckResourceAttrSet(singularDatasourceName, "time_created"),
+ resource.TestCheckResourceAttr(singularDatasourceName, "flow_log_capture_filter_rules.#", "1"),
+ resource.TestCheckResourceAttr(singularDatasourceName, "flow_log_capture_filter_rules.0.destination_cidr", "10.4.0.0/16"),
+ resource.TestCheckResourceAttr(singularDatasourceName, "flow_log_capture_filter_rules.0.flow_log_type", "REJECT"),
+ resource.TestCheckResourceAttr(singularDatasourceName, "flow_log_capture_filter_rules.0.is_enabled", "true"),
+ resource.TestCheckResourceAttr(singularDatasourceName, "flow_log_capture_filter_rules.0.priority", "3"),
+ resource.TestCheckResourceAttr(singularDatasourceName, "flow_log_capture_filter_rules.0.protocol", "6"),
+ resource.TestCheckResourceAttr(singularDatasourceName, "flow_log_capture_filter_rules.0.rule_action", "EXCLUDE"),
+ resource.TestCheckResourceAttr(singularDatasourceName, "flow_log_capture_filter_rules.0.sampling_rate", "11"),
+ resource.TestCheckResourceAttr(singularDatasourceName, "flow_log_capture_filter_rules.0.source_cidr", "10.0.0.2/32"),
+ resource.TestCheckResourceAttr(singularDatasourceName, "flow_log_capture_filter_rules.0.tcp_options.#", "1"),
+ resource.TestCheckResourceAttr(singularDatasourceName, "flow_log_capture_filter_rules.0.tcp_options.0.destination_port_range.#", "1"),
+ resource.TestCheckResourceAttr(singularDatasourceName, "flow_log_capture_filter_rules.0.tcp_options.0.destination_port_range.0.max", "11"),
+ resource.TestCheckResourceAttr(singularDatasourceName, "flow_log_capture_filter_rules.0.tcp_options.0.destination_port_range.0.min", "11"),
+ resource.TestCheckResourceAttr(singularDatasourceName, "flow_log_capture_filter_rules.0.tcp_options.0.source_port_range.#", "1"),
+ resource.TestCheckResourceAttr(singularDatasourceName, "flow_log_capture_filter_rules.0.tcp_options.0.source_port_range.0.max", "11"),
+ resource.TestCheckResourceAttr(singularDatasourceName, "flow_log_capture_filter_rules.0.tcp_options.0.source_port_range.0.min", "11"),
+ ),
+ },
+ // verify resource import
+ {
+ Config: config + CoreCaptureFilterFlowLogsRequiredOnlyResource,
+ ImportState: true,
+ ImportStateVerify: true,
+ ImportStateVerifyIgnore: []string{},
+ ResourceName: resourceName,
+ },
+ })
+}
+
+func testAccCheckCoreCaptureFilterFlowLogsDestroy(s *terraform.State) error {
+ noResourceFound := true
+ client := acctest.TestAccProvider.Meta().(*tf_client.OracleClients).VirtualNetworkClient()
+ for _, rs := range s.RootModule().Resources {
+ if rs.Type == "oci_core_capture_filter" {
+ noResourceFound = false
+ request := oci_core.GetCaptureFilterRequest{}
+
+ tmp := rs.Primary.ID
+ request.CaptureFilterId = &tmp
+
+ request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(true, "core")
+
+ response, err := client.GetCaptureFilter(context.Background(), request)
+
+ if err == nil {
+ deletedLifecycleStates := map[string]bool{
+ string(oci_core.CaptureFilterLifecycleStateTerminated): true,
+ }
+ if _, ok := deletedLifecycleStates[string(response.LifecycleState)]; !ok {
+ //resource lifecycle state is not in expected deleted lifecycle states.
+ return fmt.Errorf("resource lifecycle state: %s is not in expected deleted lifecycle states", response.LifecycleState)
+ }
+ //resource lifecycle state is in expected deleted lifecycle states. continue with next one.
+ continue
+ }
+
+ //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
+}
diff --git a/internal/integrationtest/core_capture_filter_test.go b/internal/integrationtest/core_capture_filter_test.go
index 055eb54b6e2..1436efb119e 100644
--- a/internal/integrationtest/core_capture_filter_test.go
+++ b/internal/integrationtest/core_capture_filter_test.go
@@ -48,11 +48,12 @@ var (
CoreCaptureFilterRepresentation = map[string]interface{}{
"compartment_id": acctest.Representation{RepType: acctest.Required, Create: `${var.compartment_id}`},
"filter_type": acctest.Representation{RepType: acctest.Required, Create: `VTAP`},
+ "vtap_capture_filter_rules": acctest.RepresentationGroup{RepType: acctest.Required, Group: CoreCaptureFilterVtapCaptureFilterRulesRepresentation},
"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: `MyCaptureFilter`, Update: `displayName2`},
"freeform_tags": acctest.Representation{RepType: acctest.Optional, Create: map[string]string{"Department": "Finance"}, Update: map[string]string{"Department": "Accounting"}},
- "vtap_capture_filter_rules": acctest.RepresentationGroup{RepType: acctest.Required, Group: CoreCaptureFilterVtapCaptureFilterRulesRepresentation},
}
+
CoreCaptureFilterVtapCaptureFilterRulesRepresentation = map[string]interface{}{
"traffic_direction": acctest.Representation{RepType: acctest.Required, Create: `INGRESS`, Update: `EGRESS`},
"destination_cidr": acctest.Representation{RepType: acctest.Optional, Create: `10.3.0.0/16`, Update: `10.4.0.0/16`},
@@ -61,11 +62,42 @@ var (
"rule_action": acctest.Representation{RepType: acctest.Optional, Create: `INCLUDE`, Update: `EXCLUDE`},
"source_cidr": acctest.Representation{RepType: acctest.Optional, Create: `10.0.0.1/32`, Update: `10.0.0.2/32`},
}
+
CoreCaptureFilterVtapCaptureFilterRulesIcmpOptionsRepresentation = map[string]interface{}{
"type": acctest.Representation{RepType: acctest.Required, Create: `10`, Update: `11`},
"code": acctest.Representation{RepType: acctest.Optional, Create: `10`, Update: `11`},
}
+ CoreCaptureFilterVtapCaptureFilterRulesTcpOptionsRepresentation = map[string]interface{}{
+ "destination_port_range": acctest.RepresentationGroup{RepType: acctest.Optional, Group: CoreCaptureFilterVtapCaptureFilterRulesTcpOptionsDestinationPortRangeRepresentation},
+ "source_port_range": acctest.RepresentationGroup{RepType: acctest.Optional, Group: CoreCaptureFilterVtapCaptureFilterRulesTcpOptionsSourcePortRangeRepresentation},
+ }
+
+ CoreCaptureFilterVtapCaptureFilterRulesUdpOptionsRepresentation = map[string]interface{}{
+ "destination_port_range": acctest.RepresentationGroup{RepType: acctest.Optional, Group: CoreCaptureFilterVtapCaptureFilterRulesUdpOptionsDestinationPortRangeRepresentation},
+ "source_port_range": acctest.RepresentationGroup{RepType: acctest.Optional, Group: CoreCaptureFilterVtapCaptureFilterRulesUdpOptionsSourcePortRangeRepresentation},
+ }
+
+ CoreCaptureFilterVtapCaptureFilterRulesTcpOptionsDestinationPortRangeRepresentation = map[string]interface{}{
+ "max": acctest.Representation{RepType: acctest.Required, Create: `10`, Update: `11`},
+ "min": acctest.Representation{RepType: acctest.Required, Create: `10`, Update: `11`},
+ }
+
+ CoreCaptureFilterVtapCaptureFilterRulesTcpOptionsSourcePortRangeRepresentation = map[string]interface{}{
+ "max": acctest.Representation{RepType: acctest.Required, Create: `10`, Update: `11`},
+ "min": acctest.Representation{RepType: acctest.Required, Create: `10`, Update: `11`},
+ }
+
+ CoreCaptureFilterVtapCaptureFilterRulesUdpOptionsDestinationPortRangeRepresentation = map[string]interface{}{
+ "max": acctest.Representation{RepType: acctest.Required, Create: `10`, Update: `11`},
+ "min": acctest.Representation{RepType: acctest.Required, Create: `10`, Update: `11`},
+ }
+
+ CoreCaptureFilterVtapCaptureFilterRulesUdpOptionsSourcePortRangeRepresentation = map[string]interface{}{
+ "max": acctest.Representation{RepType: acctest.Required, Create: `10`, Update: `11`},
+ "min": acctest.Representation{RepType: acctest.Required, Create: `10`, Update: `11`},
+ }
+
/*
These are needed only if the protocol is set to UDP. If its set to ICMP/ TCP then these fields will be null
diff --git a/internal/integrationtest/database_autonomous_container_database_resource_test.go b/internal/integrationtest/database_autonomous_container_database_resource_test.go
index 322862600fb..838dc0de4f4 100644
--- a/internal/integrationtest/database_autonomous_container_database_resource_test.go
+++ b/internal/integrationtest/database_autonomous_container_database_resource_test.go
@@ -54,7 +54,7 @@ var (
}
autonomousContainerDatabaseBackupConfigBackupDestinationDetailsRepresentation = map[string]interface{}{
- "type": acctest.Representation{RepType: acctest.Required, Create: `RECOVERY_APPLIANCE`},
+ "type": acctest.Representation{RepType: acctest.Required, Create: `NFS`},
"id": acctest.Representation{RepType: acctest.Optional, Create: `${oci_database_backup_destination.test_backup_destination.id}`},
"internet_proxy": acctest.Representation{RepType: acctest.Optional, Create: `internetProxy`},
"vpc_password": acctest.Representation{RepType: acctest.Optional, Create: `vpcPassword`, Update: `vpcPassword2`},
@@ -77,7 +77,7 @@ var (
ExaccDatabaseAutonomousContainerDatabaseResourceDependencies = DatabaseAutonomousVmClusterRequiredOnlyResource +
KeyResourceDependencyConfig + kmsKeyIdCreateVariableStr + kmsKeyIdUpdateVariableStr +
- acctest.GenerateResourceFromRepresentationMap("oci_database_backup_destination", "test_backup_destination", acctest.Optional, acctest.Create, DatabaseBackupDestinationRepresentation) +
+ acctest.GenerateResourceFromRepresentationMap("oci_database_backup_destination", "test_backup_destination", acctest.Optional, acctest.Create, backupDestinationADBCCNFSRepresentation) +
OkvSecretVariableStr +
acctest.GenerateResourceFromRepresentationMap("oci_database_key_store", "test_key_store", acctest.Optional, acctest.Create, DatabaseKeyStoreRepresentation)
)
@@ -111,7 +111,7 @@ func TestDatabaseExaccAutonomousContainerDatabase_basic(t *testing.T) {
resource.TestCheckResourceAttr(resourceName, "backup_config.0.backup_destination_details.#", "1"),
resource.TestCheckResourceAttrSet(resourceName, "backup_config.0.backup_destination_details.0.id"),
resource.TestCheckResourceAttr(resourceName, "backup_config.0.backup_destination_details.0.internet_proxy", "internetProxy"),
- resource.TestCheckResourceAttr(resourceName, "backup_config.0.backup_destination_details.0.type", "RECOVERY_APPLIANCE"),
+ resource.TestCheckResourceAttr(resourceName, "backup_config.0.backup_destination_details.0.type", "NFS"),
resource.TestCheckResourceAttr(resourceName, "backup_config.0.backup_destination_details.0.vpc_user", "bkupUser1"),
resource.TestCheckResourceAttr(resourceName, "backup_config.0.backup_destination_details.0.vpc_password", "vpcPassword"),
resource.TestCheckResourceAttr(resourceName, "compartment_id", compartmentId),
@@ -158,7 +158,7 @@ func TestDatabaseExaccAutonomousContainerDatabase_basic(t *testing.T) {
resource.TestCheckResourceAttr(resourceName, "backup_config.0.recovery_window_in_days", "11"),
resource.TestCheckResourceAttrSet(resourceName, "backup_config.0.backup_destination_details.0.id"),
resource.TestCheckResourceAttr(resourceName, "backup_config.0.backup_destination_details.0.internet_proxy", "internetProxy"),
- resource.TestCheckResourceAttr(resourceName, "backup_config.0.backup_destination_details.0.type", "RECOVERY_APPLIANCE"),
+ resource.TestCheckResourceAttr(resourceName, "backup_config.0.backup_destination_details.0.type", "NFS"),
resource.TestCheckResourceAttr(resourceName, "backup_config.0.backup_destination_details.0.vpc_user", "bkupUser1"),
resource.TestCheckResourceAttr(resourceName, "compartment_id", compartmentId),
resource.TestCheckResourceAttr(resourceName, "db_unique_name", acbDBName),
@@ -208,7 +208,7 @@ func TestDatabaseExaccAutonomousContainerDatabase_basic(t *testing.T) {
resource.TestCheckResourceAttr(datasourceName, "autonomous_container_databases.0.backup_config.0.recovery_window_in_days", "11"),
resource.TestCheckResourceAttrSet(datasourceName, "autonomous_container_databases.0.backup_config.0.backup_destination_details.0.id"),
resource.TestCheckResourceAttr(datasourceName, "autonomous_container_databases.0.backup_config.0.backup_destination_details.0.internet_proxy", "internetProxy"),
- resource.TestCheckResourceAttr(datasourceName, "autonomous_container_databases.0.backup_config.0.backup_destination_details.0.type", "RECOVERY_APPLIANCE"),
+ resource.TestCheckResourceAttr(datasourceName, "autonomous_container_databases.0.backup_config.0.backup_destination_details.0.type", "NFS"),
resource.TestCheckResourceAttr(datasourceName, "autonomous_container_databases.0.backup_config.0.backup_destination_details.0.vpc_user", "bkupUser1"),
resource.TestCheckResourceAttr(datasourceName, "autonomous_container_databases.0.compartment_id", compartmentId),
resource.TestCheckResourceAttr(datasourceName, "autonomous_container_databases.0.display_name", "containerdatabases2"),
@@ -244,7 +244,7 @@ func TestDatabaseExaccAutonomousContainerDatabase_basic(t *testing.T) {
resource.TestCheckResourceAttr(singularDatasourceName, "backup_config.0.recovery_window_in_days", "11"),
resource.TestCheckResourceAttrSet(singularDatasourceName, "backup_config.0.backup_destination_details.0.id"),
resource.TestCheckResourceAttr(singularDatasourceName, "backup_config.0.backup_destination_details.0.internet_proxy", "internetProxy"),
- resource.TestCheckResourceAttr(singularDatasourceName, "backup_config.0.backup_destination_details.0.type", "RECOVERY_APPLIANCE"),
+ resource.TestCheckResourceAttr(singularDatasourceName, "backup_config.0.backup_destination_details.0.type", "NFS"),
resource.TestCheckResourceAttr(singularDatasourceName, "backup_config.0.backup_destination_details.0.vpc_user", "bkupUser1"),
resource.TestCheckResourceAttr(singularDatasourceName, "compartment_id", compartmentId),
resource.TestCheckResourceAttr(singularDatasourceName, "display_name", "containerdatabases2"),
diff --git a/internal/integrationtest/database_autonomous_vm_cluster_acd_resource_usage_test.go b/internal/integrationtest/database_autonomous_vm_cluster_acd_resource_usage_test.go
new file mode 100644
index 00000000000..d329ae3e3e6
--- /dev/null
+++ b/internal/integrationtest/database_autonomous_vm_cluster_acd_resource_usage_test.go
@@ -0,0 +1,66 @@
+// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved.
+// Licensed under the Mozilla Public License v2.0
+
+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 (
+ DatabaseAutonomousVmClusterAcdResourceUsageDataSourceRepresentation = map[string]interface{}{
+ "autonomous_vm_cluster_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_database_autonomous_vm_cluster.test_autonomous_vm_cluster.id}`},
+ "compartment_id": acctest.Representation{RepType: acctest.Optional, Create: `${var.compartment_id}`},
+ }
+)
+
+// issue-routing-tag: database/ExaCC
+func TestDatabaseAutonomousVmClusterAcdResourceUsageResource_basic(t *testing.T) {
+ httpreplay.SetScenario("TestDatabaseAutonomousVmClusterAcdResourceUsageResource_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_autonomous_vm_cluster_acd_resource_usages.test_autonomous_vm_cluster_acd_resource_usages"
+
+ acctest.SaveConfigContent("", "", "", t)
+
+ acctest.ResourceTest(t, nil, []resource.TestStep{
+ {
+ Config: config + compartmentIdVariableStr + ExaccDatabaseAutonomousContainerDatabaseResourceDependencies + ExaccAcdResourceConfig,
+ },
+ // verify datasource
+ {
+ Config: config +
+ acctest.GenerateDataSourceFromRepresentationMap("oci_database_autonomous_vm_cluster_acd_resource_usages", "test_autonomous_vm_cluster_acd_resource_usages", acctest.Required, acctest.Create, DatabaseAutonomousVmClusterAcdResourceUsageDataSourceRepresentation) +
+ compartmentIdVariableStr + ExaccDatabaseAutonomousContainerDatabaseResourceDependencies + ExaccAcdResourceConfig,
+ Check: acctest.ComposeAggregateTestCheckFuncWrapper(
+ resource.TestCheckResourceAttrSet(datasourceName, "autonomous_vm_cluster_id"),
+ //resource.TestCheckResourceAttr(datasourceName, "compartment_id", compartmentId),
+
+ resource.TestCheckResourceAttrSet(datasourceName, "autonomous_container_database_resource_usages.#"),
+ resource.TestCheckResourceAttr(datasourceName, "autonomous_container_database_resource_usages.0.autonomous_container_database_vm_usage.#", "2"),
+ resource.TestCheckResourceAttrSet(datasourceName, "autonomous_container_database_resource_usages.0.available_cpus"),
+ resource.TestCheckResourceAttrSet(datasourceName, "autonomous_container_database_resource_usages.0.display_name"),
+ resource.TestCheckResourceAttrSet(datasourceName, "autonomous_container_database_resource_usages.0.id"),
+ resource.TestCheckResourceAttrSet(datasourceName, "autonomous_container_database_resource_usages.0.largest_provisionable_autonomous_database_in_cpus"),
+ resource.TestCheckResourceAttr(datasourceName, "autonomous_container_database_resource_usages.0.provisionable_cpus.#", "29"),
+ resource.TestCheckResourceAttrSet(datasourceName, "autonomous_container_database_resource_usages.0.provisioned_cpus"),
+ resource.TestCheckResourceAttrSet(datasourceName, "autonomous_container_database_resource_usages.0.reclaimable_cpus"),
+ resource.TestCheckResourceAttrSet(datasourceName, "autonomous_container_database_resource_usages.0.reserved_cpus"),
+ resource.TestCheckResourceAttrSet(datasourceName, "autonomous_container_database_resource_usages.0.used_cpus"),
+ ),
+ },
+ })
+}
diff --git a/internal/integrationtest/database_autonomous_vm_cluster_resource_usage_test.go b/internal/integrationtest/database_autonomous_vm_cluster_resource_usage_test.go
new file mode 100644
index 00000000000..8bf44411be8
--- /dev/null
+++ b/internal/integrationtest/database_autonomous_vm_cluster_resource_usage_test.go
@@ -0,0 +1,71 @@
+// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved.
+// Licensed under the Mozilla Public License v2.0
+
+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 (
+ DatabaseAutonomousVmClusterResourceUsageSingularDataSourceRepresentation = map[string]interface{}{
+ "autonomous_vm_cluster_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_database_autonomous_vm_cluster.test_autonomous_vm_cluster.id}`},
+ }
+)
+
+// issue-routing-tag: database/ExaCC
+func TestDatabaseAutonomousVmClusterResourceUsageResource_basic(t *testing.T) {
+ httpreplay.SetScenario("TestDatabaseAutonomousVmClusterResourceUsageResource_basic")
+ defer httpreplay.SaveScenario()
+
+ config := acctest.ProviderTestConfig()
+
+ compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid")
+ compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId)
+
+ singularDatasourceName := "data.oci_database_autonomous_vm_cluster_resource_usage.test_autonomous_vm_cluster_resource_usage"
+
+ acctest.SaveConfigContent("", "", "", t)
+
+ acctest.ResourceTest(t, nil, []resource.TestStep{
+ // verify singular datasource
+ {
+ Config: config +
+ acctest.GenerateDataSourceFromRepresentationMap("oci_database_autonomous_vm_cluster_resource_usage", "test_autonomous_vm_cluster_resource_usage", acctest.Required, acctest.Create, DatabaseAutonomousVmClusterResourceUsageSingularDataSourceRepresentation) +
+ compartmentIdVariableStr + DatabaseAutonomousVmClusterRequiredOnlyResource,
+ Check: acctest.ComposeAggregateTestCheckFuncWrapper(
+ resource.TestCheckResourceAttrSet(singularDatasourceName, "autonomous_vm_cluster_id"),
+
+ resource.TestCheckResourceAttrSet(singularDatasourceName, "autonomous_data_storage_size_in_tbs"),
+ resource.TestCheckResourceAttr(singularDatasourceName, "autonomous_vm_resource_usage.#", "2"),
+ resource.TestCheckResourceAttrSet(singularDatasourceName, "available_autonomous_data_storage_size_in_tbs"),
+ resource.TestCheckResourceAttrSet(singularDatasourceName, "available_cpus"),
+ resource.TestCheckResourceAttrSet(singularDatasourceName, "db_node_storage_size_in_gbs"),
+ resource.TestCheckResourceAttrSet(singularDatasourceName, "display_name"),
+ resource.TestCheckResourceAttrSet(singularDatasourceName, "exadata_storage_in_tbs"),
+ resource.TestCheckResourceAttrSet(singularDatasourceName, "id"),
+ resource.TestCheckResourceAttrSet(singularDatasourceName, "is_local_backup_enabled"),
+ resource.TestCheckResourceAttrSet(singularDatasourceName, "memory_per_oracle_compute_unit_in_gbs"),
+ resource.TestCheckResourceAttrSet(singularDatasourceName, "memory_size_in_gbs"),
+ resource.TestCheckResourceAttrSet(singularDatasourceName, "non_provisionable_autonomous_container_databases"),
+ resource.TestCheckResourceAttrSet(singularDatasourceName, "provisionable_autonomous_container_databases"),
+ resource.TestCheckResourceAttrSet(singularDatasourceName, "provisioned_autonomous_container_databases"),
+ resource.TestCheckResourceAttrSet(singularDatasourceName, "provisioned_cpus"),
+ resource.TestCheckResourceAttrSet(singularDatasourceName, "reclaimable_cpus"),
+ resource.TestCheckResourceAttrSet(singularDatasourceName, "reserved_cpus"),
+ resource.TestCheckResourceAttrSet(singularDatasourceName, "total_container_databases"),
+ resource.TestCheckResourceAttrSet(singularDatasourceName, "total_cpus"),
+ resource.TestCheckResourceAttrSet(singularDatasourceName, "used_autonomous_data_storage_size_in_tbs"),
+ resource.TestCheckResourceAttrSet(singularDatasourceName, "used_cpus"),
+ ),
+ },
+ })
+}
diff --git a/internal/integrationtest/database_autonomous_vm_cluster_test.go b/internal/integrationtest/database_autonomous_vm_cluster_test.go
index 4bcca4173cd..b680930e77d 100644
--- a/internal/integrationtest/database_autonomous_vm_cluster_test.go
+++ b/internal/integrationtest/database_autonomous_vm_cluster_test.go
@@ -349,6 +349,14 @@ func TestDatabaseAutonomousVmClusterResource_basic(t *testing.T) {
resource.TestCheckResourceAttr(datasourceName, "autonomous_vm_clusters.0.cpu_core_count_per_node", "10"),
resource.TestCheckResourceAttrSet(datasourceName, "autonomous_vm_clusters.0.cpus_enabled"),
resource.TestCheckResourceAttrSet(datasourceName, "autonomous_vm_clusters.0.data_storage_size_in_tbs"),
+ resource.TestCheckResourceAttr(datasourceName, "autonomous_vm_clusters.0.autonomous_data_storage_percentage", "0"),
+ resource.TestCheckResourceAttr(datasourceName, "autonomous_vm_clusters.0.autonomous_data_storage_size_in_tbs", "2"),
+ resource.TestCheckResourceAttr(datasourceName, "autonomous_vm_clusters.0.cpu_percentage", "0"),
+ resource.TestCheckResourceAttrSet(datasourceName, "autonomous_vm_clusters.0.non_provisionable_autonomous_container_databases"),
+ resource.TestCheckResourceAttrSet(datasourceName, "autonomous_vm_clusters.0.provisioned_autonomous_container_databases"),
+ resource.TestCheckResourceAttr(datasourceName, "autonomous_vm_clusters.0.total_autonomous_data_storage_in_tbs", "2"),
+ resource.TestCheckResourceAttr(datasourceName, "autonomous_vm_clusters.0.total_container_databases", "2"),
+ resource.TestCheckResourceAttrSet(datasourceName, "autonomous_vm_clusters.0.provisioned_cpus"),
resource.TestCheckResourceAttrSet(datasourceName, "autonomous_vm_clusters.0.db_node_storage_size_in_gbs"),
resource.TestCheckResourceAttr(datasourceName, "autonomous_vm_clusters.0.db_servers.#", "2"),
resource.TestCheckResourceAttr(datasourceName, "autonomous_vm_clusters.0.display_name", "autonomousVmCluster"),
@@ -362,9 +370,10 @@ func TestDatabaseAutonomousVmClusterResource_basic(t *testing.T) {
resource.TestCheckResourceAttr(datasourceName, "autonomous_vm_clusters.0.maintenance_window.#", "1"),
resource.TestCheckResourceAttr(datasourceName, "autonomous_vm_clusters.0.memory_per_oracle_compute_unit_in_gbs", "20"),
resource.TestCheckResourceAttrSet(datasourceName, "autonomous_vm_clusters.0.memory_size_in_gbs"),
+ resource.TestCheckResourceAttrSet(datasourceName, "autonomous_vm_clusters.0.node_count"),
resource.TestCheckResourceAttrSet(datasourceName, "autonomous_vm_clusters.0.reclaimable_cpus"),
- //resource.TestCheckResourceAttr(datasourceName, "autonomous_vm_clusters.0.scan_listener_port_non_tls", "1600"),
- //resource.TestCheckResourceAttr(datasourceName, "autonomous_vm_clusters.0.scan_listener_port_tls", "3600"),
+ resource.TestCheckResourceAttr(datasourceName, "autonomous_vm_clusters.0.scan_listener_port_non_tls", "1600"),
+ resource.TestCheckResourceAttr(datasourceName, "autonomous_vm_clusters.0.scan_listener_port_tls", "3600"),
//resource.TestCheckResourceAttrSet(datasourceName, "autonomous_vm_clusters.0.next_maintenance_run_id"),
//resource.TestCheckResourceAttrSet(datasourceName, "autonomous_vm_clusters.0.ocpus_enabled"),
resource.TestCheckResourceAttrSet(datasourceName, "autonomous_vm_clusters.0.state"),
@@ -384,11 +393,18 @@ func TestDatabaseAutonomousVmClusterResource_basic(t *testing.T) {
compartmentIdVariableStr + DatabaseAutonomousVmClusterResourceConfig,
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
resource.TestCheckResourceAttrSet(singularDatasourceName, "autonomous_vm_cluster_id"),
-
resource.TestCheckResourceAttr(singularDatasourceName, "autonomous_data_storage_size_in_tbs", "2"),
resource.TestCheckResourceAttrSet(singularDatasourceName, "available_autonomous_data_storage_size_in_tbs"),
resource.TestCheckResourceAttrSet(singularDatasourceName, "available_container_databases"),
//resource.TestCheckResourceAttr(singularDatasourceName, "autonomous_data_storage_size_in_tbs", "1"),
+ resource.TestCheckResourceAttr(singularDatasourceName, "autonomous_data_storage_percentage", "0"),
+ resource.TestCheckResourceAttr(singularDatasourceName, "autonomous_data_storage_size_in_tbs", "2"),
+ resource.TestCheckResourceAttr(singularDatasourceName, "cpu_percentage", "0"),
+ resource.TestCheckResourceAttrSet(singularDatasourceName, "non_provisionable_autonomous_container_databases"),
+ resource.TestCheckResourceAttrSet(singularDatasourceName, "provisioned_autonomous_container_databases"),
+ resource.TestCheckResourceAttr(singularDatasourceName, "total_autonomous_data_storage_in_tbs", "2"),
+ resource.TestCheckResourceAttr(singularDatasourceName, "total_container_databases", "2"),
+ resource.TestCheckResourceAttrSet(singularDatasourceName, "provisioned_cpus"),
resource.TestCheckResourceAttrSet(singularDatasourceName, "available_cpus"),
resource.TestCheckResourceAttrSet(singularDatasourceName, "available_data_storage_size_in_tbs"),
//resource.TestCheckResourceAttr(singularDatasourceName, "compute_model", "OCPU"),
@@ -409,6 +425,7 @@ func TestDatabaseAutonomousVmClusterResource_basic(t *testing.T) {
resource.TestCheckResourceAttr(singularDatasourceName, "maintenance_window.#", "1"),
resource.TestCheckResourceAttr(singularDatasourceName, "memory_per_oracle_compute_unit_in_gbs", "20"),
resource.TestCheckResourceAttrSet(singularDatasourceName, "memory_size_in_gbs"),
+ resource.TestCheckResourceAttrSet(singularDatasourceName, "node_count"),
resource.TestCheckResourceAttrSet(singularDatasourceName, "reclaimable_cpus"),
resource.TestCheckResourceAttr(singularDatasourceName, "scan_listener_port_non_tls", "1600"),
resource.TestCheckResourceAttr(singularDatasourceName, "scan_listener_port_tls", "3600"),
diff --git a/internal/integrationtest/database_backup_destination_resource_test.go b/internal/integrationtest/database_backup_destination_resource_test.go
index 04ad1a7d8fa..c03bec1c78f 100644
--- a/internal/integrationtest/database_backup_destination_resource_test.go
+++ b/internal/integrationtest/database_backup_destination_resource_test.go
@@ -39,10 +39,25 @@ var (
"mount_type_details": acctest.RepresentationGroup{RepType: acctest.Optional, Group: backupDestinationMountTypeDetailsRepresentation},
}
+ backupDestinationADBCCNFSRepresentation = map[string]interface{}{
+ "compartment_id": acctest.Representation{RepType: acctest.Required, Create: `${var.compartment_id}`},
+ "display_name": acctest.Representation{RepType: acctest.Required, Create: `NFS1`},
+ "type": acctest.Representation{RepType: acctest.Required, Create: `NFS`},
+ "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")}`},
+ "freeform_tags": acctest.Representation{RepType: acctest.Optional, Create: map[string]string{"Department": "Finance"}, Update: map[string]string{"Department": "Accounting"}},
+ "mount_type_details": acctest.RepresentationGroup{RepType: acctest.Optional, Group: backupDestinationADBCCMountTypeDetailsRepresentation},
+ }
+
backupDestinationMountTypeDetailsRepresentation = map[string]interface{}{
"mount_type": acctest.Representation{RepType: acctest.Required, Create: `SELF_MOUNT`},
"local_mount_point_path": acctest.Representation{RepType: acctest.Optional, Create: `localMountPointPath`, Update: `localMountPointPath10`},
}
+
+ backupDestinationADBCCMountTypeDetailsRepresentation = map[string]interface{}{
+ "mount_type": acctest.Representation{RepType: acctest.Required, Create: `AUTOMATED_MOUNT`},
+ "nfs_server": acctest.Representation{RepType: acctest.Optional, Create: []string{`198.56.65.88`, `101.67.98.66`}},
+ "nfs_server_export": acctest.Representation{RepType: acctest.Optional, Create: `/mount/export`, Update: `/mount/export`},
+ }
)
// issue-routing-tag: database/ExaCC
diff --git a/internal/integrationtest/database_cloud_vm_cluster_test.go b/internal/integrationtest/database_cloud_vm_cluster_test.go
index 0de667aaa46..ec143de3a16 100644
--- a/internal/integrationtest/database_cloud_vm_cluster_test.go
+++ b/internal/integrationtest/database_cloud_vm_cluster_test.go
@@ -51,7 +51,7 @@ var (
}
DatabaseCloudVmClusterRepresentation = map[string]interface{}{
- "backup_subnet_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_core_subnet.test_subnet_backup.id}`},
+ "backup_subnet_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_core_subnet.t2.id}`},
"cloud_exadata_infrastructure_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_database_cloud_exadata_infrastructure.test_cloud_exadata_infrastructure.id}`},
"compartment_id": acctest.Representation{RepType: acctest.Required, Create: `${var.compartment_id}`},
"cpu_core_count": acctest.Representation{RepType: acctest.Required, Create: `4`, Update: `6`},
@@ -59,8 +59,8 @@ var (
"gi_version": acctest.Representation{RepType: acctest.Required, Create: `19.0.0.0`},
"hostname": acctest.Representation{RepType: acctest.Required, Create: `apollo`},
"ssh_public_keys": acctest.Representation{RepType: acctest.Required, Create: []string{`ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDOuBJgh6lTmQvQJ4BA3RCJdSmxRtmiXAQEEIP68/G4gF3XuZdKEYTFeputacmRq9yO5ZnNXgO9akdUgePpf8+CfFtveQxmN5xo3HVCDKxu/70lbMgeu7+wJzrMOlzj+a4zNq2j0Ww2VWMsisJ6eV3bJTnO/9VLGCOC8M9noaOlcKcLgIYy4aDM724MxFX2lgn7o6rVADHRxkvLEXPVqYT4syvYw+8OVSnNgE4MJLxaw8/2K0qp19YlQyiriIXfQpci3ThxwLjymYRPj+kjU1xIxv6qbFQzHR7ds0pSWp1U06cIoKPfCazU9hGWW8yIe/vzfTbWrt2DK6pLwBn/G0x3 sample`}},
- "subnet_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_core_subnet.test_subnet1.id}`},
- "domain": acctest.Representation{RepType: acctest.Required, Create: `${oci_core_subnet.test_subnet1.subnet_domain_name}`},
+ "subnet_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_core_subnet.t.id}`},
+ "domain": acctest.Representation{RepType: acctest.Required, Create: `${oci_core_subnet.t.subnet_domain_name}`},
"backup_network_nsg_ids": acctest.Representation{RepType: acctest.Optional, Create: []string{`${oci_core_network_security_group.test_network_security_group_backup.id}`}},
"cluster_name": acctest.Representation{RepType: acctest.Optional, Create: `clusterName`},
"data_collection_options": acctest.RepresentationGroup{RepType: acctest.Optional, Group: cloudVmClusterDataCollectionOptionsRepresentation},
diff --git a/internal/integrationtest/database_database_test.go b/internal/integrationtest/database_database_test.go
index 26f7145ed08..1a64121dbf7 100644
--- a/internal/integrationtest/database_database_test.go
+++ b/internal/integrationtest/database_database_test.go
@@ -207,7 +207,7 @@ var (
"database": acctest.RepresentationGroup{RepType: acctest.Required, Group: databaseDatabaseRepresentation},
"db_home_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_database_db_home.test_db_home.id}`},
"source": acctest.Representation{RepType: acctest.Required, Create: `NONE`},
- "db_version": acctest.Representation{RepType: acctest.Optional, Create: `19.16.0.0`},
+ "db_version": acctest.Representation{RepType: acctest.Optional, Create: `19.20.0.0`},
"kms_key_id": acctest.Representation{RepType: acctest.Optional, Create: `${lookup(data.oci_kms_keys.test_keys_dependency.keys[0], "id")}`},
"kms_key_rotation": acctest.Representation{RepType: acctest.Optional, Update: `1`},
"lifecycle": acctest.RepresentationGroup{RepType: acctest.Required, Group: databaseIgnoreDefinedTagsRepresentation},
@@ -217,7 +217,7 @@ var (
"database": acctest.RepresentationGroup{RepType: acctest.Required, Group: databaseDatabaseRepresentation2},
"db_home_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_database_db_home.test_db_home.id}`, Update: `${oci_database_db_home.test_db_home_dbrs.id}`},
"source": acctest.Representation{RepType: acctest.Required, Create: `NONE`},
- "db_version": acctest.Representation{RepType: acctest.Optional, Create: `19.16.0.0`},
+ "db_version": acctest.Representation{RepType: acctest.Optional, Create: `19.20.0.0`},
"kms_key_id": acctest.Representation{RepType: acctest.Optional, Create: `${lookup(data.oci_kms_keys.test_keys_dependency.keys[0], "id")}`},
"kms_key_rotation": acctest.Representation{RepType: acctest.Optional, Update: `1`},
"lifecycle": acctest.RepresentationGroup{RepType: acctest.Required, Group: databaseIgnoreDefinedTagsRepresentation},
@@ -380,13 +380,13 @@ var (
}
dbHomeRepresentationSourceNone2 = acctest.RepresentationCopyWithNewProperties(DatabaseDbHomeRepresentationBase2, map[string]interface{}{
- "db_version": acctest.Representation{RepType: acctest.Required, Create: `19.16.0.0`},
+ "db_version": acctest.Representation{RepType: acctest.Required, Create: `19.20.0.0`},
"source": acctest.Representation{RepType: acctest.Optional, Create: `NONE`},
"display_name": acctest.Representation{RepType: acctest.Optional, Create: `createdDbHomeNone`},
})
dbHomeDbrsRepresentation = acctest.RepresentationCopyWithNewProperties(dbHomeRepresentationSourceNone2, map[string]interface{}{
- "db_version": acctest.Representation{RepType: acctest.Required, Create: `19.16.0.0`},
+ "db_version": acctest.Representation{RepType: acctest.Required, Create: `19.20.0.0`},
})
DatabaseDatabaseResourceDependencies = ExaBaseDependencies + DefinedTagsDependencies + AvailabilityDomainConfig + KeyResourceDependencyConfig +
@@ -510,10 +510,11 @@ func TestDatabaseDatabaseResource_basic(t *testing.T) {
//resource.TestCheckResourceAttr(resourceName, "database.0.freeform_tags.%", "1"),
resource.TestCheckResourceAttr(resourceName, "database.0.ncharacter_set", "AL16UTF16"),
resource.TestCheckResourceAttr(resourceName, "database.0.pdb_name", "pdbName"),
+
resource.TestCheckResourceAttrSet(resourceName, "db_home_id"),
resource.TestCheckResourceAttrSet(resourceName, "db_name"),
resource.TestCheckResourceAttrSet(resourceName, "db_unique_name"),
- resource.TestCheckResourceAttr(resourceName, "db_version", "19.16.0.0"),
+ resource.TestCheckResourceAttr(resourceName, "db_version", "19.20.0.0"),
resource.TestCheckResourceAttrSet(resourceName, "id"),
//resource.TestCheckResourceAttrSet(resourceName, "kms_key_id"),
resource.TestCheckResourceAttr(resourceName, "source", "NONE"),
@@ -556,7 +557,7 @@ func TestDatabaseDatabaseResource_basic(t *testing.T) {
resource.TestCheckResourceAttrSet(resourceName, "db_home_id"),
resource.TestCheckResourceAttrSet(resourceName, "db_name"),
resource.TestCheckResourceAttrSet(resourceName, "db_unique_name"),
- resource.TestCheckResourceAttr(resourceName, "db_version", "19.16.0.0"),
+ resource.TestCheckResourceAttr(resourceName, "db_version", "19.20.0.0"),
resource.TestCheckResourceAttrSet(resourceName, "id"),
//resource.TestCheckResourceAttrSet(resourceName, "kms_key_id"),
resource.TestCheckResourceAttr(resourceName, "source", "NONE"),
diff --git a/internal/integrationtest/database_db_home_test.go b/internal/integrationtest/database_db_home_test.go
index db1825511ec..610c706c239 100644
--- a/internal/integrationtest/database_db_home_test.go
+++ b/internal/integrationtest/database_db_home_test.go
@@ -64,7 +64,7 @@ var (
"db_name": acctest.Representation{RepType: acctest.Required, Create: `tfDbNam`},
}
DatabaseDbHomeRepresentationBase = 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_cloud_vm_cluster.test_cloud_vm_cluster.id}`},
}
dbHomeRepresentationSourceNone = acctest.RepresentationCopyWithNewProperties(DatabaseDbHomeRepresentationBase, map[string]interface{}{
"database": acctest.RepresentationGroup{RepType: acctest.Required, Group: dbHomeDatabaseRepresentationSourceNone},
@@ -217,6 +217,8 @@ var (
acctest.GenerateResourceFromRepresentationMap("oci_database_vm_cluster", "test_vm_cluster", acctest.Required, acctest.Create, DatabaseVmClusterRepresentation) +
acctest.GenerateResourceFromRepresentationMap("oci_database_vm_cluster_network", "test_vm_cluster_network", acctest.Optional, acctest.Update, vmClusterNetworkValidateRepresentation)
+ //DbHomeResourceVmClusterDependencies = ExaBaseDependencies + DefinedTagsDependencies + AvailabilityDomainConfig + KeyResourceDependencyConfig
+
DbHomeResourceVmClusterDependencies = acctest.GenerateResourceFromRepresentationMap("oci_database_cloud_vm_cluster", "test_cloud_vm_cluster", acctest.Required, acctest.Create, DatabaseCloudVmClusterRepresentation) +
AvailabilityDomainConfig + DatabaseCloudVmClusterResourceDependencies + DefinedTagsDependencies
)
@@ -243,7 +245,7 @@ func TestDatabaseDbHomeTdeWalletPassword(t *testing.T) {
Steps: []resource.TestStep{
// verify Create
{
- Config: config + compartmentIdVariableStr + DatabaseDbHomeResourceDependencies +
+ Config: config + compartmentIdVariableStr + DbHomeResourceVmClusterDependencies +
acctest.GenerateResourceFromRepresentationMap("oci_database_db_home", "test_db_home_source_none", acctest.Required, acctest.Create, dbHomeRepresentationSourceNoneRequiredOnly),
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
@@ -257,11 +259,11 @@ func TestDatabaseDbHomeTdeWalletPassword(t *testing.T) {
// delete before next Create
{
- Config: config + compartmentIdVariableStr + DatabaseDbHomeResourceDependencies,
+ Config: config + compartmentIdVariableStr + DbHomeResourceVmClusterDependencies,
},
// verify Create with optionals
{
- Config: config + compartmentIdVariableStr + DatabaseDbHomeResourceDependencies +
+ Config: config + compartmentIdVariableStr + DbHomeResourceVmClusterDependencies +
acctest.GenerateResourceFromRepresentationMap("oci_database_db_home", "test_db_home_source_none", acctest.Optional, acctest.Create, dbHomeRepresentationSourceNone),
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
@@ -292,7 +294,7 @@ func TestDatabaseDbHomeTdeWalletPassword(t *testing.T) {
},
// verify updates to updatable parameters
{
- Config: config + compartmentIdVariableStr + DatabaseDbHomeResourceDependencies +
+ Config: config + compartmentIdVariableStr + DbHomeResourceVmClusterDependencies +
acctest.GenerateResourceFromRepresentationMap("oci_database_db_home", "test_db_home_source_none", acctest.Optional, acctest.Update, dbHomeRepresentationSourceNone),
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
resource.TestCheckResourceAttrSet(resourceName+"_source_none", "compartment_id"),
@@ -422,7 +424,6 @@ func TestDatabaseDbHomeResource_basic(t *testing.T) {
acctest.GenerateResourceFromRepresentationMap("oci_database_db_home", "test_db_home_source_database", acctest.Optional, acctest.Create, dbHomeRepresentationSourceDatabase),
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
-
//resource.TestCheckResourceAttr(resourceName, "is_desupported_version", "false"),
resource.TestCheckResourceAttrSet(resourceName+"_source_none", "compartment_id"),
resource.TestCheckResourceAttr(resourceName+"_source_none", "database.#", "1"),
@@ -515,6 +516,7 @@ func TestDatabaseDbHomeResource_basic(t *testing.T) {
acctest.GenerateResourceFromRepresentationMap("oci_database_db_home", "test_db_home_source_vm_cluster_new", acctest.Optional, acctest.Update, dbHomeRepresentationSourceVmClusterNew) +
acctest.GenerateResourceFromRepresentationMap("oci_database_db_home", "test_db_home_source_database", acctest.Optional, acctest.Update, dbHomeRepresentationSourceDatabase),
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
+
//resource.TestCheckResourceAttr(resourceName, "is_desupported_version", "false"),
resource.TestCheckResourceAttrSet(resourceName+"_source_none", "compartment_id"),
resource.TestCheckResourceAttr(resourceName+"_source_none", "database.#", "1"),
@@ -713,7 +715,6 @@ func TestDatabaseDbHomeResource_exacs(t *testing.T) {
resource.TestCheckNoResourceAttr(resourceName+"_vm_cluster_no_db", "database"),
),
},
-
// Create DB inside of dbHome
{
Config: config + compartmentIdVariableStr + DbHomeResourceVmClusterDependencies +
diff --git a/internal/integrationtest/database_pluggable_database_pluggabledatabasemanagements_management_test.go b/internal/integrationtest/database_pluggable_database_pluggabledatabasemanagements_management_test.go
index 2af82a49fa5..539b53c9bf3 100644
--- a/internal/integrationtest/database_pluggable_database_pluggabledatabasemanagements_management_test.go
+++ b/internal/integrationtest/database_pluggable_database_pluggabledatabasemanagements_management_test.go
@@ -122,6 +122,7 @@ var (
data_storage_size_in_gb = "256"
license_model = "LICENSE_INCLUDED"
node_count = "1"
+ cpu_core_count = "2"
fault_domains = ["FAULT-DOMAIN-1"]
db_home {
db_version = "19.0.0.0"
diff --git a/internal/integrationtest/database_pluggable_database_test.go b/internal/integrationtest/database_pluggable_database_test.go
index 20cf6e32d4e..ded7b72bb1e 100644
--- a/internal/integrationtest/database_pluggable_database_test.go
+++ b/internal/integrationtest/database_pluggable_database_test.go
@@ -59,6 +59,96 @@ var (
"depends_on": acctest.Representation{RepType: acctest.Required, Create: []string{"oci_database_db_system.t"}},
}
+ DatabasePluggableDatabaseLocalCloneRepresentation = map[string]interface{}{
+ "container_database_id": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_database_database.t.id}`},
+ "pdb_admin_password": acctest.Representation{RepType: acctest.Required, Create: `BEstrO0ng_#11`},
+ "pdb_name": acctest.Representation{RepType: acctest.Required, Create: `LocalClonePdb`},
+ "tde_wallet_password": acctest.Representation{RepType: acctest.Required, Create: `BEstrO0ng_#11`},
+ "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")}`},
+ "freeform_tags": acctest.Representation{RepType: acctest.Optional, Create: map[string]string{"Department": "Finance"}, Update: map[string]string{"Department": "Accounting"}},
+ "should_pdb_admin_account_be_locked": acctest.Representation{RepType: acctest.Optional, Create: `false`},
+ //"container_database_admin_password": acctest.Representation{RepType: acctest.Optional, Create: `containerDatabaseAdminPassword`},
+ "pdb_creation_type_details": acctest.RepresentationGroup{RepType: acctest.Optional, Group: DatabasePluggableDatabasePdbCreationTypeDetailsLocalCloneRepresentation},
+ "should_create_pdb_backup": acctest.Representation{RepType: acctest.Optional, Create: `false`},
+ "lifecycle": acctest.RepresentationGroup{RepType: acctest.Required, Group: ignoreChangesLBRepresentation},
+ "depends_on": acctest.Representation{RepType: acctest.Required, Create: []string{"oci_database_db_system.t"}},
+ }
+
+ DatabasePluggableDatabasePdbCreationTypeDetailsLocalCloneRepresentation = map[string]interface{}{
+ "creation_type": acctest.Representation{RepType: acctest.Required, Create: `LOCAL_CLONE_PDB`},
+ "source_pluggable_database_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_database_pluggable_database.test_pluggable_database.id}`},
+ "source_container_database_admin_password": acctest.Representation{RepType: acctest.Optional, Create: `BEstrO0ng_#11`},
+ }
+
+ DatabasePluggableDatabaseRemoteCloneRepresentation = map[string]interface{}{
+ "container_database_id": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_database_database.t.id}`},
+ "pdb_admin_password": acctest.Representation{RepType: acctest.Required, Create: `BEstrO0ng_#11`},
+ "pdb_name": acctest.Representation{RepType: acctest.Required, Create: `RemoteClonePdb`},
+ "tde_wallet_password": acctest.Representation{RepType: acctest.Required, Create: `BEstrO0ng_#11`},
+ "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")}`},
+ "freeform_tags": acctest.Representation{RepType: acctest.Optional, Create: map[string]string{"Department": "Finance"}, Update: map[string]string{"Department": "Accounting"}},
+ "should_pdb_admin_account_be_locked": acctest.Representation{RepType: acctest.Optional, Create: `false`},
+ //"container_database_admin_password": acctest.Representation{RepType: acctest.Optional, Create: `containerDatabaseAdminPassword`},
+ "pdb_creation_type_details": acctest.RepresentationGroup{RepType: acctest.Optional, Group: DatabasePluggableDatabasePdbCreationTypeDetailsRemoteCloneRepresentation},
+ "should_create_pdb_backup": acctest.Representation{RepType: acctest.Optional, Create: `true`},
+ "lifecycle": acctest.RepresentationGroup{RepType: acctest.Required, Group: ignoreChangesLBRepresentation},
+ "depends_on": acctest.Representation{RepType: acctest.Required, Create: []string{"oci_database_db_system.t"}},
+ }
+
+ DatabasePluggableDatabasePdbCreationTypeDetailsRemoteCloneRepresentation = map[string]interface{}{
+ "creation_type": acctest.Representation{RepType: acctest.Required, Create: `REMOTE_CLONE_PDB`},
+ "source_pluggable_database_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_database_pluggable_database.test_pluggable_database.id}`},
+ "source_container_database_admin_password": acctest.Representation{RepType: acctest.Optional, Create: `BEstrO0ng_#11`},
+ }
+
+ DatabasePluggableDatabaseRelocateRepresentation = map[string]interface{}{
+ "container_database_id": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_database_database.t.id}`},
+ "pdb_admin_password": acctest.Representation{RepType: acctest.Required, Create: `BEstrO0ng_#11`},
+ "pdb_name": acctest.Representation{RepType: acctest.Required, Create: `RelocatePdb`},
+ "tde_wallet_password": acctest.Representation{RepType: acctest.Required, Create: `BEstrO0ng_#11`},
+ "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")}`},
+ "freeform_tags": acctest.Representation{RepType: acctest.Optional, Create: map[string]string{"Department": "Finance"}, Update: map[string]string{"Department": "Accounting"}},
+ "should_pdb_admin_account_be_locked": acctest.Representation{RepType: acctest.Optional, Create: `false`},
+ //"container_database_admin_password": acctest.Representation{RepType: acctest.Optional, Create: `containerDatabaseAdminPassword`},
+ "pdb_creation_type_details": acctest.RepresentationGroup{RepType: acctest.Optional, Group: DatabasePluggableDatabasePdbCreationTypeDetailsRelocateRepresentation},
+ "should_create_pdb_backup": acctest.Representation{RepType: acctest.Optional, Create: `false`},
+ "lifecycle": acctest.RepresentationGroup{RepType: acctest.Required, Group: ignoreChangesLBRepresentation},
+ "depends_on": acctest.Representation{RepType: acctest.Required, Create: []string{"oci_database_db_system.t"}},
+ }
+
+ DatabasePluggableDatabasePdbCreationTypeDetailsRelocateRepresentation = map[string]interface{}{
+ "creation_type": acctest.Representation{RepType: acctest.Required, Create: `RELOCATE_PDB`},
+ "source_pluggable_database_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_database_pluggable_database.test_pluggable_database.id}`},
+ "source_container_database_admin_password": acctest.Representation{RepType: acctest.Optional, Create: `BEstrO0ng_#11`},
+ }
+
+ DatabasePluggableDatabaseRefreshableCloneRepresentation = map[string]interface{}{
+ "container_database_id": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_database_database.t.id}`},
+ "pdb_admin_password": acctest.Representation{RepType: acctest.Required, Create: `BEstrO0ng_#11`},
+ "pdb_name": acctest.Representation{RepType: acctest.Required, Create: `RefreshablePdb`},
+ "tde_wallet_password": acctest.Representation{RepType: acctest.Required, Create: `BEstrO0ng_#11`},
+ "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")}`},
+ "freeform_tags": acctest.Representation{RepType: acctest.Optional, Create: map[string]string{"Department": "Finance"}, Update: map[string]string{"Department": "Accounting"}},
+ "should_pdb_admin_account_be_locked": acctest.Representation{RepType: acctest.Optional, Create: `false`},
+ //"container_database_admin_password": acctest.Representation{RepType: acctest.Optional, Create: `containerDatabaseAdminPassword`},
+ "pdb_creation_type_details": acctest.RepresentationGroup{RepType: acctest.Optional, Group: DatabasePluggableDatabasePdbCreationTypeDetailsRelocateRepresentation},
+ "should_create_pdb_backup": acctest.Representation{RepType: acctest.Optional, Create: `false`},
+ "lifecycle": acctest.RepresentationGroup{RepType: acctest.Required, Group: ignoreChangesLBRepresentation},
+ "depends_on": acctest.Representation{RepType: acctest.Required, Create: []string{"oci_database_db_system.t"}},
+ }
+
+ DatabasePluggableDatabasePdbCreationTypeDetailsRefreshableCloneRepresentation = map[string]interface{}{
+ "creation_type": acctest.Representation{RepType: acctest.Required, Create: `REMOTE_CLONE`},
+ "source_pluggable_database_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_database_pluggable_database.test_pluggable_database.id}`},
+ "dblink_user_password": acctest.Representation{RepType: acctest.Optional, Create: `DBLINKPWD`},
+ "dblink_username": acctest.Representation{RepType: acctest.Optional, Create: `DBLINKUSER`},
+ "refreshable_clone_details": acctest.RepresentationGroup{RepType: acctest.Optional, Group: DatabasePluggableDatabasePdbCreationTypeDetailsRefreshableCloneDetailsRepresentation},
+ "source_container_database_admin_password": acctest.Representation{RepType: acctest.Optional, Create: `BEstrO0ng_#11`},
+ }
+ DatabasePluggableDatabasePdbCreationTypeDetailsRefreshableCloneDetailsRepresentation = map[string]interface{}{
+ "is_refreshable_clone": acctest.Representation{RepType: acctest.Optional, Create: `true`},
+ }
+
ResourcePluggableDatabaseBaseConfig = `
data "oci_identity_availability_domains" "ADs" {
@@ -126,7 +216,7 @@ var (
database_edition = "ENTERPRISE_EDITION"
availability_domain = "${data.oci_identity_availability_domains.ADs.availability_domains.0.name}"
disk_redundancy = "NORMAL"
- shape = "VM.Standard2.8"
+ shape = "VM.Standard2.1"
ssh_public_keys = ["ssh-rsa KKKLK3NzaC1yc2EAAAADAQABAAABAQC+UC9MFNA55NIVtKPIBCNw7++ACXhD0hx+Zyj25JfHykjz/QU3Q5FAU3DxDbVXyubgXfb/GJnrKRY8O4QDdvnZZRvQFFEOaApThAmCAM5MuFUIHdFvlqP+0W+ZQnmtDhwVe2NCfcmOrMuaPEgOKO3DOW6I/qOOdO691Xe2S9NgT9HhN0ZfFtEODVgvYulgXuCCXsJs+NUqcHAOxxFUmwkbPvYi0P0e2DT8JKeiOOC8VKUEgvVx+GKmqasm+Y6zHFW7vv3g2GstE1aRs3mttHRoC/JPM86PRyIxeWXEMzyG5wHqUu4XZpDbnWNxi6ugxnAGiL3CrIFdCgRNgHz5qS1l MustWin"]
display_name = "-tf-dbSystem-001"
domain = "${oci_core_subnet.t.dns_label}.${oci_core_virtual_network.t.dns_label}.oraclevcn.com"
@@ -134,6 +224,7 @@ var (
data_storage_size_in_gb = "256"
license_model = "LICENSE_INCLUDED"
node_count = "1"
+ cpu_core_count = "1"
fault_domains = ["FAULT-DOMAIN-1"]
db_home {
db_version = "21.8.0.0"
@@ -195,6 +286,8 @@ var (
DatabasePluggableDatabaseResourceDependencies = AvailabilityDomainConfig + ResourcePluggableDatabaseBaseConfig +
DefinedTagsDependencies + dbSystemForPluggableDbRepresentation
+
+ DatabasePluggableDatabaseResourceDependeciesExacc = DatabaseExaccPluggableDatabaseResourceDependencies
)
// issue-routing-tag: database/default
@@ -208,6 +301,10 @@ func TestDatabasePluggableDatabaseResource_basic(t *testing.T) {
compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId)
resourceName := "oci_database_pluggable_database.test_pluggable_database"
+ localCloneResourceName := "oci_database_pluggable_database.test_pluggable_databases_local_clone"
+ remoteCloneResourceName := "oci_database_pluggable_database.test_pluggable_databases_remote_clone"
+ relocateResourceName := "oci_database_pluggable_database.test_pluggable_databases_relocate"
+ refreshableCloneResourceName := "oci_database_pluggable_database.test_pluggable_databases_refreshable_clone"
datasourceName := "data.oci_database_pluggable_databases.test_pluggable_databases"
singularDatasourceName := "data.oci_database_pluggable_database.test_pluggable_database"
@@ -244,12 +341,16 @@ func TestDatabasePluggableDatabaseResource_basic(t *testing.T) {
acctest.GenerateResourceFromRepresentationMap("oci_database_pluggable_database", "test_pluggable_database", acctest.Optional, acctest.Create, DatabasePluggableDatabaseRepresentation),
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
resource.TestCheckResourceAttrSet(resourceName, "compartment_id"),
+ //resource.TestCheckResourceAttr(resourceName, "container_database_admin_password", "containerDatabaseAdminPassword"),
resource.TestCheckResourceAttrSet(resourceName, "container_database_id"),
resource.TestCheckResourceAttr(resourceName, "freeform_tags.%", "1"),
resource.TestCheckResourceAttrSet(resourceName, "id"),
resource.TestCheckResourceAttrSet(resourceName, "open_mode"),
+
resource.TestCheckResourceAttr(resourceName, "pdb_admin_password", "BEstrO0ng_#11"),
+
resource.TestCheckResourceAttr(resourceName, "pdb_name", "SalesPdb"),
+ //resource.TestCheckResourceAttr(resourceName, "should_create_pdb_backup", "true"),
resource.TestCheckResourceAttr(resourceName, "should_pdb_admin_account_be_locked", "false"),
resource.TestCheckResourceAttrSet(resourceName, "state"),
resource.TestCheckResourceAttr(resourceName, "tde_wallet_password", "BEstrO0ng_#11"),
@@ -274,12 +375,16 @@ func TestDatabasePluggableDatabaseResource_basic(t *testing.T) {
acctest.GenerateResourceFromRepresentationMap("oci_database_pluggable_database", "test_pluggable_database", acctest.Optional, acctest.Update, DatabasePluggableDatabaseRepresentation),
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
resource.TestCheckResourceAttrSet(resourceName, "compartment_id"),
+ //resource.TestCheckResourceAttr(resourceName, "container_database_admin_password", "containerDatabaseAdminPassword"),
resource.TestCheckResourceAttrSet(resourceName, "container_database_id"),
resource.TestCheckResourceAttr(resourceName, "freeform_tags.%", "1"),
resource.TestCheckResourceAttrSet(resourceName, "id"),
resource.TestCheckResourceAttrSet(resourceName, "open_mode"),
+
resource.TestCheckResourceAttr(resourceName, "pdb_admin_password", "BEstrO0ng_#11"),
+
resource.TestCheckResourceAttr(resourceName, "pdb_name", "SalesPdb"),
+ //resource.TestCheckResourceAttr(resourceName, "should_create_pdb_backup", "true"),
resource.TestCheckResourceAttr(resourceName, "should_pdb_admin_account_be_locked", "false"),
resource.TestCheckResourceAttrSet(resourceName, "state"),
resource.TestCheckResourceAttr(resourceName, "tde_wallet_password", "BEstrO0ng_#11"),
@@ -294,6 +399,103 @@ func TestDatabasePluggableDatabaseResource_basic(t *testing.T) {
},
),
},
+
+ // delete before local clone
+ {
+ Config: config + compartmentIdVariableStr + DatabasePluggableDatabaseResourceDependencies,
+ },
+
+ // verify local clone
+ {
+ Config: config + compartmentIdVariableStr + DatabasePluggableDatabaseResourceDependencies +
+ acctest.GenerateResourceFromRepresentationMap("oci_database_pluggable_database", "test_pluggable_database", acctest.Required, acctest.Create, DatabasePluggableDatabaseRepresentation) +
+ acctest.GenerateResourceFromRepresentationMap("oci_database_pluggable_database", "test_pluggable_databases_local_clone", acctest.Optional, acctest.Create, DatabasePluggableDatabaseLocalCloneRepresentation),
+ Check: acctest.ComposeAggregateTestCheckFuncWrapper(
+ resource.TestCheckResourceAttr(localCloneResourceName, "pdb_name", "LocalClonePdb"),
+ resource.TestCheckResourceAttrSet(localCloneResourceName, "id"),
+ resource.TestCheckResourceAttr(localCloneResourceName, "pdb_admin_password", "BEstrO0ng_#11"),
+ ),
+ },
+
+ // delete before remote clone
+ {
+ Config: config + compartmentIdVariableStr + DatabasePluggableDatabaseResourceDependencies,
+ },
+
+ // verify remote clone
+ {
+ Config: config + compartmentIdVariableStr + DatabasePluggableDatabaseResourceDependencies +
+ acctest.GenerateResourceFromRepresentationMap("oci_database_pluggable_database", "test_pluggable_database", acctest.Required, acctest.Create, DatabasePluggableDatabaseRepresentation) +
+ acctest.GenerateResourceFromRepresentationMap("oci_database_pluggable_database", "test_pluggable_databases_remote_clone", acctest.Optional, acctest.Create, DatabasePluggableDatabaseRemoteCloneRepresentation),
+ Check: acctest.ComposeAggregateTestCheckFuncWrapper(
+ resource.TestCheckResourceAttr(remoteCloneResourceName, "pdb_name", "RemoteClonePdb"),
+ resource.TestCheckResourceAttrSet(remoteCloneResourceName, "id"),
+ resource.TestCheckResourceAttr(remoteCloneResourceName, "pdb_admin_password", "BEstrO0ng_#11"),
+ ),
+ },
+
+ // delete before relocate
+ {
+ Config: config + compartmentIdVariableStr + DatabasePluggableDatabaseResourceDependencies,
+ },
+
+ // verify relocate
+ {
+ Config: config + compartmentIdVariableStr + DatabasePluggableDatabaseResourceDependencies +
+ acctest.GenerateResourceFromRepresentationMap("oci_database_pluggable_database", "test_pluggable_database", acctest.Required, acctest.Create, DatabasePluggableDatabaseRepresentation) +
+ acctest.GenerateResourceFromRepresentationMap("oci_database_pluggable_database", "test_pluggable_databases_relocate", acctest.Optional, acctest.Create, DatabasePluggableDatabaseRelocateRepresentation),
+ Check: acctest.ComposeAggregateTestCheckFuncWrapper(
+ resource.TestCheckResourceAttr(relocateResourceName, "pdb_name", "RelocatePdb"),
+ resource.TestCheckResourceAttrSet(relocateResourceName, "id"),
+ resource.TestCheckResourceAttr(relocateResourceName, "pdb_admin_password", "BEstrO0ng_#11"),
+ ),
+ },
+
+ // delete before refreshable clone
+ {
+ Config: config + compartmentIdVariableStr + DatabasePluggableDatabaseResourceDependencies,
+ },
+
+ // verify create refreshable clone
+ {
+ Config: config + compartmentIdVariableStr + DatabasePluggableDatabaseResourceDependencies +
+ acctest.GenerateResourceFromRepresentationMap("oci_database_pluggable_database", "test_pluggable_database", acctest.Required, acctest.Create, DatabasePluggableDatabaseRepresentation) +
+ acctest.GenerateResourceFromRepresentationMap("oci_database_pluggable_database", "test_pluggable_databases_refreshable_clone", acctest.Optional, acctest.Create, DatabasePluggableDatabaseRefreshableCloneRepresentation),
+ Check: acctest.ComposeAggregateTestCheckFuncWrapper(
+ resource.TestCheckResourceAttr(refreshableCloneResourceName, "pdb_name", "RefreshablePdb"),
+ resource.TestCheckResourceAttrSet(refreshableCloneResourceName, "id"),
+ resource.TestCheckResourceAttr(refreshableCloneResourceName, "pdb_admin_password", "BEstrO0ng_#11"),
+ ),
+ },
+
+ // verify refresh
+ {
+ Config: config + compartmentIdVariableStr + DatabasePluggableDatabaseResourceDependencies +
+ acctest.GenerateResourceFromRepresentationMap("oci_database_pluggable_database", "test_pluggable_database", acctest.Required, acctest.Create, DatabasePluggableDatabaseRepresentation) +
+ acctest.GenerateResourceFromRepresentationMap("oci_database_pluggable_database", "test_pluggable_databases_refreshable_clone", acctest.Optional, acctest.Create, acctest.RepresentationCopyWithNewProperties(DatabasePluggableDatabaseRefreshableCloneRepresentation, map[string]interface{}{
+ "refresh_trigger": acctest.Representation{RepType: acctest.Optional, Create: `0`},
+ })),
+ Check: acctest.ComposeAggregateTestCheckFuncWrapper(
+ resource.TestCheckResourceAttr(refreshableCloneResourceName, "pdb_name", "RefreshablePdb"),
+ resource.TestCheckResourceAttrSet(refreshableCloneResourceName, "id"),
+ resource.TestCheckResourceAttr(refreshableCloneResourceName, "pdb_admin_password", "BEstrO0ng_#11"),
+ ),
+ },
+
+ // verify convert to regular
+ {
+ Config: config + compartmentIdVariableStr + DatabasePluggableDatabaseResourceDependencies +
+ acctest.GenerateResourceFromRepresentationMap("oci_database_pluggable_database", "test_pluggable_database", acctest.Required, acctest.Create, DatabasePluggableDatabaseRepresentation) +
+ acctest.GenerateResourceFromRepresentationMap("oci_database_pluggable_database", "test_pluggable_databases_refreshable_clone", acctest.Optional, acctest.Create, acctest.RepresentationCopyWithNewProperties(DatabasePluggableDatabaseRefreshableCloneRepresentation, map[string]interface{}{
+ "convert_to_regular_trigger": acctest.Representation{RepType: acctest.Optional, Create: `0`},
+ })),
+ Check: acctest.ComposeAggregateTestCheckFuncWrapper(
+ resource.TestCheckResourceAttr(refreshableCloneResourceName, "pdb_name", "RefreshablePdb"),
+ resource.TestCheckResourceAttrSet(refreshableCloneResourceName, "id"),
+ resource.TestCheckResourceAttr(refreshableCloneResourceName, "pdb_admin_password", "BEstrO0ng_#11"),
+ ),
+ },
+
// verify datasource
{
Config: config +
@@ -329,6 +531,7 @@ func TestDatabasePluggableDatabaseResource_basic(t *testing.T) {
resource.TestCheckResourceAttrSet(singularDatasourceName, "id"),
resource.TestCheckResourceAttrSet(singularDatasourceName, "open_mode"),
resource.TestCheckResourceAttr(singularDatasourceName, "pdb_name", "SalesPdb"),
+
resource.TestCheckResourceAttrSet(singularDatasourceName, "state"),
resource.TestCheckResourceAttrSet(singularDatasourceName, "time_created"),
),
@@ -339,7 +542,10 @@ func TestDatabasePluggableDatabaseResource_basic(t *testing.T) {
ImportState: true,
ImportStateVerify: true,
ImportStateVerifyIgnore: []string{
+ //"container_database_admin_password",
"pdb_admin_password",
+ //"pdb_creation_type_details",
+ //"should_create_pdb_backup",
"should_pdb_admin_account_be_locked",
"tde_wallet_password",
"rotate_key_trigger",
@@ -349,6 +555,213 @@ func TestDatabasePluggableDatabaseResource_basic(t *testing.T) {
})
}
+func TestDatabasePluggableDatabaseResourceExacc_basic(t *testing.T) {
+ httpreplay.SetScenario("TestDatabasePluggableDatabaseResourceExacc_basic")
+ defer httpreplay.SaveScenario()
+
+ config := acctest.ProviderTestConfig()
+
+ compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid")
+ compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId)
+
+ resourceName := "oci_database_pluggable_database.test_pluggable_database"
+ localCloneResourceName := "oci_database_pluggable_database.test_pluggable_databases_local_clone"
+ remoteCloneResourceName := "oci_database_pluggable_database.test_pluggable_databases_remote_clone"
+ relocateResourceName := "oci_database_pluggable_database.test_pluggable_databases_relocate"
+ refreshableCloneResourceName := "oci_database_pluggable_database.test_pluggable_databases_refreshable_clone"
+ //datasourceName := "data.oci_database_pluggable_databases.test_pluggable_databases"
+ //singularDatasourceName := "data.oci_database_pluggable_database.test_pluggable_database"
+
+ var resId, resId2, compId 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+DatabasePluggableDatabaseResourceDependeciesExacc+
+ acctest.GenerateResourceFromRepresentationMap("oci_database_pluggable_database", "test_pluggable_database", acctest.Optional, acctest.Create, DatabasePluggableDatabaseRepresentation), "database", "pluggableDatabase", t)
+
+ acctest.ResourceTest(t, testAccCheckDatabasePluggableDatabaseDestroy, []resource.TestStep{
+ // verify Create
+ {
+ Config: config + compartmentIdVariableStr + DatabasePluggableDatabaseResourceDependeciesExacc +
+ acctest.GenerateResourceFromRepresentationMap("oci_database_pluggable_database", "test_pluggable_database", acctest.Required, acctest.Create, DatabasePluggableDatabaseRepresentation),
+ Check: acctest.ComposeAggregateTestCheckFuncWrapper(
+ resource.TestCheckResourceAttrSet(resourceName, "container_database_id"),
+ resource.TestCheckResourceAttr(resourceName, "pdb_admin_password", "BEstrO0ng_#11"),
+ resource.TestCheckResourceAttr(resourceName, "pdb_name", "SalesPdb"),
+ resource.TestCheckResourceAttr(resourceName, "tde_wallet_password", "BEstrO0ng_#11"),
+
+ func(s *terraform.State) (err error) {
+ resId, err = acctest.FromInstanceState(s, resourceName, "id")
+ return err
+ },
+ ),
+ },
+
+ // delete before next Create
+ {
+ Config: config + compartmentIdVariableStr + DatabasePluggableDatabaseResourceDependeciesExacc,
+ },
+ // verify Create with optionals
+ {
+ Config: config + compartmentIdVariableStr + DatabasePluggableDatabaseResourceDependeciesExacc +
+ acctest.GenerateResourceFromRepresentationMap("oci_database_pluggable_database", "test_pluggable_database", acctest.Optional, acctest.Create, DatabasePluggableDatabaseRepresentation),
+ Check: acctest.ComposeAggregateTestCheckFuncWrapper(
+ resource.TestCheckResourceAttrSet(resourceName, "compartment_id"),
+ //resource.TestCheckResourceAttr(resourceName, "container_database_admin_password", "containerDatabaseAdminPassword"),
+ resource.TestCheckResourceAttrSet(resourceName, "container_database_id"),
+ resource.TestCheckResourceAttr(resourceName, "freeform_tags.%", "1"),
+ resource.TestCheckResourceAttrSet(resourceName, "id"),
+ resource.TestCheckResourceAttrSet(resourceName, "open_mode"),
+
+ resource.TestCheckResourceAttr(resourceName, "pdb_admin_password", "BEstrO0ng_#11"),
+
+ resource.TestCheckResourceAttr(resourceName, "pdb_name", "SalesPdb"),
+ //resource.TestCheckResourceAttr(resourceName, "should_create_pdb_backup", "true"),
+ resource.TestCheckResourceAttr(resourceName, "should_pdb_admin_account_be_locked", "false"),
+ resource.TestCheckResourceAttrSet(resourceName, "state"),
+ resource.TestCheckResourceAttr(resourceName, "tde_wallet_password", "BEstrO0ng_#11"),
+ resource.TestCheckResourceAttrSet(resourceName, "time_created"),
+
+ func(s *terraform.State) (err error) {
+ resId, err = acctest.FromInstanceState(s, resourceName, "id")
+ compId = "oci_database_pluggable_database:" + resId
+ if isEnableExportCompartment, _ := strconv.ParseBool(utils.GetEnvSettingWithDefault("enable_export_compartment", "true")); isEnableExportCompartment {
+ if errExport := resourcediscovery.TestExportCompartmentWithResourceName(&compId, &compartmentId, resourceName); errExport != nil {
+ return errExport
+ }
+ }
+ return err
+ },
+ ),
+ },
+
+ // verify updates to updatable parameters
+ {
+ Config: config + compartmentIdVariableStr + DatabasePluggableDatabaseResourceDependeciesExacc +
+ acctest.GenerateResourceFromRepresentationMap("oci_database_pluggable_database", "test_pluggable_database", acctest.Optional, acctest.Update, DatabasePluggableDatabaseRepresentation),
+ Check: acctest.ComposeAggregateTestCheckFuncWrapper(
+ resource.TestCheckResourceAttrSet(resourceName, "compartment_id"),
+ //resource.TestCheckResourceAttr(resourceName, "container_database_admin_password", "containerDatabaseAdminPassword"),
+ resource.TestCheckResourceAttrSet(resourceName, "container_database_id"),
+ resource.TestCheckResourceAttr(resourceName, "freeform_tags.%", "1"),
+ resource.TestCheckResourceAttrSet(resourceName, "id"),
+ resource.TestCheckResourceAttrSet(resourceName, "open_mode"),
+
+ resource.TestCheckResourceAttr(resourceName, "pdb_admin_password", "BEstrO0ng_#11"),
+
+ resource.TestCheckResourceAttr(resourceName, "pdb_name", "SalesPdb"),
+ //resource.TestCheckResourceAttr(resourceName, "should_create_pdb_backup", "true"),
+ resource.TestCheckResourceAttr(resourceName, "should_pdb_admin_account_be_locked", "false"),
+ resource.TestCheckResourceAttrSet(resourceName, "state"),
+ resource.TestCheckResourceAttr(resourceName, "tde_wallet_password", "BEstrO0ng_#11"),
+ resource.TestCheckResourceAttrSet(resourceName, "time_created"),
+
+ 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
+ },
+ ),
+ },
+
+ // delete before local clone
+ {
+ Config: config + compartmentIdVariableStr + DatabasePluggableDatabaseResourceDependeciesExacc,
+ },
+
+ // verify local clone
+ {
+ Config: config + compartmentIdVariableStr + DatabasePluggableDatabaseResourceDependeciesExacc +
+ acctest.GenerateResourceFromRepresentationMap("oci_database_pluggable_database", "test_pluggable_database", acctest.Required, acctest.Create, DatabasePluggableDatabaseRepresentation) +
+ acctest.GenerateResourceFromRepresentationMap("oci_database_pluggable_database", "test_pluggable_databases_local_clone", acctest.Optional, acctest.Create, DatabasePluggableDatabaseLocalCloneRepresentation),
+ Check: acctest.ComposeAggregateTestCheckFuncWrapper(
+ resource.TestCheckResourceAttr(localCloneResourceName, "pdb_name", "LocalClonePdb"),
+ resource.TestCheckResourceAttrSet(localCloneResourceName, "id"),
+ resource.TestCheckResourceAttr(localCloneResourceName, "pdb_admin_password", "BEstrO0ng_#11"),
+ ),
+ },
+
+ // delete before remote clone
+ {
+ Config: config + compartmentIdVariableStr + DatabasePluggableDatabaseResourceDependeciesExacc,
+ },
+
+ // verify remote clone
+ {
+ Config: config + compartmentIdVariableStr + DatabasePluggableDatabaseResourceDependeciesExacc +
+ acctest.GenerateResourceFromRepresentationMap("oci_database_pluggable_database", "test_pluggable_database", acctest.Required, acctest.Create, DatabasePluggableDatabaseRepresentation) +
+ acctest.GenerateResourceFromRepresentationMap("oci_database_pluggable_database", "test_pluggable_databases_remote_clone", acctest.Optional, acctest.Create, DatabasePluggableDatabaseRemoteCloneRepresentation),
+ Check: acctest.ComposeAggregateTestCheckFuncWrapper(
+ resource.TestCheckResourceAttr(remoteCloneResourceName, "pdb_name", "RemoteClonePdb"),
+ resource.TestCheckResourceAttrSet(remoteCloneResourceName, "id"),
+ resource.TestCheckResourceAttr(remoteCloneResourceName, "pdb_admin_password", "BEstrO0ng_#11"),
+ ),
+ },
+
+ // delete before relocate
+ {
+ Config: config + compartmentIdVariableStr + DatabasePluggableDatabaseResourceDependeciesExacc,
+ },
+
+ // verify relocate
+ {
+ Config: config + compartmentIdVariableStr + DatabasePluggableDatabaseResourceDependeciesExacc +
+ acctest.GenerateResourceFromRepresentationMap("oci_database_pluggable_database", "test_pluggable_database", acctest.Required, acctest.Create, DatabasePluggableDatabaseRepresentation) +
+ acctest.GenerateResourceFromRepresentationMap("oci_database_pluggable_database", "test_pluggable_databases_relocate", acctest.Optional, acctest.Create, DatabasePluggableDatabaseRelocateRepresentation),
+ Check: acctest.ComposeAggregateTestCheckFuncWrapper(
+ resource.TestCheckResourceAttr(relocateResourceName, "pdb_name", "RelocatePdb"),
+ resource.TestCheckResourceAttrSet(relocateResourceName, "id"),
+ resource.TestCheckResourceAttr(relocateResourceName, "pdb_admin_password", "BEstrO0ng_#11"),
+ ),
+ },
+
+ // delete before refreshable clone
+ {
+ Config: config + compartmentIdVariableStr + DatabasePluggableDatabaseResourceDependeciesExacc,
+ },
+
+ // verify create refreshable clone
+ {
+ Config: config + compartmentIdVariableStr + DatabasePluggableDatabaseResourceDependeciesExacc +
+ acctest.GenerateResourceFromRepresentationMap("oci_database_pluggable_database", "test_pluggable_database", acctest.Required, acctest.Create, DatabasePluggableDatabaseRepresentation) +
+ acctest.GenerateResourceFromRepresentationMap("oci_database_pluggable_database", "test_pluggable_databases_refreshable_clone", acctest.Optional, acctest.Create, DatabasePluggableDatabaseRefreshableCloneRepresentation),
+ Check: acctest.ComposeAggregateTestCheckFuncWrapper(
+ resource.TestCheckResourceAttr(refreshableCloneResourceName, "pdb_name", "RefreshablePdb"),
+ resource.TestCheckResourceAttrSet(refreshableCloneResourceName, "id"),
+ resource.TestCheckResourceAttr(refreshableCloneResourceName, "pdb_admin_password", "BEstrO0ng_#11"),
+ ),
+ },
+
+ // verify refresh
+ {
+ Config: config + compartmentIdVariableStr + DatabasePluggableDatabaseResourceDependeciesExacc +
+ acctest.GenerateResourceFromRepresentationMap("oci_database_pluggable_database", "test_pluggable_database", acctest.Required, acctest.Create, DatabasePluggableDatabaseRepresentation) +
+ acctest.GenerateResourceFromRepresentationMap("oci_database_pluggable_database", "test_pluggable_databases_refreshable_clone", acctest.Optional, acctest.Create, acctest.RepresentationCopyWithNewProperties(DatabasePluggableDatabaseRefreshableCloneRepresentation, map[string]interface{}{
+ "refresh_trigger": acctest.Representation{RepType: acctest.Optional, Create: `0`},
+ })),
+ Check: acctest.ComposeAggregateTestCheckFuncWrapper(
+ resource.TestCheckResourceAttr(refreshableCloneResourceName, "pdb_name", "RefreshablePdb"),
+ resource.TestCheckResourceAttrSet(refreshableCloneResourceName, "id"),
+ resource.TestCheckResourceAttr(refreshableCloneResourceName, "pdb_admin_password", "BEstrO0ng_#11"),
+ ),
+ },
+
+ // verify convert to regular
+ {
+ Config: config + compartmentIdVariableStr + DatabasePluggableDatabaseResourceDependeciesExacc +
+ acctest.GenerateResourceFromRepresentationMap("oci_database_pluggable_database", "test_pluggable_database", acctest.Required, acctest.Create, DatabasePluggableDatabaseRepresentation) +
+ acctest.GenerateResourceFromRepresentationMap("oci_database_pluggable_database", "test_pluggable_databases_refreshable_clone", acctest.Optional, acctest.Create, acctest.RepresentationCopyWithNewProperties(DatabasePluggableDatabaseRefreshableCloneRepresentation, map[string]interface{}{
+ "convert_to_regular_trigger": acctest.Representation{RepType: acctest.Optional, Create: `0`},
+ })),
+ Check: acctest.ComposeAggregateTestCheckFuncWrapper(
+ resource.TestCheckResourceAttr(refreshableCloneResourceName, "pdb_name", "RefreshablePdb"),
+ resource.TestCheckResourceAttrSet(refreshableCloneResourceName, "id"),
+ resource.TestCheckResourceAttr(refreshableCloneResourceName, "pdb_admin_password", "BEstrO0ng_#11"),
+ ),
+ },
+ })
+}
+
func testAccCheckDatabasePluggableDatabaseDestroy(s *terraform.State) error {
noResourceFound := true
client := acctest.TestAccProvider.Meta().(*client.OracleClients).DatabaseClient()
diff --git a/internal/integrationtest/database_pluggable_databases_remote_clone_test.go b/internal/integrationtest/database_pluggable_databases_remote_clone_test.go
index c282504f847..b6af1204ae8 100644
--- a/internal/integrationtest/database_pluggable_databases_remote_clone_test.go
+++ b/internal/integrationtest/database_pluggable_databases_remote_clone_test.go
@@ -103,7 +103,7 @@ var (
node_count = "1"
fault_domains = ["FAULT-DOMAIN-1"]
db_home {
- db_version = "19.11.0.0"
+ db_version = "21.8.0.0"
display_name = "-tf-db-home-clone"
database {
admin_password = "BEstrO0ng_#11"
diff --git a/internal/integrationtest/dataintegration_workspace_export_request_test.go b/internal/integrationtest/dataintegration_workspace_export_request_test.go
new file mode 100644
index 00000000000..88af867fcd2
--- /dev/null
+++ b/internal/integrationtest/dataintegration_workspace_export_request_test.go
@@ -0,0 +1,297 @@
+// 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"
+ "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_dataintegration "github.com/oracle/oci-go-sdk/v65/dataintegration"
+
+ "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 (
+ DataintegrationWorkspaceExportRequestRequiredOnlyResource = DataintegrationWorkspaceExportRequestResourceDependencies +
+ acctest.GenerateResourceFromRepresentationMap("oci_dataintegration_workspace_export_request", "test_workspace_export_request", acctest.Required, acctest.Create, DataintegrationWorkspaceExportRequestRepresentation)
+
+ DataintegrationWorkspaceExportRequestResourceConfig = DataintegrationWorkspaceExportRequestResourceDependencies +
+ acctest.GenerateResourceFromRepresentationMap("oci_dataintegration_workspace_export_request", "test_workspace_export_request", acctest.Optional, acctest.Update, DataintegrationWorkspaceExportRequestRepresentation)
+
+ DataintegrationWorkspaceExportRequestSingularDataSourceRepresentation = map[string]interface{}{
+ "export_request_key": acctest.Representation{RepType: acctest.Required, Create: `${oci_dataintegration_workspace_export_request.test_workspace_export_request.key}`},
+ "workspace_id": acctest.Representation{RepType: acctest.Required, Create: `${var.workspace_id}`},
+ }
+
+ DataintegrationWorkspaceExportRequestDataSourceRepresentation = map[string]interface{}{
+ "workspace_id": acctest.Representation{RepType: acctest.Required, Create: `${var.workspace_id}`},
+ "export_status": acctest.Representation{RepType: acctest.Optional, Create: `SUCCESSFUL`},
+ "name": acctest.Representation{RepType: acctest.Optional, Create: `${oci_dataintegration_workspace_export_request.test_workspace_export_request.name}`},
+ "projection": acctest.Representation{RepType: acctest.Optional, Create: `SUMMARY`},
+ "filter": acctest.RepresentationGroup{RepType: acctest.Required, Group: DataintegrationWorkspaceExportRequestDataSourceFilterRepresentation}}
+ DataintegrationWorkspaceExportRequestDataSourceFilterRepresentation = map[string]interface{}{
+ "name": acctest.Representation{RepType: acctest.Required, Create: `name`},
+ "values": acctest.Representation{RepType: acctest.Required, Create: []string{`${oci_dataintegration_workspace_export_request.test_workspace_export_request.name}`}},
+ }
+
+ DataintegrationWorkspaceExportRequestRepresentation = map[string]interface{}{
+ "bucket": acctest.Representation{RepType: acctest.Required, Create: `${var.bucket_name}`},
+ "workspace_id": acctest.Representation{RepType: acctest.Required, Create: `${var.workspace_id}`},
+ "are_references_included": acctest.Representation{RepType: acctest.Optional, Create: `false`},
+ "file_name": acctest.Representation{RepType: acctest.Optional, Create: `MyExportObjects.zip`},
+ "filters": acctest.Representation{RepType: acctest.Optional, Create: nil},
+ "is_object_overwrite_enabled": acctest.Representation{RepType: acctest.Required, Create: `true`},
+ "object_keys": acctest.Representation{RepType: acctest.Optional, Create: nil},
+ "object_storage_region": acctest.Representation{RepType: acctest.Optional, Create: `${var.region_name}`},
+ "object_storage_tenancy_id": acctest.Representation{RepType: acctest.Optional, Create: `${var.tenancy_id}`},
+ }
+
+ DataintegrationWorkspaceExportRequestResourceDependencies = ""
+)
+
+// issue-routing-tag: dataintegration/default
+func TestDataintegrationWorkspaceExportRequestResource_basic(t *testing.T) {
+ httpreplay.SetScenario("TestDataintegrationWorkspaceExportRequestResource_basic")
+ defer httpreplay.SaveScenario()
+
+ config := acctest.ProviderTestConfig()
+
+ workspaceId := utils.GetEnvSettingWithBlankDefault("workspace_id")
+ workspaceIdVariableStr := fmt.Sprintf("variable \"workspace_id\" { default = \"%s\" }\n", workspaceId)
+
+ compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid")
+ compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId)
+
+ tenancyId := utils.GetEnvSettingWithBlankDefault("tenancy_ocid")
+ tenancyIdVariableStr := fmt.Sprintf("variable \"tenancy_id\" { default = \"%s\" }\n", tenancyId)
+
+ region := utils.GetEnvSettingWithBlankDefault("region")
+ regionVariableStr := fmt.Sprintf("variable \"region_name\" { default = \"%s\" }\n", region)
+
+ bucket := utils.GetEnvSettingWithBlankDefault("bucket_name")
+ bucketVariableStr := fmt.Sprintf("variable \"bucket_name\" { default = \"%s\" }\n", bucket)
+
+ resourceName := "oci_dataintegration_workspace_export_request.test_workspace_export_request"
+ datasourceName := "data.oci_dataintegration_workspace_export_requests.test_workspace_export_requests"
+ singularDatasourceName := "data.oci_dataintegration_workspace_export_request.test_workspace_export_request"
+
+ 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+workspaceIdVariableStr+tenancyIdVariableStr+regionVariableStr+bucketVariableStr+DataintegrationWorkspaceExportRequestResourceDependencies+
+ acctest.GenerateResourceFromRepresentationMap("oci_dataintegration_workspace_export_request", "test_workspace_export_request", acctest.Optional, acctest.Create, DataintegrationWorkspaceExportRequestRepresentation), "dataintegration", "workspaceExportRequest", t)
+
+ acctest.ResourceTest(t, testAccCheckDataintegrationWorkspaceExportRequestDestroy, []resource.TestStep{
+ // verify Create
+ {
+ Config: config + compartmentIdVariableStr + workspaceIdVariableStr + bucketVariableStr + DataintegrationWorkspaceExportRequestResourceDependencies +
+ acctest.GenerateResourceFromRepresentationMap("oci_dataintegration_workspace_export_request", "test_workspace_export_request", acctest.Required, acctest.Create, DataintegrationWorkspaceExportRequestRepresentation),
+ Check: acctest.ComposeAggregateTestCheckFuncWrapper(
+ resource.TestCheckResourceAttrSet(resourceName, "bucket"),
+ resource.TestCheckResourceAttrSet(resourceName, "workspace_id"),
+ ),
+ },
+
+ // delete before next Create
+ {
+ Config: config + compartmentIdVariableStr + DataintegrationWorkspaceExportRequestResourceDependencies,
+ },
+ // verify Create with optionals
+ {
+ Config: config + compartmentIdVariableStr + workspaceIdVariableStr + tenancyIdVariableStr + regionVariableStr + bucketVariableStr + DataintegrationWorkspaceExportRequestResourceDependencies +
+ acctest.GenerateResourceFromRepresentationMap("oci_dataintegration_workspace_export_request", "test_workspace_export_request", acctest.Optional, acctest.Create, DataintegrationWorkspaceExportRequestRepresentation),
+ Check: acctest.ComposeAggregateTestCheckFuncWrapper(
+ resource.TestCheckResourceAttr(resourceName, "are_references_included", "false"),
+ resource.TestCheckResourceAttrSet(resourceName, "bucket"),
+ resource.TestCheckResourceAttr(resourceName, "file_name", "MyExportObjects.zip"),
+ resource.TestCheckResourceAttr(resourceName, "filters.#", "0"),
+ resource.TestCheckResourceAttr(resourceName, "is_object_overwrite_enabled", "true"),
+ resource.TestCheckResourceAttr(resourceName, "object_keys.#", "3"),
+ resource.TestCheckResourceAttrSet(resourceName, "object_storage_region"),
+ resource.TestCheckResourceAttrSet(resourceName, "object_storage_tenancy_id"),
+ resource.TestCheckResourceAttrSet(resourceName, "workspace_id"),
+
+ func(s *terraform.State) (err error) {
+ resId, err = acctest.FromInstanceState(s, resourceName, "id")
+ if isEnableExportCompartment, _ := strconv.ParseBool(utils.GetEnvSettingWithDefault("enable_export_compartment", "true")); isEnableExportCompartment {
+ if errExport := resourcediscovery.TestExportCompartmentWithResourceName(&resId, &compartmentId, resourceName); errExport != nil {
+ return errExport
+ }
+ }
+ return err
+ },
+ ),
+ },
+
+ // verify datasource
+ {
+ Config: config +
+ acctest.GenerateDataSourceFromRepresentationMap("oci_dataintegration_workspace_export_requests", "test_workspace_export_requests", acctest.Optional, acctest.Update, DataintegrationWorkspaceExportRequestDataSourceRepresentation) +
+ compartmentIdVariableStr + workspaceIdVariableStr + tenancyIdVariableStr + regionVariableStr + bucketVariableStr + DataintegrationWorkspaceExportRequestResourceDependencies +
+ acctest.GenerateResourceFromRepresentationMap("oci_dataintegration_workspace_export_request", "test_workspace_export_request", acctest.Optional, acctest.Update, DataintegrationWorkspaceExportRequestRepresentation),
+ Check: acctest.ComposeAggregateTestCheckFuncWrapper(
+ resource.TestCheckResourceAttr(datasourceName, "export_status", "SUCCESSFUL"),
+ resource.TestCheckResourceAttrSet(datasourceName, "name"),
+ resource.TestCheckResourceAttr(datasourceName, "projection", "SUMMARY"),
+ //resource.TestCheckResourceAttr(datasourceName, "time_ended_in_millis", "10"),
+ //resource.TestCheckResourceAttr(datasourceName, "time_started_in_millis", "10"),
+ resource.TestCheckResourceAttrSet(datasourceName, "workspace_id"),
+
+ resource.TestCheckResourceAttr(datasourceName, "export_request_summary_collection.#", "1"),
+ resource.TestCheckResourceAttr(datasourceName, "export_request_summary_collection.0.items.#", "1"),
+ ),
+ },
+ // verify singular datasource
+ {
+ Config: config +
+ acctest.GenerateDataSourceFromRepresentationMap("oci_dataintegration_workspace_export_request", "test_workspace_export_request", acctest.Required, acctest.Create, DataintegrationWorkspaceExportRequestSingularDataSourceRepresentation) +
+ compartmentIdVariableStr + workspaceIdVariableStr + tenancyIdVariableStr + regionVariableStr + bucketVariableStr + DataintegrationWorkspaceExportRequestResourceConfig,
+ Check: acctest.ComposeAggregateTestCheckFuncWrapper(
+ resource.TestCheckResourceAttrSet(singularDatasourceName, "export_request_key"),
+ resource.TestCheckResourceAttrSet(singularDatasourceName, "workspace_id"),
+
+ resource.TestCheckResourceAttr(singularDatasourceName, "are_references_included", "false"),
+ resource.TestCheckResourceAttrSet(singularDatasourceName, "bucket"),
+ resource.TestCheckResourceAttrSet(singularDatasourceName, "created_by"),
+ resource.TestCheckResourceAttr(singularDatasourceName, "exported_items.#", "0"),
+ resource.TestCheckResourceAttr(singularDatasourceName, "file_name", "MyExportObjects.zip"),
+ resource.TestCheckResourceAttr(singularDatasourceName, "filters.#", "0"),
+ resource.TestCheckResourceAttr(singularDatasourceName, "is_object_overwrite_enabled", "true"),
+ resource.TestCheckResourceAttrSet(singularDatasourceName, "key"),
+ resource.TestCheckResourceAttrSet(singularDatasourceName, "name"),
+ resource.TestCheckResourceAttr(singularDatasourceName, "object_keys.#", "3"),
+ resource.TestCheckResourceAttrSet(singularDatasourceName, "object_storage_region"),
+ //resource.TestCheckResourceAttrSet(singularDatasourceName, "referenced_items"),
+ resource.TestCheckResourceAttrSet(singularDatasourceName, "status"),
+ resource.TestCheckResourceAttrSet(singularDatasourceName, "time_ended_in_millis"),
+ resource.TestCheckResourceAttrSet(singularDatasourceName, "time_started_in_millis"),
+ resource.TestCheckResourceAttrSet(singularDatasourceName, "total_exported_object_count"),
+ ),
+ },
+ // verify resource import
+ {
+ Config: config + DataintegrationWorkspaceExportRequestRequiredOnlyResource,
+ ImportState: true,
+ ImportStateVerify: true,
+ ImportStateVerifyIgnore: []string{},
+ ResourceName: resourceName,
+ },
+ })
+}
+
+func testAccCheckDataintegrationWorkspaceExportRequestDestroy(s *terraform.State) error {
+ noResourceFound := true
+ client := acctest.TestAccProvider.Meta().(*tf_client.OracleClients).DataIntegrationClient()
+ for _, rs := range s.RootModule().Resources {
+ if rs.Type == "oci_dataintegration_workspace_export_request" {
+ noResourceFound = false
+ request := oci_dataintegration.GetExportRequestRequest{}
+
+ if value, ok := rs.Primary.Attributes["key"]; ok {
+ request.ExportRequestKey = &value
+ }
+
+ if value, ok := rs.Primary.Attributes["workspace_id"]; ok {
+ request.WorkspaceId = &value
+ }
+
+ request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(true, "dataintegration")
+
+ _, err := client.GetExportRequest(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("DataintegrationWorkspaceExportRequest") {
+ resource.AddTestSweepers("DataintegrationWorkspaceExportRequest", &resource.Sweeper{
+ Name: "DataintegrationWorkspaceExportRequest",
+ Dependencies: acctest.DependencyGraph["workspaceExportRequest"],
+ F: sweepDataintegrationWorkspaceExportRequestResource,
+ })
+ }
+}
+
+func sweepDataintegrationWorkspaceExportRequestResource(compartment string) error {
+ dataIntegrationClient := acctest.GetTestClients(&schema.ResourceData{}).DataIntegrationClient()
+ workspaceExportRequestIds, err := getDataintegrationWorkspaceExportRequestIds(compartment)
+ if err != nil {
+ return err
+ }
+ for _, workspaceExportRequestId := range workspaceExportRequestIds {
+ if ok := acctest.SweeperDefaultResourceId[workspaceExportRequestId]; !ok {
+ deleteExportRequestRequest := oci_dataintegration.DeleteExportRequestRequest{}
+
+ deleteExportRequestRequest.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(true, "dataintegration")
+ _, error := dataIntegrationClient.DeleteExportRequest(context.Background(), deleteExportRequestRequest)
+ if error != nil {
+ fmt.Printf("Error deleting WorkspaceExportRequest %s %s, It is possible that the resource is already deleted. Please verify manually \n", workspaceExportRequestId, error)
+ continue
+ }
+ }
+ }
+ return nil
+}
+
+func getDataintegrationWorkspaceExportRequestIds(compartment string) ([]string, error) {
+ ids := acctest.GetResourceIdsToSweep(compartment, "WorkspaceExportRequestId")
+ if ids != nil {
+ return ids, nil
+ }
+ var resourceIds []string
+ compartmentId := compartment
+ dataIntegrationClient := acctest.GetTestClients(&schema.ResourceData{}).DataIntegrationClient()
+
+ listExportRequestsRequest := oci_dataintegration.ListExportRequestsRequest{}
+ //listExportRequestsRequest.CompartmentId = &compartmentId
+
+ workspaceIds, error := getDataintegrationWorkspaceIds(compartment)
+ if error != nil {
+ return resourceIds, fmt.Errorf("Error getting workspaceId required for WorkspaceExportRequest resource requests \n")
+ }
+ for _, workspaceId := range workspaceIds {
+ listExportRequestsRequest.WorkspaceId = &workspaceId
+
+ listExportRequestsResponse, err := dataIntegrationClient.ListExportRequests(context.Background(), listExportRequestsRequest)
+
+ if err != nil {
+ return resourceIds, fmt.Errorf("Error getting WorkspaceExportRequest list for compartment id : %s , %s \n", compartmentId, err)
+ }
+ for _, workspaceExportRequest := range listExportRequestsResponse.Items {
+ id := *workspaceExportRequest.Key
+ resourceIds = append(resourceIds, id)
+ acctest.AddResourceIdToSweeperResourceIdMap(compartmentId, "WorkspaceExportRequestId", id)
+ }
+
+ }
+ return resourceIds, nil
+}
diff --git a/internal/integrationtest/dataintegration_workspace_import_request_test.go b/internal/integrationtest/dataintegration_workspace_import_request_test.go
new file mode 100644
index 00000000000..007bc8b67cc
--- /dev/null
+++ b/internal/integrationtest/dataintegration_workspace_import_request_test.go
@@ -0,0 +1,306 @@
+// 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"
+ "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_dataintegration "github.com/oracle/oci-go-sdk/v65/dataintegration"
+
+ "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 (
+ DataintegrationWorkspaceImportRequestRequiredOnlyResource = DataintegrationWorkspaceImportRequestResourceDependencies +
+ acctest.GenerateResourceFromRepresentationMap("oci_dataintegration_workspace_import_request", "test_workspace_import_request", acctest.Required, acctest.Create, DataintegrationWorkspaceImportRequestRepresentation)
+
+ DataintegrationWorkspaceImportRequestResourceConfig = DataintegrationWorkspaceImportRequestResourceDependencies +
+ acctest.GenerateResourceFromRepresentationMap("oci_dataintegration_workspace_import_request", "test_workspace_import_request", acctest.Optional, acctest.Update, DataintegrationWorkspaceImportRequestRepresentation)
+
+ DataintegrationWorkspaceImportRequestSingularDataSourceRepresentation = map[string]interface{}{
+ "import_request_key": acctest.Representation{RepType: acctest.Required, Create: `${oci_dataintegration_workspace_import_request.test_workspace_import_request.key}`},
+ "workspace_id": acctest.Representation{RepType: acctest.Required, Create: `${var.workspace_id}`},
+ }
+
+ DataintegrationWorkspaceImportRequestDataSourceRepresentation = map[string]interface{}{
+ "workspace_id": acctest.Representation{RepType: acctest.Required, Create: `${var.workspace_id}`},
+ "import_status": acctest.Representation{RepType: acctest.Optional, Create: `SUCCESSFUL`},
+ "name": acctest.Representation{RepType: acctest.Optional, Create: `${oci_dataintegration_workspace_import_request.test_workspace_import_request.name}`},
+ "projection": acctest.Representation{RepType: acctest.Optional, Create: `SUMMARY`},
+ "filter": acctest.RepresentationGroup{RepType: acctest.Required, Group: DataintegrationWorkspaceImportRequestDataSourceFilterRepresentation}}
+ DataintegrationWorkspaceImportRequestDataSourceFilterRepresentation = map[string]interface{}{
+ "name": acctest.Representation{RepType: acctest.Required, Create: `name`},
+ "values": acctest.Representation{RepType: acctest.Required, Create: []string{`${oci_dataintegration_workspace_import_request.test_workspace_import_request.name}`}},
+ }
+
+ DataintegrationWorkspaceImportRequestRepresentation = map[string]interface{}{
+ "bucket": acctest.Representation{RepType: acctest.Required, Create: `${var.bucket_name}`},
+ "file_name": acctest.Representation{RepType: acctest.Required, Create: `MyExportObjects.zip`},
+ "workspace_id": acctest.Representation{RepType: acctest.Required, Create: `${var.workspace_id}`},
+ "import_conflict_resolution": acctest.RepresentationGroup{RepType: acctest.Optional, Group: DataintegrationWorkspaceImportRequestImportConflictResolutionRepresentation},
+ "object_key_for_import": acctest.Representation{RepType: acctest.Optional, Create: nil},
+ "object_storage_region": acctest.Representation{RepType: acctest.Optional, Create: `${var.region_name}`},
+ "object_storage_tenancy_id": acctest.Representation{RepType: acctest.Optional, Create: `${var.tenancy_id}`},
+ }
+ DataintegrationWorkspaceImportRequestImportConflictResolutionRepresentation = map[string]interface{}{
+ "import_conflict_resolution_type": acctest.Representation{RepType: acctest.Required, Create: `REPLACE`},
+ "duplicate_prefix": acctest.Representation{RepType: acctest.Optional, Create: `duplicatePrefix`},
+ "duplicate_suffix": acctest.Representation{RepType: acctest.Optional, Create: `duplicateSuffix`},
+ }
+
+ DataintegrationWorkspaceImportRequestResourceDependencies = acctest.GenerateResourceFromRepresentationMap("oci_dataintegration_workspace_export_request", "test_workspace_export_request", acctest.Required, acctest.Create, acctest.GetMultipleUpdatedRepresenationCopy([]string{"bucket", "workspace_id", "file_name", "is_object_overwrite_enabled", "object_storage_region", "object_storage_tenancy_id"},
+ []interface{}{
+ acctest.Representation{RepType: acctest.Required, Create: `${var.bucket_name}`},
+ acctest.Representation{RepType: acctest.Required, Create: `${var.workspace_id}`},
+ acctest.Representation{RepType: acctest.Required, Create: `MyExportObjects.zip`},
+ acctest.Representation{RepType: acctest.Required, Create: `true`},
+ acctest.Representation{RepType: acctest.Required, Create: `${var.region_name}`},
+ acctest.Representation{RepType: acctest.Required, Create: `${var.tenancy_id}`},
+ }, DataintegrationWorkspaceExportRequestRepresentation))
+)
+
+// issue-routing-tag: dataintegration/default
+func TestDataintegrationWorkspaceImportRequestResource_basic(t *testing.T) {
+ httpreplay.SetScenario("TestDataintegrationWorkspaceImportRequestResource_basic")
+ defer httpreplay.SaveScenario()
+
+ config := acctest.ProviderTestConfig()
+
+ workspaceId := utils.GetEnvSettingWithBlankDefault("workspace_id")
+ workspaceIdVariableStr := fmt.Sprintf("variable \"workspace_id\" { default = \"%s\" }\n", workspaceId)
+
+ compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid")
+ compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId)
+
+ tenancyId := utils.GetEnvSettingWithBlankDefault("tenancy_ocid")
+ tenancyIdVariableStr := fmt.Sprintf("variable \"tenancy_id\" { default = \"%s\" }\n", tenancyId)
+
+ region := utils.GetEnvSettingWithBlankDefault("region")
+ regionVariableStr := fmt.Sprintf("variable \"region_name\" { default = \"%s\" }\n", region)
+
+ bucket := utils.GetEnvSettingWithBlankDefault("bucket_name")
+ bucketVariableStr := fmt.Sprintf("variable \"bucket_name\" { default = \"%s\" }\n", bucket)
+
+ resourceName := "oci_dataintegration_workspace_import_request.test_workspace_import_request"
+ datasourceName := "data.oci_dataintegration_workspace_import_requests.test_workspace_import_requests"
+ singularDatasourceName := "data.oci_dataintegration_workspace_import_request.test_workspace_import_request"
+
+ 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+workspaceIdVariableStr+tenancyIdVariableStr+regionVariableStr+bucketVariableStr+DataintegrationWorkspaceImportRequestResourceDependencies+
+ acctest.GenerateResourceFromRepresentationMap("oci_dataintegration_workspace_import_request", "test_workspace_import_request", acctest.Optional, acctest.Create, DataintegrationWorkspaceImportRequestRepresentation), "dataintegration", "workspaceImportRequest", t)
+
+ acctest.ResourceTest(t, testAccCheckDataintegrationWorkspaceImportRequestDestroy, []resource.TestStep{
+ // verify Create
+ {
+ Config: config + compartmentIdVariableStr + workspaceIdVariableStr + tenancyIdVariableStr + regionVariableStr + bucketVariableStr + DataintegrationWorkspaceImportRequestResourceDependencies +
+ acctest.GenerateResourceFromRepresentationMap("oci_dataintegration_workspace_import_request", "test_workspace_import_request", acctest.Required, acctest.Create, DataintegrationWorkspaceImportRequestRepresentation),
+ Check: acctest.ComposeAggregateTestCheckFuncWrapper(
+ resource.TestCheckResourceAttrSet(resourceName, "bucket"),
+ resource.TestCheckResourceAttr(resourceName, "file_name", "MyExportObjects.zip"),
+ resource.TestCheckResourceAttrSet(resourceName, "workspace_id"),
+ ),
+ },
+
+ // delete before next Create
+ {
+ Config: config + compartmentIdVariableStr + workspaceIdVariableStr + tenancyIdVariableStr + regionVariableStr + bucketVariableStr + DataintegrationWorkspaceImportRequestResourceDependencies,
+ },
+ // verify Create with optionals
+ {
+ Config: config + compartmentIdVariableStr + workspaceIdVariableStr + tenancyIdVariableStr + regionVariableStr + bucketVariableStr + DataintegrationWorkspaceImportRequestResourceDependencies +
+ acctest.GenerateResourceFromRepresentationMap("oci_dataintegration_workspace_import_request", "test_workspace_import_request", acctest.Optional, acctest.Create, DataintegrationWorkspaceImportRequestRepresentation),
+ Check: acctest.ComposeAggregateTestCheckFuncWrapper(
+ resource.TestCheckResourceAttrSet(resourceName, "bucket"),
+ resource.TestCheckResourceAttr(resourceName, "file_name", "MyExportObjects.zip"),
+ resource.TestCheckResourceAttr(resourceName, "import_conflict_resolution.#", "1"),
+ resource.TestCheckResourceAttr(resourceName, "import_conflict_resolution.0.duplicate_prefix", "duplicatePrefix"),
+ resource.TestCheckResourceAttr(resourceName, "import_conflict_resolution.0.duplicate_suffix", "duplicateSuffix"),
+ resource.TestCheckResourceAttr(resourceName, "import_conflict_resolution.0.import_conflict_resolution_type", "REPLACE"),
+ resource.TestCheckResourceAttrSet(resourceName, "object_storage_region"),
+ resource.TestCheckResourceAttrSet(resourceName, "object_storage_tenancy_id"),
+ resource.TestCheckResourceAttrSet(resourceName, "workspace_id"),
+
+ func(s *terraform.State) (err error) {
+ resId, err = acctest.FromInstanceState(s, resourceName, "id")
+ if isEnableExportCompartment, _ := strconv.ParseBool(utils.GetEnvSettingWithDefault("enable_export_compartment", "true")); isEnableExportCompartment {
+ if errExport := resourcediscovery.TestExportCompartmentWithResourceName(&resId, &compartmentId, resourceName); errExport != nil {
+ return errExport
+ }
+ }
+ return err
+ },
+ ),
+ },
+
+ // verify datasource
+ {
+ Config: config +
+ acctest.GenerateDataSourceFromRepresentationMap("oci_dataintegration_workspace_import_requests", "test_workspace_import_requests", acctest.Optional, acctest.Update, DataintegrationWorkspaceImportRequestDataSourceRepresentation) +
+ compartmentIdVariableStr + workspaceIdVariableStr + tenancyIdVariableStr + regionVariableStr + bucketVariableStr + DataintegrationWorkspaceImportRequestResourceDependencies +
+ acctest.GenerateResourceFromRepresentationMap("oci_dataintegration_workspace_import_request", "test_workspace_import_request", acctest.Optional, acctest.Update, DataintegrationWorkspaceImportRequestRepresentation),
+ Check: acctest.ComposeAggregateTestCheckFuncWrapper(
+ resource.TestCheckResourceAttr(datasourceName, "import_status", "SUCCESSFUL"),
+ resource.TestCheckResourceAttrSet(datasourceName, "name"),
+ resource.TestCheckResourceAttr(datasourceName, "projection", "SUMMARY"),
+ resource.TestCheckResourceAttrSet(datasourceName, "workspace_id"),
+
+ resource.TestCheckResourceAttr(datasourceName, "import_request_summary_collection.#", "1"),
+ resource.TestCheckResourceAttr(datasourceName, "import_request_summary_collection.0.items.#", "1"),
+ ),
+ },
+ // verify singular datasource
+ {
+ Config: config +
+ acctest.GenerateDataSourceFromRepresentationMap("oci_dataintegration_workspace_import_request", "test_workspace_import_request", acctest.Required, acctest.Create, DataintegrationWorkspaceImportRequestSingularDataSourceRepresentation) +
+ compartmentIdVariableStr + workspaceIdVariableStr + tenancyIdVariableStr + regionVariableStr + bucketVariableStr + DataintegrationWorkspaceImportRequestResourceConfig,
+ Check: acctest.ComposeAggregateTestCheckFuncWrapper(
+ resource.TestCheckResourceAttrSet(singularDatasourceName, "import_request_key"),
+ resource.TestCheckResourceAttrSet(singularDatasourceName, "workspace_id"),
+
+ resource.TestCheckResourceAttrSet(singularDatasourceName, "bucket"),
+ resource.TestCheckResourceAttrSet(singularDatasourceName, "created_by"),
+ resource.TestCheckResourceAttr(singularDatasourceName, "file_name", "MyExportObjects.zip"),
+ resource.TestCheckResourceAttr(singularDatasourceName, "import_conflict_resolution.#", "1"),
+ resource.TestCheckResourceAttr(singularDatasourceName, "import_conflict_resolution.0.duplicate_prefix", "duplicatePrefix"),
+ resource.TestCheckResourceAttr(singularDatasourceName, "import_conflict_resolution.0.duplicate_suffix", "duplicateSuffix"),
+ resource.TestCheckResourceAttr(singularDatasourceName, "import_conflict_resolution.0.import_conflict_resolution_type", "REPLACE"),
+ //resource.TestCheckResourceAttr(singularDatasourceName, "imported_objects.#", "1"),
+ resource.TestCheckResourceAttrSet(singularDatasourceName, "key"),
+ resource.TestCheckResourceAttrSet(singularDatasourceName, "name"),
+ resource.TestCheckResourceAttrSet(singularDatasourceName, "object_storage_region"),
+ resource.TestCheckResourceAttrSet(singularDatasourceName, "status"),
+ resource.TestCheckResourceAttrSet(singularDatasourceName, "time_ended_in_millis"),
+ resource.TestCheckResourceAttrSet(singularDatasourceName, "time_started_in_millis"),
+ resource.TestCheckResourceAttrSet(singularDatasourceName, "total_imported_object_count"),
+ ),
+ },
+ // verify resource import
+ {
+ Config: config + DataintegrationWorkspaceImportRequestRequiredOnlyResource,
+ ImportState: true,
+ ImportStateVerify: true,
+ ImportStateVerifyIgnore: []string{},
+ ResourceName: resourceName,
+ },
+ })
+}
+
+func testAccCheckDataintegrationWorkspaceImportRequestDestroy(s *terraform.State) error {
+ noResourceFound := true
+ client := acctest.TestAccProvider.Meta().(*tf_client.OracleClients).DataIntegrationClient()
+ for _, rs := range s.RootModule().Resources {
+ if rs.Type == "oci_dataintegration_workspace_import_request" {
+ noResourceFound = false
+ request := oci_dataintegration.GetImportRequestRequest{}
+
+ if value, ok := rs.Primary.Attributes["key"]; ok {
+ request.ImportRequestKey = &value
+ }
+
+ if value, ok := rs.Primary.Attributes["workspace_id"]; ok {
+ request.WorkspaceId = &value
+ }
+
+ request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(true, "dataintegration")
+
+ _, err := client.GetImportRequest(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("DataintegrationWorkspaceImportRequest") {
+ resource.AddTestSweepers("DataintegrationWorkspaceImportRequest", &resource.Sweeper{
+ Name: "DataintegrationWorkspaceImportRequest",
+ Dependencies: acctest.DependencyGraph["workspaceImportRequest"],
+ F: sweepDataintegrationWorkspaceImportRequestResource,
+ })
+ }
+}
+
+func sweepDataintegrationWorkspaceImportRequestResource(compartment string) error {
+ dataIntegrationClient := acctest.GetTestClients(&schema.ResourceData{}).DataIntegrationClient()
+ workspaceImportRequestIds, err := getDataintegrationWorkspaceImportRequestIds(compartment)
+ if err != nil {
+ return err
+ }
+ for _, workspaceImportRequestId := range workspaceImportRequestIds {
+ if ok := acctest.SweeperDefaultResourceId[workspaceImportRequestId]; !ok {
+ deleteImportRequestRequest := oci_dataintegration.DeleteImportRequestRequest{}
+
+ deleteImportRequestRequest.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(true, "dataintegration")
+ _, error := dataIntegrationClient.DeleteImportRequest(context.Background(), deleteImportRequestRequest)
+ if error != nil {
+ fmt.Printf("Error deleting WorkspaceImportRequest %s %s, It is possible that the resource is already deleted. Please verify manually \n", workspaceImportRequestId, error)
+ continue
+ }
+ }
+ }
+ return nil
+}
+
+func getDataintegrationWorkspaceImportRequestIds(compartment string) ([]string, error) {
+ ids := acctest.GetResourceIdsToSweep(compartment, "WorkspaceImportRequestId")
+ if ids != nil {
+ return ids, nil
+ }
+ var resourceIds []string
+ compartmentId := compartment
+ dataIntegrationClient := acctest.GetTestClients(&schema.ResourceData{}).DataIntegrationClient()
+
+ listImportRequestsRequest := oci_dataintegration.ListImportRequestsRequest{}
+ //listImportRequestsRequest.CompartmentId = &compartmentId
+
+ workspaceIds, error := getDataintegrationWorkspaceIds(compartment)
+ if error != nil {
+ return resourceIds, fmt.Errorf("Error getting workspaceId required for WorkspaceImportRequest resource requests \n")
+ }
+ for _, workspaceId := range workspaceIds {
+ listImportRequestsRequest.WorkspaceId = &workspaceId
+
+ listImportRequestsResponse, err := dataIntegrationClient.ListImportRequests(context.Background(), listImportRequestsRequest)
+
+ if err != nil {
+ return resourceIds, fmt.Errorf("Error getting WorkspaceImportRequest list for compartment id : %s , %s \n", compartmentId, err)
+ }
+ for _, workspaceImportRequest := range listImportRequestsResponse.Items {
+ id := *workspaceImportRequest.Key
+ resourceIds = append(resourceIds, id)
+ acctest.AddResourceIdToSweeperResourceIdMap(compartmentId, "WorkspaceImportRequestId", id)
+ }
+
+ }
+ return resourceIds, nil
+}
diff --git a/internal/service/containerengine/containerengine_cluster_resource.go b/internal/service/containerengine/containerengine_cluster_resource.go
index 867444733a3..287c1dbb70e 100644
--- a/internal/service/containerengine/containerengine_cluster_resource.go
+++ b/internal/service/containerengine/containerengine_cluster_resource.go
@@ -15,6 +15,7 @@ import (
"github.com/oracle/terraform-provider-oci/httpreplay"
+ "github.com/hashicorp/terraform-plugin-sdk/v2/helper/customdiff"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -96,9 +97,7 @@ func ContainerengineClusterResource() *schema.Resource {
"subnet_id": {
Type: schema.TypeString,
Required: true,
- ForceNew: true,
},
-
// Optional
"is_public_ip_enabled": {
Type: schema.TypeBool,
@@ -437,6 +436,16 @@ func ContainerengineClusterResource() *schema.Resource {
Computed: true,
},
},
+ CustomizeDiff: customdiff.All(
+ customdiff.ForceNewIfChange("endpoint_config.0.subnet_id", func(ctx context.Context, old, new, meta interface{}) bool {
+ oldSubnetId := old.(string)
+ if len(oldSubnetId) > 0 {
+ // OKE do not allow customer to change endpointConfig.subnetId once it is configured. Once the oldSubnetId exist, we need to force a recreation.
+ return true
+ }
+ return false
+ }),
+ ),
}
}
diff --git a/internal/service/core/core_capture_filter_data_source.go b/internal/service/core/core_capture_filter_data_source.go
index 56f77226907..52ee5d672b1 100644
--- a/internal/service/core/core_capture_filter_data_source.go
+++ b/internal/service/core/core_capture_filter_data_source.go
@@ -80,6 +80,12 @@ func (s *CoreCaptureFilterDataSourceCrud) SetData() error {
s.D.Set("filter_type", s.Res.FilterType)
+ flowLogCaptureFilterRules := []interface{}{}
+ for _, item := range s.Res.FlowLogCaptureFilterRules {
+ flowLogCaptureFilterRules = append(flowLogCaptureFilterRules, FlowLogCaptureFilterRuleDetailsToMap(item))
+ }
+ s.D.Set("flow_log_capture_filter_rules", flowLogCaptureFilterRules)
+
s.D.Set("freeform_tags", s.Res.FreeformTags)
s.D.Set("state", s.Res.LifecycleState)
diff --git a/internal/service/core/core_capture_filter_resource.go b/internal/service/core/core_capture_filter_resource.go
index 2950dab5d24..180c3828d36 100644
--- a/internal/service/core/core_capture_filter_resource.go
+++ b/internal/service/core/core_capture_filter_resource.go
@@ -51,6 +51,213 @@ func CoreCaptureFilterResource() *schema.Resource {
Optional: true,
Computed: true,
},
+ "flow_log_capture_filter_rules": {
+ Type: schema.TypeList,
+ Optional: true,
+ Computed: true,
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ // Required
+
+ // Optional
+ "destination_cidr": {
+ Type: schema.TypeString,
+ Optional: true,
+ Computed: true,
+ },
+ "flow_log_type": {
+ Type: schema.TypeString,
+ Optional: true,
+ Computed: true,
+ },
+ "icmp_options": {
+ Type: schema.TypeList,
+ Optional: true,
+ Computed: true,
+ MaxItems: 1,
+ MinItems: 1,
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ // Required
+ "type": {
+ Type: schema.TypeInt,
+ Required: true,
+ },
+
+ // Optional
+ "code": {
+ Type: schema.TypeInt,
+ Optional: true,
+ Computed: true,
+ },
+
+ // Computed
+ },
+ },
+ },
+ "is_enabled": {
+ Type: schema.TypeBool,
+ Optional: true,
+ Computed: true,
+ },
+ "priority": {
+ Type: schema.TypeInt,
+ Optional: true,
+ Computed: true,
+ },
+ "protocol": {
+ Type: schema.TypeString,
+ Optional: true,
+ Computed: true,
+ },
+ "rule_action": {
+ Type: schema.TypeString,
+ Optional: true,
+ Computed: true,
+ },
+ "sampling_rate": {
+ Type: schema.TypeInt,
+ Optional: true,
+ Computed: true,
+ },
+ "source_cidr": {
+ Type: schema.TypeString,
+ Optional: true,
+ Computed: true,
+ },
+ "tcp_options": {
+ Type: schema.TypeList,
+ Optional: true,
+ Computed: true,
+ MaxItems: 1,
+ MinItems: 1,
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ // Required
+
+ // Optional
+ "destination_port_range": {
+ Type: schema.TypeList,
+ Optional: true,
+ Computed: true,
+ MaxItems: 1,
+ MinItems: 1,
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ // Required
+ "max": {
+ Type: schema.TypeInt,
+ Required: true,
+ },
+ "min": {
+ Type: schema.TypeInt,
+ Required: true,
+ },
+
+ // Optional
+
+ // Computed
+ },
+ },
+ },
+ "source_port_range": {
+ Type: schema.TypeList,
+ Optional: true,
+ Computed: true,
+ MaxItems: 1,
+ MinItems: 1,
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ // Required
+ "max": {
+ Type: schema.TypeInt,
+ Required: true,
+ },
+ "min": {
+ Type: schema.TypeInt,
+ Required: true,
+ },
+
+ // Optional
+
+ // Computed
+ },
+ },
+ },
+
+ // Computed
+ },
+ },
+ },
+ "udp_options": {
+ Type: schema.TypeList,
+ Optional: true,
+ Computed: true,
+ MaxItems: 1,
+ MinItems: 1,
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ // Required
+
+ // Optional
+ "destination_port_range": {
+ Type: schema.TypeList,
+ Optional: true,
+ Computed: true,
+ MaxItems: 1,
+ MinItems: 1,
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ // Required
+ "max": {
+ Type: schema.TypeInt,
+ Required: true,
+ },
+ "min": {
+ Type: schema.TypeInt,
+ Required: true,
+ },
+
+ // Optional
+
+ // Computed
+ },
+ },
+ },
+ "source_port_range": {
+ Type: schema.TypeList,
+ Optional: true,
+ Computed: true,
+ MaxItems: 1,
+ MinItems: 1,
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ // Required
+ "max": {
+ Type: schema.TypeInt,
+ Required: true,
+ },
+ "min": {
+ Type: schema.TypeInt,
+ Required: true,
+ },
+
+ // Optional
+
+ // Computed
+ },
+ },
+ },
+
+ // Computed
+ },
+ },
+ },
+
+ // Computed
+ },
+ },
+ },
"freeform_tags": {
Type: schema.TypeMap,
Optional: true,
@@ -359,6 +566,23 @@ func (s *CoreCaptureFilterResourceCrud) Create() error {
request.FilterType = oci_core.CreateCaptureFilterDetailsFilterTypeEnum(filterType.(string))
}
+ if flowLogCaptureFilterRules, ok := s.D.GetOkExists("flow_log_capture_filter_rules"); ok {
+ interfaces := flowLogCaptureFilterRules.([]interface{})
+ tmp := make([]oci_core.FlowLogCaptureFilterRuleDetails, len(interfaces))
+ for i := range interfaces {
+ stateDataIndex := i
+ fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "flow_log_capture_filter_rules", stateDataIndex)
+ converted, err := s.mapToFlowLogCaptureFilterRuleDetails(fieldKeyFormat)
+ if err != nil {
+ return err
+ }
+ tmp[i] = converted
+ }
+ if len(tmp) != 0 || s.D.HasChange("flow_log_capture_filter_rules") {
+ request.FlowLogCaptureFilterRules = tmp
+ }
+ }
+
if freeformTags, ok := s.D.GetOkExists("freeform_tags"); ok {
request.FreeformTags = tfresource.ObjectMapToStringMap(freeformTags.(map[string]interface{}))
}
@@ -436,6 +660,23 @@ func (s *CoreCaptureFilterResourceCrud) Update() error {
request.DisplayName = &tmp
}
+ if flowLogCaptureFilterRules, ok := s.D.GetOkExists("flow_log_capture_filter_rules"); ok {
+ interfaces := flowLogCaptureFilterRules.([]interface{})
+ tmp := make([]oci_core.FlowLogCaptureFilterRuleDetails, len(interfaces))
+ for i := range interfaces {
+ stateDataIndex := i
+ fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "flow_log_capture_filter_rules", stateDataIndex)
+ converted, err := s.mapToFlowLogCaptureFilterRuleDetails(fieldKeyFormat)
+ if err != nil {
+ return err
+ }
+ tmp[i] = converted
+ }
+ if len(tmp) != 0 || s.D.HasChange("flow_log_capture_filter_rules") {
+ request.FlowLogCaptureFilterRules = tmp
+ }
+ }
+
if freeformTags, ok := s.D.GetOkExists("freeform_tags"); ok {
request.FreeformTags = tfresource.ObjectMapToStringMap(freeformTags.(map[string]interface{}))
}
@@ -495,6 +736,12 @@ func (s *CoreCaptureFilterResourceCrud) SetData() error {
s.D.Set("filter_type", s.Res.FilterType)
+ flowLogCaptureFilterRules := []interface{}{}
+ for _, item := range s.Res.FlowLogCaptureFilterRules {
+ flowLogCaptureFilterRules = append(flowLogCaptureFilterRules, FlowLogCaptureFilterRuleDetailsToMap(item))
+ }
+ s.D.Set("flow_log_capture_filter_rules", flowLogCaptureFilterRules)
+
s.D.Set("freeform_tags", s.Res.FreeformTags)
s.D.Set("state", s.Res.LifecycleState)
@@ -512,6 +759,129 @@ func (s *CoreCaptureFilterResourceCrud) SetData() error {
return nil
}
+func (s *CoreCaptureFilterResourceCrud) mapToFlowLogCaptureFilterRuleDetails(fieldKeyFormat string) (oci_core.FlowLogCaptureFilterRuleDetails, error) {
+ result := oci_core.FlowLogCaptureFilterRuleDetails{}
+
+ if destinationCidr, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "destination_cidr")); ok {
+ tmp := destinationCidr.(string)
+ result.DestinationCidr = &tmp
+ }
+
+ if flowLogType, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "flow_log_type")); ok {
+ result.FlowLogType = oci_core.FlowLogCaptureFilterRuleDetailsFlowLogTypeEnum(flowLogType.(string))
+ }
+
+ if icmpOptions, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "icmp_options")); ok {
+ if tmpList := icmpOptions.([]interface{}); len(tmpList) > 0 {
+ fieldKeyFormatNextLevel := fmt.Sprintf("%s.%d.%%s", fmt.Sprintf(fieldKeyFormat, "icmp_options"), 0)
+ tmp, err := s.mapToIcmpOptions(fieldKeyFormatNextLevel)
+ if err != nil {
+ return result, fmt.Errorf("unable to convert icmp_options, encountered error: %v", err)
+ }
+ result.IcmpOptions = &tmp
+ }
+ }
+
+ if isEnabled, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "is_enabled")); ok {
+ tmp := isEnabled.(bool)
+ result.IsEnabled = &tmp
+ }
+
+ if priority, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "priority")); ok {
+ tmp := priority.(int)
+ result.Priority = &tmp
+ }
+
+ if protocol, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "protocol")); ok {
+ tmp := protocol.(string)
+ result.Protocol = &tmp
+ }
+
+ if ruleAction, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "rule_action")); ok {
+ result.RuleAction = oci_core.FlowLogCaptureFilterRuleDetailsRuleActionEnum(ruleAction.(string))
+ }
+
+ if samplingRate, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "sampling_rate")); ok {
+ tmp := samplingRate.(int)
+ result.SamplingRate = &tmp
+ }
+
+ if sourceCidr, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "source_cidr")); ok {
+ tmp := sourceCidr.(string)
+ result.SourceCidr = &tmp
+ }
+
+ if tcpOptions, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "tcp_options")); ok {
+ if tmpList := tcpOptions.([]interface{}); len(tmpList) > 0 {
+ fieldKeyFormatNextLevel := fmt.Sprintf("%s.%d.%%s", fmt.Sprintf(fieldKeyFormat, "tcp_options"), 0)
+ tmp, err := s.mapToTcpOptions(fieldKeyFormatNextLevel)
+ if err != nil {
+ return result, fmt.Errorf("unable to convert tcp_options, encountered error: %v", err)
+ }
+ result.TcpOptions = &tmp
+ }
+ }
+
+ if udpOptions, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "udp_options")); ok {
+ if tmpList := udpOptions.([]interface{}); len(tmpList) > 0 {
+ fieldKeyFormatNextLevel := fmt.Sprintf("%s.%d.%%s", fmt.Sprintf(fieldKeyFormat, "udp_options"), 0)
+ tmp, err := s.mapToUdpOptions(fieldKeyFormatNextLevel)
+ if err != nil {
+ return result, fmt.Errorf("unable to convert udp_options, encountered error: %v", err)
+ }
+ result.UdpOptions = &tmp
+ }
+ }
+
+ return result, nil
+}
+
+func FlowLogCaptureFilterRuleDetailsToMap(obj oci_core.FlowLogCaptureFilterRuleDetails) map[string]interface{} {
+ result := map[string]interface{}{}
+
+ if obj.DestinationCidr != nil {
+ result["destination_cidr"] = string(*obj.DestinationCidr)
+ }
+
+ result["flow_log_type"] = string(obj.FlowLogType)
+
+ if obj.IcmpOptions != nil {
+ result["icmp_options"] = []interface{}{IcmpOptionsToMap(obj.IcmpOptions)}
+ }
+
+ if obj.IsEnabled != nil {
+ result["is_enabled"] = bool(*obj.IsEnabled)
+ }
+
+ if obj.Priority != nil {
+ result["priority"] = int(*obj.Priority)
+ }
+
+ if obj.Protocol != nil {
+ result["protocol"] = string(*obj.Protocol)
+ }
+
+ result["rule_action"] = string(obj.RuleAction)
+
+ if obj.SamplingRate != nil {
+ result["sampling_rate"] = int(*obj.SamplingRate)
+ }
+
+ if obj.SourceCidr != nil {
+ result["source_cidr"] = string(*obj.SourceCidr)
+ }
+
+ if obj.TcpOptions != nil {
+ result["tcp_options"] = []interface{}{TcpOptionsToMap(obj.TcpOptions)}
+ }
+
+ if obj.UdpOptions != nil {
+ result["udp_options"] = []interface{}{UdpOptionsToMap(obj.UdpOptions)}
+ }
+
+ return result
+}
+
func (s *CoreCaptureFilterResourceCrud) mapToIcmpOptions(fieldKeyFormat string) (oci_core.IcmpOptions, error) {
result := oci_core.IcmpOptions{}
diff --git a/internal/service/core/core_capture_filters_data_source.go b/internal/service/core/core_capture_filters_data_source.go
index 4891d9b34b3..05955c831c7 100644
--- a/internal/service/core/core_capture_filters_data_source.go
+++ b/internal/service/core/core_capture_filters_data_source.go
@@ -26,6 +26,10 @@ func CoreCaptureFiltersDataSource() *schema.Resource {
Type: schema.TypeString,
Optional: true,
},
+ "filter_type": {
+ Type: schema.TypeString,
+ Optional: true,
+ },
"state": {
Type: schema.TypeString,
Optional: true,
@@ -70,6 +74,10 @@ func (s *CoreCaptureFiltersDataSourceCrud) Get() error {
request.DisplayName = &tmp
}
+ if filterType, ok := s.D.GetOkExists("filter_type"); ok {
+ request.FilterType = oci_core.CaptureFilterFilterTypeEnum(filterType.(string))
+ }
+
if state, ok := s.D.GetOkExists("state"); ok {
request.LifecycleState = oci_core.CaptureFilterLifecycleStateEnum(state.(string))
}
@@ -120,6 +128,12 @@ func (s *CoreCaptureFiltersDataSourceCrud) SetData() error {
captureFilter["filter_type"] = r.FilterType
+ flowLogCaptureFilterRules := []interface{}{}
+ for _, item := range r.FlowLogCaptureFilterRules {
+ flowLogCaptureFilterRules = append(flowLogCaptureFilterRules, FlowLogCaptureFilterRuleDetailsToMap(item))
+ }
+ captureFilter["flow_log_capture_filter_rules"] = flowLogCaptureFilterRules
+
captureFilter["freeform_tags"] = r.FreeformTags
if r.Id != nil {
diff --git a/internal/service/database/database_autonomous_vm_cluster_acd_resource_usages_data_source.go b/internal/service/database/database_autonomous_vm_cluster_acd_resource_usages_data_source.go
new file mode 100644
index 00000000000..a4dda016126
--- /dev/null
+++ b/internal/service/database/database_autonomous_vm_cluster_acd_resource_usages_data_source.go
@@ -0,0 +1,257 @@
+// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved.
+// Licensed under the Mozilla Public License v2.0
+
+package database
+
+import (
+ "context"
+
+ "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
+ oci_database "github.com/oracle/oci-go-sdk/v65/database"
+
+ "github.com/oracle/terraform-provider-oci/internal/client"
+ "github.com/oracle/terraform-provider-oci/internal/tfresource"
+)
+
+func DatabaseAutonomousVmClusterAcdResourceUsagesDataSource() *schema.Resource {
+ return &schema.Resource{
+ Read: readDatabaseAutonomousVmClusterAcdResourceUsages,
+ Schema: map[string]*schema.Schema{
+ "filter": tfresource.DataSourceFiltersSchema(),
+ "autonomous_vm_cluster_id": {
+ Type: schema.TypeString,
+ Required: true,
+ },
+ "compartment_id": {
+ Type: schema.TypeString,
+ Optional: true,
+ },
+ "autonomous_container_database_resource_usages": {
+ Type: schema.TypeList,
+ Computed: true,
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ // Required
+
+ // Optional
+
+ // Computed
+ "autonomous_container_database_vm_usage": {
+ Type: schema.TypeList,
+ Computed: true,
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ // Required
+
+ // Optional
+
+ // Computed
+ "display_name": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "id": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "provisioned_cpus": {
+ Type: schema.TypeFloat,
+ Computed: true,
+ },
+ "reclaimable_cpus": {
+ Type: schema.TypeFloat,
+ Computed: true,
+ },
+ "reserved_cpus": {
+ Type: schema.TypeFloat,
+ Computed: true,
+ },
+ "used_cpus": {
+ Type: schema.TypeFloat,
+ Computed: true,
+ },
+ },
+ },
+ },
+ "available_cpus": {
+ Type: schema.TypeFloat,
+ Computed: true,
+ },
+ "defined_tags": {
+ Type: schema.TypeMap,
+ Computed: true,
+ Elem: schema.TypeString,
+ },
+ "display_name": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "freeform_tags": {
+ Type: schema.TypeMap,
+ Computed: true,
+ Elem: schema.TypeString,
+ },
+ "id": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "largest_provisionable_autonomous_database_in_cpus": {
+ Type: schema.TypeFloat,
+ Computed: true,
+ },
+ "provisionable_cpus": {
+ Type: schema.TypeList,
+ Computed: true,
+ Elem: &schema.Schema{
+ Type: schema.TypeFloat,
+ },
+ },
+ "provisioned_cpus": {
+ Type: schema.TypeFloat,
+ Computed: true,
+ },
+ "reclaimable_cpus": {
+ Type: schema.TypeFloat,
+ Computed: true,
+ },
+ "reserved_cpus": {
+ Type: schema.TypeFloat,
+ Computed: true,
+ },
+ "used_cpus": {
+ Type: schema.TypeFloat,
+ Computed: true,
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func readDatabaseAutonomousVmClusterAcdResourceUsages(d *schema.ResourceData, m interface{}) error {
+ sync := &DatabaseAutonomousVmClusterAcdResourceUsagesDataSourceCrud{}
+ sync.D = d
+ sync.Client = m.(*client.OracleClients).DatabaseClient()
+
+ return tfresource.ReadResource(sync)
+}
+
+type DatabaseAutonomousVmClusterAcdResourceUsagesDataSourceCrud struct {
+ D *schema.ResourceData
+ Client *oci_database.DatabaseClient
+ Res *oci_database.ListAutonomousVmClusterAcdResourceUsageResponse
+}
+
+func (s *DatabaseAutonomousVmClusterAcdResourceUsagesDataSourceCrud) VoidState() {
+ s.D.SetId("")
+}
+
+func (s *DatabaseAutonomousVmClusterAcdResourceUsagesDataSourceCrud) Get() error {
+ request := oci_database.ListAutonomousVmClusterAcdResourceUsageRequest{}
+
+ if autonomousVmClusterId, ok := s.D.GetOkExists("autonomous_vm_cluster_id"); ok {
+ tmp := autonomousVmClusterId.(string)
+ request.AutonomousVmClusterId = &tmp
+ }
+
+ if compartmentId, ok := s.D.GetOkExists("compartment_id"); ok {
+ tmp := compartmentId.(string)
+ request.CompartmentId = &tmp
+ }
+
+ request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "database")
+
+ response, err := s.Client.ListAutonomousVmClusterAcdResourceUsage(context.Background(), request)
+ if err != nil {
+ return err
+ }
+
+ s.Res = &response
+ request.Page = s.Res.OpcNextPage
+
+ for request.Page != nil {
+ listResponse, err := s.Client.ListAutonomousVmClusterAcdResourceUsage(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 *DatabaseAutonomousVmClusterAcdResourceUsagesDataSourceCrud) SetData() error {
+ if s.Res == nil {
+ return nil
+ }
+
+ s.D.SetId(tfresource.GenerateDataSourceHashID("DatabaseAutonomousVmClusterAcdResourceUsagesDataSource-", DatabaseAutonomousVmClusterAcdResourceUsagesDataSource(), s.D))
+ resources := []map[string]interface{}{}
+
+ for _, r := range s.Res.Items {
+ autonomousVmClusterAcdResourceUsage := map[string]interface{}{}
+
+ autonomousContainerDatabaseVmUsage := []interface{}{}
+ for _, item := range r.AutonomousContainerDatabaseVmUsage {
+ autonomousContainerDatabaseVmUsage = append(autonomousContainerDatabaseVmUsage, AcdAvmResourceStatsToMap(item))
+ }
+ autonomousVmClusterAcdResourceUsage["autonomous_container_database_vm_usage"] = autonomousContainerDatabaseVmUsage
+
+ if r.AvailableCpus != nil {
+ autonomousVmClusterAcdResourceUsage["available_cpus"] = *r.AvailableCpus
+ }
+
+ if r.DefinedTags != nil {
+ autonomousVmClusterAcdResourceUsage["defined_tags"] = tfresource.DefinedTagsToMap(r.DefinedTags)
+ }
+
+ if r.DisplayName != nil {
+ autonomousVmClusterAcdResourceUsage["display_name"] = *r.DisplayName
+ }
+
+ autonomousVmClusterAcdResourceUsage["freeform_tags"] = r.FreeformTags
+ autonomousVmClusterAcdResourceUsage["freeform_tags"] = r.FreeformTags
+
+ if r.Id != nil {
+ autonomousVmClusterAcdResourceUsage["id"] = *r.Id
+ }
+
+ if r.LargestProvisionableAutonomousDatabaseInCpus != nil {
+ autonomousVmClusterAcdResourceUsage["largest_provisionable_autonomous_database_in_cpus"] = *r.LargestProvisionableAutonomousDatabaseInCpus
+ }
+
+ autonomousVmClusterAcdResourceUsage["provisionable_cpus"] = r.ProvisionableCpus
+ autonomousVmClusterAcdResourceUsage["provisionable_cpus"] = r.ProvisionableCpus
+
+ if r.ProvisionedCpus != nil {
+ autonomousVmClusterAcdResourceUsage["provisioned_cpus"] = *r.ProvisionedCpus
+ }
+
+ if r.ReclaimableCpus != nil {
+ autonomousVmClusterAcdResourceUsage["reclaimable_cpus"] = *r.ReclaimableCpus
+ }
+
+ if r.ReservedCpus != nil {
+ autonomousVmClusterAcdResourceUsage["reserved_cpus"] = *r.ReservedCpus
+ }
+
+ if r.UsedCpus != nil {
+ autonomousVmClusterAcdResourceUsage["used_cpus"] = *r.UsedCpus
+ }
+
+ resources = append(resources, autonomousVmClusterAcdResourceUsage)
+ }
+
+ if f, fOk := s.D.GetOkExists("filter"); fOk {
+ resources = tfresource.ApplyFilters(f.(*schema.Set), resources, DatabaseAutonomousVmClusterAcdResourceUsagesDataSource().Schema["autonomous_container_database_resource_usages"].Elem.(*schema.Resource).Schema)
+ }
+
+ if err := s.D.Set("autonomous_container_database_resource_usages", resources); err != nil {
+ return err
+ }
+
+ return nil
+}
diff --git a/internal/service/database/database_autonomous_vm_cluster_data_source.go b/internal/service/database/database_autonomous_vm_cluster_data_source.go
index f18398c19b7..f887e86c6ae 100644
--- a/internal/service/database/database_autonomous_vm_cluster_data_source.go
+++ b/internal/service/database/database_autonomous_vm_cluster_data_source.go
@@ -66,6 +66,10 @@ func (s *DatabaseAutonomousVmClusterDataSourceCrud) SetData() error {
s.D.SetId(*s.Res.Id)
+ if s.Res.AutonomousDataStoragePercentage != nil {
+ s.D.Set("autonomous_data_storage_percentage", *s.Res.AutonomousDataStoragePercentage)
+ }
+
if s.Res.AutonomousDataStorageSizeInTBs != nil {
s.D.Set("autonomous_data_storage_size_in_tbs", *s.Res.AutonomousDataStorageSizeInTBs)
}
@@ -96,6 +100,10 @@ func (s *DatabaseAutonomousVmClusterDataSourceCrud) SetData() error {
s.D.Set("cpu_core_count_per_node", *s.Res.CpuCoreCountPerNode)
}
+ if s.Res.CpuPercentage != nil {
+ s.D.Set("cpu_percentage", *s.Res.CpuPercentage)
+ }
+
if s.Res.CpusEnabled != nil {
s.D.Set("cpus_enabled", *s.Res.CpusEnabled)
}
@@ -168,14 +176,30 @@ func (s *DatabaseAutonomousVmClusterDataSourceCrud) SetData() error {
s.D.Set("node_count", *s.Res.NodeCount)
}
+ if s.Res.NonProvisionableAutonomousContainerDatabases != nil {
+ s.D.Set("non_provisionable_autonomous_container_databases", *s.Res.NonProvisionableAutonomousContainerDatabases)
+ }
+
if s.Res.OcpusEnabled != nil {
s.D.Set("ocpus_enabled", *s.Res.OcpusEnabled)
}
+ if s.Res.ProvisionedAutonomousContainerDatabases != nil {
+ s.D.Set("provisioned_autonomous_container_databases", *s.Res.ProvisionedAutonomousContainerDatabases)
+ }
+
+ if s.Res.ProvisionedCpus != nil {
+ s.D.Set("provisioned_cpus", *s.Res.ProvisionedCpus)
+ }
+
if s.Res.ReclaimableCpus != nil {
s.D.Set("reclaimable_cpus", *s.Res.ReclaimableCpus)
}
+ if s.Res.ReservedCpus != nil {
+ s.D.Set("reserved_cpus", *s.Res.ReservedCpus)
+ }
+
if s.Res.ScanListenerPortNonTls != nil {
s.D.Set("scan_listener_port_non_tls", *s.Res.ScanListenerPortNonTls)
}
@@ -202,6 +226,10 @@ func (s *DatabaseAutonomousVmClusterDataSourceCrud) SetData() error {
s.D.Set("time_zone", *s.Res.TimeZone)
}
+ if s.Res.TotalAutonomousDataStorageInTBs != nil {
+ s.D.Set("total_autonomous_data_storage_in_tbs", *s.Res.TotalAutonomousDataStorageInTBs)
+ }
+
if s.Res.TotalContainerDatabases != nil {
s.D.Set("total_container_databases", *s.Res.TotalContainerDatabases)
}
diff --git a/internal/service/database/database_autonomous_vm_cluster_resource.go b/internal/service/database/database_autonomous_vm_cluster_resource.go
index 78a27ae524f..ede2a630852 100644
--- a/internal/service/database/database_autonomous_vm_cluster_resource.go
+++ b/internal/service/database/database_autonomous_vm_cluster_resource.go
@@ -233,6 +233,10 @@ func DatabaseAutonomousVmClusterResource() *schema.Resource {
},
// Computed
+ "autonomous_data_storage_percentage": {
+ Type: schema.TypeFloat,
+ Computed: true,
+ },
"available_autonomous_data_storage_size_in_tbs": {
Type: schema.TypeFloat,
Computed: true,
@@ -249,6 +253,10 @@ func DatabaseAutonomousVmClusterResource() *schema.Resource {
Type: schema.TypeFloat,
Computed: true,
},
+ "cpu_percentage": {
+ Type: schema.TypeFloat,
+ Computed: true,
+ },
"cpus_enabled": {
Type: schema.TypeInt,
Computed: true,
@@ -373,14 +381,30 @@ func DatabaseAutonomousVmClusterResource() *schema.Resource {
Type: schema.TypeInt,
Computed: true,
},
+ "non_provisionable_autonomous_container_databases": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
"ocpus_enabled": {
Type: schema.TypeFloat,
Computed: true,
},
+ "provisioned_autonomous_container_databases": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "provisioned_cpus": {
+ Type: schema.TypeFloat,
+ Computed: true,
+ },
"reclaimable_cpus": {
Type: schema.TypeInt,
Computed: true,
},
+ "reserved_cpus": {
+ Type: schema.TypeFloat,
+ Computed: true,
+ },
"state": {
Type: schema.TypeString,
Computed: true,
@@ -397,6 +421,10 @@ func DatabaseAutonomousVmClusterResource() *schema.Resource {
Type: schema.TypeString,
Computed: true,
},
+ "total_autonomous_data_storage_in_tbs": {
+ Type: schema.TypeFloat,
+ Computed: true,
+ },
},
}
}
@@ -689,6 +717,10 @@ func (s *DatabaseAutonomousVmClusterResourceCrud) Delete() error {
}
func (s *DatabaseAutonomousVmClusterResourceCrud) SetData() error {
+ if s.Res.AutonomousDataStoragePercentage != nil {
+ s.D.Set("autonomous_data_storage_percentage", *s.Res.AutonomousDataStoragePercentage)
+ }
+
if s.Res.AutonomousDataStorageSizeInTBs != nil {
s.D.Set("autonomous_data_storage_size_in_tbs", *s.Res.AutonomousDataStorageSizeInTBs)
}
@@ -719,6 +751,10 @@ func (s *DatabaseAutonomousVmClusterResourceCrud) SetData() error {
s.D.Set("cpu_core_count_per_node", *s.Res.CpuCoreCountPerNode)
}
+ if s.Res.CpuPercentage != nil {
+ s.D.Set("cpu_percentage", *s.Res.CpuPercentage)
+ }
+
if s.Res.CpusEnabled != nil {
s.D.Set("cpus_enabled", *s.Res.CpusEnabled)
}
@@ -791,14 +827,30 @@ func (s *DatabaseAutonomousVmClusterResourceCrud) SetData() error {
s.D.Set("node_count", *s.Res.NodeCount)
}
+ if s.Res.NonProvisionableAutonomousContainerDatabases != nil {
+ s.D.Set("non_provisionable_autonomous_container_databases", *s.Res.NonProvisionableAutonomousContainerDatabases)
+ }
+
if s.Res.OcpusEnabled != nil {
s.D.Set("ocpus_enabled", *s.Res.OcpusEnabled)
}
+ if s.Res.ProvisionedAutonomousContainerDatabases != nil {
+ s.D.Set("provisioned_autonomous_container_databases", *s.Res.ProvisionedAutonomousContainerDatabases)
+ }
+
+ if s.Res.ProvisionedCpus != nil {
+ s.D.Set("provisioned_cpus", *s.Res.ProvisionedCpus)
+ }
+
if s.Res.ReclaimableCpus != nil {
s.D.Set("reclaimable_cpus", *s.Res.ReclaimableCpus)
}
+ if s.Res.ReservedCpus != nil {
+ s.D.Set("reserved_cpus", *s.Res.ReservedCpus)
+ }
+
if s.Res.ScanListenerPortNonTls != nil {
s.D.Set("scan_listener_port_non_tls", *s.Res.ScanListenerPortNonTls)
}
@@ -825,6 +877,10 @@ func (s *DatabaseAutonomousVmClusterResourceCrud) SetData() error {
s.D.Set("time_zone", *s.Res.TimeZone)
}
+ if s.Res.TotalAutonomousDataStorageInTBs != nil {
+ s.D.Set("total_autonomous_data_storage_in_tbs", *s.Res.TotalAutonomousDataStorageInTBs)
+ }
+
if s.Res.TotalContainerDatabases != nil {
s.D.Set("total_container_databases", *s.Res.TotalContainerDatabases)
}
diff --git a/internal/service/database/database_autonomous_vm_cluster_resource_usage_data_source.go b/internal/service/database/database_autonomous_vm_cluster_resource_usage_data_source.go
new file mode 100644
index 00000000000..267fb52c899
--- /dev/null
+++ b/internal/service/database/database_autonomous_vm_cluster_resource_usage_data_source.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 database
+
+import (
+ "context"
+ "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
+ oci_database "github.com/oracle/oci-go-sdk/v65/database"
+ "github.com/oracle/terraform-provider-oci/internal/client"
+
+ "github.com/oracle/terraform-provider-oci/internal/tfresource"
+)
+
+func DatabaseAutonomousVmClusterResourceUsageDataSource() *schema.Resource {
+ return &schema.Resource{
+ Read: readSingularDatabaseAutonomousVmClusterResourceUsage,
+ Schema: map[string]*schema.Schema{
+ "autonomous_vm_cluster_id": {
+ Type: schema.TypeString,
+ Required: true,
+ },
+ // Computed
+ "autonomous_data_storage_size_in_tbs": {
+ Type: schema.TypeFloat,
+ Computed: true,
+ },
+ "autonomous_vm_resource_usage": {
+ Type: schema.TypeList,
+ Computed: true,
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ // Required
+
+ // Optional
+
+ // Computed
+ "autonomous_container_database_usage": {
+ Type: schema.TypeList,
+ Computed: true,
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ // Required
+
+ // Optional
+
+ // Computed
+ "available_cpus": {
+ Type: schema.TypeFloat,
+ Computed: true,
+ },
+ "display_name": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "id": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "provisioned_cpus": {
+ Type: schema.TypeFloat,
+ Computed: true,
+ },
+ "reclaimable_cpus": {
+ Type: schema.TypeFloat,
+ Computed: true,
+ },
+ "reserved_cpus": {
+ Type: schema.TypeFloat,
+ Computed: true,
+ },
+ "used_cpus": {
+ Type: schema.TypeFloat,
+ Computed: true,
+ },
+ },
+ },
+ },
+ "available_cpus": {
+ Type: schema.TypeFloat,
+ Computed: true,
+ },
+ "display_name": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "id": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "provisioned_cpus": {
+ Type: schema.TypeFloat,
+ Computed: true,
+ },
+ "reclaimable_cpus": {
+ Type: schema.TypeFloat,
+ Computed: true,
+ },
+ "reserved_cpus": {
+ Type: schema.TypeFloat,
+ Computed: true,
+ },
+ "used_cpus": {
+ Type: schema.TypeFloat,
+ Computed: true,
+ },
+ },
+ },
+ },
+ "available_autonomous_data_storage_size_in_tbs": {
+ Type: schema.TypeFloat,
+ Computed: true,
+ },
+ "available_cpus": {
+ Type: schema.TypeFloat,
+ Computed: true,
+ },
+ "db_node_storage_size_in_gbs": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "display_name": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "exadata_storage_in_tbs": {
+ Type: schema.TypeFloat,
+ Computed: true,
+ },
+ "is_local_backup_enabled": {
+ Type: schema.TypeBool,
+ Computed: true,
+ },
+ "memory_per_oracle_compute_unit_in_gbs": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "memory_size_in_gbs": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "non_provisionable_autonomous_container_databases": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "provisionable_autonomous_container_databases": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "provisioned_autonomous_container_databases": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "provisioned_cpus": {
+ Type: schema.TypeFloat,
+ Computed: true,
+ },
+ "reclaimable_cpus": {
+ Type: schema.TypeFloat,
+ Computed: true,
+ },
+ "reserved_cpus": {
+ Type: schema.TypeFloat,
+ Computed: true,
+ },
+ "total_container_databases": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ "total_cpus": {
+ Type: schema.TypeFloat,
+ Computed: true,
+ },
+ "used_autonomous_data_storage_size_in_tbs": {
+ Type: schema.TypeFloat,
+ Computed: true,
+ },
+ "used_cpus": {
+ Type: schema.TypeFloat,
+ Computed: true,
+ },
+ },
+ }
+}
+
+func readSingularDatabaseAutonomousVmClusterResourceUsage(d *schema.ResourceData, m interface{}) error {
+ sync := &DatabaseAutonomousVmClusterResourceUsageDataSourceCrud{}
+ sync.D = d
+ sync.Client = m.(*client.OracleClients).DatabaseClient()
+
+ return tfresource.ReadResource(sync)
+}
+
+type DatabaseAutonomousVmClusterResourceUsageDataSourceCrud struct {
+ D *schema.ResourceData
+ Client *oci_database.DatabaseClient
+ Res *oci_database.GetAutonomousVmClusterResourceUsageResponse
+}
+
+func (s *DatabaseAutonomousVmClusterResourceUsageDataSourceCrud) VoidState() {
+ s.D.SetId("")
+}
+
+func (s *DatabaseAutonomousVmClusterResourceUsageDataSourceCrud) Get() error {
+ request := oci_database.GetAutonomousVmClusterResourceUsageRequest{}
+
+ if autonomousVmClusterId, ok := s.D.GetOkExists("autonomous_vm_cluster_id"); ok {
+ tmp := autonomousVmClusterId.(string)
+ request.AutonomousVmClusterId = &tmp
+ }
+
+ request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "database")
+
+ response, err := s.Client.GetAutonomousVmClusterResourceUsage(context.Background(), request)
+ if err != nil {
+ return err
+ }
+
+ s.Res = &response
+ return nil
+}
+
+func (s *DatabaseAutonomousVmClusterResourceUsageDataSourceCrud) SetData() error {
+ if s.Res == nil {
+ return nil
+ }
+
+ s.D.SetId(*s.Res.Id)
+
+ if s.Res.AutonomousDataStorageSizeInTBs != nil {
+ s.D.Set("autonomous_data_storage_size_in_tbs", *s.Res.AutonomousDataStorageSizeInTBs)
+ }
+
+ autonomousVmResourceUsage := []interface{}{}
+ for _, item := range s.Res.AutonomousVmResourceUsage {
+ autonomousVmResourceUsage = append(autonomousVmResourceUsage, AutonomousVmResourceUsageToMap(item))
+ }
+ s.D.Set("autonomous_vm_resource_usage", autonomousVmResourceUsage)
+
+ if s.Res.AvailableAutonomousDataStorageSizeInTBs != nil {
+ s.D.Set("available_autonomous_data_storage_size_in_tbs", *s.Res.AvailableAutonomousDataStorageSizeInTBs)
+ }
+
+ if s.Res.AvailableCpus != nil {
+ s.D.Set("available_cpus", *s.Res.AvailableCpus)
+ }
+
+ if s.Res.DbNodeStorageSizeInGBs != nil {
+ s.D.Set("db_node_storage_size_in_gbs", *s.Res.DbNodeStorageSizeInGBs)
+ }
+
+ if s.Res.DisplayName != nil {
+ s.D.Set("display_name", *s.Res.DisplayName)
+ }
+
+ if s.Res.ExadataStorageInTBs != nil {
+ s.D.Set("exadata_storage_in_tbs", *s.Res.ExadataStorageInTBs)
+ }
+
+ if s.Res.IsLocalBackupEnabled != nil {
+ s.D.Set("is_local_backup_enabled", *s.Res.IsLocalBackupEnabled)
+ }
+
+ if s.Res.MemoryPerOracleComputeUnitInGBs != nil {
+ s.D.Set("memory_per_oracle_compute_unit_in_gbs", *s.Res.MemoryPerOracleComputeUnitInGBs)
+ }
+
+ if s.Res.MemorySizeInGBs != nil {
+ s.D.Set("memory_size_in_gbs", *s.Res.MemorySizeInGBs)
+ }
+
+ if s.Res.NonProvisionableAutonomousContainerDatabases != nil {
+ s.D.Set("non_provisionable_autonomous_container_databases", *s.Res.NonProvisionableAutonomousContainerDatabases)
+ }
+
+ if s.Res.ProvisionableAutonomousContainerDatabases != nil {
+ s.D.Set("provisionable_autonomous_container_databases", *s.Res.ProvisionableAutonomousContainerDatabases)
+ }
+
+ if s.Res.ProvisionedAutonomousContainerDatabases != nil {
+ s.D.Set("provisioned_autonomous_container_databases", *s.Res.ProvisionedAutonomousContainerDatabases)
+ }
+
+ if s.Res.ProvisionedCpus != nil {
+ s.D.Set("provisioned_cpus", *s.Res.ProvisionedCpus)
+ }
+
+ if s.Res.ReclaimableCpus != nil {
+ s.D.Set("reclaimable_cpus", *s.Res.ReclaimableCpus)
+ }
+
+ if s.Res.ReservedCpus != nil {
+ s.D.Set("reserved_cpus", *s.Res.ReservedCpus)
+ }
+
+ if s.Res.TotalContainerDatabases != nil {
+ s.D.Set("total_container_databases", *s.Res.TotalContainerDatabases)
+ }
+
+ if s.Res.TotalCpus != nil {
+ s.D.Set("total_cpus", *s.Res.TotalCpus)
+ }
+
+ if s.Res.UsedAutonomousDataStorageSizeInTBs != nil {
+ s.D.Set("used_autonomous_data_storage_size_in_tbs", *s.Res.UsedAutonomousDataStorageSizeInTBs)
+ }
+
+ if s.Res.UsedCpus != nil {
+ s.D.Set("used_cpus", *s.Res.UsedCpus)
+ }
+
+ return nil
+}
diff --git a/internal/service/database/database_autonomous_vm_clusters_data_source.go b/internal/service/database/database_autonomous_vm_clusters_data_source.go
index d2e6addc35f..b11c1d775d7 100644
--- a/internal/service/database/database_autonomous_vm_clusters_data_source.go
+++ b/internal/service/database/database_autonomous_vm_clusters_data_source.go
@@ -119,6 +119,10 @@ func (s *DatabaseAutonomousVmClustersDataSourceCrud) SetData() error {
"compartment_id": *r.CompartmentId,
}
+ if r.AutonomousDataStoragePercentage != nil {
+ autonomousVmCluster["autonomous_data_storage_percentage"] = *r.AutonomousDataStoragePercentage
+ }
+
if r.AutonomousDataStorageSizeInTBs != nil {
autonomousVmCluster["autonomous_data_storage_size_in_tbs"] = *r.AutonomousDataStorageSizeInTBs
}
@@ -145,6 +149,10 @@ func (s *DatabaseAutonomousVmClustersDataSourceCrud) SetData() error {
autonomousVmCluster["cpu_core_count_per_node"] = *r.CpuCoreCountPerNode
}
+ if r.CpuPercentage != nil {
+ autonomousVmCluster["cpu_percentage"] = *r.CpuPercentage
+ }
+
if r.CpusEnabled != nil {
autonomousVmCluster["cpus_enabled"] = *r.CpusEnabled
}
@@ -221,14 +229,30 @@ func (s *DatabaseAutonomousVmClustersDataSourceCrud) SetData() error {
autonomousVmCluster["node_count"] = *r.NodeCount
}
+ if r.NonProvisionableAutonomousContainerDatabases != nil {
+ autonomousVmCluster["non_provisionable_autonomous_container_databases"] = *r.NonProvisionableAutonomousContainerDatabases
+ }
+
if r.OcpusEnabled != nil {
autonomousVmCluster["ocpus_enabled"] = *r.OcpusEnabled
}
+ if r.ProvisionedAutonomousContainerDatabases != nil {
+ autonomousVmCluster["provisioned_autonomous_container_databases"] = *r.ProvisionedAutonomousContainerDatabases
+ }
+
+ if r.ProvisionedCpus != nil {
+ autonomousVmCluster["provisioned_cpus"] = *r.ProvisionedCpus
+ }
+
if r.ReclaimableCpus != nil {
autonomousVmCluster["reclaimable_cpus"] = *r.ReclaimableCpus
}
+ if r.ReservedCpus != nil {
+ autonomousVmCluster["reserved_cpus"] = *r.ReservedCpus
+ }
+
if r.ScanListenerPortNonTls != nil {
autonomousVmCluster["scan_listener_port_non_tls"] = *r.ScanListenerPortNonTls
}
@@ -255,6 +279,10 @@ func (s *DatabaseAutonomousVmClustersDataSourceCrud) SetData() error {
autonomousVmCluster["time_zone"] = *r.TimeZone
}
+ if r.TotalAutonomousDataStorageInTBs != nil {
+ autonomousVmCluster["total_autonomous_data_storage_in_tbs"] = *r.TotalAutonomousDataStorageInTBs
+ }
+
if r.TotalContainerDatabases != nil {
autonomousVmCluster["total_container_databases"] = *r.TotalContainerDatabases
}
diff --git a/internal/service/database/database_database_resource.go b/internal/service/database/database_database_resource.go
index 60d332612e2..5c5759190a5 100644
--- a/internal/service/database/database_database_resource.go
+++ b/internal/service/database/database_database_resource.go
@@ -227,6 +227,15 @@ func DatabaseDatabaseResource() *schema.Resource {
Computed: true,
ForceNew: true,
},
+ "pluggable_databases": {
+ Type: schema.TypeList,
+ Optional: true,
+ Computed: true,
+ ForceNew: true,
+ Elem: &schema.Schema{
+ Type: schema.TypeString,
+ },
+ },
"sid_prefix": {
Type: schema.TypeString,
Optional: true,
@@ -1011,6 +1020,19 @@ func (s *DatabaseDatabaseResourceCrud) mapToCreateDatabaseFromBackupDetails(fiel
result.DbUniqueName = &tmp
}
+ if pluggableDatabases, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "pluggable_databases")); ok {
+ interfaces := pluggableDatabases.([]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, "pluggable_databases")) {
+ result.PluggableDatabases = tmp
+ }
+ }
+
if sidPrefix, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "sid_prefix")); ok {
tmp := sidPrefix.(string)
result.SidPrefix = &tmp
diff --git a/internal/service/database/database_db_home_resource.go b/internal/service/database/database_db_home_resource.go
index 4f51a5473c0..7e37ccbebb1 100644
--- a/internal/service/database/database_db_home_resource.go
+++ b/internal/service/database/database_db_home_resource.go
@@ -223,6 +223,15 @@ func DatabaseDbHomeResource() *schema.Resource {
Computed: true,
ForceNew: true,
},
+ "pluggable_databases": {
+ Type: schema.TypeList,
+ Optional: true,
+ Computed: true,
+ ForceNew: true,
+ Elem: &schema.Schema{
+ Type: schema.TypeString,
+ },
+ },
"tde_wallet_password": {
Type: schema.TypeString,
Optional: true,
@@ -1011,6 +1020,19 @@ func (s *DatabaseDbHomeResourceCrud) mapToCreateDatabaseFromAnotherDatabaseDetai
result.DbUniqueName = &tmp
}
+ if pluggableDatabases, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "pluggable_databases")); ok {
+ interfaces := pluggableDatabases.([]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, "pluggable_databases")) {
+ result.PluggableDatabases = tmp
+ }
+ }
+
if timeStampForPointInTimeRecovery, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "time_stamp_for_point_in_time_recovery")); ok {
tmp, err := time.Parse(time.RFC3339, timeStampForPointInTimeRecovery.(string))
if err != nil {
@@ -1045,6 +1067,28 @@ func (s *DatabaseDbHomeResourceCrud) mapToCreateDatabaseFromBackupDetails(fieldK
result.DbName = &tmp
}
+ if dbUniqueName, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "db_unique_name")); ok {
+ tmp := dbUniqueName.(string)
+ result.DbUniqueName = &tmp
+ }
+
+ if pluggableDatabases, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "pluggable_databases")); ok {
+ interfaces := pluggableDatabases.([]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, "pluggable_databases")) {
+ result.PluggableDatabases = tmp
+ }
+ }
+
+ if sidPrefix, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "sid_prefix")); ok {
+ tmp := sidPrefix.(string)
+ result.SidPrefix = &tmp
+ }
return result, nil
}
@@ -1559,10 +1603,6 @@ func (s *DatabaseDbHomeResourceCrud) DatabaseToMap(obj *oci_database.Database) m
result["time_stamp_for_point_in_time_recovery"] = timeStampForPointInTimeRecovery
}
- if obj.SidPrefix != nil {
- result["sid_prefix"] = string(*obj.SidPrefix)
- }
-
return result
}
diff --git a/internal/service/database/database_db_system_resource.go b/internal/service/database/database_db_system_resource.go
index c218fb3b111..f372c500749 100644
--- a/internal/service/database/database_db_system_resource.go
+++ b/internal/service/database/database_db_system_resource.go
@@ -243,6 +243,15 @@ func DatabaseDbSystemResource() *schema.Resource {
Computed: true,
ForceNew: true,
},
+ "pluggable_databases": {
+ Type: schema.TypeList,
+ Optional: true,
+ Computed: true,
+ ForceNew: true,
+ Elem: &schema.Schema{
+ Type: schema.TypeString,
+ },
+ },
"tde_wallet_password": {
Type: schema.TypeString,
Optional: true,
@@ -1662,6 +1671,19 @@ func (s *DatabaseDbSystemResourceCrud) mapToCreateDatabaseFromAnotherDatabaseDet
result.DbUniqueName = &tmp
}
+ if pluggableDatabases, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "pluggable_databases")); ok {
+ interfaces := pluggableDatabases.([]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, "pluggable_databases")) {
+ result.PluggableDatabases = tmp
+ }
+ }
+
if timeStampForPointInTimeRecovery, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "time_stamp_for_point_in_time_recovery")); ok {
tmp, err := time.Parse(time.RFC3339, timeStampForPointInTimeRecovery.(string))
if err != nil {
@@ -1696,6 +1718,8 @@ func CreateDatabaseFromAnotherDatabaseDetailsToMap(obj *oci_database.CreateDatab
result["db_unique_name"] = string(*obj.DbUniqueName)
}
+ result["pluggable_databases"] = obj.PluggableDatabases
+
if obj.TimeStampForPointInTimeRecovery != nil {
result["time_stamp_for_point_in_time_recovery"] = obj.TimeStampForPointInTimeRecovery.Format(time.RFC3339Nano)
}
@@ -1726,6 +1750,29 @@ func (s *DatabaseDbSystemResourceCrud) mapToCreateDatabaseFromBackupDetails(fiel
result.DbName = &tmp
}
+ if dbUniqueName, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "db_unique_name")); ok {
+ tmp := dbUniqueName.(string)
+ result.DbUniqueName = &tmp
+ }
+
+ if pluggableDatabases, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "pluggable_databases")); ok {
+ interfaces := pluggableDatabases.([]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, "pluggable_databases")) {
+ result.PluggableDatabases = tmp
+ }
+ }
+
+ if sidPrefix, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "sid_prefix")); ok {
+ tmp := sidPrefix.(string)
+ result.SidPrefix = &tmp
+ }
+
return result, nil
}
@@ -1748,6 +1795,12 @@ func CreateDatabaseFromBackupDetailsToMap(obj *oci_database.CreateDatabaseFromBa
result["db_name"] = string(*obj.DbName)
}
+ if obj.DbUniqueName != nil {
+ result["db_unique_name"] = string(*obj.DbUniqueName)
+ }
+
+ result["pluggable_databases"] = obj.PluggableDatabases
+
return result
}
diff --git a/internal/service/database/database_pluggable_database_data_source.go b/internal/service/database/database_pluggable_database_data_source.go
index 56cb0e28ab1..5e8647c81d6 100644
--- a/internal/service/database/database_pluggable_database_data_source.go
+++ b/internal/service/database/database_pluggable_database_data_source.go
@@ -100,12 +100,24 @@ func (s *DatabasePluggableDatabaseDataSourceCrud) SetData() error {
s.D.Set("pdb_name", *s.Res.PdbName)
}
+ pdbNodeLevelDetails := []interface{}{}
+ for _, item := range s.Res.PdbNodeLevelDetails {
+ pdbNodeLevelDetails = append(pdbNodeLevelDetails, PluggableDatabaseNodeLevelDetailsToMap(item))
+ }
+ s.D.Set("pdb_node_level_details", pdbNodeLevelDetails)
+
if s.Res.PluggableDatabaseManagementConfig != nil {
s.D.Set("pluggable_database_management_config", []interface{}{PluggableDatabaseManagementConfigToMap(s.Res.PluggableDatabaseManagementConfig)})
} else {
s.D.Set("pluggable_database_management_config", nil)
}
+ if s.Res.RefreshableCloneConfig != nil {
+ s.D.Set("refreshable_clone_config", []interface{}{PluggableDatabaseRefreshableCloneConfigToMap(s.Res.RefreshableCloneConfig)})
+ } else {
+ s.D.Set("refreshable_clone_config", nil)
+ }
+
s.D.Set("state", s.Res.LifecycleState)
if s.Res.TimeCreated != nil {
diff --git a/internal/service/database/database_pluggable_database_resource.go b/internal/service/database/database_pluggable_database_resource.go
index 3a3ccf1431d..43caa089aed 100644
--- a/internal/service/database/database_pluggable_database_resource.go
+++ b/internal/service/database/database_pluggable_database_resource.go
@@ -6,14 +6,17 @@ package database
import (
"context"
"fmt"
+ "log"
+ "strings"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
+ "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation"
+
+ oci_database "github.com/oracle/oci-go-sdk/v65/database"
"github.com/oracle/terraform-provider-oci/internal/client"
"github.com/oracle/terraform-provider-oci/internal/tfresource"
oci_work_requests "github.com/oracle/oci-go-sdk/v65/workrequests"
-
- oci_database "github.com/oracle/oci-go-sdk/v65/database"
)
func DatabasePluggableDatabaseResource() *schema.Resource {
@@ -40,6 +43,13 @@ func DatabasePluggableDatabaseResource() *schema.Resource {
},
// Optional
+ "container_database_admin_password": {
+ Type: schema.TypeString,
+ Optional: true,
+ Computed: true,
+ ForceNew: true,
+ Sensitive: true,
+ },
"defined_tags": {
Type: schema.TypeMap,
Optional: true,
@@ -60,6 +70,88 @@ func DatabasePluggableDatabaseResource() *schema.Resource {
ForceNew: true,
Sensitive: true,
},
+ "pdb_creation_type_details": {
+ Type: schema.TypeList,
+ Optional: true,
+ Computed: true,
+ ForceNew: true,
+ MaxItems: 1,
+ MinItems: 1,
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ // Required
+ "creation_type": {
+ Type: schema.TypeString,
+ Required: true,
+ ForceNew: true,
+ DiffSuppressFunc: tfresource.EqualIgnoreCaseSuppressDiff,
+ ValidateFunc: validation.StringInSlice([]string{
+ "LOCAL_CLONE_PDB",
+ "RELOCATE_PDB",
+ "REMOTE_CLONE_PDB",
+ }, true),
+ },
+ "source_pluggable_database_id": {
+ Type: schema.TypeString,
+ Required: true,
+ ForceNew: true,
+ },
+
+ // Optional
+ "dblink_user_password": {
+ Type: schema.TypeString,
+ Optional: true,
+ Computed: true,
+ ForceNew: true,
+ Sensitive: true,
+ },
+ "dblink_username": {
+ Type: schema.TypeString,
+ Optional: true,
+ Computed: true,
+ ForceNew: true,
+ },
+ "refreshable_clone_details": {
+ Type: schema.TypeList,
+ Optional: true,
+ Computed: true,
+ ForceNew: true,
+ MaxItems: 1,
+ MinItems: 1,
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ // Required
+
+ // Optional
+ "is_refreshable_clone": {
+ Type: schema.TypeBool,
+ Optional: true,
+ Computed: true,
+ ForceNew: true,
+ },
+
+ // Computed
+ },
+ },
+ },
+ "source_container_database_admin_password": {
+ Type: schema.TypeString,
+ Optional: true,
+ Computed: true,
+ ForceNew: true,
+ Sensitive: true,
+ },
+
+ // Computed
+ },
+ },
+ },
+ "should_create_pdb_backup": {
+ Type: schema.TypeBool,
+ Optional: true,
+ Computed: true,
+ ForceNew: true,
+ },
"should_pdb_admin_account_be_locked": {
Type: schema.TypeBool,
Optional: true,
@@ -73,6 +165,14 @@ func DatabasePluggableDatabaseResource() *schema.Resource {
ForceNew: true,
Sensitive: true,
},
+ "convert_to_regular_trigger": {
+ Type: schema.TypeInt,
+ Optional: true,
+ },
+ "refresh_trigger": {
+ Type: schema.TypeInt,
+ Optional: true,
+ },
"rotate_key_trigger": {
Type: schema.TypeInt,
Optional: true,
@@ -121,6 +221,27 @@ func DatabasePluggableDatabaseResource() *schema.Resource {
Type: schema.TypeString,
Computed: true,
},
+ "pdb_node_level_details": {
+ Type: schema.TypeList,
+ Computed: true,
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ // Required
+
+ // Optional
+
+ // Computed
+ "node_name": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "open_mode": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ },
+ },
+ },
"pluggable_database_management_config": {
Type: schema.TypeList,
Computed: true,
@@ -138,6 +259,23 @@ func DatabasePluggableDatabaseResource() *schema.Resource {
},
},
},
+ "refreshable_clone_config": {
+ Type: schema.TypeList,
+ Computed: true,
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ // Required
+
+ // Optional
+
+ // Computed
+ "is_refreshable_clone": {
+ Type: schema.TypeBool,
+ Computed: true,
+ },
+ },
+ },
+ },
"state": {
Type: schema.TypeString,
Computed: true,
@@ -160,6 +298,20 @@ func createDatabasePluggableDatabase(d *schema.ResourceData, m interface{}) erro
return e
}
+ if _, ok := sync.D.GetOkExists("convert_to_regular_trigger"); ok {
+ err := sync.ConvertToRegularPluggableDatabase()
+ if err != nil {
+ return err
+ }
+ }
+
+ if _, ok := sync.D.GetOkExists("refresh_trigger"); ok {
+ err := sync.RefreshPluggableDatabase()
+ if err != nil {
+ return err
+ }
+ }
+
if _, ok := sync.D.GetOkExists("rotate_key_trigger"); ok {
err := sync.RotatePluggableDatabaseEncryptionKey()
if err != nil {
@@ -183,6 +335,38 @@ func updateDatabasePluggableDatabase(d *schema.ResourceData, m interface{}) erro
sync.D = d
sync.Client = m.(*client.OracleClients).DatabaseClient()
+ if _, ok := sync.D.GetOkExists("convert_to_regular_trigger"); ok && sync.D.HasChange("convert_to_regular_trigger") {
+ oldRaw, newRaw := sync.D.GetChange("convert_to_regular_trigger")
+ oldValue := oldRaw.(int)
+ newValue := newRaw.(int)
+ if oldValue < newValue {
+ err := sync.ConvertToRegularPluggableDatabase()
+
+ if err != nil {
+ return err
+ }
+ } else {
+ sync.D.Set("convert_to_regular_trigger", oldRaw)
+ return fmt.Errorf("new value of trigger should be greater than the old value")
+ }
+ }
+
+ if _, ok := sync.D.GetOkExists("refresh_trigger"); ok && sync.D.HasChange("refresh_trigger") {
+ oldRaw, newRaw := sync.D.GetChange("refresh_trigger")
+ oldValue := oldRaw.(int)
+ newValue := newRaw.(int)
+ if oldValue < newValue {
+ err := sync.RefreshPluggableDatabase()
+
+ if err != nil {
+ return err
+ }
+ } else {
+ sync.D.Set("refresh_trigger", oldRaw)
+ return fmt.Errorf("new value of trigger should be greater than the old value")
+ }
+ }
+
if _, ok := sync.D.GetOkExists("rotate_key_trigger"); ok && sync.D.HasChange("rotate_key_trigger") {
oldRaw, newRaw := sync.D.GetChange("rotate_key_trigger")
oldValue := oldRaw.(int)
@@ -242,6 +426,7 @@ func (s *DatabasePluggableDatabaseResourceCrud) CreatedTarget() []string {
func (s *DatabasePluggableDatabaseResourceCrud) DeletedPending() []string {
return []string{
string(oci_database.PluggableDatabaseLifecycleStateTerminating),
+ string(oci_database.PluggableDatabaseLifecycleStateDisabled),
}
}
@@ -254,6 +439,11 @@ func (s *DatabasePluggableDatabaseResourceCrud) DeletedTarget() []string {
func (s *DatabasePluggableDatabaseResourceCrud) Create() error {
request := oci_database.CreatePluggableDatabaseRequest{}
+ if containerDatabaseAdminPassword, ok := s.D.GetOkExists("container_database_admin_password"); ok {
+ tmp := containerDatabaseAdminPassword.(string)
+ request.ContainerDatabaseAdminPassword = &tmp
+ }
+
if containerDatabaseId, ok := s.D.GetOkExists("container_database_id"); ok {
tmp := containerDatabaseId.(string)
request.ContainerDatabaseId = &tmp
@@ -276,11 +466,27 @@ func (s *DatabasePluggableDatabaseResourceCrud) Create() error {
request.PdbAdminPassword = &tmp
}
+ if pdbCreationTypeDetails, ok := s.D.GetOkExists("pdb_creation_type_details"); ok {
+ if tmpList := pdbCreationTypeDetails.([]interface{}); len(tmpList) > 0 {
+ fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "pdb_creation_type_details", 0)
+ tmp, err := s.mapToCreatePluggableDatabaseCreationTypeDetails(fieldKeyFormat)
+ if err != nil {
+ return err
+ }
+ request.PdbCreationTypeDetails = tmp
+ }
+ }
+
if pdbName, ok := s.D.GetOkExists("pdb_name"); ok {
tmp := pdbName.(string)
request.PdbName = &tmp
}
+ if shouldCreatePdbBackup, ok := s.D.GetOkExists("should_create_pdb_backup"); ok {
+ tmp := shouldCreatePdbBackup.(bool)
+ request.ShouldCreatePdbBackup = &tmp
+ }
+
if shouldPdbAdminAccountBeLocked, ok := s.D.GetOkExists("should_pdb_admin_account_be_locked"); ok {
tmp := shouldPdbAdminAccountBeLocked.(bool)
request.ShouldPdbAdminAccountBeLocked = &tmp
@@ -412,12 +618,24 @@ func (s *DatabasePluggableDatabaseResourceCrud) SetData() error {
s.D.Set("pdb_name", *s.Res.PdbName)
}
+ pdbNodeLevelDetails := []interface{}{}
+ for _, item := range s.Res.PdbNodeLevelDetails {
+ pdbNodeLevelDetails = append(pdbNodeLevelDetails, PluggableDatabaseNodeLevelDetailsToMap(item))
+ }
+ s.D.Set("pdb_node_level_details", pdbNodeLevelDetails)
+
if s.Res.PluggableDatabaseManagementConfig != nil {
s.D.Set("pluggable_database_management_config", []interface{}{PluggableDatabaseManagementConfigToMap(s.Res.PluggableDatabaseManagementConfig)})
} else {
s.D.Set("pluggable_database_management_config", nil)
}
+ if s.Res.RefreshableCloneConfig != nil {
+ s.D.Set("refreshable_clone_config", []interface{}{PluggableDatabaseRefreshableCloneConfigToMap(s.Res.RefreshableCloneConfig)})
+ } else {
+ s.D.Set("refreshable_clone_config", nil)
+ }
+
s.D.Set("state", s.Res.LifecycleState)
if s.Res.TimeCreated != nil {
@@ -427,6 +645,69 @@ func (s *DatabasePluggableDatabaseResourceCrud) SetData() error {
return nil
}
+func (s *DatabasePluggableDatabaseResourceCrud) ConvertToRegularPluggableDatabase() error {
+ request := oci_database.ConvertToRegularPluggableDatabaseRequest{}
+
+ if containerDatabaseAdminPassword, ok := s.D.GetOkExists("container_database_admin_password"); ok {
+ tmp := containerDatabaseAdminPassword.(string)
+ request.ContainerDatabaseAdminPassword = &tmp
+ }
+
+ idTmp := s.D.Id()
+ request.PluggableDatabaseId = &idTmp
+
+ if shouldCreatePdbBackup, ok := s.D.GetOkExists("should_create_pdb_backup"); ok {
+ tmp := shouldCreatePdbBackup.(bool)
+ request.ShouldCreatePdbBackup = &tmp
+ }
+
+ if tdeWalletPassword, ok := s.D.GetOkExists("tde_wallet_password"); ok {
+ tmp := tdeWalletPassword.(string)
+ request.TdeWalletPassword = &tmp
+ }
+
+ request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "database")
+
+ response, err := s.Client.ConvertToRegularPluggableDatabase(context.Background(), request)
+ if err != nil {
+ return err
+ }
+
+ if waitErr := tfresource.WaitForUpdatedState(s.D, s); waitErr != nil {
+ return waitErr
+ }
+
+ val := s.D.Get("convert_to_regular_trigger")
+ s.D.Set("convert_to_regular_trigger", val)
+
+ s.Res = &response.PluggableDatabase
+ return nil
+}
+
+func (s *DatabasePluggableDatabaseResourceCrud) RefreshPluggableDatabase() error {
+ request := oci_database.RefreshPluggableDatabaseRequest{}
+
+ idTmp := s.D.Id()
+ request.PluggableDatabaseId = &idTmp
+
+ request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "database")
+
+ response, err := s.Client.RefreshPluggableDatabase(context.Background(), request)
+ if err != nil {
+ return err
+ }
+
+ if waitErr := tfresource.WaitForUpdatedState(s.D, s); waitErr != nil {
+ return waitErr
+ }
+
+ val := s.D.Get("refresh_trigger")
+ s.D.Set("refresh_trigger", val)
+
+ s.Res = &response.PluggableDatabase
+ return nil
+}
+
func (s *DatabasePluggableDatabaseResourceCrud) RotatePluggableDatabaseEncryptionKey() error {
request := oci_database.RotatePluggableDatabaseEncryptionKeyRequest{}
@@ -447,6 +728,156 @@ func (s *DatabasePluggableDatabaseResourceCrud) RotatePluggableDatabaseEncryptio
return nil
}
+func (s *DatabasePluggableDatabaseResourceCrud) mapToCreatePluggableDatabaseCreationTypeDetails(fieldKeyFormat string) (oci_database.CreatePluggableDatabaseCreationTypeDetails, error) {
+ var baseObject oci_database.CreatePluggableDatabaseCreationTypeDetails
+ //discriminator
+ creationTypeRaw, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "creation_type"))
+ var creationType string
+ if ok {
+ creationType = creationTypeRaw.(string)
+ } else {
+ creationType = "" // default value
+ }
+ switch strings.ToLower(creationType) {
+ case strings.ToLower("LOCAL_CLONE_PDB"):
+ details := oci_database.CreatePluggableDatabaseFromLocalCloneDetails{}
+ if sourcePluggableDatabaseId, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "source_pluggable_database_id")); ok {
+ tmp := sourcePluggableDatabaseId.(string)
+ details.SourcePluggableDatabaseId = &tmp
+ }
+ baseObject = details
+ case strings.ToLower("RELOCATE_PDB"):
+ details := oci_database.CreatePluggableDatabaseFromRelocateDetails{}
+ if dblinkUserPassword, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "dblink_user_password")); ok {
+ tmp := dblinkUserPassword.(string)
+ details.DblinkUserPassword = &tmp
+ }
+ if dblinkUsername, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "dblink_username")); ok {
+ tmp := dblinkUsername.(string)
+ details.DblinkUsername = &tmp
+ }
+ if sourceContainerDatabaseAdminPassword, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "source_container_database_admin_password")); ok {
+ tmp := sourceContainerDatabaseAdminPassword.(string)
+ details.SourceContainerDatabaseAdminPassword = &tmp
+ }
+ if sourcePluggableDatabaseId, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "source_pluggable_database_id")); ok {
+ tmp := sourcePluggableDatabaseId.(string)
+ details.SourcePluggableDatabaseId = &tmp
+ }
+ baseObject = details
+ case strings.ToLower("REMOTE_CLONE_PDB"):
+ details := oci_database.CreatePluggableDatabaseFromRemoteCloneDetails{}
+ if dblinkUserPassword, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "dblink_user_password")); ok {
+ tmp := dblinkUserPassword.(string)
+ details.DblinkUserPassword = &tmp
+ }
+ if dblinkUsername, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "dblink_username")); ok {
+ tmp := dblinkUsername.(string)
+ details.DblinkUsername = &tmp
+ }
+ if refreshableCloneDetails, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "refreshable_clone_details")); ok {
+ if tmpList := refreshableCloneDetails.([]interface{}); len(tmpList) > 0 {
+ fieldKeyFormatNextLevel := fmt.Sprintf("%s.%d.%%s", fmt.Sprintf(fieldKeyFormat, "refreshable_clone_details"), 0)
+ tmp, err := s.mapToCreatePluggableDatabaseRefreshableCloneDetails(fieldKeyFormatNextLevel)
+ if err != nil {
+ return details, fmt.Errorf("unable to convert refreshable_clone_details, encountered error: %v", err)
+ }
+ details.RefreshableCloneDetails = &tmp
+ }
+ }
+ if sourceContainerDatabaseAdminPassword, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "source_container_database_admin_password")); ok {
+ tmp := sourceContainerDatabaseAdminPassword.(string)
+ details.SourceContainerDatabaseAdminPassword = &tmp
+ }
+ if sourcePluggableDatabaseId, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "source_pluggable_database_id")); ok {
+ tmp := sourcePluggableDatabaseId.(string)
+ details.SourcePluggableDatabaseId = &tmp
+ }
+ baseObject = details
+ default:
+ return nil, fmt.Errorf("unknown creation_type '%v' was specified", creationType)
+ }
+ return baseObject, nil
+}
+
+func CreatePluggableDatabaseCreationTypeDetailsToMap(obj *oci_database.CreatePluggableDatabaseCreationTypeDetails) map[string]interface{} {
+ result := map[string]interface{}{}
+ switch v := (*obj).(type) {
+ case oci_database.CreatePluggableDatabaseFromLocalCloneDetails:
+ result["creation_type"] = "LOCAL_CLONE_PDB"
+
+ if v.SourcePluggableDatabaseId != nil {
+ result["source_pluggable_database_id"] = string(*v.SourcePluggableDatabaseId)
+ }
+ case oci_database.CreatePluggableDatabaseFromRelocateDetails:
+ result["creation_type"] = "RELOCATE_PDB"
+
+ if v.DblinkUserPassword != nil {
+ result["dblink_user_password"] = string(*v.DblinkUserPassword)
+ }
+
+ if v.DblinkUsername != nil {
+ result["dblink_username"] = string(*v.DblinkUsername)
+ }
+
+ if v.SourceContainerDatabaseAdminPassword != nil {
+ result["source_container_database_admin_password"] = string(*v.SourceContainerDatabaseAdminPassword)
+ }
+
+ if v.SourcePluggableDatabaseId != nil {
+ result["source_pluggable_database_id"] = string(*v.SourcePluggableDatabaseId)
+ }
+ case oci_database.CreatePluggableDatabaseFromRemoteCloneDetails:
+ result["creation_type"] = "REMOTE_CLONE_PDB"
+
+ if v.DblinkUserPassword != nil {
+ result["dblink_user_password"] = string(*v.DblinkUserPassword)
+ }
+
+ if v.DblinkUsername != nil {
+ result["dblink_username"] = string(*v.DblinkUsername)
+ }
+
+ if v.RefreshableCloneDetails != nil {
+ result["refreshable_clone_details"] = []interface{}{CreatePluggableDatabaseRefreshableCloneDetailsToMap(v.RefreshableCloneDetails)}
+ }
+
+ if v.SourceContainerDatabaseAdminPassword != nil {
+ result["source_container_database_admin_password"] = string(*v.SourceContainerDatabaseAdminPassword)
+ }
+
+ if v.SourcePluggableDatabaseId != nil {
+ result["source_pluggable_database_id"] = string(*v.SourcePluggableDatabaseId)
+ }
+ default:
+ log.Printf("[WARN] Received 'creation_type' of unknown type %v", *obj)
+ return nil
+ }
+
+ return result
+}
+
+func (s *DatabasePluggableDatabaseResourceCrud) mapToCreatePluggableDatabaseRefreshableCloneDetails(fieldKeyFormat string) (oci_database.CreatePluggableDatabaseRefreshableCloneDetails, error) {
+ result := oci_database.CreatePluggableDatabaseRefreshableCloneDetails{}
+
+ if isRefreshableClone, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "is_refreshable_clone")); ok {
+ tmp := isRefreshableClone.(bool)
+ result.IsRefreshableClone = &tmp
+ }
+
+ return result, nil
+}
+
+func CreatePluggableDatabaseRefreshableCloneDetailsToMap(obj *oci_database.CreatePluggableDatabaseRefreshableCloneDetails) map[string]interface{} {
+ result := map[string]interface{}{}
+
+ if obj.IsRefreshableClone != nil {
+ result["is_refreshable_clone"] = bool(*obj.IsRefreshableClone)
+ }
+
+ return result
+}
+
func PluggableDatabaseConnectionStringsToMap(obj *oci_database.PluggableDatabaseConnectionStrings) map[string]interface{} {
result := map[string]interface{}{}
@@ -470,3 +901,25 @@ func PluggableDatabaseManagementConfigToMap(obj *oci_database.PluggableDatabaseM
return result
}
+
+func PluggableDatabaseNodeLevelDetailsToMap(obj oci_database.PluggableDatabaseNodeLevelDetails) map[string]interface{} {
+ result := map[string]interface{}{}
+
+ if obj.NodeName != nil {
+ result["node_name"] = string(*obj.NodeName)
+ }
+
+ result["open_mode"] = string(obj.OpenMode)
+
+ return result
+}
+
+func PluggableDatabaseRefreshableCloneConfigToMap(obj *oci_database.PluggableDatabaseRefreshableCloneConfig) map[string]interface{} {
+ result := map[string]interface{}{}
+
+ if obj.IsRefreshableClone != nil {
+ result["is_refreshable_clone"] = bool(*obj.IsRefreshableClone)
+ }
+
+ return result
+}
diff --git a/internal/service/database/database_pluggable_databases_data_source.go b/internal/service/database/database_pluggable_databases_data_source.go
index f38f4ecc328..4d2404afa17 100644
--- a/internal/service/database/database_pluggable_databases_data_source.go
+++ b/internal/service/database/database_pluggable_databases_data_source.go
@@ -155,12 +155,24 @@ func (s *DatabasePluggableDatabasesDataSourceCrud) SetData() error {
pluggableDatabase["pdb_name"] = *r.PdbName
}
+ pdbNodeLevelDetails := []interface{}{}
+ for _, item := range r.PdbNodeLevelDetails {
+ pdbNodeLevelDetails = append(pdbNodeLevelDetails, PluggableDatabaseNodeLevelDetailsToMap(item))
+ }
+ pluggableDatabase["pdb_node_level_details"] = pdbNodeLevelDetails
+
if r.PluggableDatabaseManagementConfig != nil {
pluggableDatabase["pluggable_database_management_config"] = []interface{}{PluggableDatabaseManagementConfigToMap(r.PluggableDatabaseManagementConfig)}
} else {
pluggableDatabase["pluggable_database_management_config"] = nil
}
+ if r.RefreshableCloneConfig != nil {
+ pluggableDatabase["refreshable_clone_config"] = []interface{}{PluggableDatabaseRefreshableCloneConfigToMap(r.RefreshableCloneConfig)}
+ } else {
+ pluggableDatabase["refreshable_clone_config"] = nil
+ }
+
pluggableDatabase["state"] = r.LifecycleState
if r.TimeCreated != nil {
diff --git a/internal/service/database/database_pluggable_databases_local_clone_resource.go b/internal/service/database/database_pluggable_databases_local_clone_resource.go
index 38a70c5c440..640b912ad97 100644
--- a/internal/service/database/database_pluggable_databases_local_clone_resource.go
+++ b/internal/service/database/database_pluggable_databases_local_clone_resource.go
@@ -116,6 +116,27 @@ func DatabasePluggableDatabasesLocalCloneResource() *schema.Resource {
Type: schema.TypeString,
Computed: true,
},
+ "pdb_node_level_details": {
+ Type: schema.TypeList,
+ Computed: true,
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ // Required
+
+ // Optional
+
+ // Computed
+ "node_name": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "open_mode": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ },
+ },
+ },
"pluggable_database_management_config": {
Type: schema.TypeList,
Computed: true,
@@ -133,6 +154,23 @@ func DatabasePluggableDatabasesLocalCloneResource() *schema.Resource {
},
},
},
+ "refreshable_clone_config": {
+ Type: schema.TypeList,
+ Computed: true,
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ // Required
+
+ // Optional
+
+ // Computed
+ "is_refreshable_clone": {
+ Type: schema.TypeBool,
+ Computed: true,
+ },
+ },
+ },
+ },
"state": {
Type: schema.TypeString,
Computed: true,
@@ -187,6 +225,7 @@ func (s *DatabasePluggableDatabasesLocalCloneResourceCrud) CreatedTarget() []str
func (s *DatabasePluggableDatabasesLocalCloneResourceCrud) DeletedPending() []string {
return []string{
string(oci_database.PluggableDatabaseLifecycleStateTerminating),
+ string(oci_database.PluggableDatabaseLifecycleStateDisabled),
}
}
@@ -270,12 +309,24 @@ func (s *DatabasePluggableDatabasesLocalCloneResourceCrud) SetData() error {
s.D.Set("pdb_name", *s.Res.PdbName)
}
+ pdbNodeLevelDetails := []interface{}{}
+ for _, item := range s.Res.PdbNodeLevelDetails {
+ pdbNodeLevelDetails = append(pdbNodeLevelDetails, PluggableDatabaseNodeLevelDetailsToMap(item))
+ }
+ s.D.Set("pdb_node_level_details", pdbNodeLevelDetails)
+
if s.Res.PluggableDatabaseManagementConfig != nil {
s.D.Set("pluggable_database_management_config", []interface{}{PluggableDatabaseManagementConfigToMap(s.Res.PluggableDatabaseManagementConfig)})
} else {
s.D.Set("pluggable_database_management_config", nil)
}
+ if s.Res.RefreshableCloneConfig != nil {
+ s.D.Set("refreshable_clone_config", []interface{}{PluggableDatabaseRefreshableCloneConfigToMap(s.Res.RefreshableCloneConfig)})
+ } else {
+ s.D.Set("refreshable_clone_config", nil)
+ }
+
s.D.Set("state", s.Res.LifecycleState)
if s.Res.TimeCreated != nil {
diff --git a/internal/service/database/database_pluggable_databases_remote_clone_resource.go b/internal/service/database/database_pluggable_databases_remote_clone_resource.go
index 5c97b0692bf..6e4019f7b60 100644
--- a/internal/service/database/database_pluggable_databases_remote_clone_resource.go
+++ b/internal/service/database/database_pluggable_databases_remote_clone_resource.go
@@ -127,6 +127,27 @@ func DatabasePluggableDatabasesRemoteCloneResource() *schema.Resource {
Type: schema.TypeString,
Computed: true,
},
+ "pdb_node_level_details": {
+ Type: schema.TypeList,
+ Computed: true,
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ // Required
+
+ // Optional
+
+ // Computed
+ "node_name": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "open_mode": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ },
+ },
+ },
"pluggable_database_management_config": {
Type: schema.TypeList,
Computed: true,
@@ -144,6 +165,23 @@ func DatabasePluggableDatabasesRemoteCloneResource() *schema.Resource {
},
},
},
+ "refreshable_clone_config": {
+ Type: schema.TypeList,
+ Computed: true,
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ // Required
+
+ // Optional
+
+ // Computed
+ "is_refreshable_clone": {
+ Type: schema.TypeBool,
+ Computed: true,
+ },
+ },
+ },
+ },
"state": {
Type: schema.TypeString,
Computed: true,
@@ -198,6 +236,7 @@ func (s *DatabasePluggableDatabasesRemoteCloneResourceCrud) CreatedTarget() []st
func (s *DatabasePluggableDatabasesRemoteCloneResourceCrud) DeletedPending() []string {
return []string{
string(oci_database.PluggableDatabaseLifecycleStateTerminating),
+ string(oci_database.PluggableDatabaseLifecycleStateDisabled),
}
}
@@ -291,12 +330,24 @@ func (s *DatabasePluggableDatabasesRemoteCloneResourceCrud) SetData() error {
s.D.Set("pdb_name", *s.Res.PdbName)
}
+ pdbNodeLevelDetails := []interface{}{}
+ for _, item := range s.Res.PdbNodeLevelDetails {
+ pdbNodeLevelDetails = append(pdbNodeLevelDetails, PluggableDatabaseNodeLevelDetailsToMap(item))
+ }
+ s.D.Set("pdb_node_level_details", pdbNodeLevelDetails)
+
if s.Res.PluggableDatabaseManagementConfig != nil {
s.D.Set("pluggable_database_management_config", []interface{}{PluggableDatabaseManagementConfigToMap(s.Res.PluggableDatabaseManagementConfig)})
} else {
s.D.Set("pluggable_database_management_config", nil)
}
+ if s.Res.RefreshableCloneConfig != nil {
+ s.D.Set("refreshable_clone_config", []interface{}{PluggableDatabaseRefreshableCloneConfigToMap(s.Res.RefreshableCloneConfig)})
+ } else {
+ s.D.Set("refreshable_clone_config", nil)
+ }
+
s.D.Set("state", s.Res.LifecycleState)
if s.Res.TimeCreated != nil {
diff --git a/internal/service/database/register_datasource.go b/internal/service/database/register_datasource.go
index 59b75767a6a..3c8f423cd49 100644
--- a/internal/service/database/register_datasource.go
+++ b/internal/service/database/register_datasource.go
@@ -36,6 +36,8 @@ func RegisterDatasource() {
tfresource.RegisterDatasource("oci_database_autonomous_virtual_machine", DatabaseAutonomousVirtualMachineDataSource())
tfresource.RegisterDatasource("oci_database_autonomous_virtual_machines", DatabaseAutonomousVirtualMachinesDataSource())
tfresource.RegisterDatasource("oci_database_autonomous_vm_cluster", DatabaseAutonomousVmClusterDataSource())
+ tfresource.RegisterDatasource("oci_database_autonomous_vm_cluster_acd_resource_usages", DatabaseAutonomousVmClusterAcdResourceUsagesDataSource())
+ tfresource.RegisterDatasource("oci_database_autonomous_vm_cluster_resource_usage", DatabaseAutonomousVmClusterResourceUsageDataSource())
tfresource.RegisterDatasource("oci_database_autonomous_vm_clusters", DatabaseAutonomousVmClustersDataSource())
tfresource.RegisterDatasource("oci_database_backup_destination", DatabaseBackupDestinationDataSource())
tfresource.RegisterDatasource("oci_database_backup_destinations", DatabaseBackupDestinationsDataSource())
diff --git a/internal/service/dataintegration/dataintegration_export.go b/internal/service/dataintegration/dataintegration_export.go
index 0b9c7da9ee2..366e05d9907 100644
--- a/internal/service/dataintegration/dataintegration_export.go
+++ b/internal/service/dataintegration/dataintegration_export.go
@@ -12,6 +12,8 @@ func init() {
exportDataintegrationWorkspaceProjectHints.GetIdFn = getDataintegrationWorkspaceProjectId
exportDataintegrationWorkspaceFolderHints.GetIdFn = getDataintegrationWorkspaceFolderId
exportDataintegrationWorkspaceApplicationHints.GetIdFn = getDataintegrationWorkspaceApplicationId
+ exportDataintegrationWorkspaceImportRequestHints.GetIdFn = getDataintegrationWorkspaceImportRequestId
+ exportDataintegrationWorkspaceExportRequestHints.GetIdFn = getDataintegrationWorkspaceExportRequestId
tf_export.RegisterCompartmentGraphs("dataintegration", dataintegrationResourceGraph)
}
@@ -47,6 +49,26 @@ func getDataintegrationWorkspaceApplicationId(resource *tf_export.OCIResource) (
return GetWorkspaceApplicationCompositeId(applicationKey, workspaceId), nil
}
+func getDataintegrationWorkspaceImportRequestId(resource *tf_export.OCIResource) (string, error) {
+
+ importRequestKey, ok := resource.SourceAttributes["key"].(string)
+ if !ok {
+ return "", fmt.Errorf("[ERROR] unable to find importRequestKey for Dataintegration WorkspaceImportRequest")
+ }
+ workspaceId := resource.Parent.Id
+ return GetWorkspaceImportRequestCompositeId(importRequestKey, workspaceId), nil
+}
+
+func getDataintegrationWorkspaceExportRequestId(resource *tf_export.OCIResource) (string, error) {
+
+ exportRequestKey, ok := resource.SourceAttributes["key"].(string)
+ if !ok {
+ return "", fmt.Errorf("[ERROR] unable to find exportRequestKey for Dataintegration WorkspaceExportRequest")
+ }
+ workspaceId := resource.Parent.Id
+ return GetWorkspaceExportRequestCompositeId(exportRequestKey, workspaceId), nil
+}
+
// Hints for discovering and exporting this resource to configuration and state files
var exportDataintegrationWorkspaceHints = &tf_export.TerraformResourceHints{
ResourceClass: "oci_dataintegration_workspace",
@@ -89,6 +111,24 @@ var exportDataintegrationWorkspaceApplicationHints = &tf_export.TerraformResourc
},
}
+var exportDataintegrationWorkspaceImportRequestHints = &tf_export.TerraformResourceHints{
+ ResourceClass: "oci_dataintegration_workspace_import_request",
+ DatasourceClass: "oci_dataintegration_workspace_import_requests",
+ DatasourceItemsAttr: "import_request_summary_collection",
+ IsDatasourceCollection: true,
+ ResourceAbbreviation: "workspace_import_request",
+ RequireResourceRefresh: true,
+}
+
+var exportDataintegrationWorkspaceExportRequestHints = &tf_export.TerraformResourceHints{
+ ResourceClass: "oci_dataintegration_workspace_export_request",
+ DatasourceClass: "oci_dataintegration_workspace_export_requests",
+ DatasourceItemsAttr: "export_request_summary_collection",
+ IsDatasourceCollection: true,
+ ResourceAbbreviation: "workspace_export_request",
+ RequireResourceRefresh: true,
+}
+
var dataintegrationResourceGraph = tf_export.TerraformResourceGraph{
"oci_identity_compartment": {
{TerraformResourceHints: exportDataintegrationWorkspaceHints},
@@ -100,12 +140,24 @@ var dataintegrationResourceGraph = tf_export.TerraformResourceGraph{
"workspace_id": "id",
},
},
+ {
+ TerraformResourceHints: exportDataintegrationWorkspaceExportRequestHints,
+ DatasourceQueryParams: map[string]string{
+ "workspace_id": "id",
+ },
+ },
{
TerraformResourceHints: exportDataintegrationWorkspaceFolderHints,
DatasourceQueryParams: map[string]string{
"workspace_id": "id",
},
},
+ {
+ TerraformResourceHints: exportDataintegrationWorkspaceImportRequestHints,
+ DatasourceQueryParams: map[string]string{
+ "workspace_id": "id",
+ },
+ },
{
TerraformResourceHints: exportDataintegrationWorkspaceProjectHints,
DatasourceQueryParams: map[string]string{
diff --git a/internal/service/dataintegration/dataintegration_workspace_export_request_data_source.go b/internal/service/dataintegration/dataintegration_workspace_export_request_data_source.go
new file mode 100644
index 00000000000..ac4cf9d96af
--- /dev/null
+++ b/internal/service/dataintegration/dataintegration_workspace_export_request_data_source.go
@@ -0,0 +1,149 @@
+// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved.
+// Licensed under the Mozilla Public License v2.0
+
+package dataintegration
+
+import (
+ "context"
+ "strconv"
+
+ "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
+ oci_dataintegration "github.com/oracle/oci-go-sdk/v65/dataintegration"
+
+ "github.com/oracle/terraform-provider-oci/internal/client"
+ "github.com/oracle/terraform-provider-oci/internal/tfresource"
+)
+
+func DataintegrationWorkspaceExportRequestDataSource() *schema.Resource {
+ fieldMap := make(map[string]*schema.Schema)
+ fieldMap["export_request_key"] = &schema.Schema{
+ Type: schema.TypeString,
+ Required: true,
+ }
+ fieldMap["workspace_id"] = &schema.Schema{
+ Type: schema.TypeString,
+ Required: true,
+ }
+ return tfresource.GetSingularDataSourceItemSchema(DataintegrationWorkspaceExportRequestResource(), fieldMap, readSingularDataintegrationWorkspaceExportRequest)
+}
+
+func readSingularDataintegrationWorkspaceExportRequest(d *schema.ResourceData, m interface{}) error {
+ sync := &DataintegrationWorkspaceExportRequestDataSourceCrud{}
+ sync.D = d
+ sync.Client = m.(*client.OracleClients).DataIntegrationClient()
+
+ return tfresource.ReadResource(sync)
+}
+
+type DataintegrationWorkspaceExportRequestDataSourceCrud struct {
+ D *schema.ResourceData
+ Client *oci_dataintegration.DataIntegrationClient
+ Res *oci_dataintegration.GetExportRequestResponse
+}
+
+func (s *DataintegrationWorkspaceExportRequestDataSourceCrud) VoidState() {
+ s.D.SetId("")
+}
+
+func (s *DataintegrationWorkspaceExportRequestDataSourceCrud) Get() error {
+ request := oci_dataintegration.GetExportRequestRequest{}
+
+ if exportRequestKey, ok := s.D.GetOkExists("export_request_key"); ok {
+ tmp := exportRequestKey.(string)
+ request.ExportRequestKey = &tmp
+ }
+
+ if workspaceId, ok := s.D.GetOkExists("workspace_id"); ok {
+ tmp := workspaceId.(string)
+ request.WorkspaceId = &tmp
+ }
+
+ request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "dataintegration")
+
+ response, err := s.Client.GetExportRequest(context.Background(), request)
+ if err != nil {
+ return err
+ }
+
+ s.Res = &response
+ return nil
+}
+
+func (s *DataintegrationWorkspaceExportRequestDataSourceCrud) SetData() error {
+ if s.Res == nil {
+ return nil
+ }
+
+ s.D.SetId(tfresource.GenerateDataSourceHashID("DataintegrationWorkspaceExportRequestDataSource-", DataintegrationWorkspaceExportRequestDataSource(), s.D))
+
+ if s.Res.AreReferencesIncluded != nil {
+ s.D.Set("are_references_included", *s.Res.AreReferencesIncluded)
+ }
+
+ if s.Res.BucketName != nil {
+ s.D.Set("bucket", *s.Res.BucketName)
+ }
+
+ if s.Res.CreatedBy != nil {
+ s.D.Set("created_by", *s.Res.CreatedBy)
+ }
+
+ s.D.Set("error_messages", s.Res.ErrorMessages)
+ s.D.Set("error_messages", s.Res.ErrorMessages)
+
+ exportedItems := []interface{}{}
+ for _, item := range s.Res.ExportedItems {
+ exportedItems = append(exportedItems, ExportObjectMetadataSummaryToMap(item))
+ }
+ s.D.Set("exported_items", exportedItems)
+
+ if s.Res.FileName != nil {
+ s.D.Set("file_name", *s.Res.FileName)
+ }
+
+ s.D.Set("filters", s.Res.Filters)
+ s.D.Set("filters", s.Res.Filters)
+
+ if s.Res.IsObjectOverwriteEnabled != nil {
+ s.D.Set("is_object_overwrite_enabled", *s.Res.IsObjectOverwriteEnabled)
+ }
+
+ if s.Res.Key != nil {
+ s.D.Set("key", *s.Res.Key)
+ }
+
+ if s.Res.Name != nil {
+ s.D.Set("name", *s.Res.Name)
+ }
+
+ s.D.Set("object_keys", s.Res.ObjectKeys)
+ s.D.Set("object_keys", s.Res.ObjectKeys)
+
+ if s.Res.ObjectStorageRegion != nil {
+ s.D.Set("object_storage_region", *s.Res.ObjectStorageRegion)
+ }
+
+ if s.Res.ObjectStorageTenancyId != nil {
+ s.D.Set("object_storage_tenancy_id", *s.Res.ObjectStorageTenancyId)
+ }
+
+ if s.Res.ReferencedItems != nil {
+ s.D.Set("referenced_items", *s.Res.ReferencedItems)
+ }
+
+ s.D.Set("status", s.Res.Status)
+
+ if s.Res.TimeEndedInMillis != nil {
+ s.D.Set("time_ended_in_millis", strconv.FormatInt(*s.Res.TimeEndedInMillis, 10))
+ }
+
+ if s.Res.TimeStartedInMillis != nil {
+ s.D.Set("time_started_in_millis", strconv.FormatInt(*s.Res.TimeStartedInMillis, 10))
+ }
+
+ if s.Res.TotalExportedObjectCount != nil {
+ s.D.Set("total_exported_object_count", *s.Res.TotalExportedObjectCount)
+ }
+
+ return nil
+}
diff --git a/internal/service/dataintegration/dataintegration_workspace_export_request_resource.go b/internal/service/dataintegration/dataintegration_workspace_export_request_resource.go
new file mode 100644
index 00000000000..e8f615fe5d5
--- /dev/null
+++ b/internal/service/dataintegration/dataintegration_workspace_export_request_resource.go
@@ -0,0 +1,577 @@
+// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved.
+// Licensed under the Mozilla Public License v2.0
+
+package dataintegration
+
+import (
+ "context"
+ "fmt"
+ "log"
+ "net/url"
+ "regexp"
+ "strconv"
+ "strings"
+
+ "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
+
+ oci_dataintegration "github.com/oracle/oci-go-sdk/v65/dataintegration"
+
+ "github.com/oracle/terraform-provider-oci/internal/client"
+ "github.com/oracle/terraform-provider-oci/internal/tfresource"
+)
+
+func DataintegrationWorkspaceExportRequestResource() *schema.Resource {
+ return &schema.Resource{
+ Importer: &schema.ResourceImporter{
+ State: schema.ImportStatePassthrough,
+ },
+ Timeouts: tfresource.DefaultTimeout,
+ Create: createDataintegrationWorkspaceExportRequest,
+ Read: readDataintegrationWorkspaceExportRequest,
+ Delete: deleteDataintegrationWorkspaceExportRequest,
+ Schema: map[string]*schema.Schema{
+ // Required
+ "bucket": {
+ Type: schema.TypeString,
+ Required: true,
+ ForceNew: true,
+ },
+ "workspace_id": {
+ Type: schema.TypeString,
+ Required: true,
+ ForceNew: true,
+ },
+
+ // Optional
+ "are_references_included": {
+ Type: schema.TypeBool,
+ Optional: true,
+ Computed: true,
+ ForceNew: true,
+ },
+ "file_name": {
+ Type: schema.TypeString,
+ Optional: true,
+ Computed: true,
+ ForceNew: true,
+ },
+ "filters": {
+ Type: schema.TypeList,
+ Optional: true,
+ Computed: true,
+ ForceNew: true,
+ Elem: &schema.Schema{
+ Type: schema.TypeString,
+ },
+ },
+ "is_object_overwrite_enabled": {
+ Type: schema.TypeBool,
+ Optional: true,
+ Computed: true,
+ ForceNew: true,
+ },
+ "object_keys": {
+ Type: schema.TypeList,
+ Optional: true,
+ Computed: true,
+ ForceNew: true,
+ Elem: &schema.Schema{
+ Type: schema.TypeString,
+ },
+ },
+ "object_storage_region": {
+ Type: schema.TypeString,
+ Optional: true,
+ Computed: true,
+ ForceNew: true,
+ },
+ "object_storage_tenancy_id": {
+ Type: schema.TypeString,
+ Optional: true,
+ Computed: true,
+ ForceNew: true,
+ },
+
+ // Computed
+ "created_by": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "error_messages": {
+ Type: schema.TypeMap,
+ Computed: true,
+ Elem: schema.TypeString,
+ },
+ "exported_items": {
+ Type: schema.TypeList,
+ Computed: true,
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ // Required
+
+ // Optional
+
+ // Computed
+ "aggregator_key": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "identifier": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "key": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "name": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "name_path": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "object_type": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "object_version": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "time_updated_in_millis": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ },
+ },
+ },
+ "key": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "name": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "referenced_items": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "status": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "time_ended_in_millis": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "time_started_in_millis": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "total_exported_object_count": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ },
+ }
+}
+
+func createDataintegrationWorkspaceExportRequest(d *schema.ResourceData, m interface{}) error {
+ sync := &DataintegrationWorkspaceExportRequestResourceCrud{}
+ sync.D = d
+ sync.Client = m.(*client.OracleClients).DataIntegrationClient()
+
+ return tfresource.CreateResource(d, sync)
+}
+
+func readDataintegrationWorkspaceExportRequest(d *schema.ResourceData, m interface{}) error {
+ sync := &DataintegrationWorkspaceExportRequestResourceCrud{}
+ sync.D = d
+ sync.Client = m.(*client.OracleClients).DataIntegrationClient()
+
+ return tfresource.ReadResource(sync)
+}
+
+func deleteDataintegrationWorkspaceExportRequest(d *schema.ResourceData, m interface{}) error {
+ sync := &DataintegrationWorkspaceExportRequestResourceCrud{}
+ sync.D = d
+ sync.Client = m.(*client.OracleClients).DataIntegrationClient()
+ sync.DisableNotFoundRetries = true
+
+ return tfresource.DeleteResource(d, sync)
+}
+
+type DataintegrationWorkspaceExportRequestResourceCrud struct {
+ tfresource.BaseCrud
+ Client *oci_dataintegration.DataIntegrationClient
+ Res *oci_dataintegration.ExportRequest
+ DisableNotFoundRetries bool
+}
+
+func (s *DataintegrationWorkspaceExportRequestResourceCrud) ID() string {
+ return GetWorkspaceExportRequestCompositeId(s.D.Get("key").(string), s.D.Get("workspace_id").(string))
+}
+
+func (s *DataintegrationWorkspaceExportRequestResourceCrud) Create() error {
+ request := oci_dataintegration.CreateExportRequestRequest{}
+
+ if areReferencesIncluded, ok := s.D.GetOkExists("are_references_included"); ok {
+ tmp := areReferencesIncluded.(bool)
+ request.AreReferencesIncluded = &tmp
+ }
+
+ if bucket, ok := s.D.GetOkExists("bucket"); ok {
+ tmp := bucket.(string)
+ request.BucketName = &tmp
+ }
+
+ if fileName, ok := s.D.GetOkExists("file_name"); ok {
+ tmp := fileName.(string)
+ request.FileName = &tmp
+ }
+
+ if filters, ok := s.D.GetOkExists("filters"); ok {
+ interfaces := filters.([]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("filters") {
+ request.Filters = tmp
+ }
+ }
+
+ if isObjectOverwriteEnabled, ok := s.D.GetOkExists("is_object_overwrite_enabled"); ok {
+ tmp := isObjectOverwriteEnabled.(bool)
+ request.IsObjectOverwriteEnabled = &tmp
+ }
+
+ if objectKeys, ok := s.D.GetOkExists("object_keys"); ok {
+ interfaces := objectKeys.([]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("object_keys") {
+ request.ObjectKeys = tmp
+ }
+ }
+
+ if objectStorageRegion, ok := s.D.GetOkExists("object_storage_region"); ok {
+ tmp := objectStorageRegion.(string)
+ request.ObjectStorageRegion = &tmp
+ }
+
+ if objectStorageTenancyId, ok := s.D.GetOkExists("object_storage_tenancy_id"); ok {
+ tmp := objectStorageTenancyId.(string)
+ request.ObjectStorageTenancyId = &tmp
+ }
+
+ if workspaceId, ok := s.D.GetOkExists("workspace_id"); ok {
+ tmp := workspaceId.(string)
+ request.WorkspaceId = &tmp
+ }
+
+ request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "dataintegration")
+
+ response, err := s.Client.CreateExportRequest(context.Background(), request)
+ if err != nil {
+ return err
+ }
+
+ s.Res = &response.ExportRequest
+
+ s.D.SetId(GetWorkspaceExportRequestCompositeId(*response.Key, *request.WorkspaceId))
+
+ if setDataErr := s.SetData(); setDataErr != nil {
+ log.Printf("[ERROR] error setting data before WaitForResourceCondition() error: %v", setDataErr)
+ }
+
+ retentionPolicyFunc := func() bool {
+ return s.Res.Status == oci_dataintegration.ExportRequestStatusFailed || s.Res.Status == oci_dataintegration.ExportRequestStatusSuccessful
+ }
+
+ if err := tfresource.WaitForResourceCondition(s, retentionPolicyFunc, s.D.Timeout(schema.TimeoutUpdate)); err != nil {
+ return err
+ }
+
+ if s.Res.Status == oci_dataintegration.ExportRequestStatusFailed {
+ log.Printf("[ERROR] export request failed with \"%s\"", s.Res.ErrorMessages[*s.Res.Key])
+ return fmt.Errorf("export request failed with \"%s\"", s.Res.ErrorMessages[*s.Res.Key])
+ }
+
+ return nil
+}
+
+func (s *DataintegrationWorkspaceExportRequestResourceCrud) Get() error {
+ request := oci_dataintegration.GetExportRequestRequest{}
+
+ if exportRequestKey, ok := s.D.GetOkExists("key"); ok {
+ tmp := exportRequestKey.(string)
+ request.ExportRequestKey = &tmp
+ }
+
+ if workspaceId, ok := s.D.GetOkExists("workspace_id"); ok {
+ tmp := workspaceId.(string)
+ request.WorkspaceId = &tmp
+ }
+
+ exportRequestKey, workspaceId, err := parseWorkspaceExportRequestCompositeId(s.D.Id())
+ if err == nil {
+ request.ExportRequestKey = &exportRequestKey
+ request.WorkspaceId = &workspaceId
+ } else {
+ log.Printf("[WARN] Get() unable to parse current ID: %s", s.D.Id())
+ }
+
+ request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "dataintegration")
+
+ response, err := s.Client.GetExportRequest(context.Background(), request)
+ if err != nil {
+ return err
+ }
+
+ s.Res = &response.ExportRequest
+ return nil
+}
+
+func (s *DataintegrationWorkspaceExportRequestResourceCrud) Delete() error {
+ request := oci_dataintegration.DeleteExportRequestRequest{}
+
+ if exportRequestKey, ok := s.D.GetOkExists("key"); ok {
+ tmp := exportRequestKey.(string)
+ request.ExportRequestKey = &tmp
+ }
+
+ if workspaceId, ok := s.D.GetOkExists("workspace_id"); ok {
+ tmp := workspaceId.(string)
+ request.WorkspaceId = &tmp
+ }
+
+ request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "dataintegration")
+
+ _, err := s.Client.DeleteExportRequest(context.Background(), request)
+ return err
+}
+
+func (s *DataintegrationWorkspaceExportRequestResourceCrud) SetData() error {
+
+ exportRequestKey, workspaceId, err := parseWorkspaceExportRequestCompositeId(s.D.Id())
+ if err == nil {
+ s.D.Set("key", &exportRequestKey)
+ s.D.Set("workspace_id", &workspaceId)
+ } else {
+ log.Printf("[WARN] SetData() unable to parse current ID: %s", s.D.Id())
+ }
+
+ if s.Res.AreReferencesIncluded != nil {
+ s.D.Set("are_references_included", *s.Res.AreReferencesIncluded)
+ }
+
+ if s.Res.BucketName != nil {
+ s.D.Set("bucket", *s.Res.BucketName)
+ }
+
+ if s.Res.CreatedBy != nil {
+ s.D.Set("created_by", *s.Res.CreatedBy)
+ }
+
+ s.D.Set("error_messages", s.Res.ErrorMessages)
+ s.D.Set("error_messages", s.Res.ErrorMessages)
+
+ exportedItems := []interface{}{}
+ for _, item := range s.Res.ExportedItems {
+ exportedItems = append(exportedItems, ExportObjectMetadataSummaryToMap(item))
+ }
+ s.D.Set("exported_items", exportedItems)
+
+ if s.Res.FileName != nil {
+ s.D.Set("file_name", *s.Res.FileName)
+ }
+
+ s.D.Set("filters", s.Res.Filters)
+ s.D.Set("filters", s.Res.Filters)
+
+ if s.Res.IsObjectOverwriteEnabled != nil {
+ s.D.Set("is_object_overwrite_enabled", *s.Res.IsObjectOverwriteEnabled)
+ }
+
+ if s.Res.Key != nil {
+ s.D.Set("key", *s.Res.Key)
+ }
+
+ if s.Res.Name != nil {
+ s.D.Set("name", *s.Res.Name)
+ }
+
+ s.D.Set("object_keys", s.Res.ObjectKeys)
+ s.D.Set("object_keys", s.Res.ObjectKeys)
+
+ if s.Res.ObjectStorageRegion != nil {
+ s.D.Set("object_storage_region", *s.Res.ObjectStorageRegion)
+ }
+
+ if s.Res.ObjectStorageTenancyId != nil {
+ s.D.Set("object_storage_tenancy_id", *s.Res.ObjectStorageTenancyId)
+ }
+
+ if s.Res.ReferencedItems != nil {
+ s.D.Set("referenced_items", *s.Res.ReferencedItems)
+ }
+
+ s.D.Set("status", s.Res.Status)
+
+ if s.Res.TimeEndedInMillis != nil {
+ s.D.Set("time_ended_in_millis", strconv.FormatInt(*s.Res.TimeEndedInMillis, 10))
+ }
+
+ if s.Res.TimeStartedInMillis != nil {
+ s.D.Set("time_started_in_millis", strconv.FormatInt(*s.Res.TimeStartedInMillis, 10))
+ }
+
+ if s.Res.TotalExportedObjectCount != nil {
+ s.D.Set("total_exported_object_count", *s.Res.TotalExportedObjectCount)
+ }
+
+ return nil
+}
+
+func GetWorkspaceExportRequestCompositeId(exportRequestKey string, workspaceId string) string {
+ exportRequestKey = url.PathEscape(exportRequestKey)
+ workspaceId = url.PathEscape(workspaceId)
+ compositeId := "workspaces/" + workspaceId + "/exportRequests/" + exportRequestKey
+ return compositeId
+}
+
+func parseWorkspaceExportRequestCompositeId(compositeId string) (exportRequestKey string, workspaceId string, err error) {
+ parts := strings.Split(compositeId, "/")
+ match, _ := regexp.MatchString("workspaces/.*/exportRequests/.*", compositeId)
+ if !match || len(parts) != 4 {
+ err = fmt.Errorf("illegal compositeId %s encountered", compositeId)
+ return
+ }
+ workspaceId, _ = url.PathUnescape(parts[1])
+ exportRequestKey, _ = url.PathUnescape(parts[3])
+
+ return
+}
+
+func ExportObjectMetadataSummaryToMap(obj oci_dataintegration.ExportObjectMetadataSummary) map[string]interface{} {
+ result := map[string]interface{}{}
+
+ if obj.AggregatorKey != nil {
+ result["aggregator_key"] = string(*obj.AggregatorKey)
+ }
+
+ if obj.Identifier != nil {
+ result["identifier"] = string(*obj.Identifier)
+ }
+
+ if obj.Key != nil {
+ result["key"] = string(*obj.Key)
+ }
+
+ if obj.Name != nil {
+ result["name"] = string(*obj.Name)
+ }
+
+ if obj.NamePath != nil {
+ result["name_path"] = string(*obj.NamePath)
+ }
+
+ if obj.ObjectType != nil {
+ result["object_type"] = string(*obj.ObjectType)
+ }
+
+ if obj.ObjectVersion != nil {
+ result["object_version"] = string(*obj.ObjectVersion)
+ }
+
+ if obj.TimeUpdatedInMillis != nil {
+ result["time_updated_in_millis"] = strconv.FormatInt(*obj.TimeUpdatedInMillis, 10)
+ }
+
+ return result
+}
+
+func ExportRequestSummaryToMap(obj oci_dataintegration.ExportRequestSummary) map[string]interface{} {
+ result := map[string]interface{}{}
+
+ if obj.AreReferencesIncluded != nil {
+ result["are_references_included"] = bool(*obj.AreReferencesIncluded)
+ }
+
+ if obj.BucketName != nil {
+ result["bucket"] = string(*obj.BucketName)
+ }
+
+ if obj.CreatedBy != nil {
+ result["created_by"] = string(*obj.CreatedBy)
+ }
+
+ result["error_messages"] = obj.ErrorMessages
+ result["error_messages"] = obj.ErrorMessages
+
+ exportedItems := []interface{}{}
+ for _, item := range obj.ExportedItems {
+ exportedItems = append(exportedItems, ExportObjectMetadataSummaryToMap(item))
+ }
+ result["exported_items"] = exportedItems
+
+ if obj.FileName != nil {
+ result["file_name"] = string(*obj.FileName)
+ }
+
+ result["filters"] = obj.Filters
+ result["filters"] = obj.Filters
+
+ if obj.IsObjectOverwriteEnabled != nil {
+ result["is_object_overwrite_enabled"] = bool(*obj.IsObjectOverwriteEnabled)
+ }
+
+ if obj.Key != nil {
+ result["key"] = string(*obj.Key)
+ }
+
+ if obj.Name != nil {
+ result["name"] = string(*obj.Name)
+ }
+
+ result["object_keys"] = obj.ObjectKeys
+ result["object_keys"] = obj.ObjectKeys
+
+ if obj.ObjectStorageRegion != nil {
+ result["object_storage_region"] = string(*obj.ObjectStorageRegion)
+ }
+
+ if obj.ObjectStorageTenancyId != nil {
+ result["object_storage_tenancy_id"] = string(*obj.ObjectStorageTenancyId)
+ }
+
+ if obj.ReferencedItems != nil {
+ result["referenced_items"] = string(*obj.ReferencedItems)
+ }
+
+ result["status"] = string(obj.Status)
+
+ if obj.TimeEndedInMillis != nil {
+ result["time_ended_in_millis"] = strconv.FormatInt(*obj.TimeEndedInMillis, 10)
+ }
+
+ if obj.TimeStartedInMillis != nil {
+ result["time_started_in_millis"] = strconv.FormatInt(*obj.TimeStartedInMillis, 10)
+ }
+
+ if obj.TotalExportedObjectCount != nil {
+ result["total_exported_object_count"] = int(*obj.TotalExportedObjectCount)
+ }
+
+ return result
+}
diff --git a/internal/service/dataintegration/dataintegration_workspace_export_requests_data_source.go b/internal/service/dataintegration/dataintegration_workspace_export_requests_data_source.go
new file mode 100644
index 00000000000..e6e0e8300cb
--- /dev/null
+++ b/internal/service/dataintegration/dataintegration_workspace_export_requests_data_source.go
@@ -0,0 +1,171 @@
+// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved.
+// Licensed under the Mozilla Public License v2.0
+
+package dataintegration
+
+import (
+ "context"
+ "fmt"
+ "strconv"
+
+ "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
+ oci_dataintegration "github.com/oracle/oci-go-sdk/v65/dataintegration"
+
+ "github.com/oracle/terraform-provider-oci/internal/client"
+ "github.com/oracle/terraform-provider-oci/internal/tfresource"
+)
+
+func DataintegrationWorkspaceExportRequestsDataSource() *schema.Resource {
+ return &schema.Resource{
+ Read: readDataintegrationWorkspaceExportRequests,
+ Schema: map[string]*schema.Schema{
+ "filter": tfresource.DataSourceFiltersSchema(),
+ "export_status": {
+ Type: schema.TypeString,
+ Optional: true,
+ },
+ "name": {
+ Type: schema.TypeString,
+ Optional: true,
+ },
+ "projection": {
+ Type: schema.TypeString,
+ Optional: true,
+ },
+ "time_ended_in_millis": {
+ Type: schema.TypeString,
+ Optional: true,
+ },
+ "time_started_in_millis": {
+ Type: schema.TypeString,
+ Optional: true,
+ },
+ "workspace_id": {
+ Type: schema.TypeString,
+ Required: true,
+ },
+ "export_request_summary_collection": {
+ Type: schema.TypeList,
+ Computed: true,
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+
+ "items": {
+ Type: schema.TypeList,
+ Computed: true,
+ Elem: DataintegrationWorkspaceExportRequestResource(),
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func readDataintegrationWorkspaceExportRequests(d *schema.ResourceData, m interface{}) error {
+ sync := &DataintegrationWorkspaceExportRequestsDataSourceCrud{}
+ sync.D = d
+ sync.Client = m.(*client.OracleClients).DataIntegrationClient()
+
+ return tfresource.ReadResource(sync)
+}
+
+type DataintegrationWorkspaceExportRequestsDataSourceCrud struct {
+ D *schema.ResourceData
+ Client *oci_dataintegration.DataIntegrationClient
+ Res *oci_dataintegration.ListExportRequestsResponse
+}
+
+func (s *DataintegrationWorkspaceExportRequestsDataSourceCrud) VoidState() {
+ s.D.SetId("")
+}
+
+func (s *DataintegrationWorkspaceExportRequestsDataSourceCrud) Get() error {
+ request := oci_dataintegration.ListExportRequestsRequest{}
+
+ if exportStatus, ok := s.D.GetOkExists("export_status"); ok {
+ request.ExportStatus = oci_dataintegration.ListExportRequestsExportStatusEnum(exportStatus.(string))
+ }
+
+ if name, ok := s.D.GetOkExists("name"); ok {
+ tmp := name.(string)
+ request.Name = &tmp
+ }
+
+ if projection, ok := s.D.GetOkExists("projection"); ok {
+ request.Projection = oci_dataintegration.ListExportRequestsProjectionEnum(projection.(string))
+ }
+
+ if timeEndedInMillis, ok := s.D.GetOkExists("time_ended_in_millis"); ok {
+ tmp := timeEndedInMillis.(string)
+ tmpInt64, err := strconv.ParseInt(tmp, 10, 64)
+ if err != nil {
+ return fmt.Errorf("unable to convert timeEndedInMillis string: %s to an int64 and encountered error: %v", tmp, err)
+ }
+ request.TimeEndedInMillis = &tmpInt64
+ }
+
+ if timeStartedInMillis, ok := s.D.GetOkExists("time_started_in_millis"); ok {
+ tmp := timeStartedInMillis.(string)
+ tmpInt64, err := strconv.ParseInt(tmp, 10, 64)
+ if err != nil {
+ return fmt.Errorf("unable to convert timeStartedInMillis string: %s to an int64 and encountered error: %v", tmp, err)
+ }
+ request.TimeStartedInMillis = &tmpInt64
+ }
+
+ if workspaceId, ok := s.D.GetOkExists("workspace_id"); ok {
+ tmp := workspaceId.(string)
+ request.WorkspaceId = &tmp
+ }
+
+ request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "dataintegration")
+
+ response, err := s.Client.ListExportRequests(context.Background(), request)
+ if err != nil {
+ return err
+ }
+
+ s.Res = &response
+ request.Page = s.Res.OpcNextPage
+
+ for request.Page != nil {
+ listResponse, err := s.Client.ListExportRequests(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 *DataintegrationWorkspaceExportRequestsDataSourceCrud) SetData() error {
+ if s.Res == nil {
+ return nil
+ }
+
+ s.D.SetId(tfresource.GenerateDataSourceHashID("DataintegrationWorkspaceExportRequestsDataSource-", DataintegrationWorkspaceExportRequestsDataSource(), s.D))
+ resources := []map[string]interface{}{}
+ workspaceExportRequest := map[string]interface{}{}
+
+ items := []interface{}{}
+ for _, item := range s.Res.Items {
+ items = append(items, ExportRequestSummaryToMap(item))
+ }
+ workspaceExportRequest["items"] = items
+
+ if f, fOk := s.D.GetOkExists("filter"); fOk {
+ items = tfresource.ApplyFiltersInCollection(f.(*schema.Set), items, DataintegrationWorkspaceExportRequestsDataSource().Schema["export_request_summary_collection"].Elem.(*schema.Resource).Schema)
+ workspaceExportRequest["items"] = items
+ }
+
+ resources = append(resources, workspaceExportRequest)
+ if err := s.D.Set("export_request_summary_collection", resources); err != nil {
+ return err
+ }
+
+ return nil
+}
diff --git a/internal/service/dataintegration/dataintegration_workspace_import_request_data_source.go b/internal/service/dataintegration/dataintegration_workspace_import_request_data_source.go
new file mode 100644
index 00000000000..546e5d82817
--- /dev/null
+++ b/internal/service/dataintegration/dataintegration_workspace_import_request_data_source.go
@@ -0,0 +1,141 @@
+// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved.
+// Licensed under the Mozilla Public License v2.0
+
+package dataintegration
+
+import (
+ "context"
+ "strconv"
+
+ "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
+ oci_dataintegration "github.com/oracle/oci-go-sdk/v65/dataintegration"
+
+ "github.com/oracle/terraform-provider-oci/internal/client"
+ "github.com/oracle/terraform-provider-oci/internal/tfresource"
+)
+
+func DataintegrationWorkspaceImportRequestDataSource() *schema.Resource {
+ fieldMap := make(map[string]*schema.Schema)
+ fieldMap["import_request_key"] = &schema.Schema{
+ Type: schema.TypeString,
+ Required: true,
+ }
+ fieldMap["workspace_id"] = &schema.Schema{
+ Type: schema.TypeString,
+ Required: true,
+ }
+ return tfresource.GetSingularDataSourceItemSchema(DataintegrationWorkspaceImportRequestResource(), fieldMap, readSingularDataintegrationWorkspaceImportRequest)
+}
+
+func readSingularDataintegrationWorkspaceImportRequest(d *schema.ResourceData, m interface{}) error {
+ sync := &DataintegrationWorkspaceImportRequestDataSourceCrud{}
+ sync.D = d
+ sync.Client = m.(*client.OracleClients).DataIntegrationClient()
+
+ return tfresource.ReadResource(sync)
+}
+
+type DataintegrationWorkspaceImportRequestDataSourceCrud struct {
+ D *schema.ResourceData
+ Client *oci_dataintegration.DataIntegrationClient
+ Res *oci_dataintegration.GetImportRequestResponse
+}
+
+func (s *DataintegrationWorkspaceImportRequestDataSourceCrud) VoidState() {
+ s.D.SetId("")
+}
+
+func (s *DataintegrationWorkspaceImportRequestDataSourceCrud) Get() error {
+ request := oci_dataintegration.GetImportRequestRequest{}
+
+ if importRequestKey, ok := s.D.GetOkExists("import_request_key"); ok {
+ tmp := importRequestKey.(string)
+ request.ImportRequestKey = &tmp
+ }
+
+ if workspaceId, ok := s.D.GetOkExists("workspace_id"); ok {
+ tmp := workspaceId.(string)
+ request.WorkspaceId = &tmp
+ }
+
+ request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "dataintegration")
+
+ response, err := s.Client.GetImportRequest(context.Background(), request)
+ if err != nil {
+ return err
+ }
+
+ s.Res = &response
+ return nil
+}
+
+func (s *DataintegrationWorkspaceImportRequestDataSourceCrud) SetData() error {
+ if s.Res == nil {
+ return nil
+ }
+
+ s.D.SetId(tfresource.GenerateDataSourceHashID("DataintegrationWorkspaceImportRequestDataSource-", DataintegrationWorkspaceImportRequestDataSource(), s.D))
+
+ if s.Res.BucketName != nil {
+ s.D.Set("bucket", *s.Res.BucketName)
+ }
+
+ if s.Res.CreatedBy != nil {
+ s.D.Set("created_by", *s.Res.CreatedBy)
+ }
+
+ s.D.Set("error_messages", s.Res.ErrorMessages)
+ s.D.Set("error_messages", s.Res.ErrorMessages)
+
+ if s.Res.FileName != nil {
+ s.D.Set("file_name", *s.Res.FileName)
+ }
+
+ if s.Res.ImportConflictResolution != nil {
+ s.D.Set("import_conflict_resolution", []interface{}{ImportConflictResolutionToMap(s.Res.ImportConflictResolution)})
+ } else {
+ s.D.Set("import_conflict_resolution", nil)
+ }
+
+ importedObjects := []interface{}{}
+ for _, item := range s.Res.ImportedObjects {
+ importedObjects = append(importedObjects, ImportObjectMetadataSummaryToMap(item))
+ }
+ s.D.Set("imported_objects", importedObjects)
+
+ if s.Res.Key != nil {
+ s.D.Set("key", *s.Res.Key)
+ }
+
+ if s.Res.Name != nil {
+ s.D.Set("name", *s.Res.Name)
+ }
+
+ if s.Res.ObjectKeyForImport != nil {
+ s.D.Set("object_key_for_import", *s.Res.ObjectKeyForImport)
+ }
+
+ if s.Res.ObjectStorageRegion != nil {
+ s.D.Set("object_storage_region", *s.Res.ObjectStorageRegion)
+ }
+
+ if s.Res.ObjectStorageTenancyId != nil {
+ s.D.Set("object_storage_tenancy_id", *s.Res.ObjectStorageTenancyId)
+ }
+
+ s.D.Set("status", s.Res.Status)
+
+ if s.Res.TimeEndedInMillis != nil {
+ s.D.Set("time_ended_in_millis", strconv.FormatInt(*s.Res.TimeEndedInMillis, 10))
+ }
+
+ if s.Res.TimeStartedInMillis != nil {
+ s.D.Set("time_started_in_millis", strconv.FormatInt(*s.Res.TimeStartedInMillis, 10))
+ }
+
+ if s.Res.TotalImportedObjectCount != nil {
+ s.D.Set("total_imported_object_count", *s.Res.TotalImportedObjectCount)
+ }
+
+ return nil
+}
diff --git a/internal/service/dataintegration/dataintegration_workspace_import_request_resource.go b/internal/service/dataintegration/dataintegration_workspace_import_request_resource.go
new file mode 100644
index 00000000000..dad5d8a9166
--- /dev/null
+++ b/internal/service/dataintegration/dataintegration_workspace_import_request_resource.go
@@ -0,0 +1,594 @@
+// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved.
+// Licensed under the Mozilla Public License v2.0
+
+package dataintegration
+
+import (
+ "context"
+ "fmt"
+ "log"
+ "net/url"
+ "regexp"
+ "strconv"
+ "strings"
+
+ "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
+
+ oci_dataintegration "github.com/oracle/oci-go-sdk/v65/dataintegration"
+
+ "github.com/oracle/terraform-provider-oci/internal/client"
+ "github.com/oracle/terraform-provider-oci/internal/tfresource"
+)
+
+func DataintegrationWorkspaceImportRequestResource() *schema.Resource {
+ return &schema.Resource{
+ Importer: &schema.ResourceImporter{
+ State: schema.ImportStatePassthrough,
+ },
+ Timeouts: tfresource.DefaultTimeout,
+ Create: createDataintegrationWorkspaceImportRequest,
+ Read: readDataintegrationWorkspaceImportRequest,
+ Delete: deleteDataintegrationWorkspaceImportRequest,
+ Schema: map[string]*schema.Schema{
+ // Required
+ "bucket": {
+ Type: schema.TypeString,
+ Required: true,
+ ForceNew: true,
+ },
+ "file_name": {
+ Type: schema.TypeString,
+ Required: true,
+ ForceNew: true,
+ },
+ "workspace_id": {
+ Type: schema.TypeString,
+ Required: true,
+ ForceNew: true,
+ },
+
+ // Optional
+ "import_conflict_resolution": {
+ Type: schema.TypeList,
+ Optional: true,
+ Computed: true,
+ ForceNew: true,
+ MaxItems: 1,
+ MinItems: 1,
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ // Required
+ "import_conflict_resolution_type": {
+ Type: schema.TypeString,
+ Required: true,
+ ForceNew: true,
+ },
+
+ // Optional
+ "duplicate_prefix": {
+ Type: schema.TypeString,
+ Optional: true,
+ Computed: true,
+ ForceNew: true,
+ },
+ "duplicate_suffix": {
+ Type: schema.TypeString,
+ Optional: true,
+ Computed: true,
+ ForceNew: true,
+ },
+
+ // Computed
+ },
+ },
+ },
+ "object_key_for_import": {
+ Type: schema.TypeString,
+ Optional: true,
+ Computed: true,
+ ForceNew: true,
+ },
+ "object_storage_region": {
+ Type: schema.TypeString,
+ Optional: true,
+ Computed: true,
+ ForceNew: true,
+ },
+ "object_storage_tenancy_id": {
+ Type: schema.TypeString,
+ Optional: true,
+ Computed: true,
+ ForceNew: true,
+ },
+
+ // Computed
+ "created_by": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "error_messages": {
+ Type: schema.TypeMap,
+ Computed: true,
+ Elem: schema.TypeString,
+ },
+ "imported_objects": {
+ Type: schema.TypeList,
+ Computed: true,
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ // Required
+
+ // Optional
+
+ // Computed
+ "aggregator_key": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "identifier": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "name": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "name_path": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "new_key": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "object_type": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "object_version": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "old_key": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "resolution_action": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "time_updated_in_millis": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ },
+ },
+ },
+ "key": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "name": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "status": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "time_ended_in_millis": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "time_started_in_millis": {
+ Type: schema.TypeString,
+ Computed: true,
+ },
+ "total_imported_object_count": {
+ Type: schema.TypeInt,
+ Computed: true,
+ },
+ },
+ }
+}
+
+func createDataintegrationWorkspaceImportRequest(d *schema.ResourceData, m interface{}) error {
+ sync := &DataintegrationWorkspaceImportRequestResourceCrud{}
+ sync.D = d
+ sync.Client = m.(*client.OracleClients).DataIntegrationClient()
+
+ return tfresource.CreateResource(d, sync)
+}
+
+func readDataintegrationWorkspaceImportRequest(d *schema.ResourceData, m interface{}) error {
+ sync := &DataintegrationWorkspaceImportRequestResourceCrud{}
+ sync.D = d
+ sync.Client = m.(*client.OracleClients).DataIntegrationClient()
+
+ return tfresource.ReadResource(sync)
+}
+
+func deleteDataintegrationWorkspaceImportRequest(d *schema.ResourceData, m interface{}) error {
+ sync := &DataintegrationWorkspaceImportRequestResourceCrud{}
+ sync.D = d
+ sync.Client = m.(*client.OracleClients).DataIntegrationClient()
+ sync.DisableNotFoundRetries = true
+
+ return tfresource.DeleteResource(d, sync)
+}
+
+type DataintegrationWorkspaceImportRequestResourceCrud struct {
+ tfresource.BaseCrud
+ Client *oci_dataintegration.DataIntegrationClient
+ Res *oci_dataintegration.ImportRequest
+ DisableNotFoundRetries bool
+}
+
+func (s *DataintegrationWorkspaceImportRequestResourceCrud) ID() string {
+ return GetWorkspaceImportRequestCompositeId(s.D.Get("key").(string), s.D.Get("workspace_id").(string))
+}
+
+func (s *DataintegrationWorkspaceImportRequestResourceCrud) Create() error {
+ request := oci_dataintegration.CreateImportRequestRequest{}
+
+ if bucket, ok := s.D.GetOkExists("bucket"); ok {
+ tmp := bucket.(string)
+ request.BucketName = &tmp
+ }
+
+ if fileName, ok := s.D.GetOkExists("file_name"); ok {
+ tmp := fileName.(string)
+ request.FileName = &tmp
+ }
+
+ if importConflictResolution, ok := s.D.GetOkExists("import_conflict_resolution"); ok {
+ if tmpList := importConflictResolution.([]interface{}); len(tmpList) > 0 {
+ fieldKeyFormat := fmt.Sprintf("%s.%d.%%s", "import_conflict_resolution", 0)
+ tmp, err := s.mapToImportConflictResolution(fieldKeyFormat)
+ if err != nil {
+ return err
+ }
+ request.ImportConflictResolution = &tmp
+ }
+ }
+
+ if objectKeyForImport, ok := s.D.GetOkExists("object_key_for_import"); ok {
+ tmp := objectKeyForImport.(string)
+ request.ObjectKeyForImport = &tmp
+ }
+
+ if objectStorageRegion, ok := s.D.GetOkExists("object_storage_region"); ok {
+ tmp := objectStorageRegion.(string)
+ request.ObjectStorageRegion = &tmp
+ }
+
+ if objectStorageTenancyId, ok := s.D.GetOkExists("object_storage_tenancy_id"); ok {
+ tmp := objectStorageTenancyId.(string)
+ request.ObjectStorageTenancyId = &tmp
+ }
+
+ if workspaceId, ok := s.D.GetOkExists("workspace_id"); ok {
+ tmp := workspaceId.(string)
+ request.WorkspaceId = &tmp
+ }
+
+ request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "dataintegration")
+
+ response, err := s.Client.CreateImportRequest(context.Background(), request)
+ if err != nil {
+ return err
+ }
+
+ s.Res = &response.ImportRequest
+
+ s.D.SetId(GetWorkspaceImportRequestCompositeId(*response.Key, *request.WorkspaceId))
+
+ if setDataErr := s.SetData(); setDataErr != nil {
+ log.Printf("[ERROR] error setting data before WaitForResourceCondition() error: %v", setDataErr)
+ }
+
+ retentionPolicyFunc := func() bool {
+ return s.Res.Status == oci_dataintegration.ImportRequestStatusFailed || s.Res.Status == oci_dataintegration.ImportRequestStatusSuccessful
+ }
+
+ if err := tfresource.WaitForResourceCondition(s, retentionPolicyFunc, s.D.Timeout(schema.TimeoutUpdate)); err != nil {
+ return err
+ }
+
+ if s.Res.Status == oci_dataintegration.ImportRequestStatusFailed {
+ log.Printf("[ERROR] import request failed with \"%s\"", s.Res.ErrorMessages[*s.Res.Key])
+ return fmt.Errorf("import request failed with \"%s\"", s.Res.ErrorMessages[*s.Res.Key])
+ }
+
+ return nil
+}
+
+func (s *DataintegrationWorkspaceImportRequestResourceCrud) Get() error {
+ request := oci_dataintegration.GetImportRequestRequest{}
+
+ if importRequestKey, ok := s.D.GetOkExists("key"); ok {
+ tmp := importRequestKey.(string)
+ request.ImportRequestKey = &tmp
+ }
+
+ if workspaceId, ok := s.D.GetOkExists("workspace_id"); ok {
+ tmp := workspaceId.(string)
+ request.WorkspaceId = &tmp
+ }
+
+ importRequestKey, workspaceId, err := parseWorkspaceImportRequestCompositeId(s.D.Id())
+ if err == nil {
+ request.ImportRequestKey = &importRequestKey
+ request.WorkspaceId = &workspaceId
+ } else {
+ log.Printf("[WARN] Get() unable to parse current ID: %s", s.D.Id())
+ }
+
+ request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "dataintegration")
+
+ response, err := s.Client.GetImportRequest(context.Background(), request)
+ if err != nil {
+ return err
+ }
+
+ s.Res = &response.ImportRequest
+ return nil
+}
+
+func (s *DataintegrationWorkspaceImportRequestResourceCrud) Delete() error {
+ request := oci_dataintegration.DeleteImportRequestRequest{}
+
+ if importRequestKey, ok := s.D.GetOkExists("key"); ok {
+ tmp := importRequestKey.(string)
+ request.ImportRequestKey = &tmp
+ }
+
+ if workspaceId, ok := s.D.GetOkExists("workspace_id"); ok {
+ tmp := workspaceId.(string)
+ request.WorkspaceId = &tmp
+ }
+
+ request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "dataintegration")
+
+ _, err := s.Client.DeleteImportRequest(context.Background(), request)
+ return err
+}
+
+func (s *DataintegrationWorkspaceImportRequestResourceCrud) SetData() error {
+
+ importRequestKey, workspaceId, err := parseWorkspaceImportRequestCompositeId(s.D.Id())
+ if err == nil {
+ s.D.Set("key", &importRequestKey)
+ s.D.Set("workspace_id", &workspaceId)
+ } else {
+ log.Printf("[WARN] SetData() unable to parse current ID: %s", s.D.Id())
+ }
+
+ if s.Res.BucketName != nil {
+ s.D.Set("bucket", *s.Res.BucketName)
+ }
+
+ if s.Res.CreatedBy != nil {
+ s.D.Set("created_by", *s.Res.CreatedBy)
+ }
+
+ s.D.Set("error_messages", s.Res.ErrorMessages)
+ s.D.Set("error_messages", s.Res.ErrorMessages)
+
+ if s.Res.FileName != nil {
+ s.D.Set("file_name", *s.Res.FileName)
+ }
+
+ if s.Res.ImportConflictResolution != nil {
+ s.D.Set("import_conflict_resolution", []interface{}{ImportConflictResolutionToMap(s.Res.ImportConflictResolution)})
+ } else {
+ s.D.Set("import_conflict_resolution", nil)
+ }
+
+ importedObjects := []interface{}{}
+ for _, item := range s.Res.ImportedObjects {
+ importedObjects = append(importedObjects, ImportObjectMetadataSummaryToMap(item))
+ }
+ s.D.Set("imported_objects", importedObjects)
+
+ if s.Res.Key != nil {
+ s.D.Set("key", *s.Res.Key)
+ }
+
+ if s.Res.Name != nil {
+ s.D.Set("name", *s.Res.Name)
+ }
+
+ if s.Res.ObjectKeyForImport != nil {
+ s.D.Set("object_key_for_import", *s.Res.ObjectKeyForImport)
+ }
+
+ if s.Res.ObjectStorageRegion != nil {
+ s.D.Set("object_storage_region", *s.Res.ObjectStorageRegion)
+ }
+
+ if s.Res.ObjectStorageTenancyId != nil {
+ s.D.Set("object_storage_tenancy_id", *s.Res.ObjectStorageTenancyId)
+ }
+
+ s.D.Set("status", s.Res.Status)
+
+ if s.Res.TimeEndedInMillis != nil {
+ s.D.Set("time_ended_in_millis", strconv.FormatInt(*s.Res.TimeEndedInMillis, 10))
+ }
+
+ if s.Res.TimeStartedInMillis != nil {
+ s.D.Set("time_started_in_millis", strconv.FormatInt(*s.Res.TimeStartedInMillis, 10))
+ }
+
+ if s.Res.TotalImportedObjectCount != nil {
+ s.D.Set("total_imported_object_count", *s.Res.TotalImportedObjectCount)
+ }
+
+ return nil
+}
+
+func GetWorkspaceImportRequestCompositeId(importRequestKey string, workspaceId string) string {
+ importRequestKey = url.PathEscape(importRequestKey)
+ workspaceId = url.PathEscape(workspaceId)
+ compositeId := "workspaces/" + workspaceId + "/importRequests/" + importRequestKey
+ return compositeId
+}
+
+func parseWorkspaceImportRequestCompositeId(compositeId string) (importRequestKey string, workspaceId string, err error) {
+ parts := strings.Split(compositeId, "/")
+ match, _ := regexp.MatchString("workspaces/.*/importRequests/.*", compositeId)
+ if !match || len(parts) != 4 {
+ err = fmt.Errorf("illegal compositeId %s encountered", compositeId)
+ return
+ }
+ workspaceId, _ = url.PathUnescape(parts[1])
+ importRequestKey, _ = url.PathUnescape(parts[3])
+
+ return
+}
+
+func ImportConflictResolutionToMap(obj *oci_dataintegration.ImportConflictResolution) map[string]interface{} {
+ result := map[string]interface{}{}
+
+ if obj.DuplicatePrefix != nil {
+ result["duplicate_prefix"] = string(*obj.DuplicatePrefix)
+ }
+
+ if obj.DuplicateSuffix != nil {
+ result["duplicate_suffix"] = string(*obj.DuplicateSuffix)
+ }
+
+ result["import_conflict_resolution_type"] = string(obj.ImportConflictResolutionType)
+
+ return result
+}
+
+func ImportObjectMetadataSummaryToMap(obj oci_dataintegration.ImportObjectMetadataSummary) map[string]interface{} {
+ result := map[string]interface{}{}
+
+ if obj.AggregatorKey != nil {
+ result["aggregator_key"] = string(*obj.AggregatorKey)
+ }
+
+ if obj.Identifier != nil {
+ result["identifier"] = string(*obj.Identifier)
+ }
+
+ if obj.Name != nil {
+ result["name"] = string(*obj.Name)
+ }
+
+ if obj.NamePath != nil {
+ result["name_path"] = string(*obj.NamePath)
+ }
+
+ if obj.NewKey != nil {
+ result["new_key"] = string(*obj.NewKey)
+ }
+
+ if obj.ObjectType != nil {
+ result["object_type"] = string(*obj.ObjectType)
+ }
+
+ if obj.ObjectVersion != nil {
+ result["object_version"] = string(*obj.ObjectVersion)
+ }
+
+ if obj.OldKey != nil {
+ result["old_key"] = string(*obj.OldKey)
+ }
+
+ result["resolution_action"] = string(obj.ResolutionAction)
+
+ if obj.TimeUpdatedInMillis != nil {
+ result["time_updated_in_millis"] = strconv.FormatInt(*obj.TimeUpdatedInMillis, 10)
+ }
+
+ return result
+}
+
+func ImportRequestSummaryToMap(obj oci_dataintegration.ImportRequestSummary) map[string]interface{} {
+ result := map[string]interface{}{}
+
+ if obj.BucketName != nil {
+ result["bucket"] = string(*obj.BucketName)
+ }
+
+ if obj.CreatedBy != nil {
+ result["created_by"] = string(*obj.CreatedBy)
+ }
+
+ result["error_messages"] = obj.ErrorMessages
+ result["error_messages"] = obj.ErrorMessages
+
+ if obj.FileName != nil {
+ result["file_name"] = string(*obj.FileName)
+ }
+
+ if obj.ImportConflictResolution != nil {
+ result["import_conflict_resolution"] = []interface{}{ImportConflictResolutionToMap(obj.ImportConflictResolution)}
+ }
+
+ importedObjects := []interface{}{}
+ for _, item := range obj.ImportedObjects {
+ importedObjects = append(importedObjects, ImportObjectMetadataSummaryToMap(item))
+ }
+ result["imported_objects"] = importedObjects
+
+ if obj.Key != nil {
+ result["key"] = string(*obj.Key)
+ }
+
+ if obj.Name != nil {
+ result["name"] = string(*obj.Name)
+ }
+
+ if obj.ObjectKeyForImport != nil {
+ result["object_key_for_import"] = string(*obj.ObjectKeyForImport)
+ }
+
+ if obj.ObjectStorageRegion != nil {
+ result["object_storage_region"] = string(*obj.ObjectStorageRegion)
+ }
+
+ if obj.ObjectStorageTenancyId != nil {
+ result["object_storage_tenancy_id"] = string(*obj.ObjectStorageTenancyId)
+ }
+
+ result["status"] = string(obj.Status)
+
+ if obj.TimeEndedInMillis != nil {
+ result["time_ended_in_millis"] = strconv.FormatInt(*obj.TimeEndedInMillis, 10)
+ }
+
+ if obj.TimeStartedInMillis != nil {
+ result["time_started_in_millis"] = strconv.FormatInt(*obj.TimeStartedInMillis, 10)
+ }
+
+ if obj.TotalImportedObjectCount != nil {
+ result["total_imported_object_count"] = int(*obj.TotalImportedObjectCount)
+ }
+
+ return result
+}
+
+func (s *DataintegrationWorkspaceImportRequestResourceCrud) mapToImportConflictResolution(fieldKeyFormat string) (oci_dataintegration.ImportConflictResolution, error) {
+ result := oci_dataintegration.ImportConflictResolution{}
+
+ if duplicatePrefix, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "duplicate_prefix")); ok {
+ tmp := duplicatePrefix.(string)
+ result.DuplicatePrefix = &tmp
+ }
+
+ if duplicateSuffix, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "duplicate_suffix")); ok {
+ tmp := duplicateSuffix.(string)
+ result.DuplicateSuffix = &tmp
+ }
+
+ if importConflictResolutionType, ok := s.D.GetOkExists(fmt.Sprintf(fieldKeyFormat, "import_conflict_resolution_type")); ok {
+ result.ImportConflictResolutionType = oci_dataintegration.ImportConflictResolutionImportConflictResolutionTypeEnum(importConflictResolutionType.(string))
+ }
+
+ return result, nil
+}
diff --git a/internal/service/dataintegration/dataintegration_workspace_import_requests_data_source.go b/internal/service/dataintegration/dataintegration_workspace_import_requests_data_source.go
new file mode 100644
index 00000000000..bddd990f846
--- /dev/null
+++ b/internal/service/dataintegration/dataintegration_workspace_import_requests_data_source.go
@@ -0,0 +1,171 @@
+// Copyright (c) 2017, 2023, Oracle and/or its affiliates. All rights reserved.
+// Licensed under the Mozilla Public License v2.0
+
+package dataintegration
+
+import (
+ "context"
+ "fmt"
+ "strconv"
+
+ "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
+ oci_dataintegration "github.com/oracle/oci-go-sdk/v65/dataintegration"
+
+ "github.com/oracle/terraform-provider-oci/internal/client"
+ "github.com/oracle/terraform-provider-oci/internal/tfresource"
+)
+
+func DataintegrationWorkspaceImportRequestsDataSource() *schema.Resource {
+ return &schema.Resource{
+ Read: readDataintegrationWorkspaceImportRequests,
+ Schema: map[string]*schema.Schema{
+ "filter": tfresource.DataSourceFiltersSchema(),
+ "import_status": {
+ Type: schema.TypeString,
+ Optional: true,
+ },
+ "name": {
+ Type: schema.TypeString,
+ Optional: true,
+ },
+ "projection": {
+ Type: schema.TypeString,
+ Optional: true,
+ },
+ "time_ended_in_millis": {
+ Type: schema.TypeString,
+ Optional: true,
+ },
+ "time_started_in_millis": {
+ Type: schema.TypeString,
+ Optional: true,
+ },
+ "workspace_id": {
+ Type: schema.TypeString,
+ Required: true,
+ },
+ "import_request_summary_collection": {
+ Type: schema.TypeList,
+ Computed: true,
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+
+ "items": {
+ Type: schema.TypeList,
+ Computed: true,
+ Elem: DataintegrationWorkspaceImportRequestResource(),
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func readDataintegrationWorkspaceImportRequests(d *schema.ResourceData, m interface{}) error {
+ sync := &DataintegrationWorkspaceImportRequestsDataSourceCrud{}
+ sync.D = d
+ sync.Client = m.(*client.OracleClients).DataIntegrationClient()
+
+ return tfresource.ReadResource(sync)
+}
+
+type DataintegrationWorkspaceImportRequestsDataSourceCrud struct {
+ D *schema.ResourceData
+ Client *oci_dataintegration.DataIntegrationClient
+ Res *oci_dataintegration.ListImportRequestsResponse
+}
+
+func (s *DataintegrationWorkspaceImportRequestsDataSourceCrud) VoidState() {
+ s.D.SetId("")
+}
+
+func (s *DataintegrationWorkspaceImportRequestsDataSourceCrud) Get() error {
+ request := oci_dataintegration.ListImportRequestsRequest{}
+
+ if importStatus, ok := s.D.GetOkExists("import_status"); ok {
+ request.ImportStatus = oci_dataintegration.ListImportRequestsImportStatusEnum(importStatus.(string))
+ }
+
+ if name, ok := s.D.GetOkExists("name"); ok {
+ tmp := name.(string)
+ request.Name = &tmp
+ }
+
+ if projection, ok := s.D.GetOkExists("projection"); ok {
+ request.Projection = oci_dataintegration.ListImportRequestsProjectionEnum(projection.(string))
+ }
+
+ if timeEndedInMillis, ok := s.D.GetOkExists("time_ended_in_millis"); ok {
+ tmp := timeEndedInMillis.(string)
+ tmpInt64, err := strconv.ParseInt(tmp, 10, 64)
+ if err != nil {
+ return fmt.Errorf("unable to convert timeEndedInMillis string: %s to an int64 and encountered error: %v", tmp, err)
+ }
+ request.TimeEndedInMillis = &tmpInt64
+ }
+
+ if timeStartedInMillis, ok := s.D.GetOkExists("time_started_in_millis"); ok {
+ tmp := timeStartedInMillis.(string)
+ tmpInt64, err := strconv.ParseInt(tmp, 10, 64)
+ if err != nil {
+ return fmt.Errorf("unable to convert timeStartedInMillis string: %s to an int64 and encountered error: %v", tmp, err)
+ }
+ request.TimeStartedInMillis = &tmpInt64
+ }
+
+ if workspaceId, ok := s.D.GetOkExists("workspace_id"); ok {
+ tmp := workspaceId.(string)
+ request.WorkspaceId = &tmp
+ }
+
+ request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(false, "dataintegration")
+
+ response, err := s.Client.ListImportRequests(context.Background(), request)
+ if err != nil {
+ return err
+ }
+
+ s.Res = &response
+ request.Page = s.Res.OpcNextPage
+
+ for request.Page != nil {
+ listResponse, err := s.Client.ListImportRequests(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 *DataintegrationWorkspaceImportRequestsDataSourceCrud) SetData() error {
+ if s.Res == nil {
+ return nil
+ }
+
+ s.D.SetId(tfresource.GenerateDataSourceHashID("DataintegrationWorkspaceImportRequestsDataSource-", DataintegrationWorkspaceImportRequestsDataSource(), s.D))
+ resources := []map[string]interface{}{}
+ workspaceImportRequest := map[string]interface{}{}
+
+ items := []interface{}{}
+ for _, item := range s.Res.Items {
+ items = append(items, ImportRequestSummaryToMap(item))
+ }
+ workspaceImportRequest["items"] = items
+
+ if f, fOk := s.D.GetOkExists("filter"); fOk {
+ items = tfresource.ApplyFiltersInCollection(f.(*schema.Set), items, DataintegrationWorkspaceImportRequestsDataSource().Schema["import_request_summary_collection"].Elem.(*schema.Resource).Schema)
+ workspaceImportRequest["items"] = items
+ }
+
+ resources = append(resources, workspaceImportRequest)
+ if err := s.D.Set("import_request_summary_collection", resources); err != nil {
+ return err
+ }
+
+ return nil
+}
diff --git a/internal/service/dataintegration/register_datasource.go b/internal/service/dataintegration/register_datasource.go
index 7f869757f22..6ed6bb69e9e 100644
--- a/internal/service/dataintegration/register_datasource.go
+++ b/internal/service/dataintegration/register_datasource.go
@@ -9,9 +9,13 @@ func RegisterDatasource() {
tfresource.RegisterDatasource("oci_dataintegration_workspace", DataintegrationWorkspaceDataSource())
tfresource.RegisterDatasource("oci_dataintegration_workspace_application", DataintegrationWorkspaceApplicationDataSource())
tfresource.RegisterDatasource("oci_dataintegration_workspace_applications", DataintegrationWorkspaceApplicationsDataSource())
- tfresource.RegisterDatasource("oci_dataintegration_workspaces", DataintegrationWorkspacesDataSource())
+ tfresource.RegisterDatasource("oci_dataintegration_workspace_export_request", DataintegrationWorkspaceExportRequestDataSource())
+ tfresource.RegisterDatasource("oci_dataintegration_workspace_export_requests", DataintegrationWorkspaceExportRequestsDataSource())
tfresource.RegisterDatasource("oci_dataintegration_workspace_folder", DataintegrationWorkspaceFolderDataSource())
tfresource.RegisterDatasource("oci_dataintegration_workspace_folders", DataintegrationWorkspaceFoldersDataSource())
+ tfresource.RegisterDatasource("oci_dataintegration_workspace_import_request", DataintegrationWorkspaceImportRequestDataSource())
+ tfresource.RegisterDatasource("oci_dataintegration_workspace_import_requests", DataintegrationWorkspaceImportRequestsDataSource())
tfresource.RegisterDatasource("oci_dataintegration_workspace_project", DataintegrationWorkspaceProjectDataSource())
tfresource.RegisterDatasource("oci_dataintegration_workspace_projects", DataintegrationWorkspaceProjectsDataSource())
+ tfresource.RegisterDatasource("oci_dataintegration_workspaces", DataintegrationWorkspacesDataSource())
}
diff --git a/internal/service/dataintegration/register_resource.go b/internal/service/dataintegration/register_resource.go
index b2e252c1f4c..13803f242ba 100644
--- a/internal/service/dataintegration/register_resource.go
+++ b/internal/service/dataintegration/register_resource.go
@@ -8,6 +8,8 @@ import "github.com/oracle/terraform-provider-oci/internal/tfresource"
func RegisterResource() {
tfresource.RegisterResource("oci_dataintegration_workspace", DataintegrationWorkspaceResource())
tfresource.RegisterResource("oci_dataintegration_workspace_application", DataintegrationWorkspaceApplicationResource())
+ tfresource.RegisterResource("oci_dataintegration_workspace_export_request", DataintegrationWorkspaceExportRequestResource())
tfresource.RegisterResource("oci_dataintegration_workspace_folder", DataintegrationWorkspaceFolderResource())
+ tfresource.RegisterResource("oci_dataintegration_workspace_import_request", DataintegrationWorkspaceImportRequestResource())
tfresource.RegisterResource("oci_dataintegration_workspace_project", DataintegrationWorkspaceProjectResource())
}
diff --git a/internal/service/marketplace/marketplace_listing_package_data_source.go b/internal/service/marketplace/marketplace_listing_package_data_source.go
index 6c26b1c0c42..3ff0c970e65 100644
--- a/internal/service/marketplace/marketplace_listing_package_data_source.go
+++ b/internal/service/marketplace/marketplace_listing_package_data_source.go
@@ -275,6 +275,40 @@ func (s *MarketplaceListingPackageDataSourceCrud) SetData() error {
s.D.SetId(tfresource.GenerateDataSourceHashID("MarketplaceListingPackageDataSource-", MarketplaceListingPackageDataSource(), s.D))
switch v := (s.Res.ListingPackage).(type) {
+ case oci_marketplace.ContainerListingPackage:
+ s.D.Set("package_type", "CONTAINER")
+
+ if v.Description != nil {
+ s.D.Set("description", *v.Description)
+ }
+
+ if v.ListingId != nil {
+ s.D.Set("listing_id", *v.ListingId)
+ }
+
+ if v.OperatingSystem != nil {
+ s.D.Set("operating_system", []interface{}{MarketplaceListingPackageOperatingSystemToMap(v.OperatingSystem)})
+ } else {
+ s.D.Set("operating_system", nil)
+ }
+
+ if v.Pricing != nil {
+ s.D.Set("pricing", []interface{}{MarketplaceListingPackagePricingModelToMap(v.Pricing)})
+ } else {
+ s.D.Set("pricing", nil)
+ }
+
+ if v.ResourceId != nil {
+ s.D.Set("resource_id", *v.ResourceId)
+ }
+
+ if v.TimeCreated != nil {
+ s.D.Set("time_created", v.TimeCreated.String())
+ }
+
+ if v.Version != nil {
+ s.D.Set("version", *v.Version)
+ }
case oci_marketplace.ImageListingPackage:
s.D.Set("package_type", "IMAGE")
@@ -324,6 +358,46 @@ func (s *MarketplaceListingPackageDataSourceCrud) SetData() error {
s.D.Set("time_created", v.TimeCreated.String())
}
+ if v.Version != nil {
+ s.D.Set("version", *v.Version)
+ }
+ case oci_marketplace.KubernetesListingPackage:
+ s.D.Set("package_type", "KUBERNETES")
+
+ if v.Description != nil {
+ s.D.Set("description", *v.Description)
+ }
+
+ if v.ListingId != nil {
+ s.D.Set("listing_id", *v.ListingId)
+ }
+
+ if v.OperatingSystem != nil {
+ s.D.Set("operating_system", []interface{}{MarketplaceListingPackageOperatingSystemToMap(v.OperatingSystem)})
+ } else {
+ s.D.Set("operating_system", nil)
+ }
+
+ if v.Pricing != nil {
+ s.D.Set("pricing", []interface{}{MarketplaceListingPackagePricingModelToMap(v.Pricing)})
+ } else {
+ s.D.Set("pricing", nil)
+ }
+
+ regions := []interface{}{}
+ for _, item := range v.Regions {
+ regions = append(regions, MarketplaceListingPackageRegionToMap(item))
+ }
+ s.D.Set("regions", regions)
+
+ if v.ResourceId != nil {
+ s.D.Set("resource_id", *v.ResourceId)
+ }
+
+ if v.TimeCreated != nil {
+ s.D.Set("time_created", v.TimeCreated.String())
+ }
+
if v.Version != nil {
s.D.Set("version", *v.Version)
}
@@ -360,6 +434,12 @@ func (s *MarketplaceListingPackageDataSourceCrud) SetData() error {
s.D.Set("pricing", nil)
}
+ regions := []interface{}{}
+ for _, item := range v.Regions {
+ regions = append(regions, MarketplaceListingPackageRegionToMap(item))
+ }
+ s.D.Set("regions", regions)
+
if v.ResourceId != nil {
s.D.Set("resource_id", *v.ResourceId)
}
diff --git a/internal/service/ocvp/ocvp_esxi_host_resource.go b/internal/service/ocvp/ocvp_esxi_host_resource.go
index 813a53f50e6..885bcf07457 100644
--- a/internal/service/ocvp/ocvp_esxi_host_resource.go
+++ b/internal/service/ocvp/ocvp_esxi_host_resource.go
@@ -33,17 +33,19 @@ func OcvpEsxiHostResource() *schema.Resource {
Delete: deleteOcvpEsxiHost,
Schema: map[string]*schema.Schema{
// Required
- "sddc_id": {
- Type: schema.TypeString,
- Required: true,
- ForceNew: true,
- },
// Optional
+ "sddc_id": {
+ Type: schema.TypeString,
+ Optional: true,
+ ForceNew: true,
+ Deprecated: tfresource.FieldDeprecatedForAnother("sddc_id", "cluster_id"),
+ },
"billing_donor_host_id": {
- Type: schema.TypeString,
- Optional: true,
- Computed: true,
+ Type: schema.TypeString,
+ Optional: true,
+ Computed: true,
+ Deprecated: "This 'billing_donor_host_id' argument has been deprecated and will be computed only.",
},
"capacity_reservation_id": {
Type: schema.TypeString,
@@ -62,13 +64,14 @@ func OcvpEsxiHostResource() *schema.Resource {
Optional: true,
Computed: true,
ForceNew: true,
- // API may update currect_sku in the backend, so need to suppress the diff if any change is made to current_sku after esxi_host creation
+ // API may update current_sku in the backend, so need to suppress the diff if any change is made to current_sku after esxi_host creation
DiffSuppressFunc: func(k, old, new string, d *schema.ResourceData) bool {
if old == "" && new != "" {
return false
}
return true
},
+ Deprecated: tfresource.FieldDeprecated("current_sku"),
},
"defined_tags": {
Type: schema.TypeMap,
@@ -83,10 +86,11 @@ func OcvpEsxiHostResource() *schema.Resource {
Computed: true,
},
"failed_esxi_host_id": {
- Type: schema.TypeString,
- Optional: true,
- Computed: true,
- ForceNew: true,
+ Type: schema.TypeString,
+ Optional: true,
+ Computed: true,
+ ForceNew: true,
+ Deprecated: "This 'failed_esxi_host_id' argument has been deprecated and will be computed only.",
},
"freeform_tags": {
Type: schema.TypeMap,
@@ -107,15 +111,17 @@ func OcvpEsxiHostResource() *schema.Resource {
ForceNew: true,
},
"next_sku": {
- Type: schema.TypeString,
- Optional: true,
- Computed: true,
+ Type: schema.TypeString,
+ Optional: true,
+ Computed: true,
+ Deprecated: tfresource.FieldDeprecated("next_sku"),
},
"non_upgraded_esxi_host_id": {
- Type: schema.TypeString,
- Optional: true,
- Computed: true,
- ForceNew: true,
+ Type: schema.TypeString,
+ Optional: true,
+ Computed: true,
+ ForceNew: true,
+ Deprecated: "This 'non_upgraded_esxi_host_id' argument has been deprecated and will be computed only.",
},
"swap_billing_host_id": {
Type: schema.TypeString,
diff --git a/internal/service/ocvp/ocvp_sddc_resource.go b/internal/service/ocvp/ocvp_sddc_resource.go
index 97215706c59..a63b9173fb6 100644
--- a/internal/service/ocvp/ocvp_sddc_resource.go
+++ b/internal/service/ocvp/ocvp_sddc_resource.go
@@ -43,55 +43,65 @@ func OcvpSddcResource() *schema.Resource {
Required: true,
},
"compute_availability_domain": {
- Type: schema.TypeString,
- Required: true,
- ForceNew: true,
+ Type: schema.TypeString,
+ Required: true,
+ ForceNew: true,
+ Deprecated: tfresource.FieldDeprecatedForAnother("compute_availability_domain", "initial_configuration"),
},
"esxi_hosts_count": {
- Type: schema.TypeInt,
- Required: true,
- ForceNew: true,
+ Type: schema.TypeInt,
+ Required: true,
+ ForceNew: true,
+ Deprecated: tfresource.FieldDeprecatedForAnother("esxi_hosts_count", "initial_configuration"),
},
"nsx_edge_uplink1vlan_id": {
- Type: schema.TypeString,
- Required: true,
+ Type: schema.TypeString,
+ Required: true,
+ Deprecated: tfresource.FieldDeprecatedForAnother("nsx_edge_uplink1vlan_id", "initial_configuration"),
},
"nsx_edge_uplink2vlan_id": {
- Type: schema.TypeString,
- Required: true,
+ Type: schema.TypeString,
+ Required: true,
+ Deprecated: tfresource.FieldDeprecatedForAnother("nsx_edge_uplink2vlan_id", "initial_configuration"),
},
"nsx_edge_vtep_vlan_id": {
- Type: schema.TypeString,
- Required: true,
+ Type: schema.TypeString,
+ Required: true,
+ Deprecated: tfresource.FieldDeprecatedForAnother("nsx_edge_vtep_vlan_id", "initial_configuration"),
},
"nsx_vtep_vlan_id": {
- Type: schema.TypeString,
- Required: true,
+ Type: schema.TypeString,
+ Required: true,
+ Deprecated: tfresource.FieldDeprecatedForAnother("nsx_vtep_vlan_id", "initial_configuration"),
},
"provisioning_subnet_id": {
- Type: schema.TypeString,
- Required: true,
- ForceNew: true,
+ Type: schema.TypeString,
+ Required: true,
+ ForceNew: true,
+ Deprecated: tfresource.FieldDeprecatedForAnother("provisioning_subnet_id", "initial_configuration"),
},
"ssh_authorized_keys": {
Type: schema.TypeString,
Required: true,
},
"vmotion_vlan_id": {
- Type: schema.TypeString,
- Required: true,
+ Type: schema.TypeString,
+ Required: true,
+ Deprecated: tfresource.FieldDeprecatedForAnother("vmotion_vlan_id", "initial_configuration"),
},
"vmware_software_version": {
Type: schema.TypeString,
Required: true,
},
"vsan_vlan_id": {
- Type: schema.TypeString,
- Required: true,
+ Type: schema.TypeString,
+ Required: true,
+ Deprecated: tfresource.FieldDeprecatedForAnother("vsan_vlan_id", "initial_configuration"),
},
"vsphere_vlan_id": {
- Type: schema.TypeString,
- Required: true,
+ Type: schema.TypeString,
+ Required: true,
+ Deprecated: tfresource.FieldDeprecatedForAnother("vsphere_vlan_id", "initial_configuration"),
},
// Optional
@@ -126,12 +136,14 @@ func OcvpSddcResource() *schema.Resource {
},
},
},
+ Deprecated: tfresource.FieldDeprecatedForAnother("datastores", "initial_configuration"),
},
"capacity_reservation_id": {
- Type: schema.TypeString,
- Optional: true,
- Computed: true,
- ForceNew: true,
+ Type: schema.TypeString,
+ Optional: true,
+ Computed: true,
+ ForceNew: true,
+ Deprecated: tfresource.FieldDeprecatedForAnother("capacity_reservation_id", "initial_configuration"),
},
"defined_tags": {
Type: schema.TypeMap,
@@ -152,9 +164,10 @@ func OcvpSddcResource() *schema.Resource {
Elem: schema.TypeString,
},
"hcx_vlan_id": {
- Type: schema.TypeString,
- Optional: true,
- Computed: true,
+ Type: schema.TypeString,
+ Optional: true,
+ Computed: true,
+ Deprecated: tfresource.FieldDeprecatedForAnother("hcx_vlan_id", "initial_configuration"),
},
"hcx_action": {
Type: schema.TypeString,
@@ -167,40 +180,46 @@ func OcvpSddcResource() *schema.Resource {
}, true),
},
"initial_host_ocpu_count": {
- Type: schema.TypeFloat,
- Optional: true,
- Computed: true,
- ForceNew: true,
+ Type: schema.TypeFloat,
+ Optional: true,
+ Computed: true,
+ ForceNew: true,
+ Deprecated: tfresource.FieldDeprecatedForAnother("initial_host_ocpu_count", "initial_configuration"),
},
"initial_host_shape_name": {
- Type: schema.TypeString,
- Optional: true,
- Computed: true,
- ForceNew: true,
+ Type: schema.TypeString,
+ Optional: true,
+ Computed: true,
+ ForceNew: true,
+ Deprecated: tfresource.FieldDeprecatedForAnother("initial_host_shape_name", "initial_configuration"),
},
"initial_sku": {
- Type: schema.TypeString,
- Optional: true,
- Computed: true,
- ForceNew: true,
+ Type: schema.TypeString,
+ Optional: true,
+ Computed: true,
+ ForceNew: true,
+ Deprecated: tfresource.FieldDeprecatedForAnother("initial_sku", "initial_configuration"),
},
"instance_display_name_prefix": {
- Type: schema.TypeString,
- Optional: true,
- Computed: true,
- ForceNew: true,
+ Type: schema.TypeString,
+ Optional: true,
+ Computed: true,
+ ForceNew: true,
+ Deprecated: tfresource.FieldDeprecatedForAnother("instance_display_name_prefix", "initial_configuration"),
},
"is_hcx_enabled": {
- Type: schema.TypeBool,
- Optional: true,
- Computed: true,
- ForceNew: true,
+ Type: schema.TypeBool,
+ Optional: true,
+ Computed: true,
+ ForceNew: true,
+ Deprecated: tfresource.FieldDeprecatedForAnother("is_hcx_enabled", "hcx_mode"),
},
"is_shielded_instance_enabled": {
- Type: schema.TypeBool,
- Optional: true,
- Computed: true,
- ForceNew: true,
+ Type: schema.TypeBool,
+ Optional: true,
+ Computed: true,
+ ForceNew: true,
+ Deprecated: tfresource.FieldDeprecatedForAnother("is_shielded_instance_enabled", "initial_configuration"),
},
"is_single_host_sddc": {
Type: schema.TypeBool,
@@ -209,18 +228,20 @@ func OcvpSddcResource() *schema.Resource {
ForceNew: true,
},
"provisioning_vlan_id": {
- Type: schema.TypeString,
- Optional: true,
- Computed: true,
+ Type: schema.TypeString,
+ Optional: true,
+ Computed: true,
+ Deprecated: tfresource.FieldDeprecatedForAnother("provisioning_vlan_id", "initial_configuration"),
},
"refresh_hcx_license_status": {
Type: schema.TypeBool,
Optional: true,
},
"replication_vlan_id": {
- Type: schema.TypeString,
- Optional: true,
- Computed: true,
+ Type: schema.TypeString,
+ Optional: true,
+ Computed: true,
+ Deprecated: tfresource.FieldDeprecatedForAnother("replication_vlan_id", "initial_configuration"),
},
"reserving_hcx_on_premise_license_keys": {
Type: schema.TypeList,
@@ -230,28 +251,32 @@ func OcvpSddcResource() *schema.Resource {
},
},
"workload_network_cidr": {
- Type: schema.TypeString,
- Optional: true,
- Computed: true,
- ForceNew: true,
+ Type: schema.TypeString,
+ Optional: true,
+ Computed: true,
+ ForceNew: true,
+ Deprecated: tfresource.FieldDeprecatedForAnother("workload_network_cidr", "initial_configuration"),
},
// Computed
"actual_esxi_hosts_count": {
- Type: schema.TypeInt,
- Computed: true,
+ Type: schema.TypeInt,
+ Computed: true,
+ Deprecated: tfresource.FieldDeprecatedForAnother("actual_esxi_hosts_count", "initial_configuration"),
},
"hcx_fqdn": {
Type: schema.TypeString,
Computed: true,
},
"hcx_initial_password": {
- Type: schema.TypeString,
- Computed: true,
+ Type: schema.TypeString,
+ Computed: true,
+ Deprecated: tfresource.FieldDeprecatedButSupportedThroughAnotherDataSource("hcx_initial_password", "ocvp_sddc_password"),
},
"hcx_on_prem_key": {
- Type: schema.TypeString,
- Computed: true,
+ Type: schema.TypeString,
+ Computed: true,
+ Deprecated: tfresource.FieldDeprecatedAndAvoidReferences("hcx_on_prem_key"),
},
"hcx_on_prem_licenses": {
Type: schema.TypeList,
@@ -283,8 +308,9 @@ func OcvpSddcResource() *schema.Resource {
Computed: true,
},
"is_hcx_enterprise_enabled": {
- Type: schema.TypeBool,
- Computed: true,
+ Type: schema.TypeBool,
+ Computed: true,
+ Deprecated: tfresource.FieldDeprecatedForAnother("is_hcx_enabled", "actual_hcx_mode"),
},
"is_hcx_pending_downgrade": {
Type: schema.TypeBool,
@@ -299,8 +325,9 @@ func OcvpSddcResource() *schema.Resource {
Computed: true,
},
"nsx_manager_initial_password": {
- Type: schema.TypeString,
- Computed: true,
+ Type: schema.TypeString,
+ Computed: true,
+ Deprecated: tfresource.FieldDeprecatedButSupportedThroughAnotherDataSource("nsx_manager_initial_password", "ocvp_sddc_password"),
},
"nsx_manager_private_ip_id": {
Type: schema.TypeString,
@@ -311,8 +338,9 @@ func OcvpSddcResource() *schema.Resource {
Computed: true,
},
"nsx_overlay_segment_name": {
- Type: schema.TypeString,
- Computed: true,
+ Type: schema.TypeString,
+ Computed: true,
+ Deprecated: tfresource.FieldDeprecatedAndAvoidReferences("nsx_overlay_segment_name"),
},
"state": {
Type: schema.TypeString,
@@ -354,14 +382,16 @@ func OcvpSddcResource() *schema.Resource {
},
},
},
+ Deprecated: tfresource.FieldDeprecatedButSupportedThroughAnotherResource("upgrade_licenses", "ocvp_cluster_resource"),
},
"vcenter_fqdn": {
Type: schema.TypeString,
Computed: true,
},
"vcenter_initial_password": {
- Type: schema.TypeString,
- Computed: true,
+ Type: schema.TypeString,
+ Computed: true,
+ Deprecated: tfresource.FieldDeprecatedButSupportedThroughAnotherDataSource("vcenter_initial_password", "ocvp_sddc_password"),
},
"vcenter_private_ip_id": {
Type: schema.TypeString,
@@ -372,8 +402,9 @@ func OcvpSddcResource() *schema.Resource {
Computed: true,
},
"vsphere_upgrade_guide": {
- Type: schema.TypeString,
- Computed: true,
+ Type: schema.TypeString,
+ Computed: true,
+ Deprecated: tfresource.FieldDeprecatedAndAvoidReferences("vsphere_upgrade_guide"),
},
"vsphere_upgrade_objects": {
Type: schema.TypeList,
@@ -395,6 +426,7 @@ func OcvpSddcResource() *schema.Resource {
},
},
},
+ Deprecated: tfresource.FieldDeprecatedButSupportedThroughAnotherResource("upgrade_licenses", "ocvp_cluster_resource"),
},
},
}
diff --git a/internal/service/ocvp/ocvp_supported_host_shapes_data_source.go b/internal/service/ocvp/ocvp_supported_host_shapes_data_source.go
index 1bf975421c4..f14d235c5ae 100644
--- a/internal/service/ocvp/ocvp_supported_host_shapes_data_source.go
+++ b/internal/service/ocvp/ocvp_supported_host_shapes_data_source.go
@@ -27,8 +27,9 @@ func OcvpSupportedHostShapesDataSource() *schema.Resource {
Optional: true,
},
"sddc_type": {
- Type: schema.TypeString,
- Optional: true,
+ Type: schema.TypeString,
+ Optional: true,
+ Deprecated: tfresource.FieldDeprecatedForAnother("sddc_type", "is_single_host_sddc_supported"),
},
"items": {
Type: schema.TypeList,
@@ -85,6 +86,7 @@ func OcvpSupportedHostShapesDataSource() *schema.Resource {
Elem: &schema.Schema{
Type: schema.TypeString,
},
+ Deprecated: tfresource.FieldDeprecatedForAnother("supported_sddc_types", "is_single_host_sddc_supported"),
},
"supported_vmware_software_versions": {
Type: schema.TypeList,
diff --git a/internal/service/ocvp/ocvp_supported_skus_data_source.go b/internal/service/ocvp/ocvp_supported_skus_data_source.go
index ef559e66f80..ffa5bcac851 100644
--- a/internal/service/ocvp/ocvp_supported_skus_data_source.go
+++ b/internal/service/ocvp/ocvp_supported_skus_data_source.go
@@ -44,6 +44,7 @@ func OcvpSupportedSkusDataSource() *schema.Resource {
},
},
},
+ DeprecationMessage: tfresource.DatasourceDeprecatedForAnother("oci_ocvp_supported_skus", "oci_ocvp_supported_commitments"),
}
}
diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/common/version.go b/vendor/github.com/oracle/oci-go-sdk/v65/common/version.go
index fdb40746954..69bf60c6dd5 100644
--- a/vendor/github.com/oracle/oci-go-sdk/v65/common/version.go
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/common/version.go
@@ -13,7 +13,7 @@ import (
const (
major = "65"
minor = "49"
- patch = "3"
+ patch = "4"
tag = ""
)
diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/core/capture_filter.go b/vendor/github.com/oracle/oci-go-sdk/v65/core/capture_filter.go
index 200512cfce5..85c1e6b7975 100644
--- a/vendor/github.com/oracle/oci-go-sdk/v65/core/capture_filter.go
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/core/capture_filter.go
@@ -58,6 +58,9 @@ type CaptureFilter struct {
// The set of rules governing what traffic a VTAP mirrors.
VtapCaptureFilterRules []VtapCaptureFilterRuleDetails `mandatory:"false" json:"vtapCaptureFilterRules"`
+
+ // The set of rules governing what traffic the VCN flow log collects.
+ FlowLogCaptureFilterRules []FlowLogCaptureFilterRuleDetails `mandatory:"false" json:"flowLogCaptureFilterRules"`
}
func (m CaptureFilter) String() string {
@@ -141,15 +144,18 @@ type CaptureFilterFilterTypeEnum string
// Set of constants representing the allowable values for CaptureFilterFilterTypeEnum
const (
- CaptureFilterFilterTypeVtap CaptureFilterFilterTypeEnum = "VTAP"
+ CaptureFilterFilterTypeVtap CaptureFilterFilterTypeEnum = "VTAP"
+ CaptureFilterFilterTypeFlowlog CaptureFilterFilterTypeEnum = "FLOWLOG"
)
var mappingCaptureFilterFilterTypeEnum = map[string]CaptureFilterFilterTypeEnum{
- "VTAP": CaptureFilterFilterTypeVtap,
+ "VTAP": CaptureFilterFilterTypeVtap,
+ "FLOWLOG": CaptureFilterFilterTypeFlowlog,
}
var mappingCaptureFilterFilterTypeEnumLowerCase = map[string]CaptureFilterFilterTypeEnum{
- "vtap": CaptureFilterFilterTypeVtap,
+ "vtap": CaptureFilterFilterTypeVtap,
+ "flowlog": CaptureFilterFilterTypeFlowlog,
}
// GetCaptureFilterFilterTypeEnumValues Enumerates the set of values for CaptureFilterFilterTypeEnum
@@ -165,6 +171,7 @@ func GetCaptureFilterFilterTypeEnumValues() []CaptureFilterFilterTypeEnum {
func GetCaptureFilterFilterTypeEnumStringValues() []string {
return []string{
"VTAP",
+ "FLOWLOG",
}
}
diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/core/create_capture_filter_details.go b/vendor/github.com/oracle/oci-go-sdk/v65/core/create_capture_filter_details.go
index 5ff6cabb341..d8948e64379 100644
--- a/vendor/github.com/oracle/oci-go-sdk/v65/core/create_capture_filter_details.go
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/core/create_capture_filter_details.go
@@ -46,6 +46,9 @@ type CreateCaptureFilterDetails struct {
// The set of rules governing what traffic a VTAP mirrors.
VtapCaptureFilterRules []VtapCaptureFilterRuleDetails `mandatory:"false" json:"vtapCaptureFilterRules"`
+
+ // The set of rules governing what traffic the VCN flow log collects.
+ FlowLogCaptureFilterRules []FlowLogCaptureFilterRuleDetails `mandatory:"false" json:"flowLogCaptureFilterRules"`
}
func (m CreateCaptureFilterDetails) String() string {
@@ -72,15 +75,18 @@ type CreateCaptureFilterDetailsFilterTypeEnum string
// Set of constants representing the allowable values for CreateCaptureFilterDetailsFilterTypeEnum
const (
- CreateCaptureFilterDetailsFilterTypeVtap CreateCaptureFilterDetailsFilterTypeEnum = "VTAP"
+ CreateCaptureFilterDetailsFilterTypeVtap CreateCaptureFilterDetailsFilterTypeEnum = "VTAP"
+ CreateCaptureFilterDetailsFilterTypeFlowlog CreateCaptureFilterDetailsFilterTypeEnum = "FLOWLOG"
)
var mappingCreateCaptureFilterDetailsFilterTypeEnum = map[string]CreateCaptureFilterDetailsFilterTypeEnum{
- "VTAP": CreateCaptureFilterDetailsFilterTypeVtap,
+ "VTAP": CreateCaptureFilterDetailsFilterTypeVtap,
+ "FLOWLOG": CreateCaptureFilterDetailsFilterTypeFlowlog,
}
var mappingCreateCaptureFilterDetailsFilterTypeEnumLowerCase = map[string]CreateCaptureFilterDetailsFilterTypeEnum{
- "vtap": CreateCaptureFilterDetailsFilterTypeVtap,
+ "vtap": CreateCaptureFilterDetailsFilterTypeVtap,
+ "flowlog": CreateCaptureFilterDetailsFilterTypeFlowlog,
}
// GetCreateCaptureFilterDetailsFilterTypeEnumValues Enumerates the set of values for CreateCaptureFilterDetailsFilterTypeEnum
@@ -96,6 +102,7 @@ func GetCreateCaptureFilterDetailsFilterTypeEnumValues() []CreateCaptureFilterDe
func GetCreateCaptureFilterDetailsFilterTypeEnumStringValues() []string {
return []string{
"VTAP",
+ "FLOWLOG",
}
}
diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/core/flow_log_capture_filter_rule_details.go b/vendor/github.com/oracle/oci-go-sdk/v65/core/flow_log_capture_filter_rule_details.go
new file mode 100644
index 00000000000..582d06a845f
--- /dev/null
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/core/flow_log_capture_filter_rule_details.go
@@ -0,0 +1,167 @@
+// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved.
+// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache 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 (
+ "fmt"
+ "github.com/oracle/oci-go-sdk/v65/common"
+ "strings"
+)
+
+// FlowLogCaptureFilterRuleDetails The set of rules governing what traffic the VCN flow log collects.
+type FlowLogCaptureFilterRuleDetails struct {
+
+ // Indicates whether a VCN flow log capture filter rule is enabled.
+ IsEnabled *bool `mandatory:"false" json:"isEnabled"`
+
+ // A lower number indicates a higher priority, range 0-9. Each rule must have a distinct priority.
+ Priority *int `mandatory:"false" json:"priority"`
+
+ // Sampling interval as `1` of `X`, where `X` is an integer not greater than `100000`.
+ SamplingRate *int `mandatory:"false" json:"samplingRate"`
+
+ // Traffic from this CIDR will be captured in the VCN flow log.
+ SourceCidr *string `mandatory:"false" json:"sourceCidr"`
+
+ // Traffic to this CIDR will be captured in the VCN flow log.
+ DestinationCidr *string `mandatory:"false" json:"destinationCidr"`
+
+ // The transport protocol the filter uses.
+ Protocol *string `mandatory:"false" json:"protocol"`
+
+ IcmpOptions *IcmpOptions `mandatory:"false" json:"icmpOptions"`
+
+ TcpOptions *TcpOptions `mandatory:"false" json:"tcpOptions"`
+
+ UdpOptions *UdpOptions `mandatory:"false" json:"udpOptions"`
+
+ // Type or types of VCN flow logs to store. `ALL` includes records for both accepted traffic and
+ // rejected traffic.
+ FlowLogType FlowLogCaptureFilterRuleDetailsFlowLogTypeEnum `mandatory:"false" json:"flowLogType,omitempty"`
+
+ // Include or exclude a `ruleAction` object.
+ RuleAction FlowLogCaptureFilterRuleDetailsRuleActionEnum `mandatory:"false" json:"ruleAction,omitempty"`
+}
+
+func (m FlowLogCaptureFilterRuleDetails) String() string {
+ return common.PointerString(m)
+}
+
+// ValidateEnumValue returns an error when providing an unsupported enum value
+// This function is being called during constructing API request process
+// Not recommended for calling this function directly
+func (m FlowLogCaptureFilterRuleDetails) ValidateEnumValue() (bool, error) {
+ errMessage := []string{}
+
+ if _, ok := GetMappingFlowLogCaptureFilterRuleDetailsFlowLogTypeEnum(string(m.FlowLogType)); !ok && m.FlowLogType != "" {
+ errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for FlowLogType: %s. Supported values are: %s.", m.FlowLogType, strings.Join(GetFlowLogCaptureFilterRuleDetailsFlowLogTypeEnumStringValues(), ",")))
+ }
+ if _, ok := GetMappingFlowLogCaptureFilterRuleDetailsRuleActionEnum(string(m.RuleAction)); !ok && m.RuleAction != "" {
+ errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for RuleAction: %s. Supported values are: %s.", m.RuleAction, strings.Join(GetFlowLogCaptureFilterRuleDetailsRuleActionEnumStringValues(), ",")))
+ }
+ if len(errMessage) > 0 {
+ return true, fmt.Errorf(strings.Join(errMessage, "\n"))
+ }
+ return false, nil
+}
+
+// FlowLogCaptureFilterRuleDetailsFlowLogTypeEnum Enum with underlying type: string
+type FlowLogCaptureFilterRuleDetailsFlowLogTypeEnum string
+
+// Set of constants representing the allowable values for FlowLogCaptureFilterRuleDetailsFlowLogTypeEnum
+const (
+ FlowLogCaptureFilterRuleDetailsFlowLogTypeAll FlowLogCaptureFilterRuleDetailsFlowLogTypeEnum = "ALL"
+ FlowLogCaptureFilterRuleDetailsFlowLogTypeReject FlowLogCaptureFilterRuleDetailsFlowLogTypeEnum = "REJECT"
+ FlowLogCaptureFilterRuleDetailsFlowLogTypeAccept FlowLogCaptureFilterRuleDetailsFlowLogTypeEnum = "ACCEPT"
+)
+
+var mappingFlowLogCaptureFilterRuleDetailsFlowLogTypeEnum = map[string]FlowLogCaptureFilterRuleDetailsFlowLogTypeEnum{
+ "ALL": FlowLogCaptureFilterRuleDetailsFlowLogTypeAll,
+ "REJECT": FlowLogCaptureFilterRuleDetailsFlowLogTypeReject,
+ "ACCEPT": FlowLogCaptureFilterRuleDetailsFlowLogTypeAccept,
+}
+
+var mappingFlowLogCaptureFilterRuleDetailsFlowLogTypeEnumLowerCase = map[string]FlowLogCaptureFilterRuleDetailsFlowLogTypeEnum{
+ "all": FlowLogCaptureFilterRuleDetailsFlowLogTypeAll,
+ "reject": FlowLogCaptureFilterRuleDetailsFlowLogTypeReject,
+ "accept": FlowLogCaptureFilterRuleDetailsFlowLogTypeAccept,
+}
+
+// GetFlowLogCaptureFilterRuleDetailsFlowLogTypeEnumValues Enumerates the set of values for FlowLogCaptureFilterRuleDetailsFlowLogTypeEnum
+func GetFlowLogCaptureFilterRuleDetailsFlowLogTypeEnumValues() []FlowLogCaptureFilterRuleDetailsFlowLogTypeEnum {
+ values := make([]FlowLogCaptureFilterRuleDetailsFlowLogTypeEnum, 0)
+ for _, v := range mappingFlowLogCaptureFilterRuleDetailsFlowLogTypeEnum {
+ values = append(values, v)
+ }
+ return values
+}
+
+// GetFlowLogCaptureFilterRuleDetailsFlowLogTypeEnumStringValues Enumerates the set of values in String for FlowLogCaptureFilterRuleDetailsFlowLogTypeEnum
+func GetFlowLogCaptureFilterRuleDetailsFlowLogTypeEnumStringValues() []string {
+ return []string{
+ "ALL",
+ "REJECT",
+ "ACCEPT",
+ }
+}
+
+// GetMappingFlowLogCaptureFilterRuleDetailsFlowLogTypeEnum performs case Insensitive comparison on enum value and return the desired enum
+func GetMappingFlowLogCaptureFilterRuleDetailsFlowLogTypeEnum(val string) (FlowLogCaptureFilterRuleDetailsFlowLogTypeEnum, bool) {
+ enum, ok := mappingFlowLogCaptureFilterRuleDetailsFlowLogTypeEnumLowerCase[strings.ToLower(val)]
+ return enum, ok
+}
+
+// FlowLogCaptureFilterRuleDetailsRuleActionEnum Enum with underlying type: string
+type FlowLogCaptureFilterRuleDetailsRuleActionEnum string
+
+// Set of constants representing the allowable values for FlowLogCaptureFilterRuleDetailsRuleActionEnum
+const (
+ FlowLogCaptureFilterRuleDetailsRuleActionInclude FlowLogCaptureFilterRuleDetailsRuleActionEnum = "INCLUDE"
+ FlowLogCaptureFilterRuleDetailsRuleActionExclude FlowLogCaptureFilterRuleDetailsRuleActionEnum = "EXCLUDE"
+)
+
+var mappingFlowLogCaptureFilterRuleDetailsRuleActionEnum = map[string]FlowLogCaptureFilterRuleDetailsRuleActionEnum{
+ "INCLUDE": FlowLogCaptureFilterRuleDetailsRuleActionInclude,
+ "EXCLUDE": FlowLogCaptureFilterRuleDetailsRuleActionExclude,
+}
+
+var mappingFlowLogCaptureFilterRuleDetailsRuleActionEnumLowerCase = map[string]FlowLogCaptureFilterRuleDetailsRuleActionEnum{
+ "include": FlowLogCaptureFilterRuleDetailsRuleActionInclude,
+ "exclude": FlowLogCaptureFilterRuleDetailsRuleActionExclude,
+}
+
+// GetFlowLogCaptureFilterRuleDetailsRuleActionEnumValues Enumerates the set of values for FlowLogCaptureFilterRuleDetailsRuleActionEnum
+func GetFlowLogCaptureFilterRuleDetailsRuleActionEnumValues() []FlowLogCaptureFilterRuleDetailsRuleActionEnum {
+ values := make([]FlowLogCaptureFilterRuleDetailsRuleActionEnum, 0)
+ for _, v := range mappingFlowLogCaptureFilterRuleDetailsRuleActionEnum {
+ values = append(values, v)
+ }
+ return values
+}
+
+// GetFlowLogCaptureFilterRuleDetailsRuleActionEnumStringValues Enumerates the set of values in String for FlowLogCaptureFilterRuleDetailsRuleActionEnum
+func GetFlowLogCaptureFilterRuleDetailsRuleActionEnumStringValues() []string {
+ return []string{
+ "INCLUDE",
+ "EXCLUDE",
+ }
+}
+
+// GetMappingFlowLogCaptureFilterRuleDetailsRuleActionEnum performs case Insensitive comparison on enum value and return the desired enum
+func GetMappingFlowLogCaptureFilterRuleDetailsRuleActionEnum(val string) (FlowLogCaptureFilterRuleDetailsRuleActionEnum, bool) {
+ enum, ok := mappingFlowLogCaptureFilterRuleDetailsRuleActionEnumLowerCase[strings.ToLower(val)]
+ return enum, ok
+}
diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/core/list_capture_filters_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/core/list_capture_filters_request_response.go
index 7f29120c1ce..6d96d21cf34 100644
--- a/vendor/github.com/oracle/oci-go-sdk/v65/core/list_capture_filters_request_response.go
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/core/list_capture_filters_request_response.go
@@ -56,6 +56,9 @@ type ListCaptureFiltersRequest struct {
// The state value is case-insensitive.
LifecycleState CaptureFilterLifecycleStateEnum `mandatory:"false" contributesTo:"query" name:"lifecycleState" omitEmpty:"true"`
+ // A filter to only return resources that match the given capture `filterType`. The `filterType` value is the string representation of enum - `VTAP`, `FLOWLOG`.
+ FilterType CaptureFilterFilterTypeEnum `mandatory:"false" contributesTo:"query" name:"filterType" 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
@@ -101,6 +104,9 @@ func (request ListCaptureFiltersRequest) ValidateEnumValue() (bool, error) {
if _, ok := GetMappingCaptureFilterLifecycleStateEnum(string(request.LifecycleState)); !ok && request.LifecycleState != "" {
errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for LifecycleState: %s. Supported values are: %s.", request.LifecycleState, strings.Join(GetCaptureFilterLifecycleStateEnumStringValues(), ",")))
}
+ if _, ok := GetMappingCaptureFilterFilterTypeEnum(string(request.FilterType)); !ok && request.FilterType != "" {
+ errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for FilterType: %s. Supported values are: %s.", request.FilterType, strings.Join(GetCaptureFilterFilterTypeEnumStringValues(), ",")))
+ }
if len(errMessage) > 0 {
return true, fmt.Errorf(strings.Join(errMessage, "\n"))
}
diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/core/update_capture_filter_details.go b/vendor/github.com/oracle/oci-go-sdk/v65/core/update_capture_filter_details.go
index d197f076ab0..459dbfe76fe 100644
--- a/vendor/github.com/oracle/oci-go-sdk/v65/core/update_capture_filter_details.go
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/core/update_capture_filter_details.go
@@ -36,6 +36,9 @@ type UpdateCaptureFilterDetails struct {
// The set of rules governing what traffic a VTAP mirrors.
VtapCaptureFilterRules []VtapCaptureFilterRuleDetails `mandatory:"false" json:"vtapCaptureFilterRules"`
+ // The set of rules governing what traffic the VCN flow log collects.
+ FlowLogCaptureFilterRules []FlowLogCaptureFilterRuleDetails `mandatory:"false" json:"flowLogCaptureFilterRules"`
+
// 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"}`
diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/database/autonomous_vm_cluster.go b/vendor/github.com/oracle/oci-go-sdk/v65/database/autonomous_vm_cluster.go
index 88149a79c07..3272f31bfcb 100644
--- a/vendor/github.com/oracle/oci-go-sdk/v65/database/autonomous_vm_cluster.go
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/database/autonomous_vm_cluster.go
@@ -80,6 +80,30 @@ type AutonomousVmCluster struct {
// The OCID (https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm) of the next maintenance run.
NextMaintenanceRunId *string `mandatory:"false" json:"nextMaintenanceRunId"`
+ // The percentage of total number of CPUs used in an Autonomous VM Cluster.
+ CpuPercentage *float32 `mandatory:"false" json:"cpuPercentage"`
+
+ // The percentage of the data storage used for the Autonomous Databases in an Autonomous VM Cluster.
+ AutonomousDataStoragePercentage *float32 `mandatory:"false" json:"autonomousDataStoragePercentage"`
+
+ // The number of CPUs provisioned in an Autonomous VM Cluster.
+ ProvisionedCpus *float32 `mandatory:"false" json:"provisionedCpus"`
+
+ // The total data disk group size for Autonomous Databases, in TBs.
+ TotalAutonomousDataStorageInTBs *float32 `mandatory:"false" json:"totalAutonomousDataStorageInTBs"`
+
+ // The number of CPUs reserved in an Autonomous VM Cluster.
+ ReservedCpus *float32 `mandatory:"false" json:"reservedCpus"`
+
+ // The number of provisionable Autonomous Container Databases in an Autonomous VM Cluster.
+ ProvisionableAutonomousContainerDatabases *int `mandatory:"false" json:"provisionableAutonomousContainerDatabases"`
+
+ // The number of provisioned Autonomous Container Databases in an Autonomous VM Cluster.
+ ProvisionedAutonomousContainerDatabases *int `mandatory:"false" json:"provisionedAutonomousContainerDatabases"`
+
+ // The number of non-provisionable Autonomous Container Databases in an Autonomous VM Cluster.
+ NonProvisionableAutonomousContainerDatabases *int `mandatory:"false" json:"nonProvisionableAutonomousContainerDatabases"`
+
// The memory allocated in GBs.
MemorySizeInGBs *int `mandatory:"false" json:"memorySizeInGBs"`
diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/database/autonomous_vm_cluster_resource_usage.go b/vendor/github.com/oracle/oci-go-sdk/v65/database/autonomous_vm_cluster_resource_usage.go
new file mode 100644
index 00000000000..8dcf29570c2
--- /dev/null
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/database/autonomous_vm_cluster_resource_usage.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.
+
+// Database Service API
+//
+// The API for the Database Service. Use this API to manage resources such as databases and DB Systems. For more information, see Overview of the Database Service (https://docs.cloud.oracle.com/iaas/Content/Database/Concepts/databaseoverview.htm).
+//
+
+package database
+
+import (
+ "fmt"
+ "github.com/oracle/oci-go-sdk/v65/common"
+ "strings"
+)
+
+// AutonomousVmClusterResourceUsage Autonomous VM Cluster usage details, including the Autonomous Container Databases usage.
+type AutonomousVmClusterResourceUsage struct {
+
+ // The user-friendly name for the Autonomous VM cluster. The name does not need to be unique.
+ DisplayName *string `mandatory:"true" json:"displayName"`
+
+ // The OCID (https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm) of the Autonomous VM cluster.
+ Id *string `mandatory:"false" json:"id"`
+
+ // The data disk group size allocated for Autonomous Databases, in TBs.
+ AutonomousDataStorageSizeInTBs *float32 `mandatory:"false" json:"autonomousDataStorageSizeInTBs"`
+
+ // The local node storage allocated in GBs.
+ DbNodeStorageSizeInGBs *int `mandatory:"false" json:"dbNodeStorageSizeInGBs"`
+
+ // The memory allocated in GBs.
+ MemorySizeInGBs *int `mandatory:"false" json:"memorySizeInGBs"`
+
+ // The total number of Autonomous Container Databases that can be created.
+ TotalContainerDatabases *int `mandatory:"false" json:"totalContainerDatabases"`
+
+ // The data disk group size available for Autonomous Databases, in TBs.
+ AvailableAutonomousDataStorageSizeInTBs *float32 `mandatory:"false" json:"availableAutonomousDataStorageSizeInTBs"`
+
+ // The data disk group size used for Autonomous Databases, in TBs.
+ UsedAutonomousDataStorageSizeInTBs *float32 `mandatory:"false" json:"usedAutonomousDataStorageSizeInTBs"`
+
+ // If true, database backup on local Exadata storage is configured for the Autonomous VM cluster. If false, database backup on local Exadata storage is not available in the Autonomous VM cluster.
+ IsLocalBackupEnabled *bool `mandatory:"false" json:"isLocalBackupEnabled"`
+
+ // Total exadata storage allocated for the Autonomous VM Cluster. DATA + RECOVERY + SPARSE + any overhead in TBs.
+ ExadataStorageInTBs *float64 `mandatory:"false" json:"exadataStorageInTBs"`
+
+ // The amount of memory (in GBs) to be enabled per each CPU core.
+ MemoryPerOracleComputeUnitInGBs *int `mandatory:"false" json:"memoryPerOracleComputeUnitInGBs"`
+
+ // The number of CPU cores enabled on the Autonomous VM cluster.
+ TotalCpus *float32 `mandatory:"false" json:"totalCpus"`
+
+ // The number of CPU cores alloted to the Autonomous Container Databases in an Autonomous VM cluster.
+ UsedCpus *float32 `mandatory:"false" json:"usedCpus"`
+
+ // The number of CPU cores available.
+ AvailableCpus *float32 `mandatory:"false" json:"availableCpus"`
+
+ // CPU cores that continue to be included in the count of OCPUs available to the
+ // Autonomous Container Database even after one of its Autonomous Database is terminated or scaled down.
+ // You can release them to the available OCPUs at its parent AVMC level by restarting the Autonomous Container Database.
+ ReclaimableCpus *float32 `mandatory:"false" json:"reclaimableCpus"`
+
+ // The number of CPUs provisioned in an Autonomous VM Cluster.
+ ProvisionedCpus *float32 `mandatory:"false" json:"provisionedCpus"`
+
+ // The number of CPUs reserved in an Autonomous VM Cluster.
+ ReservedCpus *float32 `mandatory:"false" json:"reservedCpus"`
+
+ // The number of provisionable Autonomous Container Databases in an Autonomous VM Cluster.
+ ProvisionableAutonomousContainerDatabases *int `mandatory:"false" json:"provisionableAutonomousContainerDatabases"`
+
+ // The number of provisioned Autonomous Container Databases in an Autonomous VM Cluster.
+ ProvisionedAutonomousContainerDatabases *int `mandatory:"false" json:"provisionedAutonomousContainerDatabases"`
+
+ // The number of non-provisionable Autonomous Container Databases in an Autonomous VM Cluster.
+ NonProvisionableAutonomousContainerDatabases *int `mandatory:"false" json:"nonProvisionableAutonomousContainerDatabases"`
+
+ // List of autonomous vm cluster resource usages.
+ AutonomousVmResourceUsage []AutonomousVmResourceUsage `mandatory:"false" json:"autonomousVmResourceUsage"`
+}
+
+func (m AutonomousVmClusterResourceUsage) String() string {
+ return common.PointerString(m)
+}
+
+// ValidateEnumValue returns an error when providing an unsupported enum value
+// This function is being called during constructing API request process
+// Not recommended for calling this function directly
+func (m AutonomousVmClusterResourceUsage) 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/database/autonomous_vm_cluster_summary.go b/vendor/github.com/oracle/oci-go-sdk/v65/database/autonomous_vm_cluster_summary.go
index 927d49a2ea8..27be293f9df 100644
--- a/vendor/github.com/oracle/oci-go-sdk/v65/database/autonomous_vm_cluster_summary.go
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/database/autonomous_vm_cluster_summary.go
@@ -80,6 +80,30 @@ type AutonomousVmClusterSummary struct {
// The OCID (https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm) of the next maintenance run.
NextMaintenanceRunId *string `mandatory:"false" json:"nextMaintenanceRunId"`
+ // The percentage of total number of CPUs used in an Autonomous VM Cluster.
+ CpuPercentage *float32 `mandatory:"false" json:"cpuPercentage"`
+
+ // The percentage of the data storage used for the Autonomous Databases in an Autonomous VM Cluster.
+ AutonomousDataStoragePercentage *float32 `mandatory:"false" json:"autonomousDataStoragePercentage"`
+
+ // The number of CPUs provisioned in an Autonomous VM Cluster.
+ ProvisionedCpus *float32 `mandatory:"false" json:"provisionedCpus"`
+
+ // The total data disk group size for Autonomous Databases, in TBs.
+ TotalAutonomousDataStorageInTBs *float32 `mandatory:"false" json:"totalAutonomousDataStorageInTBs"`
+
+ // The number of CPUs reserved in an Autonomous VM Cluster.
+ ReservedCpus *float32 `mandatory:"false" json:"reservedCpus"`
+
+ // The number of provisionable Autonomous Container Databases in an Autonomous VM Cluster.
+ ProvisionableAutonomousContainerDatabases *int `mandatory:"false" json:"provisionableAutonomousContainerDatabases"`
+
+ // The number of provisioned Autonomous Container Databases in an Autonomous VM Cluster.
+ ProvisionedAutonomousContainerDatabases *int `mandatory:"false" json:"provisionedAutonomousContainerDatabases"`
+
+ // The number of non-provisionable Autonomous Container Databases in an Autonomous VM Cluster.
+ NonProvisionableAutonomousContainerDatabases *int `mandatory:"false" json:"nonProvisionableAutonomousContainerDatabases"`
+
// The memory allocated in GBs.
MemorySizeInGBs *int `mandatory:"false" json:"memorySizeInGBs"`
diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/database/convert_to_regular_pluggable_database_details.go b/vendor/github.com/oracle/oci-go-sdk/v65/database/convert_to_regular_pluggable_database_details.go
new file mode 100644
index 00000000000..f501a1ee358
--- /dev/null
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/database/convert_to_regular_pluggable_database_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.
+
+// Database Service API
+//
+// The API for the Database Service. Use this API to manage resources such as databases and DB Systems. For more information, see Overview of the Database Service (https://docs.cloud.oracle.com/iaas/Content/Database/Concepts/databaseoverview.htm).
+//
+
+package database
+
+import (
+ "fmt"
+ "github.com/oracle/oci-go-sdk/v65/common"
+ "strings"
+)
+
+// ConvertToRegularPluggableDatabaseDetails Parameters for converting Refreshable Clone Pluggable Database into Regular Pluggable Database.
+type ConvertToRegularPluggableDatabaseDetails struct {
+
+ // Indicates whether to take Pluggable Database Backup after the operation.
+ ShouldCreatePdbBackup *bool `mandatory:"false" json:"shouldCreatePdbBackup"`
+
+ // The DB system administrator password of the Container Database.
+ ContainerDatabaseAdminPassword *string `mandatory:"false" json:"containerDatabaseAdminPassword"`
+
+ // The existing TDE wallet password of the Container Database.
+ TdeWalletPassword *string `mandatory:"false" json:"tdeWalletPassword"`
+}
+
+func (m ConvertToRegularPluggableDatabaseDetails) String() string {
+ return common.PointerString(m)
+}
+
+// ValidateEnumValue returns an error when providing an unsupported enum value
+// This function is being called during constructing API request process
+// Not recommended for calling this function directly
+func (m ConvertToRegularPluggableDatabaseDetails) 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/database/convert_to_regular_pluggable_database_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/database/convert_to_regular_pluggable_database_request_response.go
new file mode 100644
index 00000000000..930bc3eb094
--- /dev/null
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/database/convert_to_regular_pluggable_database_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 database
+
+import (
+ "fmt"
+ "github.com/oracle/oci-go-sdk/v65/common"
+ "net/http"
+ "strings"
+)
+
+// ConvertToRegularPluggableDatabaseRequest wrapper for the ConvertToRegularPluggableDatabase operation
+//
+// # See also
+//
+// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/database/ConvertToRegularPluggableDatabase.go.html to see an example of how to use ConvertToRegularPluggableDatabaseRequest.
+type ConvertToRegularPluggableDatabaseRequest struct {
+
+ // Request to convert a Refreshable clone pluggable database (PDB) to a Regular pluggable database.
+ ConvertToRegularPluggableDatabaseDetails `contributesTo:"body"`
+
+ // The database OCID (https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm).
+ PluggableDatabaseId *string `mandatory:"true" contributesTo:"path" name:"pluggableDatabaseId"`
+
+ // 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 identifier for the request.
+ 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
+ // may be 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 ConvertToRegularPluggableDatabaseRequest) String() string {
+ return common.PointerString(request)
+}
+
+// HTTPRequest implements the OCIRequest interface
+func (request ConvertToRegularPluggableDatabaseRequest) 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 ConvertToRegularPluggableDatabaseRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) {
+
+ return nil, false
+
+}
+
+// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy.
+func (request ConvertToRegularPluggableDatabaseRequest) 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 ConvertToRegularPluggableDatabaseRequest) ValidateEnumValue() (bool, error) {
+ errMessage := []string{}
+ if len(errMessage) > 0 {
+ return true, fmt.Errorf(strings.Join(errMessage, "\n"))
+ }
+ return false, nil
+}
+
+// ConvertToRegularPluggableDatabaseResponse wrapper for the ConvertToRegularPluggableDatabase operation
+type ConvertToRegularPluggableDatabaseResponse struct {
+
+ // The underlying http response
+ RawResponse *http.Response
+
+ // The PluggableDatabase instance
+ PluggableDatabase `presentIn:"body"`
+
+ // The OCID (https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm) of the work request. Multiple OCID values are returned in a comma-separated list. Use GetWorkRequest with a work request OCID to track the status of the request.
+ OpcWorkRequestId *string `presentIn:"header" name:"opc-work-request-id"`
+
+ // 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 ConvertToRegularPluggableDatabaseResponse) String() string {
+ return common.PointerString(response)
+}
+
+// HTTPResponse implements the OCIResponse interface
+func (response ConvertToRegularPluggableDatabaseResponse) HTTPResponse() *http.Response {
+ return response.RawResponse
+}
diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/database/create_database_from_another_database_details.go b/vendor/github.com/oracle/oci-go-sdk/v65/database/create_database_from_another_database_details.go
index 1060e460c47..138b2940a3b 100644
--- a/vendor/github.com/oracle/oci-go-sdk/v65/database/create_database_from_another_database_details.go
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/database/create_database_from_another_database_details.go
@@ -35,6 +35,9 @@ type CreateDatabaseFromAnotherDatabaseDetails struct {
// The point in time of the original database from which the new database is created. If not specifed, the latest backup is used to create the database.
TimeStampForPointInTimeRecovery *common.SDKTime `mandatory:"false" json:"timeStampForPointInTimeRecovery"`
+
+ // The list of pluggable databases that needs to be restored into new database.
+ PluggableDatabases []string `mandatory:"false" json:"pluggableDatabases"`
}
func (m CreateDatabaseFromAnotherDatabaseDetails) String() string {
diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/database/create_database_from_backup_details.go b/vendor/github.com/oracle/oci-go-sdk/v65/database/create_database_from_backup_details.go
index d721dcac074..f32029b64c7 100644
--- a/vendor/github.com/oracle/oci-go-sdk/v65/database/create_database_from_backup_details.go
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/database/create_database_from_backup_details.go
@@ -35,6 +35,9 @@ type CreateDatabaseFromBackupDetails struct {
// Specifies a prefix for the `Oracle SID` of the database to be created.
SidPrefix *string `mandatory:"false" json:"sidPrefix"`
+
+ // The list of pluggable databases that needs to be restored into new database.
+ PluggableDatabases []string `mandatory:"false" json:"pluggableDatabases"`
}
func (m CreateDatabaseFromBackupDetails) String() string {
diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/database/create_pluggable_database_creation_type_details.go b/vendor/github.com/oracle/oci-go-sdk/v65/database/create_pluggable_database_creation_type_details.go
new file mode 100644
index 00000000000..37a296ed9c8
--- /dev/null
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/database/create_pluggable_database_creation_type_details.go
@@ -0,0 +1,142 @@
+// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved.
+// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+// Code generated. DO NOT EDIT.
+
+// Database Service API
+//
+// The API for the Database Service. Use this API to manage resources such as databases and DB Systems. For more information, see Overview of the Database Service (https://docs.cloud.oracle.com/iaas/Content/Database/Concepts/databaseoverview.htm).
+//
+
+package database
+
+import (
+ "encoding/json"
+ "fmt"
+ "github.com/oracle/oci-go-sdk/v65/common"
+ "strings"
+)
+
+// CreatePluggableDatabaseCreationTypeDetails The Pluggable Database creation type.
+// Use `LOCAL_CLONE_PDB` for creating a new PDB using Local Clone on Source Pluggable Database. This will Clone and starts a
+// pluggable database (PDB) in the same database (CDB) as the source PDB. The source PDB must be in the `READ_WRITE` openMode to
+// perform the clone operation.
+// Use `REMOTE_CLONE_PDB` for creating a new PDB using Remote Clone on Source Pluggable Database. This will Clone a pluggable
+// database (PDB) to a different database from the source PDB. The cloned PDB will be started upon completion of the clone
+// operation. The source PDB must be in the `READ_WRITE` openMode when performing the clone.
+// For Exadata Cloud@Customer instances, the source pluggable database (PDB) must be on the same Exadata Infrastructure as the
+// target container database (CDB) to create a remote clone.
+// Use `RELOCATE_PDB` for relocating the Pluggable Database from Source CDB and creating it in target CDB. This will relocate a
+// pluggable database (PDB) to a different database from the source PDB. The source PDB must be in the `READ_WRITE` openMode when
+// performing the relocate.
+type CreatePluggableDatabaseCreationTypeDetails interface {
+}
+
+type createpluggabledatabasecreationtypedetails struct {
+ JsonData []byte
+ CreationType string `json:"creationType"`
+}
+
+// UnmarshalJSON unmarshals json
+func (m *createpluggabledatabasecreationtypedetails) UnmarshalJSON(data []byte) error {
+ m.JsonData = data
+ type Unmarshalercreatepluggabledatabasecreationtypedetails createpluggabledatabasecreationtypedetails
+ s := struct {
+ Model Unmarshalercreatepluggabledatabasecreationtypedetails
+ }{}
+ err := json.Unmarshal(data, &s.Model)
+ if err != nil {
+ return err
+ }
+ m.CreationType = s.Model.CreationType
+
+ return err
+}
+
+// UnmarshalPolymorphicJSON unmarshals polymorphic json
+func (m *createpluggabledatabasecreationtypedetails) UnmarshalPolymorphicJSON(data []byte) (interface{}, error) {
+
+ if data == nil || string(data) == "null" {
+ return nil, nil
+ }
+
+ var err error
+ switch m.CreationType {
+ case "RELOCATE_PDB":
+ mm := CreatePluggableDatabaseFromRelocateDetails{}
+ err = json.Unmarshal(data, &mm)
+ return mm, err
+ case "REMOTE_CLONE_PDB":
+ mm := CreatePluggableDatabaseFromRemoteCloneDetails{}
+ err = json.Unmarshal(data, &mm)
+ return mm, err
+ case "LOCAL_CLONE_PDB":
+ mm := CreatePluggableDatabaseFromLocalCloneDetails{}
+ err = json.Unmarshal(data, &mm)
+ return mm, err
+ default:
+ common.Logf("Recieved unsupported enum value for CreatePluggableDatabaseCreationTypeDetails: %s.", m.CreationType)
+ return *m, nil
+ }
+}
+
+func (m createpluggabledatabasecreationtypedetails) String() string {
+ return common.PointerString(m)
+}
+
+// ValidateEnumValue returns an error when providing an unsupported enum value
+// This function is being called during constructing API request process
+// Not recommended for calling this function directly
+func (m createpluggabledatabasecreationtypedetails) ValidateEnumValue() (bool, error) {
+ errMessage := []string{}
+
+ if len(errMessage) > 0 {
+ return true, fmt.Errorf(strings.Join(errMessage, "\n"))
+ }
+ return false, nil
+}
+
+// CreatePluggableDatabaseCreationTypeDetailsCreationTypeEnum Enum with underlying type: string
+type CreatePluggableDatabaseCreationTypeDetailsCreationTypeEnum string
+
+// Set of constants representing the allowable values for CreatePluggableDatabaseCreationTypeDetailsCreationTypeEnum
+const (
+ CreatePluggableDatabaseCreationTypeDetailsCreationTypeLocalClonePdb CreatePluggableDatabaseCreationTypeDetailsCreationTypeEnum = "LOCAL_CLONE_PDB"
+ CreatePluggableDatabaseCreationTypeDetailsCreationTypeRemoteClonePdb CreatePluggableDatabaseCreationTypeDetailsCreationTypeEnum = "REMOTE_CLONE_PDB"
+ CreatePluggableDatabaseCreationTypeDetailsCreationTypeRelocatePdb CreatePluggableDatabaseCreationTypeDetailsCreationTypeEnum = "RELOCATE_PDB"
+)
+
+var mappingCreatePluggableDatabaseCreationTypeDetailsCreationTypeEnum = map[string]CreatePluggableDatabaseCreationTypeDetailsCreationTypeEnum{
+ "LOCAL_CLONE_PDB": CreatePluggableDatabaseCreationTypeDetailsCreationTypeLocalClonePdb,
+ "REMOTE_CLONE_PDB": CreatePluggableDatabaseCreationTypeDetailsCreationTypeRemoteClonePdb,
+ "RELOCATE_PDB": CreatePluggableDatabaseCreationTypeDetailsCreationTypeRelocatePdb,
+}
+
+var mappingCreatePluggableDatabaseCreationTypeDetailsCreationTypeEnumLowerCase = map[string]CreatePluggableDatabaseCreationTypeDetailsCreationTypeEnum{
+ "local_clone_pdb": CreatePluggableDatabaseCreationTypeDetailsCreationTypeLocalClonePdb,
+ "remote_clone_pdb": CreatePluggableDatabaseCreationTypeDetailsCreationTypeRemoteClonePdb,
+ "relocate_pdb": CreatePluggableDatabaseCreationTypeDetailsCreationTypeRelocatePdb,
+}
+
+// GetCreatePluggableDatabaseCreationTypeDetailsCreationTypeEnumValues Enumerates the set of values for CreatePluggableDatabaseCreationTypeDetailsCreationTypeEnum
+func GetCreatePluggableDatabaseCreationTypeDetailsCreationTypeEnumValues() []CreatePluggableDatabaseCreationTypeDetailsCreationTypeEnum {
+ values := make([]CreatePluggableDatabaseCreationTypeDetailsCreationTypeEnum, 0)
+ for _, v := range mappingCreatePluggableDatabaseCreationTypeDetailsCreationTypeEnum {
+ values = append(values, v)
+ }
+ return values
+}
+
+// GetCreatePluggableDatabaseCreationTypeDetailsCreationTypeEnumStringValues Enumerates the set of values in String for CreatePluggableDatabaseCreationTypeDetailsCreationTypeEnum
+func GetCreatePluggableDatabaseCreationTypeDetailsCreationTypeEnumStringValues() []string {
+ return []string{
+ "LOCAL_CLONE_PDB",
+ "REMOTE_CLONE_PDB",
+ "RELOCATE_PDB",
+ }
+}
+
+// GetMappingCreatePluggableDatabaseCreationTypeDetailsCreationTypeEnum performs case Insensitive comparison on enum value and return the desired enum
+func GetMappingCreatePluggableDatabaseCreationTypeDetailsCreationTypeEnum(val string) (CreatePluggableDatabaseCreationTypeDetailsCreationTypeEnum, bool) {
+ enum, ok := mappingCreatePluggableDatabaseCreationTypeDetailsCreationTypeEnumLowerCase[strings.ToLower(val)]
+ return enum, ok
+}
diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/database/create_pluggable_database_details.go b/vendor/github.com/oracle/oci-go-sdk/v65/database/create_pluggable_database_details.go
index 6015c37d69b..2095426e62f 100644
--- a/vendor/github.com/oracle/oci-go-sdk/v65/database/create_pluggable_database_details.go
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/database/create_pluggable_database_details.go
@@ -10,12 +10,14 @@
package database
import (
+ "encoding/json"
"fmt"
"github.com/oracle/oci-go-sdk/v65/common"
"strings"
)
// CreatePluggableDatabaseDetails Parameters for creating a pluggable database in a specified container database (CDB).
+// Additional option `pdbCreationTypeDetails` can be used for creating Pluggable Database using different operations, e.g. LocalClone, Remote Clone, Relocate.
// **Warning:** Oracle recommends that you avoid using any confidential information when you supply string values using the API.
type CreatePluggableDatabaseDetails struct {
@@ -35,6 +37,14 @@ type CreatePluggableDatabaseDetails struct {
// If true, the pluggable database will be locked and user cannot login to it.
ShouldPdbAdminAccountBeLocked *bool `mandatory:"false" json:"shouldPdbAdminAccountBeLocked"`
+ // The DB system administrator password of the Container Database.
+ ContainerDatabaseAdminPassword *string `mandatory:"false" json:"containerDatabaseAdminPassword"`
+
+ // Indicates whether to take Pluggable Database Backup after the operation.
+ ShouldCreatePdbBackup *bool `mandatory:"false" json:"shouldCreatePdbBackup"`
+
+ PdbCreationTypeDetails CreatePluggableDatabaseCreationTypeDetails `mandatory:"false" json:"pdbCreationTypeDetails"`
+
// 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"}`
@@ -60,3 +70,54 @@ func (m CreatePluggableDatabaseDetails) ValidateEnumValue() (bool, error) {
}
return false, nil
}
+
+// UnmarshalJSON unmarshals from json
+func (m *CreatePluggableDatabaseDetails) UnmarshalJSON(data []byte) (e error) {
+ model := struct {
+ PdbAdminPassword *string `json:"pdbAdminPassword"`
+ TdeWalletPassword *string `json:"tdeWalletPassword"`
+ ShouldPdbAdminAccountBeLocked *bool `json:"shouldPdbAdminAccountBeLocked"`
+ ContainerDatabaseAdminPassword *string `json:"containerDatabaseAdminPassword"`
+ ShouldCreatePdbBackup *bool `json:"shouldCreatePdbBackup"`
+ PdbCreationTypeDetails createpluggabledatabasecreationtypedetails `json:"pdbCreationTypeDetails"`
+ FreeformTags map[string]string `json:"freeformTags"`
+ DefinedTags map[string]map[string]interface{} `json:"definedTags"`
+ PdbName *string `json:"pdbName"`
+ ContainerDatabaseId *string `json:"containerDatabaseId"`
+ }{}
+
+ e = json.Unmarshal(data, &model)
+ if e != nil {
+ return
+ }
+ var nn interface{}
+ m.PdbAdminPassword = model.PdbAdminPassword
+
+ m.TdeWalletPassword = model.TdeWalletPassword
+
+ m.ShouldPdbAdminAccountBeLocked = model.ShouldPdbAdminAccountBeLocked
+
+ m.ContainerDatabaseAdminPassword = model.ContainerDatabaseAdminPassword
+
+ m.ShouldCreatePdbBackup = model.ShouldCreatePdbBackup
+
+ nn, e = model.PdbCreationTypeDetails.UnmarshalPolymorphicJSON(model.PdbCreationTypeDetails.JsonData)
+ if e != nil {
+ return
+ }
+ if nn != nil {
+ m.PdbCreationTypeDetails = nn.(CreatePluggableDatabaseCreationTypeDetails)
+ } else {
+ m.PdbCreationTypeDetails = nil
+ }
+
+ m.FreeformTags = model.FreeformTags
+
+ m.DefinedTags = model.DefinedTags
+
+ m.PdbName = model.PdbName
+
+ m.ContainerDatabaseId = model.ContainerDatabaseId
+
+ return
+}
diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/database/create_pluggable_database_from_local_clone_details.go b/vendor/github.com/oracle/oci-go-sdk/v65/database/create_pluggable_database_from_local_clone_details.go
new file mode 100644
index 00000000000..f0fbfb4c381
--- /dev/null
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/database/create_pluggable_database_from_local_clone_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.
+
+// Database Service API
+//
+// The API for the Database Service. Use this API to manage resources such as databases and DB Systems. For more information, see Overview of the Database Service (https://docs.cloud.oracle.com/iaas/Content/Database/Concepts/databaseoverview.htm).
+//
+
+package database
+
+import (
+ "encoding/json"
+ "fmt"
+ "github.com/oracle/oci-go-sdk/v65/common"
+ "strings"
+)
+
+// CreatePluggableDatabaseFromLocalCloneDetails Specifies the creation type Local Clone.
+type CreatePluggableDatabaseFromLocalCloneDetails struct {
+
+ // The OCID of the Source Pluggable Database.
+ SourcePluggableDatabaseId *string `mandatory:"true" json:"sourcePluggableDatabaseId"`
+}
+
+func (m CreatePluggableDatabaseFromLocalCloneDetails) String() string {
+ return common.PointerString(m)
+}
+
+// ValidateEnumValue returns an error when providing an unsupported enum value
+// This function is being called during constructing API request process
+// Not recommended for calling this function directly
+func (m CreatePluggableDatabaseFromLocalCloneDetails) 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 CreatePluggableDatabaseFromLocalCloneDetails) MarshalJSON() (buff []byte, e error) {
+ type MarshalTypeCreatePluggableDatabaseFromLocalCloneDetails CreatePluggableDatabaseFromLocalCloneDetails
+ s := struct {
+ DiscriminatorParam string `json:"creationType"`
+ MarshalTypeCreatePluggableDatabaseFromLocalCloneDetails
+ }{
+ "LOCAL_CLONE_PDB",
+ (MarshalTypeCreatePluggableDatabaseFromLocalCloneDetails)(m),
+ }
+
+ return json.Marshal(&s)
+}
diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/database/create_pluggable_database_from_relocate_details.go b/vendor/github.com/oracle/oci-go-sdk/v65/database/create_pluggable_database_from_relocate_details.go
new file mode 100644
index 00000000000..76bb0573810
--- /dev/null
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/database/create_pluggable_database_from_relocate_details.go
@@ -0,0 +1,65 @@
+// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved.
+// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+// Code generated. DO NOT EDIT.
+
+// Database Service API
+//
+// The API for the Database Service. Use this API to manage resources such as databases and DB Systems. For more information, see Overview of the Database Service (https://docs.cloud.oracle.com/iaas/Content/Database/Concepts/databaseoverview.htm).
+//
+
+package database
+
+import (
+ "encoding/json"
+ "fmt"
+ "github.com/oracle/oci-go-sdk/v65/common"
+ "strings"
+)
+
+// CreatePluggableDatabaseFromRelocateDetails Specifies the creation type Relocate.
+// Additional input 'dblinkUsername` and `dblinkUserPassword` can be provided for Relocate Operation.
+// If not provided, Backend will create a temporary user to perform Relocate operation.
+type CreatePluggableDatabaseFromRelocateDetails struct {
+
+ // The OCID of the Source Pluggable Database.
+ SourcePluggableDatabaseId *string `mandatory:"true" json:"sourcePluggableDatabaseId"`
+
+ // The DB system administrator password of the source Container Database.
+ SourceContainerDatabaseAdminPassword *string `mandatory:"true" json:"sourceContainerDatabaseAdminPassword"`
+
+ // The name of the DB link user.
+ DblinkUsername *string `mandatory:"false" json:"dblinkUsername"`
+
+ // The DB link user password.
+ DblinkUserPassword *string `mandatory:"false" json:"dblinkUserPassword"`
+}
+
+func (m CreatePluggableDatabaseFromRelocateDetails) String() string {
+ return common.PointerString(m)
+}
+
+// ValidateEnumValue returns an error when providing an unsupported enum value
+// This function is being called during constructing API request process
+// Not recommended for calling this function directly
+func (m CreatePluggableDatabaseFromRelocateDetails) 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 CreatePluggableDatabaseFromRelocateDetails) MarshalJSON() (buff []byte, e error) {
+ type MarshalTypeCreatePluggableDatabaseFromRelocateDetails CreatePluggableDatabaseFromRelocateDetails
+ s := struct {
+ DiscriminatorParam string `json:"creationType"`
+ MarshalTypeCreatePluggableDatabaseFromRelocateDetails
+ }{
+ "RELOCATE_PDB",
+ (MarshalTypeCreatePluggableDatabaseFromRelocateDetails)(m),
+ }
+
+ return json.Marshal(&s)
+}
diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/database/create_pluggable_database_from_remote_clone_details.go b/vendor/github.com/oracle/oci-go-sdk/v65/database/create_pluggable_database_from_remote_clone_details.go
new file mode 100644
index 00000000000..2fb1b87c554
--- /dev/null
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/database/create_pluggable_database_from_remote_clone_details.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.
+
+// Database Service API
+//
+// The API for the Database Service. Use this API to manage resources such as databases and DB Systems. For more information, see Overview of the Database Service (https://docs.cloud.oracle.com/iaas/Content/Database/Concepts/databaseoverview.htm).
+//
+
+package database
+
+import (
+ "encoding/json"
+ "fmt"
+ "github.com/oracle/oci-go-sdk/v65/common"
+ "strings"
+)
+
+// CreatePluggableDatabaseFromRemoteCloneDetails Specifies the creation type Remote Clone.
+// Additional input 'dblinkUsername` and `dblinkUserPassword` can be provided for RemoteClone/Create RefreshableClone Operation.
+// If not provided, Backend will create a temporary user to perform RemoteClone operation. It is a required input parameter in case of creating Refreshable Clone PDB.
+type CreatePluggableDatabaseFromRemoteCloneDetails struct {
+
+ // The OCID of the Source Pluggable Database.
+ SourcePluggableDatabaseId *string `mandatory:"true" json:"sourcePluggableDatabaseId"`
+
+ // The DB system administrator password of the source Container Database.
+ SourceContainerDatabaseAdminPassword *string `mandatory:"true" json:"sourceContainerDatabaseAdminPassword"`
+
+ // The name of the DB link user.
+ DblinkUsername *string `mandatory:"false" json:"dblinkUsername"`
+
+ // The DB link user password.
+ DblinkUserPassword *string `mandatory:"false" json:"dblinkUserPassword"`
+
+ RefreshableCloneDetails *CreatePluggableDatabaseRefreshableCloneDetails `mandatory:"false" json:"refreshableCloneDetails"`
+}
+
+func (m CreatePluggableDatabaseFromRemoteCloneDetails) String() string {
+ return common.PointerString(m)
+}
+
+// ValidateEnumValue returns an error when providing an unsupported enum value
+// This function is being called during constructing API request process
+// Not recommended for calling this function directly
+func (m CreatePluggableDatabaseFromRemoteCloneDetails) 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 CreatePluggableDatabaseFromRemoteCloneDetails) MarshalJSON() (buff []byte, e error) {
+ type MarshalTypeCreatePluggableDatabaseFromRemoteCloneDetails CreatePluggableDatabaseFromRemoteCloneDetails
+ s := struct {
+ DiscriminatorParam string `json:"creationType"`
+ MarshalTypeCreatePluggableDatabaseFromRemoteCloneDetails
+ }{
+ "REMOTE_CLONE_PDB",
+ (MarshalTypeCreatePluggableDatabaseFromRemoteCloneDetails)(m),
+ }
+
+ return json.Marshal(&s)
+}
diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/database/create_pluggable_database_refreshable_clone_details.go b/vendor/github.com/oracle/oci-go-sdk/v65/database/create_pluggable_database_refreshable_clone_details.go
new file mode 100644
index 00000000000..6eff29d70f8
--- /dev/null
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/database/create_pluggable_database_refreshable_clone_details.go
@@ -0,0 +1,40 @@
+// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved.
+// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+// Code generated. DO NOT EDIT.
+
+// Database Service API
+//
+// The API for the Database Service. Use this API to manage resources such as databases and DB Systems. For more information, see Overview of the Database Service (https://docs.cloud.oracle.com/iaas/Content/Database/Concepts/databaseoverview.htm).
+//
+
+package database
+
+import (
+ "fmt"
+ "github.com/oracle/oci-go-sdk/v65/common"
+ "strings"
+)
+
+// CreatePluggableDatabaseRefreshableCloneDetails Parameters for creating Pluggable Database Refreshable Clone.
+// **Warning:** Oracle recommends that you avoid using any confidential information when you supply string values using the API.
+type CreatePluggableDatabaseRefreshableCloneDetails struct {
+
+ // Indicates whether Pluggable Database is a refreshable clone.
+ IsRefreshableClone *bool `mandatory:"false" json:"isRefreshableClone"`
+}
+
+func (m CreatePluggableDatabaseRefreshableCloneDetails) String() string {
+ return common.PointerString(m)
+}
+
+// ValidateEnumValue returns an error when providing an unsupported enum value
+// This function is being called during constructing API request process
+// Not recommended for calling this function directly
+func (m CreatePluggableDatabaseRefreshableCloneDetails) 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/database/database_client.go b/vendor/github.com/oracle/oci-go-sdk/v65/database/database_client.go
index b54afd9f4bc..2eddead4d7a 100644
--- a/vendor/github.com/oracle/oci-go-sdk/v65/database/database_client.go
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/database/database_client.go
@@ -2031,6 +2031,69 @@ func (client DatabaseClient) convertToPdb(ctx context.Context, request common.OC
return response, err
}
+// ConvertToRegularPluggableDatabase Converts a Refreshable clone to Regular pluggable database (PDB).
+// Pluggable Database will be in `READ_WRITE` openmode after conversion.
+//
+// # See also
+//
+// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/database/ConvertToRegularPluggableDatabase.go.html to see an example of how to use ConvertToRegularPluggableDatabase API.
+func (client DatabaseClient) ConvertToRegularPluggableDatabase(ctx context.Context, request ConvertToRegularPluggableDatabaseRequest) (response ConvertToRegularPluggableDatabaseResponse, 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.convertToRegularPluggableDatabase, policy)
+ if err != nil {
+ if ociResponse != nil {
+ if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil {
+ opcRequestId := httpResponse.Header.Get("opc-request-id")
+ response = ConvertToRegularPluggableDatabaseResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId}
+ } else {
+ response = ConvertToRegularPluggableDatabaseResponse{}
+ }
+ }
+ return
+ }
+ if convertedResponse, ok := ociResponse.(ConvertToRegularPluggableDatabaseResponse); ok {
+ response = convertedResponse
+ } else {
+ err = fmt.Errorf("failed to convert OCIResponse into ConvertToRegularPluggableDatabaseResponse")
+ }
+ return
+}
+
+// convertToRegularPluggableDatabase implements the OCIOperation interface (enables retrying operations)
+func (client DatabaseClient) convertToRegularPluggableDatabase(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) {
+
+ httpRequest, err := request.HTTPRequest(http.MethodPost, "/pluggableDatabases/{pluggableDatabaseId}/actions/convertToRegular", binaryReqBody, extraHeaders)
+ if err != nil {
+ return nil, err
+ }
+
+ var response ConvertToRegularPluggableDatabaseResponse
+ 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/database/20160918/PluggableDatabase/ConvertToRegularPluggableDatabase"
+ err = common.PostProcessServiceError(err, "Database", "ConvertToRegularPluggableDatabase", apiReferenceLink)
+ return response, err
+ }
+
+ err = common.UnmarshalResponse(httpResponse, &response)
+ return response, err
+}
+
// CreateApplicationVip Creates a new application virtual IP (VIP) address in the specified cloud VM cluster based on the request parameters you provide.
//
// # See also
@@ -3469,6 +3532,7 @@ func (client DatabaseClient) createOneoffPatch(ctx context.Context, request comm
}
// CreatePluggableDatabase Creates and starts a pluggable database in the specified container database.
+// Pluggable Database can be created using different operations (e.g. LocalClone, RemoteClone, Relocate ) with this API.
// Use the StartPluggableDatabase and StopPluggableDatabase APIs to start and stop the pluggable database.
//
// # See also
@@ -7872,6 +7936,63 @@ func (client DatabaseClient) getAutonomousVmCluster(ctx context.Context, request
return response, err
}
+// GetAutonomousVmClusterResourceUsage Get the resource usage details for the specified Autonomous Exadata VM cluster.
+//
+// # See also
+//
+// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/database/GetAutonomousVmClusterResourceUsage.go.html to see an example of how to use GetAutonomousVmClusterResourceUsage API.
+func (client DatabaseClient) GetAutonomousVmClusterResourceUsage(ctx context.Context, request GetAutonomousVmClusterResourceUsageRequest) (response GetAutonomousVmClusterResourceUsageResponse, 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.getAutonomousVmClusterResourceUsage, policy)
+ if err != nil {
+ if ociResponse != nil {
+ if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil {
+ opcRequestId := httpResponse.Header.Get("opc-request-id")
+ response = GetAutonomousVmClusterResourceUsageResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId}
+ } else {
+ response = GetAutonomousVmClusterResourceUsageResponse{}
+ }
+ }
+ return
+ }
+ if convertedResponse, ok := ociResponse.(GetAutonomousVmClusterResourceUsageResponse); ok {
+ response = convertedResponse
+ } else {
+ err = fmt.Errorf("failed to convert OCIResponse into GetAutonomousVmClusterResourceUsageResponse")
+ }
+ return
+}
+
+// getAutonomousVmClusterResourceUsage implements the OCIOperation interface (enables retrying operations)
+func (client DatabaseClient) getAutonomousVmClusterResourceUsage(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) {
+
+ httpRequest, err := request.HTTPRequest(http.MethodGet, "/autonomousVmClusters/{autonomousVmClusterId}/resourceUsage", binaryReqBody, extraHeaders)
+ if err != nil {
+ return nil, err
+ }
+
+ var response GetAutonomousVmClusterResourceUsageResponse
+ 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/database/20160918/AutonomousVmCluster/GetAutonomousVmClusterResourceUsage"
+ err = common.PostProcessServiceError(err, "Database", "GetAutonomousVmClusterResourceUsage", apiReferenceLink)
+ return response, err
+ }
+
+ err = common.UnmarshalResponse(httpResponse, &response)
+ return response, err
+}
+
// GetBackup Gets information about the specified backup.
//
// # See also
@@ -11493,6 +11614,63 @@ func (client DatabaseClient) listAutonomousVirtualMachines(ctx context.Context,
return response, err
}
+// ListAutonomousVmClusterAcdResourceUsage Gets the list of resource usage details for all the Autonomous Container Database in the specified Autonomous Exadata VM cluster.
+//
+// # See also
+//
+// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/database/ListAutonomousVmClusterAcdResourceUsage.go.html to see an example of how to use ListAutonomousVmClusterAcdResourceUsage API.
+func (client DatabaseClient) ListAutonomousVmClusterAcdResourceUsage(ctx context.Context, request ListAutonomousVmClusterAcdResourceUsageRequest) (response ListAutonomousVmClusterAcdResourceUsageResponse, 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.listAutonomousVmClusterAcdResourceUsage, policy)
+ if err != nil {
+ if ociResponse != nil {
+ if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil {
+ opcRequestId := httpResponse.Header.Get("opc-request-id")
+ response = ListAutonomousVmClusterAcdResourceUsageResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId}
+ } else {
+ response = ListAutonomousVmClusterAcdResourceUsageResponse{}
+ }
+ }
+ return
+ }
+ if convertedResponse, ok := ociResponse.(ListAutonomousVmClusterAcdResourceUsageResponse); ok {
+ response = convertedResponse
+ } else {
+ err = fmt.Errorf("failed to convert OCIResponse into ListAutonomousVmClusterAcdResourceUsageResponse")
+ }
+ return
+}
+
+// listAutonomousVmClusterAcdResourceUsage implements the OCIOperation interface (enables retrying operations)
+func (client DatabaseClient) listAutonomousVmClusterAcdResourceUsage(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) {
+
+ httpRequest, err := request.HTTPRequest(http.MethodGet, "/autonomousVmClusters/{autonomousVmClusterId}/acdResourceUsage", binaryReqBody, extraHeaders)
+ if err != nil {
+ return nil, err
+ }
+
+ var response ListAutonomousVmClusterAcdResourceUsageResponse
+ 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/database/20160918/AutonomousVmCluster/ListAutonomousVmClusterAcdResourceUsage"
+ err = common.PostProcessServiceError(err, "Database", "ListAutonomousVmClusterAcdResourceUsage", apiReferenceLink)
+ return response, err
+ }
+
+ err = common.UnmarshalResponse(httpResponse, &response)
+ return response, err
+}
+
// ListAutonomousVmClusters Gets a list of Exadata Cloud@Customer Autonomous VM clusters in the specified compartment. To list Autonomous VM Clusters in the Oracle Cloud, see ListCloudAutonomousVmClusters.
//
// # See also
@@ -14194,7 +14372,8 @@ func (client DatabaseClient) listVmClusters(ctx context.Context, request common.
return response, err
}
-// LocalClonePluggableDatabase Clones and starts a pluggable database (PDB) in the same database (CDB) as the source PDB. The source PDB must be in the `READ_WRITE` openMode to perform the clone operation.
+// LocalClonePluggableDatabase **Deprecated.** Use CreatePluggableDatabase for Pluggable Database LocalClone Operation.
+// Clones and starts a pluggable database (PDB) in the same database (CDB) as the source PDB. The source PDB must be in the `READ_WRITE` openMode to perform the clone operation.
//
// # See also
//
@@ -14505,6 +14684,68 @@ func (client DatabaseClient) modifyPluggableDatabaseManagement(ctx context.Conte
return response, err
}
+// RefreshPluggableDatabase Refreshes a pluggable database (PDB) Refreshable clone.
+//
+// # See also
+//
+// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/database/RefreshPluggableDatabase.go.html to see an example of how to use RefreshPluggableDatabase API.
+func (client DatabaseClient) RefreshPluggableDatabase(ctx context.Context, request RefreshPluggableDatabaseRequest) (response RefreshPluggableDatabaseResponse, 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.refreshPluggableDatabase, policy)
+ if err != nil {
+ if ociResponse != nil {
+ if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil {
+ opcRequestId := httpResponse.Header.Get("opc-request-id")
+ response = RefreshPluggableDatabaseResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId}
+ } else {
+ response = RefreshPluggableDatabaseResponse{}
+ }
+ }
+ return
+ }
+ if convertedResponse, ok := ociResponse.(RefreshPluggableDatabaseResponse); ok {
+ response = convertedResponse
+ } else {
+ err = fmt.Errorf("failed to convert OCIResponse into RefreshPluggableDatabaseResponse")
+ }
+ return
+}
+
+// refreshPluggableDatabase implements the OCIOperation interface (enables retrying operations)
+func (client DatabaseClient) refreshPluggableDatabase(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) {
+
+ httpRequest, err := request.HTTPRequest(http.MethodPost, "/pluggableDatabases/{pluggableDatabaseId}/actions/refresh", binaryReqBody, extraHeaders)
+ if err != nil {
+ return nil, err
+ }
+
+ var response RefreshPluggableDatabaseResponse
+ 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/database/20160918/PluggableDatabase/RefreshPluggableDatabase"
+ err = common.PostProcessServiceError(err, "Database", "RefreshPluggableDatabase", apiReferenceLink)
+ return response, err
+ }
+
+ err = common.UnmarshalResponse(httpResponse, &response)
+ return response, err
+}
+
// RegisterAutonomousDatabaseDataSafe Asynchronously registers this Autonomous Database with Data Safe.
//
// # See also
@@ -14676,7 +14917,8 @@ func (client DatabaseClient) reinstateDataGuardAssociation(ctx context.Context,
return response, err
}
-// RemoteClonePluggableDatabase Clones a pluggable database (PDB) to a different database from the source PDB. The cloned PDB will be started upon completion of the clone operation. The source PDB must be in the `READ_WRITE` openMode when performing the clone.
+// RemoteClonePluggableDatabase **Deprecated.** Use CreatePluggableDatabase for Pluggable Database RemoteClone Operation.
+// Clones a pluggable database (PDB) to a different database from the source PDB. The cloned PDB will be started upon completion of the clone operation. The source PDB must be in the `READ_WRITE` openMode when performing the clone.
// For Exadata Cloud@Customer instances, the source pluggable database (PDB) must be on the same Exadata Infrastructure as the target container database (CDB) to create a remote clone.
//
// # See also
diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/database/get_autonomous_vm_cluster_resource_usage_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/database/get_autonomous_vm_cluster_resource_usage_request_response.go
new file mode 100644
index 00000000000..fae35feba84
--- /dev/null
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/database/get_autonomous_vm_cluster_resource_usage_request_response.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.
+
+package database
+
+import (
+ "fmt"
+ "github.com/oracle/oci-go-sdk/v65/common"
+ "net/http"
+ "strings"
+)
+
+// GetAutonomousVmClusterResourceUsageRequest wrapper for the GetAutonomousVmClusterResourceUsage operation
+//
+// # See also
+//
+// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/database/GetAutonomousVmClusterResourceUsage.go.html to see an example of how to use GetAutonomousVmClusterResourceUsageRequest.
+type GetAutonomousVmClusterResourceUsageRequest struct {
+
+ // The autonomous VM cluster OCID (https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm).
+ AutonomousVmClusterId *string `mandatory:"true" contributesTo:"path" name:"autonomousVmClusterId"`
+
+ // Unique identifier for the request.
+ 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 GetAutonomousVmClusterResourceUsageRequest) String() string {
+ return common.PointerString(request)
+}
+
+// HTTPRequest implements the OCIRequest interface
+func (request GetAutonomousVmClusterResourceUsageRequest) 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 GetAutonomousVmClusterResourceUsageRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) {
+
+ return nil, false
+
+}
+
+// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy.
+func (request GetAutonomousVmClusterResourceUsageRequest) 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 GetAutonomousVmClusterResourceUsageRequest) ValidateEnumValue() (bool, error) {
+ errMessage := []string{}
+ if len(errMessage) > 0 {
+ return true, fmt.Errorf(strings.Join(errMessage, "\n"))
+ }
+ return false, nil
+}
+
+// GetAutonomousVmClusterResourceUsageResponse wrapper for the GetAutonomousVmClusterResourceUsage operation
+type GetAutonomousVmClusterResourceUsageResponse struct {
+
+ // The underlying http response
+ RawResponse *http.Response
+
+ // The AutonomousVmClusterResourceUsage instance
+ AutonomousVmClusterResourceUsage `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 GetAutonomousVmClusterResourceUsageResponse) String() string {
+ return common.PointerString(response)
+}
+
+// HTTPResponse implements the OCIResponse interface
+func (response GetAutonomousVmClusterResourceUsageResponse) HTTPResponse() *http.Response {
+ return response.RawResponse
+}
diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/database/list_autonomous_vm_cluster_acd_resource_usage_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/database/list_autonomous_vm_cluster_acd_resource_usage_request_response.go
new file mode 100644
index 00000000000..fc643594df3
--- /dev/null
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/database/list_autonomous_vm_cluster_acd_resource_usage_request_response.go
@@ -0,0 +1,105 @@
+// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved.
+// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache 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 database
+
+import (
+ "fmt"
+ "github.com/oracle/oci-go-sdk/v65/common"
+ "net/http"
+ "strings"
+)
+
+// ListAutonomousVmClusterAcdResourceUsageRequest wrapper for the ListAutonomousVmClusterAcdResourceUsage operation
+//
+// # See also
+//
+// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/database/ListAutonomousVmClusterAcdResourceUsage.go.html to see an example of how to use ListAutonomousVmClusterAcdResourceUsageRequest.
+type ListAutonomousVmClusterAcdResourceUsageRequest struct {
+
+ // The autonomous VM cluster OCID (https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm).
+ AutonomousVmClusterId *string `mandatory:"true" contributesTo:"path" name:"autonomousVmClusterId"`
+
+ // The compartment OCID (https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm).
+ CompartmentId *string `mandatory:"false" contributesTo:"query" name:"compartmentId"`
+
+ // Unique identifier for the request.
+ OpcRequestId *string `mandatory:"false" contributesTo:"header" name:"opc-request-id"`
+
+ // The maximum number of items to return per page.
+ Limit *int `mandatory:"false" contributesTo:"query" name:"limit"`
+
+ // The pagination token to continue listing from.
+ Page *string `mandatory:"false" contributesTo:"query" name:"page"`
+
+ // 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 ListAutonomousVmClusterAcdResourceUsageRequest) String() string {
+ return common.PointerString(request)
+}
+
+// HTTPRequest implements the OCIRequest interface
+func (request ListAutonomousVmClusterAcdResourceUsageRequest) 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 ListAutonomousVmClusterAcdResourceUsageRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) {
+
+ return nil, false
+
+}
+
+// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy.
+func (request ListAutonomousVmClusterAcdResourceUsageRequest) 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 ListAutonomousVmClusterAcdResourceUsageRequest) ValidateEnumValue() (bool, error) {
+ errMessage := []string{}
+ if len(errMessage) > 0 {
+ return true, fmt.Errorf(strings.Join(errMessage, "\n"))
+ }
+ return false, nil
+}
+
+// ListAutonomousVmClusterAcdResourceUsageResponse wrapper for the ListAutonomousVmClusterAcdResourceUsage operation
+type ListAutonomousVmClusterAcdResourceUsageResponse struct {
+
+ // The underlying http response
+ RawResponse *http.Response
+
+ // A list of []AutonomousContainerDatabaseResourceUsage instances
+ Items []AutonomousContainerDatabaseResourceUsage `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 there are additional items still to get. Include this value as the `page` parameter for the
+ // subsequent GET request. For information about pagination, see
+ // List Pagination (https://docs.cloud.oracle.com/Content/API/Concepts/usingapi.htm#nine).
+ OpcNextPage *string `presentIn:"header" name:"opc-next-page"`
+}
+
+func (response ListAutonomousVmClusterAcdResourceUsageResponse) String() string {
+ return common.PointerString(response)
+}
+
+// HTTPResponse implements the OCIResponse interface
+func (response ListAutonomousVmClusterAcdResourceUsageResponse) HTTPResponse() *http.Response {
+ return response.RawResponse
+}
diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/database/local_clone_pluggable_database_details.go b/vendor/github.com/oracle/oci-go-sdk/v65/database/local_clone_pluggable_database_details.go
index a12b1ea3dec..3324912e8eb 100644
--- a/vendor/github.com/oracle/oci-go-sdk/v65/database/local_clone_pluggable_database_details.go
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/database/local_clone_pluggable_database_details.go
@@ -15,7 +15,8 @@ import (
"strings"
)
-// LocalClonePluggableDatabaseDetails Parameters for cloning a pluggable database (PDB) within the same database (CDB).
+// LocalClonePluggableDatabaseDetails **Deprecated.** Use CreatePluggableDatabaseDetails for Pluggable Database LocalClone Operation.
+// Parameters for cloning a pluggable database (PDB) within the same database (CDB).
// **Warning:** Oracle recommends that you avoid using any confidential information when you supply string values using the API.
type LocalClonePluggableDatabaseDetails struct {
diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/database/pluggable_database.go b/vendor/github.com/oracle/oci-go-sdk/v65/database/pluggable_database.go
index b987a8227f2..56231003ad5 100644
--- a/vendor/github.com/oracle/oci-go-sdk/v65/database/pluggable_database.go
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/database/pluggable_database.go
@@ -35,6 +35,7 @@ type PluggableDatabase struct {
// The date and time the pluggable database was created.
TimeCreated *common.SDKTime `mandatory:"true" json:"timeCreated"`
+ // **Deprecated.** Use PluggableDatabaseNodeLevelDetails for OpenMode details.
// The mode that pluggable database is in. Open mode can only be changed to READ_ONLY or MIGRATE directly from the backend (within the Oracle Database software).
OpenMode PluggableDatabaseOpenModeEnum `mandatory:"true" json:"openMode"`
@@ -60,6 +61,12 @@ type PluggableDatabase struct {
DefinedTags map[string]map[string]interface{} `mandatory:"false" json:"definedTags"`
PluggableDatabaseManagementConfig *PluggableDatabaseManagementConfig `mandatory:"false" json:"pluggableDatabaseManagementConfig"`
+
+ RefreshableCloneConfig *PluggableDatabaseRefreshableCloneConfig `mandatory:"false" json:"refreshableCloneConfig"`
+
+ // Pluggable Database Node Level Details.
+ // Example: [{"nodeName" : "node1", "openMode" : "READ_WRITE"}, {"nodeName" : "node2", "openMode" : "READ_ONLY"}]
+ PdbNodeLevelDetails []PluggableDatabaseNodeLevelDetails `mandatory:"false" json:"pdbNodeLevelDetails"`
}
func (m PluggableDatabase) String() string {
@@ -89,30 +96,51 @@ type PluggableDatabaseLifecycleStateEnum string
// Set of constants representing the allowable values for PluggableDatabaseLifecycleStateEnum
const (
- PluggableDatabaseLifecycleStateProvisioning PluggableDatabaseLifecycleStateEnum = "PROVISIONING"
- PluggableDatabaseLifecycleStateAvailable PluggableDatabaseLifecycleStateEnum = "AVAILABLE"
- PluggableDatabaseLifecycleStateTerminating PluggableDatabaseLifecycleStateEnum = "TERMINATING"
- PluggableDatabaseLifecycleStateTerminated PluggableDatabaseLifecycleStateEnum = "TERMINATED"
- PluggableDatabaseLifecycleStateUpdating PluggableDatabaseLifecycleStateEnum = "UPDATING"
- PluggableDatabaseLifecycleStateFailed PluggableDatabaseLifecycleStateEnum = "FAILED"
+ PluggableDatabaseLifecycleStateProvisioning PluggableDatabaseLifecycleStateEnum = "PROVISIONING"
+ PluggableDatabaseLifecycleStateAvailable PluggableDatabaseLifecycleStateEnum = "AVAILABLE"
+ PluggableDatabaseLifecycleStateTerminating PluggableDatabaseLifecycleStateEnum = "TERMINATING"
+ PluggableDatabaseLifecycleStateTerminated PluggableDatabaseLifecycleStateEnum = "TERMINATED"
+ PluggableDatabaseLifecycleStateUpdating PluggableDatabaseLifecycleStateEnum = "UPDATING"
+ PluggableDatabaseLifecycleStateFailed PluggableDatabaseLifecycleStateEnum = "FAILED"
+ PluggableDatabaseLifecycleStateRelocating PluggableDatabaseLifecycleStateEnum = "RELOCATING"
+ PluggableDatabaseLifecycleStateRelocated PluggableDatabaseLifecycleStateEnum = "RELOCATED"
+ PluggableDatabaseLifecycleStateRefreshing PluggableDatabaseLifecycleStateEnum = "REFRESHING"
+ PluggableDatabaseLifecycleStateRestoreInProgress PluggableDatabaseLifecycleStateEnum = "RESTORE_IN_PROGRESS"
+ PluggableDatabaseLifecycleStateRestoreFailed PluggableDatabaseLifecycleStateEnum = "RESTORE_FAILED"
+ PluggableDatabaseLifecycleStateBackupInProgress PluggableDatabaseLifecycleStateEnum = "BACKUP_IN_PROGRESS"
+ PluggableDatabaseLifecycleStateDisabled PluggableDatabaseLifecycleStateEnum = "DISABLED"
)
var mappingPluggableDatabaseLifecycleStateEnum = map[string]PluggableDatabaseLifecycleStateEnum{
- "PROVISIONING": PluggableDatabaseLifecycleStateProvisioning,
- "AVAILABLE": PluggableDatabaseLifecycleStateAvailable,
- "TERMINATING": PluggableDatabaseLifecycleStateTerminating,
- "TERMINATED": PluggableDatabaseLifecycleStateTerminated,
- "UPDATING": PluggableDatabaseLifecycleStateUpdating,
- "FAILED": PluggableDatabaseLifecycleStateFailed,
+ "PROVISIONING": PluggableDatabaseLifecycleStateProvisioning,
+ "AVAILABLE": PluggableDatabaseLifecycleStateAvailable,
+ "TERMINATING": PluggableDatabaseLifecycleStateTerminating,
+ "TERMINATED": PluggableDatabaseLifecycleStateTerminated,
+ "UPDATING": PluggableDatabaseLifecycleStateUpdating,
+ "FAILED": PluggableDatabaseLifecycleStateFailed,
+ "RELOCATING": PluggableDatabaseLifecycleStateRelocating,
+ "RELOCATED": PluggableDatabaseLifecycleStateRelocated,
+ "REFRESHING": PluggableDatabaseLifecycleStateRefreshing,
+ "RESTORE_IN_PROGRESS": PluggableDatabaseLifecycleStateRestoreInProgress,
+ "RESTORE_FAILED": PluggableDatabaseLifecycleStateRestoreFailed,
+ "BACKUP_IN_PROGRESS": PluggableDatabaseLifecycleStateBackupInProgress,
+ "DISABLED": PluggableDatabaseLifecycleStateDisabled,
}
var mappingPluggableDatabaseLifecycleStateEnumLowerCase = map[string]PluggableDatabaseLifecycleStateEnum{
- "provisioning": PluggableDatabaseLifecycleStateProvisioning,
- "available": PluggableDatabaseLifecycleStateAvailable,
- "terminating": PluggableDatabaseLifecycleStateTerminating,
- "terminated": PluggableDatabaseLifecycleStateTerminated,
- "updating": PluggableDatabaseLifecycleStateUpdating,
- "failed": PluggableDatabaseLifecycleStateFailed,
+ "provisioning": PluggableDatabaseLifecycleStateProvisioning,
+ "available": PluggableDatabaseLifecycleStateAvailable,
+ "terminating": PluggableDatabaseLifecycleStateTerminating,
+ "terminated": PluggableDatabaseLifecycleStateTerminated,
+ "updating": PluggableDatabaseLifecycleStateUpdating,
+ "failed": PluggableDatabaseLifecycleStateFailed,
+ "relocating": PluggableDatabaseLifecycleStateRelocating,
+ "relocated": PluggableDatabaseLifecycleStateRelocated,
+ "refreshing": PluggableDatabaseLifecycleStateRefreshing,
+ "restore_in_progress": PluggableDatabaseLifecycleStateRestoreInProgress,
+ "restore_failed": PluggableDatabaseLifecycleStateRestoreFailed,
+ "backup_in_progress": PluggableDatabaseLifecycleStateBackupInProgress,
+ "disabled": PluggableDatabaseLifecycleStateDisabled,
}
// GetPluggableDatabaseLifecycleStateEnumValues Enumerates the set of values for PluggableDatabaseLifecycleStateEnum
@@ -133,6 +161,13 @@ func GetPluggableDatabaseLifecycleStateEnumStringValues() []string {
"TERMINATED",
"UPDATING",
"FAILED",
+ "RELOCATING",
+ "RELOCATED",
+ "REFRESHING",
+ "RESTORE_IN_PROGRESS",
+ "RESTORE_FAILED",
+ "BACKUP_IN_PROGRESS",
+ "DISABLED",
}
}
diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/database/pluggable_database_node_level_details.go b/vendor/github.com/oracle/oci-go-sdk/v65/database/pluggable_database_node_level_details.go
new file mode 100644
index 00000000000..893dade7c48
--- /dev/null
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/database/pluggable_database_node_level_details.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.
+
+// Database Service API
+//
+// The API for the Database Service. Use this API to manage resources such as databases and DB Systems. For more information, see Overview of the Database Service (https://docs.cloud.oracle.com/iaas/Content/Database/Concepts/databaseoverview.htm).
+//
+
+package database
+
+import (
+ "fmt"
+ "github.com/oracle/oci-go-sdk/v65/common"
+ "strings"
+)
+
+// PluggableDatabaseNodeLevelDetails Pluggable Database Node Level Details.
+type PluggableDatabaseNodeLevelDetails struct {
+
+ // The Node name of the Database Instance.
+ NodeName *string `mandatory:"true" json:"nodeName"`
+
+ // The mode that pluggable database is in. Open mode can only be changed to READ_ONLY or MIGRATE directly from the backend (within the Oracle Database software).
+ OpenMode PluggableDatabaseNodeLevelDetailsOpenModeEnum `mandatory:"true" json:"openMode"`
+}
+
+func (m PluggableDatabaseNodeLevelDetails) String() string {
+ return common.PointerString(m)
+}
+
+// ValidateEnumValue returns an error when providing an unsupported enum value
+// This function is being called during constructing API request process
+// Not recommended for calling this function directly
+func (m PluggableDatabaseNodeLevelDetails) ValidateEnumValue() (bool, error) {
+ errMessage := []string{}
+ if _, ok := GetMappingPluggableDatabaseNodeLevelDetailsOpenModeEnum(string(m.OpenMode)); !ok && m.OpenMode != "" {
+ errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for OpenMode: %s. Supported values are: %s.", m.OpenMode, strings.Join(GetPluggableDatabaseNodeLevelDetailsOpenModeEnumStringValues(), ",")))
+ }
+
+ if len(errMessage) > 0 {
+ return true, fmt.Errorf(strings.Join(errMessage, "\n"))
+ }
+ return false, nil
+}
+
+// PluggableDatabaseNodeLevelDetailsOpenModeEnum Enum with underlying type: string
+type PluggableDatabaseNodeLevelDetailsOpenModeEnum string
+
+// Set of constants representing the allowable values for PluggableDatabaseNodeLevelDetailsOpenModeEnum
+const (
+ PluggableDatabaseNodeLevelDetailsOpenModeReadOnly PluggableDatabaseNodeLevelDetailsOpenModeEnum = "READ_ONLY"
+ PluggableDatabaseNodeLevelDetailsOpenModeReadWrite PluggableDatabaseNodeLevelDetailsOpenModeEnum = "READ_WRITE"
+ PluggableDatabaseNodeLevelDetailsOpenModeMounted PluggableDatabaseNodeLevelDetailsOpenModeEnum = "MOUNTED"
+ PluggableDatabaseNodeLevelDetailsOpenModeMigrate PluggableDatabaseNodeLevelDetailsOpenModeEnum = "MIGRATE"
+)
+
+var mappingPluggableDatabaseNodeLevelDetailsOpenModeEnum = map[string]PluggableDatabaseNodeLevelDetailsOpenModeEnum{
+ "READ_ONLY": PluggableDatabaseNodeLevelDetailsOpenModeReadOnly,
+ "READ_WRITE": PluggableDatabaseNodeLevelDetailsOpenModeReadWrite,
+ "MOUNTED": PluggableDatabaseNodeLevelDetailsOpenModeMounted,
+ "MIGRATE": PluggableDatabaseNodeLevelDetailsOpenModeMigrate,
+}
+
+var mappingPluggableDatabaseNodeLevelDetailsOpenModeEnumLowerCase = map[string]PluggableDatabaseNodeLevelDetailsOpenModeEnum{
+ "read_only": PluggableDatabaseNodeLevelDetailsOpenModeReadOnly,
+ "read_write": PluggableDatabaseNodeLevelDetailsOpenModeReadWrite,
+ "mounted": PluggableDatabaseNodeLevelDetailsOpenModeMounted,
+ "migrate": PluggableDatabaseNodeLevelDetailsOpenModeMigrate,
+}
+
+// GetPluggableDatabaseNodeLevelDetailsOpenModeEnumValues Enumerates the set of values for PluggableDatabaseNodeLevelDetailsOpenModeEnum
+func GetPluggableDatabaseNodeLevelDetailsOpenModeEnumValues() []PluggableDatabaseNodeLevelDetailsOpenModeEnum {
+ values := make([]PluggableDatabaseNodeLevelDetailsOpenModeEnum, 0)
+ for _, v := range mappingPluggableDatabaseNodeLevelDetailsOpenModeEnum {
+ values = append(values, v)
+ }
+ return values
+}
+
+// GetPluggableDatabaseNodeLevelDetailsOpenModeEnumStringValues Enumerates the set of values in String for PluggableDatabaseNodeLevelDetailsOpenModeEnum
+func GetPluggableDatabaseNodeLevelDetailsOpenModeEnumStringValues() []string {
+ return []string{
+ "READ_ONLY",
+ "READ_WRITE",
+ "MOUNTED",
+ "MIGRATE",
+ }
+}
+
+// GetMappingPluggableDatabaseNodeLevelDetailsOpenModeEnum performs case Insensitive comparison on enum value and return the desired enum
+func GetMappingPluggableDatabaseNodeLevelDetailsOpenModeEnum(val string) (PluggableDatabaseNodeLevelDetailsOpenModeEnum, bool) {
+ enum, ok := mappingPluggableDatabaseNodeLevelDetailsOpenModeEnumLowerCase[strings.ToLower(val)]
+ return enum, ok
+}
diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/database/pluggable_database_refreshable_clone_config.go b/vendor/github.com/oracle/oci-go-sdk/v65/database/pluggable_database_refreshable_clone_config.go
new file mode 100644
index 00000000000..466e01e5085
--- /dev/null
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/database/pluggable_database_refreshable_clone_config.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.
+
+// Database Service API
+//
+// The API for the Database Service. Use this API to manage resources such as databases and DB Systems. For more information, see Overview of the Database Service (https://docs.cloud.oracle.com/iaas/Content/Database/Concepts/databaseoverview.htm).
+//
+
+package database
+
+import (
+ "fmt"
+ "github.com/oracle/oci-go-sdk/v65/common"
+ "strings"
+)
+
+// PluggableDatabaseRefreshableCloneConfig Pluggable Database Refreshable Clone Configuration.
+type PluggableDatabaseRefreshableCloneConfig struct {
+
+ // Indicates whether the Pluggable Database is a refreshable clone.
+ IsRefreshableClone *bool `mandatory:"false" json:"isRefreshableClone"`
+}
+
+func (m PluggableDatabaseRefreshableCloneConfig) String() string {
+ return common.PointerString(m)
+}
+
+// ValidateEnumValue returns an error when providing an unsupported enum value
+// This function is being called during constructing API request process
+// Not recommended for calling this function directly
+func (m PluggableDatabaseRefreshableCloneConfig) 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/database/pluggable_database_summary.go b/vendor/github.com/oracle/oci-go-sdk/v65/database/pluggable_database_summary.go
index 19e6b42aeb3..a602b6c97b0 100644
--- a/vendor/github.com/oracle/oci-go-sdk/v65/database/pluggable_database_summary.go
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/database/pluggable_database_summary.go
@@ -35,6 +35,7 @@ type PluggableDatabaseSummary struct {
// The date and time the pluggable database was created.
TimeCreated *common.SDKTime `mandatory:"true" json:"timeCreated"`
+ // **Deprecated.** Use PluggableDatabaseNodeLevelDetails for OpenMode details.
// The mode that pluggable database is in. Open mode can only be changed to READ_ONLY or MIGRATE directly from the backend (within the Oracle Database software).
OpenMode PluggableDatabaseSummaryOpenModeEnum `mandatory:"true" json:"openMode"`
@@ -60,6 +61,12 @@ type PluggableDatabaseSummary struct {
DefinedTags map[string]map[string]interface{} `mandatory:"false" json:"definedTags"`
PluggableDatabaseManagementConfig *PluggableDatabaseManagementConfig `mandatory:"false" json:"pluggableDatabaseManagementConfig"`
+
+ RefreshableCloneConfig *PluggableDatabaseRefreshableCloneConfig `mandatory:"false" json:"refreshableCloneConfig"`
+
+ // Pluggable Database Node Level Details.
+ // Example: [{"nodeName" : "node1", "openMode" : "READ_WRITE"}, {"nodeName" : "node2", "openMode" : "READ_ONLY"}]
+ PdbNodeLevelDetails []PluggableDatabaseNodeLevelDetails `mandatory:"false" json:"pdbNodeLevelDetails"`
}
func (m PluggableDatabaseSummary) String() string {
@@ -89,30 +96,51 @@ type PluggableDatabaseSummaryLifecycleStateEnum string
// Set of constants representing the allowable values for PluggableDatabaseSummaryLifecycleStateEnum
const (
- PluggableDatabaseSummaryLifecycleStateProvisioning PluggableDatabaseSummaryLifecycleStateEnum = "PROVISIONING"
- PluggableDatabaseSummaryLifecycleStateAvailable PluggableDatabaseSummaryLifecycleStateEnum = "AVAILABLE"
- PluggableDatabaseSummaryLifecycleStateTerminating PluggableDatabaseSummaryLifecycleStateEnum = "TERMINATING"
- PluggableDatabaseSummaryLifecycleStateTerminated PluggableDatabaseSummaryLifecycleStateEnum = "TERMINATED"
- PluggableDatabaseSummaryLifecycleStateUpdating PluggableDatabaseSummaryLifecycleStateEnum = "UPDATING"
- PluggableDatabaseSummaryLifecycleStateFailed PluggableDatabaseSummaryLifecycleStateEnum = "FAILED"
+ PluggableDatabaseSummaryLifecycleStateProvisioning PluggableDatabaseSummaryLifecycleStateEnum = "PROVISIONING"
+ PluggableDatabaseSummaryLifecycleStateAvailable PluggableDatabaseSummaryLifecycleStateEnum = "AVAILABLE"
+ PluggableDatabaseSummaryLifecycleStateTerminating PluggableDatabaseSummaryLifecycleStateEnum = "TERMINATING"
+ PluggableDatabaseSummaryLifecycleStateTerminated PluggableDatabaseSummaryLifecycleStateEnum = "TERMINATED"
+ PluggableDatabaseSummaryLifecycleStateUpdating PluggableDatabaseSummaryLifecycleStateEnum = "UPDATING"
+ PluggableDatabaseSummaryLifecycleStateFailed PluggableDatabaseSummaryLifecycleStateEnum = "FAILED"
+ PluggableDatabaseSummaryLifecycleStateRelocating PluggableDatabaseSummaryLifecycleStateEnum = "RELOCATING"
+ PluggableDatabaseSummaryLifecycleStateRelocated PluggableDatabaseSummaryLifecycleStateEnum = "RELOCATED"
+ PluggableDatabaseSummaryLifecycleStateRefreshing PluggableDatabaseSummaryLifecycleStateEnum = "REFRESHING"
+ PluggableDatabaseSummaryLifecycleStateRestoreInProgress PluggableDatabaseSummaryLifecycleStateEnum = "RESTORE_IN_PROGRESS"
+ PluggableDatabaseSummaryLifecycleStateRestoreFailed PluggableDatabaseSummaryLifecycleStateEnum = "RESTORE_FAILED"
+ PluggableDatabaseSummaryLifecycleStateBackupInProgress PluggableDatabaseSummaryLifecycleStateEnum = "BACKUP_IN_PROGRESS"
+ PluggableDatabaseSummaryLifecycleStateDisabled PluggableDatabaseSummaryLifecycleStateEnum = "DISABLED"
)
var mappingPluggableDatabaseSummaryLifecycleStateEnum = map[string]PluggableDatabaseSummaryLifecycleStateEnum{
- "PROVISIONING": PluggableDatabaseSummaryLifecycleStateProvisioning,
- "AVAILABLE": PluggableDatabaseSummaryLifecycleStateAvailable,
- "TERMINATING": PluggableDatabaseSummaryLifecycleStateTerminating,
- "TERMINATED": PluggableDatabaseSummaryLifecycleStateTerminated,
- "UPDATING": PluggableDatabaseSummaryLifecycleStateUpdating,
- "FAILED": PluggableDatabaseSummaryLifecycleStateFailed,
+ "PROVISIONING": PluggableDatabaseSummaryLifecycleStateProvisioning,
+ "AVAILABLE": PluggableDatabaseSummaryLifecycleStateAvailable,
+ "TERMINATING": PluggableDatabaseSummaryLifecycleStateTerminating,
+ "TERMINATED": PluggableDatabaseSummaryLifecycleStateTerminated,
+ "UPDATING": PluggableDatabaseSummaryLifecycleStateUpdating,
+ "FAILED": PluggableDatabaseSummaryLifecycleStateFailed,
+ "RELOCATING": PluggableDatabaseSummaryLifecycleStateRelocating,
+ "RELOCATED": PluggableDatabaseSummaryLifecycleStateRelocated,
+ "REFRESHING": PluggableDatabaseSummaryLifecycleStateRefreshing,
+ "RESTORE_IN_PROGRESS": PluggableDatabaseSummaryLifecycleStateRestoreInProgress,
+ "RESTORE_FAILED": PluggableDatabaseSummaryLifecycleStateRestoreFailed,
+ "BACKUP_IN_PROGRESS": PluggableDatabaseSummaryLifecycleStateBackupInProgress,
+ "DISABLED": PluggableDatabaseSummaryLifecycleStateDisabled,
}
var mappingPluggableDatabaseSummaryLifecycleStateEnumLowerCase = map[string]PluggableDatabaseSummaryLifecycleStateEnum{
- "provisioning": PluggableDatabaseSummaryLifecycleStateProvisioning,
- "available": PluggableDatabaseSummaryLifecycleStateAvailable,
- "terminating": PluggableDatabaseSummaryLifecycleStateTerminating,
- "terminated": PluggableDatabaseSummaryLifecycleStateTerminated,
- "updating": PluggableDatabaseSummaryLifecycleStateUpdating,
- "failed": PluggableDatabaseSummaryLifecycleStateFailed,
+ "provisioning": PluggableDatabaseSummaryLifecycleStateProvisioning,
+ "available": PluggableDatabaseSummaryLifecycleStateAvailable,
+ "terminating": PluggableDatabaseSummaryLifecycleStateTerminating,
+ "terminated": PluggableDatabaseSummaryLifecycleStateTerminated,
+ "updating": PluggableDatabaseSummaryLifecycleStateUpdating,
+ "failed": PluggableDatabaseSummaryLifecycleStateFailed,
+ "relocating": PluggableDatabaseSummaryLifecycleStateRelocating,
+ "relocated": PluggableDatabaseSummaryLifecycleStateRelocated,
+ "refreshing": PluggableDatabaseSummaryLifecycleStateRefreshing,
+ "restore_in_progress": PluggableDatabaseSummaryLifecycleStateRestoreInProgress,
+ "restore_failed": PluggableDatabaseSummaryLifecycleStateRestoreFailed,
+ "backup_in_progress": PluggableDatabaseSummaryLifecycleStateBackupInProgress,
+ "disabled": PluggableDatabaseSummaryLifecycleStateDisabled,
}
// GetPluggableDatabaseSummaryLifecycleStateEnumValues Enumerates the set of values for PluggableDatabaseSummaryLifecycleStateEnum
@@ -133,6 +161,13 @@ func GetPluggableDatabaseSummaryLifecycleStateEnumStringValues() []string {
"TERMINATED",
"UPDATING",
"FAILED",
+ "RELOCATING",
+ "RELOCATED",
+ "REFRESHING",
+ "RESTORE_IN_PROGRESS",
+ "RESTORE_FAILED",
+ "BACKUP_IN_PROGRESS",
+ "DISABLED",
}
}
diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/database/refresh_pluggable_database_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/database/refresh_pluggable_database_request_response.go
new file mode 100644
index 00000000000..e29df0dda96
--- /dev/null
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/database/refresh_pluggable_database_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 database
+
+import (
+ "fmt"
+ "github.com/oracle/oci-go-sdk/v65/common"
+ "net/http"
+ "strings"
+)
+
+// RefreshPluggableDatabaseRequest wrapper for the RefreshPluggableDatabase operation
+//
+// # See also
+//
+// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/database/RefreshPluggableDatabase.go.html to see an example of how to use RefreshPluggableDatabaseRequest.
+type RefreshPluggableDatabaseRequest struct {
+
+ // The database OCID (https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm).
+ PluggableDatabaseId *string `mandatory:"true" contributesTo:"path" name:"pluggableDatabaseId"`
+
+ // 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 identifier for the request.
+ 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
+ // may be 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 RefreshPluggableDatabaseRequest) String() string {
+ return common.PointerString(request)
+}
+
+// HTTPRequest implements the OCIRequest interface
+func (request RefreshPluggableDatabaseRequest) 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 RefreshPluggableDatabaseRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) {
+
+ return nil, false
+
+}
+
+// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy.
+func (request RefreshPluggableDatabaseRequest) 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 RefreshPluggableDatabaseRequest) ValidateEnumValue() (bool, error) {
+ errMessage := []string{}
+ if len(errMessage) > 0 {
+ return true, fmt.Errorf(strings.Join(errMessage, "\n"))
+ }
+ return false, nil
+}
+
+// RefreshPluggableDatabaseResponse wrapper for the RefreshPluggableDatabase operation
+type RefreshPluggableDatabaseResponse struct {
+
+ // The underlying http response
+ RawResponse *http.Response
+
+ // The PluggableDatabase instance
+ PluggableDatabase `presentIn:"body"`
+
+ // The OCID (https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm) of the work request. Multiple OCID values are returned in a comma-separated list. Use GetWorkRequest with a work request OCID to track the status of the request.
+ OpcWorkRequestId *string `presentIn:"header" name:"opc-work-request-id"`
+
+ // 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 RefreshPluggableDatabaseResponse) String() string {
+ return common.PointerString(response)
+}
+
+// HTTPResponse implements the OCIResponse interface
+func (response RefreshPluggableDatabaseResponse) HTTPResponse() *http.Response {
+ return response.RawResponse
+}
diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/database/remote_clone_pluggable_database_details.go b/vendor/github.com/oracle/oci-go-sdk/v65/database/remote_clone_pluggable_database_details.go
index becea1ceb91..1e14ed671b1 100644
--- a/vendor/github.com/oracle/oci-go-sdk/v65/database/remote_clone_pluggable_database_details.go
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/database/remote_clone_pluggable_database_details.go
@@ -15,7 +15,8 @@ import (
"strings"
)
-// RemoteClonePluggableDatabaseDetails Parameters for cloning a pluggable database (PDB) in a remote database (CDB). A remote CDB is one that does not contain the source PDB.
+// RemoteClonePluggableDatabaseDetails **Deprecated.** Use CreatePluggableDatabaseDetails for Pluggable Database RemoteClone Operation.
+// Parameters for cloning a pluggable database (PDB) in a remote database (CDB). A remote CDB is one that does not contain the source PDB.
// **Warning:** Oracle recommends that you avoid using any confidential information when you supply string values using the API.
type RemoteClonePluggableDatabaseDetails struct {
diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/database/restore_database_details.go b/vendor/github.com/oracle/oci-go-sdk/v65/database/restore_database_details.go
index e9032354188..2fde0f30c8c 100644
--- a/vendor/github.com/oracle/oci-go-sdk/v65/database/restore_database_details.go
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/database/restore_database_details.go
@@ -19,6 +19,7 @@ import (
type RestoreDatabaseDetails struct {
// Restores using the backup with the System Change Number (SCN) specified.
+ // This field is applicable for both use cases - Restoring Container Database or Restoring specific Pluggable Database.
DatabaseSCN *string `mandatory:"false" json:"databaseSCN"`
// Restores to the timestamp specified.
@@ -26,6 +27,9 @@ type RestoreDatabaseDetails struct {
// Restores to the last known good state with the least possible data loss.
Latest *bool `mandatory:"false" json:"latest"`
+
+ // Restores only the Pluggable Database (if specified) using the inputs provided in request.
+ PluggableDatabaseName *string `mandatory:"false" json:"pluggableDatabaseName"`
}
func (m RestoreDatabaseDetails) String() string {
diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/container_listing_package.go b/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/container_listing_package.go
new file mode 100644
index 00000000000..37abae1f12c
--- /dev/null
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/container_listing_package.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.
+
+// Marketplace Service API
+//
+// Use the Marketplace API to manage applications in Oracle Cloud Infrastructure Marketplace. For more information, see Overview of Marketplace (https://docs.cloud.oracle.com/Content/Marketplace/Concepts/marketoverview.htm)
+//
+
+package marketplace
+
+import (
+ "encoding/json"
+ "fmt"
+ "github.com/oracle/oci-go-sdk/v65/common"
+ "strings"
+)
+
+// ContainerListingPackage A listing package for container.
+type ContainerListingPackage struct {
+
+ // The ID of the listing this package belongs to.
+ ListingId *string `mandatory:"true" json:"listingId"`
+
+ // The package version.
+ Version *string `mandatory:"true" json:"version"`
+
+ // Description of this package.
+ Description *string `mandatory:"false" json:"description"`
+
+ Pricing *PricingModel `mandatory:"false" json:"pricing"`
+
+ // The unique identifier for the package resource.
+ ResourceId *string `mandatory:"false" json:"resourceId"`
+
+ // The date and time this listing package was created, expressed in RFC 3339 (https://tools.ietf.org/html/rfc3339)
+ // timestamp format.
+ // Example: `2016-08-25T21:10:29.600Z`
+ TimeCreated *common.SDKTime `mandatory:"false" json:"timeCreated"`
+
+ OperatingSystem *OperatingSystem `mandatory:"false" json:"operatingSystem"`
+
+ // The regions where you can deploy the listing package. (Some packages have restrictions that limit their deployment to United States regions only.)
+ Regions []Region `mandatory:"false" json:"regions"`
+}
+
+// GetDescription returns Description
+func (m ContainerListingPackage) GetDescription() *string {
+ return m.Description
+}
+
+// GetListingId returns ListingId
+func (m ContainerListingPackage) GetListingId() *string {
+ return m.ListingId
+}
+
+// GetVersion returns Version
+func (m ContainerListingPackage) GetVersion() *string {
+ return m.Version
+}
+
+// GetPricing returns Pricing
+func (m ContainerListingPackage) GetPricing() *PricingModel {
+ return m.Pricing
+}
+
+// GetResourceId returns ResourceId
+func (m ContainerListingPackage) GetResourceId() *string {
+ return m.ResourceId
+}
+
+// GetTimeCreated returns TimeCreated
+func (m ContainerListingPackage) GetTimeCreated() *common.SDKTime {
+ return m.TimeCreated
+}
+
+// GetOperatingSystem returns OperatingSystem
+func (m ContainerListingPackage) GetOperatingSystem() *OperatingSystem {
+ return m.OperatingSystem
+}
+
+// GetRegions returns Regions
+func (m ContainerListingPackage) GetRegions() []Region {
+ return m.Regions
+}
+
+func (m ContainerListingPackage) String() string {
+ return common.PointerString(m)
+}
+
+// ValidateEnumValue returns an error when providing an unsupported enum value
+// This function is being called during constructing API request process
+// Not recommended for calling this function directly
+func (m ContainerListingPackage) 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 ContainerListingPackage) MarshalJSON() (buff []byte, e error) {
+ type MarshalTypeContainerListingPackage ContainerListingPackage
+ s := struct {
+ DiscriminatorParam string `json:"packageType"`
+ MarshalTypeContainerListingPackage
+ }{
+ "CONTAINER",
+ (MarshalTypeContainerListingPackage)(m),
+ }
+
+ return json.Marshal(&s)
+}
diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/export_listing_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/export_listing_request_response.go
new file mode 100644
index 00000000000..cf29ca9305a
--- /dev/null
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/export_listing_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 marketplace
+
+import (
+ "fmt"
+ "github.com/oracle/oci-go-sdk/v65/common"
+ "net/http"
+ "strings"
+)
+
+// ExportListingRequest wrapper for the ExportListing operation
+//
+// # See also
+//
+// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/marketplace/ExportListing.go.html to see an example of how to use ExportListingRequest.
+type ExportListingRequest struct {
+
+ // The unique identifier for the listing.
+ ListingId *string `mandatory:"true" contributesTo:"path" name:"listingId"`
+
+ // The version of the package. Package versions are unique within a listing.
+ PackageVersion *string `mandatory:"true" contributesTo:"path" name:"packageVersion"`
+
+ // The details for exporting container images or helm chart.
+ ExportPackageDetails `contributesTo:"body"`
+
+ // 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 might be rejected).
+ 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 ExportListingRequest) String() string {
+ return common.PointerString(request)
+}
+
+// HTTPRequest implements the OCIRequest interface
+func (request ExportListingRequest) 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 ExportListingRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) {
+
+ return nil, false
+
+}
+
+// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy.
+func (request ExportListingRequest) 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 ExportListingRequest) ValidateEnumValue() (bool, error) {
+ errMessage := []string{}
+ if len(errMessage) > 0 {
+ return true, fmt.Errorf(strings.Join(errMessage, "\n"))
+ }
+ return false, nil
+}
+
+// ExportListingResponse wrapper for the ExportListing operation
+type ExportListingResponse struct {
+
+ // The underlying http response
+ RawResponse *http.Response
+
+ // The WorkRequest instance
+ WorkRequest `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"`
+
+ // The OCID of the asynchronous work request.
+ // Use GetWorkRequest with this OCID to track the status of the asynchronous request.
+ OpcWorkRequestId *string `presentIn:"header" name:"opc-work-request-id"`
+}
+
+func (response ExportListingResponse) String() string {
+ return common.PointerString(response)
+}
+
+// HTTPResponse implements the OCIResponse interface
+func (response ExportListingResponse) HTTPResponse() *http.Response {
+ return response.RawResponse
+}
diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/export_package_details.go b/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/export_package_details.go
new file mode 100644
index 00000000000..4489967ae31
--- /dev/null
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/export_package_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.
+
+// Marketplace Service API
+//
+// Use the Marketplace API to manage applications in Oracle Cloud Infrastructure Marketplace. For more information, see Overview of Marketplace (https://docs.cloud.oracle.com/Content/Marketplace/Concepts/marketoverview.htm)
+//
+
+package marketplace
+
+import (
+ "fmt"
+ "github.com/oracle/oci-go-sdk/v65/common"
+ "strings"
+)
+
+// ExportPackageDetails The model for the parameters needed to export a listing.
+type ExportPackageDetails struct {
+
+ // The OCID (https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm) of the compartment where you want to export container image or helm chart.
+ CompartmentId *string `mandatory:"true" json:"compartmentId"`
+
+ // The repository path (/Content/General/Concepts/identifiers.htm) of the container reposistory where the container image or helm chart should be exported.
+ ContainerRepositoryPath *string `mandatory:"true" json:"containerRepositoryPath"`
+}
+
+func (m ExportPackageDetails) String() string {
+ return common.PointerString(m)
+}
+
+// ValidateEnumValue returns an error when providing an unsupported enum value
+// This function is being called during constructing API request process
+// Not recommended for calling this function directly
+func (m ExportPackageDetails) 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/marketplace/get_work_request_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/get_work_request_request_response.go
new file mode 100644
index 00000000000..5ecfdf8dd98
--- /dev/null
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/get_work_request_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 marketplace
+
+import (
+ "fmt"
+ "github.com/oracle/oci-go-sdk/v65/common"
+ "net/http"
+ "strings"
+)
+
+// GetWorkRequestRequest wrapper for the GetWorkRequest operation
+//
+// # See also
+//
+// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/marketplace/GetWorkRequest.go.html to see an example of how to use GetWorkRequestRequest.
+type GetWorkRequestRequest struct {
+
+ // The OCID of the work request.
+ WorkRequestId *string `mandatory:"true" contributesTo:"path" name:"workRequestId"`
+
+ // 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 GetWorkRequestRequest) String() string {
+ return common.PointerString(request)
+}
+
+// HTTPRequest implements the OCIRequest interface
+func (request GetWorkRequestRequest) 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 GetWorkRequestRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) {
+
+ return nil, false
+
+}
+
+// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy.
+func (request GetWorkRequestRequest) 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 GetWorkRequestRequest) ValidateEnumValue() (bool, error) {
+ errMessage := []string{}
+ if len(errMessage) > 0 {
+ return true, fmt.Errorf(strings.Join(errMessage, "\n"))
+ }
+ return false, nil
+}
+
+// GetWorkRequestResponse wrapper for the GetWorkRequest operation
+type GetWorkRequestResponse struct {
+
+ // The underlying http response
+ RawResponse *http.Response
+
+ // The WorkRequest instance
+ WorkRequest `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 GetWorkRequestResponse) String() string {
+ return common.PointerString(response)
+}
+
+// HTTPResponse implements the OCIResponse interface
+func (response GetWorkRequestResponse) HTTPResponse() *http.Response {
+ return response.RawResponse
+}
diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/kubernetes_listing_package.go b/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/kubernetes_listing_package.go
new file mode 100644
index 00000000000..07c417f836f
--- /dev/null
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/kubernetes_listing_package.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.
+
+// Marketplace Service API
+//
+// Use the Marketplace API to manage applications in Oracle Cloud Infrastructure Marketplace. For more information, see Overview of Marketplace (https://docs.cloud.oracle.com/Content/Marketplace/Concepts/marketoverview.htm)
+//
+
+package marketplace
+
+import (
+ "encoding/json"
+ "fmt"
+ "github.com/oracle/oci-go-sdk/v65/common"
+ "strings"
+)
+
+// KubernetesListingPackage A listing package for kubernetes.
+type KubernetesListingPackage struct {
+
+ // The ID of the listing this package belongs to.
+ ListingId *string `mandatory:"true" json:"listingId"`
+
+ // The package version.
+ Version *string `mandatory:"true" json:"version"`
+
+ // Description of this package.
+ Description *string `mandatory:"false" json:"description"`
+
+ Pricing *PricingModel `mandatory:"false" json:"pricing"`
+
+ // The unique identifier for the package resource.
+ ResourceId *string `mandatory:"false" json:"resourceId"`
+
+ // The date and time this listing package was created, expressed in RFC 3339 (https://tools.ietf.org/html/rfc3339)
+ // timestamp format.
+ // Example: `2016-08-25T21:10:29.600Z`
+ TimeCreated *common.SDKTime `mandatory:"false" json:"timeCreated"`
+
+ OperatingSystem *OperatingSystem `mandatory:"false" json:"operatingSystem"`
+
+ // The regions where you can deploy the listing package. (Some packages have restrictions that limit their deployment to United States regions only.)
+ Regions []Region `mandatory:"false" json:"regions"`
+}
+
+// GetDescription returns Description
+func (m KubernetesListingPackage) GetDescription() *string {
+ return m.Description
+}
+
+// GetListingId returns ListingId
+func (m KubernetesListingPackage) GetListingId() *string {
+ return m.ListingId
+}
+
+// GetVersion returns Version
+func (m KubernetesListingPackage) GetVersion() *string {
+ return m.Version
+}
+
+// GetPricing returns Pricing
+func (m KubernetesListingPackage) GetPricing() *PricingModel {
+ return m.Pricing
+}
+
+// GetResourceId returns ResourceId
+func (m KubernetesListingPackage) GetResourceId() *string {
+ return m.ResourceId
+}
+
+// GetTimeCreated returns TimeCreated
+func (m KubernetesListingPackage) GetTimeCreated() *common.SDKTime {
+ return m.TimeCreated
+}
+
+// GetOperatingSystem returns OperatingSystem
+func (m KubernetesListingPackage) GetOperatingSystem() *OperatingSystem {
+ return m.OperatingSystem
+}
+
+// GetRegions returns Regions
+func (m KubernetesListingPackage) GetRegions() []Region {
+ return m.Regions
+}
+
+func (m KubernetesListingPackage) String() string {
+ return common.PointerString(m)
+}
+
+// ValidateEnumValue returns an error when providing an unsupported enum value
+// This function is being called during constructing API request process
+// Not recommended for calling this function directly
+func (m KubernetesListingPackage) 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 KubernetesListingPackage) MarshalJSON() (buff []byte, e error) {
+ type MarshalTypeKubernetesListingPackage KubernetesListingPackage
+ s := struct {
+ DiscriminatorParam string `json:"packageType"`
+ MarshalTypeKubernetesListingPackage
+ }{
+ "KUBERNETES",
+ (MarshalTypeKubernetesListingPackage)(m),
+ }
+
+ return json.Marshal(&s)
+}
diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/list_work_request_errors_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/list_work_request_errors_request_response.go
new file mode 100644
index 00000000000..362798d3f0a
--- /dev/null
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/list_work_request_errors_request_response.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.
+
+package marketplace
+
+import (
+ "fmt"
+ "github.com/oracle/oci-go-sdk/v65/common"
+ "net/http"
+ "strings"
+)
+
+// ListWorkRequestErrorsRequest wrapper for the ListWorkRequestErrors operation
+//
+// # See also
+//
+// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/marketplace/ListWorkRequestErrors.go.html to see an example of how to use ListWorkRequestErrorsRequest.
+type ListWorkRequestErrorsRequest struct {
+
+ // The OCID of the work request.
+ WorkRequestId *string `mandatory:"true" contributesTo:"path" name:"workRequestId"`
+
+ // The value of the `opc-next-page` response header from the previous "List" call.
+ Page *string `mandatory:"false" contributesTo:"query" name:"page"`
+
+ // How many records to return. Specify a value greater than zero and less than or equal to 1000. The default is 30.
+ 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"`
+
+ // The sort order to use, either `ASC` or `DESC`.
+ SortOrder ListWorkRequestErrorsSortOrderEnum `mandatory:"false" contributesTo:"query" name:"sortOrder" omitEmpty:"true"`
+
+ // The field to sort by. Only one sort order may be provided. Default order for timeCreated is descending.
+ SortBy ListWorkRequestErrorsSortByEnum `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 ListWorkRequestErrorsRequest) String() string {
+ return common.PointerString(request)
+}
+
+// HTTPRequest implements the OCIRequest interface
+func (request ListWorkRequestErrorsRequest) 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 ListWorkRequestErrorsRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) {
+
+ return nil, false
+
+}
+
+// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy.
+func (request ListWorkRequestErrorsRequest) 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 ListWorkRequestErrorsRequest) ValidateEnumValue() (bool, error) {
+ errMessage := []string{}
+ if _, ok := GetMappingListWorkRequestErrorsSortOrderEnum(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(GetListWorkRequestErrorsSortOrderEnumStringValues(), ",")))
+ }
+ if _, ok := GetMappingListWorkRequestErrorsSortByEnum(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(GetListWorkRequestErrorsSortByEnumStringValues(), ",")))
+ }
+ if len(errMessage) > 0 {
+ return true, fmt.Errorf(strings.Join(errMessage, "\n"))
+ }
+ return false, nil
+}
+
+// ListWorkRequestErrorsResponse wrapper for the ListWorkRequestErrors operation
+type ListWorkRequestErrorsResponse struct {
+
+ // The underlying http response
+ RawResponse *http.Response
+
+ // A list of WorkRequestErrorCollection instances
+ WorkRequestErrorCollection `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 ListWorkRequestErrorsResponse) String() string {
+ return common.PointerString(response)
+}
+
+// HTTPResponse implements the OCIResponse interface
+func (response ListWorkRequestErrorsResponse) HTTPResponse() *http.Response {
+ return response.RawResponse
+}
+
+// ListWorkRequestErrorsSortOrderEnum Enum with underlying type: string
+type ListWorkRequestErrorsSortOrderEnum string
+
+// Set of constants representing the allowable values for ListWorkRequestErrorsSortOrderEnum
+const (
+ ListWorkRequestErrorsSortOrderAsc ListWorkRequestErrorsSortOrderEnum = "ASC"
+ ListWorkRequestErrorsSortOrderDesc ListWorkRequestErrorsSortOrderEnum = "DESC"
+)
+
+var mappingListWorkRequestErrorsSortOrderEnum = map[string]ListWorkRequestErrorsSortOrderEnum{
+ "ASC": ListWorkRequestErrorsSortOrderAsc,
+ "DESC": ListWorkRequestErrorsSortOrderDesc,
+}
+
+var mappingListWorkRequestErrorsSortOrderEnumLowerCase = map[string]ListWorkRequestErrorsSortOrderEnum{
+ "asc": ListWorkRequestErrorsSortOrderAsc,
+ "desc": ListWorkRequestErrorsSortOrderDesc,
+}
+
+// GetListWorkRequestErrorsSortOrderEnumValues Enumerates the set of values for ListWorkRequestErrorsSortOrderEnum
+func GetListWorkRequestErrorsSortOrderEnumValues() []ListWorkRequestErrorsSortOrderEnum {
+ values := make([]ListWorkRequestErrorsSortOrderEnum, 0)
+ for _, v := range mappingListWorkRequestErrorsSortOrderEnum {
+ values = append(values, v)
+ }
+ return values
+}
+
+// GetListWorkRequestErrorsSortOrderEnumStringValues Enumerates the set of values in String for ListWorkRequestErrorsSortOrderEnum
+func GetListWorkRequestErrorsSortOrderEnumStringValues() []string {
+ return []string{
+ "ASC",
+ "DESC",
+ }
+}
+
+// GetMappingListWorkRequestErrorsSortOrderEnum performs case Insensitive comparison on enum value and return the desired enum
+func GetMappingListWorkRequestErrorsSortOrderEnum(val string) (ListWorkRequestErrorsSortOrderEnum, bool) {
+ enum, ok := mappingListWorkRequestErrorsSortOrderEnumLowerCase[strings.ToLower(val)]
+ return enum, ok
+}
+
+// ListWorkRequestErrorsSortByEnum Enum with underlying type: string
+type ListWorkRequestErrorsSortByEnum string
+
+// Set of constants representing the allowable values for ListWorkRequestErrorsSortByEnum
+const (
+ ListWorkRequestErrorsSortByTimecreated ListWorkRequestErrorsSortByEnum = "timeCreated"
+)
+
+var mappingListWorkRequestErrorsSortByEnum = map[string]ListWorkRequestErrorsSortByEnum{
+ "timeCreated": ListWorkRequestErrorsSortByTimecreated,
+}
+
+var mappingListWorkRequestErrorsSortByEnumLowerCase = map[string]ListWorkRequestErrorsSortByEnum{
+ "timecreated": ListWorkRequestErrorsSortByTimecreated,
+}
+
+// GetListWorkRequestErrorsSortByEnumValues Enumerates the set of values for ListWorkRequestErrorsSortByEnum
+func GetListWorkRequestErrorsSortByEnumValues() []ListWorkRequestErrorsSortByEnum {
+ values := make([]ListWorkRequestErrorsSortByEnum, 0)
+ for _, v := range mappingListWorkRequestErrorsSortByEnum {
+ values = append(values, v)
+ }
+ return values
+}
+
+// GetListWorkRequestErrorsSortByEnumStringValues Enumerates the set of values in String for ListWorkRequestErrorsSortByEnum
+func GetListWorkRequestErrorsSortByEnumStringValues() []string {
+ return []string{
+ "timeCreated",
+ }
+}
+
+// GetMappingListWorkRequestErrorsSortByEnum performs case Insensitive comparison on enum value and return the desired enum
+func GetMappingListWorkRequestErrorsSortByEnum(val string) (ListWorkRequestErrorsSortByEnum, bool) {
+ enum, ok := mappingListWorkRequestErrorsSortByEnumLowerCase[strings.ToLower(val)]
+ return enum, ok
+}
diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/list_work_request_logs_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/list_work_request_logs_request_response.go
new file mode 100644
index 00000000000..05aa5cbf69f
--- /dev/null
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/list_work_request_logs_request_response.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.
+
+package marketplace
+
+import (
+ "fmt"
+ "github.com/oracle/oci-go-sdk/v65/common"
+ "net/http"
+ "strings"
+)
+
+// ListWorkRequestLogsRequest wrapper for the ListWorkRequestLogs operation
+//
+// # See also
+//
+// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/marketplace/ListWorkRequestLogs.go.html to see an example of how to use ListWorkRequestLogsRequest.
+type ListWorkRequestLogsRequest struct {
+
+ // The OCID of the work request.
+ WorkRequestId *string `mandatory:"true" contributesTo:"path" name:"workRequestId"`
+
+ // The value of the `opc-next-page` response header from the previous "List" call.
+ Page *string `mandatory:"false" contributesTo:"query" name:"page"`
+
+ // How many records to return. Specify a value greater than zero and less than or equal to 1000. The default is 30.
+ 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"`
+
+ // The sort order to use, either `ASC` or `DESC`.
+ SortOrder ListWorkRequestLogsSortOrderEnum `mandatory:"false" contributesTo:"query" name:"sortOrder" omitEmpty:"true"`
+
+ // The field to sort by. Only one sort order may be provided. Default order for timeCreated is descending.
+ SortBy ListWorkRequestLogsSortByEnum `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 ListWorkRequestLogsRequest) String() string {
+ return common.PointerString(request)
+}
+
+// HTTPRequest implements the OCIRequest interface
+func (request ListWorkRequestLogsRequest) 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 ListWorkRequestLogsRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) {
+
+ return nil, false
+
+}
+
+// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy.
+func (request ListWorkRequestLogsRequest) 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 ListWorkRequestLogsRequest) ValidateEnumValue() (bool, error) {
+ errMessage := []string{}
+ if _, ok := GetMappingListWorkRequestLogsSortOrderEnum(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(GetListWorkRequestLogsSortOrderEnumStringValues(), ",")))
+ }
+ if _, ok := GetMappingListWorkRequestLogsSortByEnum(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(GetListWorkRequestLogsSortByEnumStringValues(), ",")))
+ }
+ if len(errMessage) > 0 {
+ return true, fmt.Errorf(strings.Join(errMessage, "\n"))
+ }
+ return false, nil
+}
+
+// ListWorkRequestLogsResponse wrapper for the ListWorkRequestLogs operation
+type ListWorkRequestLogsResponse struct {
+
+ // The underlying http response
+ RawResponse *http.Response
+
+ // A list of WorkRequestLogEntryCollection instances
+ WorkRequestLogEntryCollection `presentIn:"body"`
+
+ // 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"`
+
+ // 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 ListWorkRequestLogsResponse) String() string {
+ return common.PointerString(response)
+}
+
+// HTTPResponse implements the OCIResponse interface
+func (response ListWorkRequestLogsResponse) HTTPResponse() *http.Response {
+ return response.RawResponse
+}
+
+// ListWorkRequestLogsSortOrderEnum Enum with underlying type: string
+type ListWorkRequestLogsSortOrderEnum string
+
+// Set of constants representing the allowable values for ListWorkRequestLogsSortOrderEnum
+const (
+ ListWorkRequestLogsSortOrderAsc ListWorkRequestLogsSortOrderEnum = "ASC"
+ ListWorkRequestLogsSortOrderDesc ListWorkRequestLogsSortOrderEnum = "DESC"
+)
+
+var mappingListWorkRequestLogsSortOrderEnum = map[string]ListWorkRequestLogsSortOrderEnum{
+ "ASC": ListWorkRequestLogsSortOrderAsc,
+ "DESC": ListWorkRequestLogsSortOrderDesc,
+}
+
+var mappingListWorkRequestLogsSortOrderEnumLowerCase = map[string]ListWorkRequestLogsSortOrderEnum{
+ "asc": ListWorkRequestLogsSortOrderAsc,
+ "desc": ListWorkRequestLogsSortOrderDesc,
+}
+
+// GetListWorkRequestLogsSortOrderEnumValues Enumerates the set of values for ListWorkRequestLogsSortOrderEnum
+func GetListWorkRequestLogsSortOrderEnumValues() []ListWorkRequestLogsSortOrderEnum {
+ values := make([]ListWorkRequestLogsSortOrderEnum, 0)
+ for _, v := range mappingListWorkRequestLogsSortOrderEnum {
+ values = append(values, v)
+ }
+ return values
+}
+
+// GetListWorkRequestLogsSortOrderEnumStringValues Enumerates the set of values in String for ListWorkRequestLogsSortOrderEnum
+func GetListWorkRequestLogsSortOrderEnumStringValues() []string {
+ return []string{
+ "ASC",
+ "DESC",
+ }
+}
+
+// GetMappingListWorkRequestLogsSortOrderEnum performs case Insensitive comparison on enum value and return the desired enum
+func GetMappingListWorkRequestLogsSortOrderEnum(val string) (ListWorkRequestLogsSortOrderEnum, bool) {
+ enum, ok := mappingListWorkRequestLogsSortOrderEnumLowerCase[strings.ToLower(val)]
+ return enum, ok
+}
+
+// ListWorkRequestLogsSortByEnum Enum with underlying type: string
+type ListWorkRequestLogsSortByEnum string
+
+// Set of constants representing the allowable values for ListWorkRequestLogsSortByEnum
+const (
+ ListWorkRequestLogsSortByTimecreated ListWorkRequestLogsSortByEnum = "timeCreated"
+)
+
+var mappingListWorkRequestLogsSortByEnum = map[string]ListWorkRequestLogsSortByEnum{
+ "timeCreated": ListWorkRequestLogsSortByTimecreated,
+}
+
+var mappingListWorkRequestLogsSortByEnumLowerCase = map[string]ListWorkRequestLogsSortByEnum{
+ "timecreated": ListWorkRequestLogsSortByTimecreated,
+}
+
+// GetListWorkRequestLogsSortByEnumValues Enumerates the set of values for ListWorkRequestLogsSortByEnum
+func GetListWorkRequestLogsSortByEnumValues() []ListWorkRequestLogsSortByEnum {
+ values := make([]ListWorkRequestLogsSortByEnum, 0)
+ for _, v := range mappingListWorkRequestLogsSortByEnum {
+ values = append(values, v)
+ }
+ return values
+}
+
+// GetListWorkRequestLogsSortByEnumStringValues Enumerates the set of values in String for ListWorkRequestLogsSortByEnum
+func GetListWorkRequestLogsSortByEnumStringValues() []string {
+ return []string{
+ "timeCreated",
+ }
+}
+
+// GetMappingListWorkRequestLogsSortByEnum performs case Insensitive comparison on enum value and return the desired enum
+func GetMappingListWorkRequestLogsSortByEnum(val string) (ListWorkRequestLogsSortByEnum, bool) {
+ enum, ok := mappingListWorkRequestLogsSortByEnumLowerCase[strings.ToLower(val)]
+ return enum, ok
+}
diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/list_work_requests_request_response.go b/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/list_work_requests_request_response.go
new file mode 100644
index 00000000000..98410db0c49
--- /dev/null
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/list_work_requests_request_response.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.
+
+package marketplace
+
+import (
+ "fmt"
+ "github.com/oracle/oci-go-sdk/v65/common"
+ "net/http"
+ "strings"
+)
+
+// ListWorkRequestsRequest wrapper for the ListWorkRequests operation
+//
+// # See also
+//
+// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/marketplace/ListWorkRequests.go.html to see an example of how to use ListWorkRequestsRequest.
+type ListWorkRequestsRequest struct {
+
+ // The unique identifier for the compartment.
+ CompartmentId *string `mandatory:"true" contributesTo:"query" name:"compartmentId"`
+
+ // The OCID of the work request.
+ WorkRequestId *string `mandatory:"false" contributesTo:"query" name:"workRequestId"`
+
+ // A filter to return only resources whose status matches the given OperationStatus.
+ Status ListWorkRequestsStatusEnum `mandatory:"false" contributesTo:"query" name:"status" omitEmpty:"true"`
+
+ // The value of the `opc-next-page` response header from the previous "List" call.
+ Page *string `mandatory:"false" contributesTo:"query" name:"page"`
+
+ // How many records to return. Specify a value greater than zero and less than or equal to 1000. The default is 30.
+ Limit *int `mandatory:"false" contributesTo:"query" name:"limit"`
+
+ // The sort order to use, either `ASC` or `DESC`.
+ SortOrder ListWorkRequestsSortOrderEnum `mandatory:"false" contributesTo:"query" name:"sortOrder" omitEmpty:"true"`
+
+ // The field to sort by. Only one sort order may be provided. Default order for timeAccepted is descending.
+ SortBy ListWorkRequestsSortByEnum `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 ListWorkRequestsRequest) String() string {
+ return common.PointerString(request)
+}
+
+// HTTPRequest implements the OCIRequest interface
+func (request ListWorkRequestsRequest) 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 ListWorkRequestsRequest) BinaryRequestBody() (*common.OCIReadSeekCloser, bool) {
+
+ return nil, false
+
+}
+
+// RetryPolicy implements the OCIRetryableRequest interface. This retrieves the specified retry policy.
+func (request ListWorkRequestsRequest) 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 ListWorkRequestsRequest) ValidateEnumValue() (bool, error) {
+ errMessage := []string{}
+ if _, ok := GetMappingListWorkRequestsStatusEnum(string(request.Status)); !ok && request.Status != "" {
+ errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for Status: %s. Supported values are: %s.", request.Status, strings.Join(GetListWorkRequestsStatusEnumStringValues(), ",")))
+ }
+ if _, ok := GetMappingListWorkRequestsSortOrderEnum(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(GetListWorkRequestsSortOrderEnumStringValues(), ",")))
+ }
+ if _, ok := GetMappingListWorkRequestsSortByEnum(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(GetListWorkRequestsSortByEnumStringValues(), ",")))
+ }
+ if len(errMessage) > 0 {
+ return true, fmt.Errorf(strings.Join(errMessage, "\n"))
+ }
+ return false, nil
+}
+
+// ListWorkRequestsResponse wrapper for the ListWorkRequests operation
+type ListWorkRequestsResponse struct {
+
+ // The underlying http response
+ RawResponse *http.Response
+
+ // A list of WorkRequestCollection instances
+ WorkRequestCollection `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 ListWorkRequestsResponse) String() string {
+ return common.PointerString(response)
+}
+
+// HTTPResponse implements the OCIResponse interface
+func (response ListWorkRequestsResponse) HTTPResponse() *http.Response {
+ return response.RawResponse
+}
+
+// ListWorkRequestsStatusEnum Enum with underlying type: string
+type ListWorkRequestsStatusEnum string
+
+// Set of constants representing the allowable values for ListWorkRequestsStatusEnum
+const (
+ ListWorkRequestsStatusAccepted ListWorkRequestsStatusEnum = "ACCEPTED"
+ ListWorkRequestsStatusInProgress ListWorkRequestsStatusEnum = "IN_PROGRESS"
+ ListWorkRequestsStatusFailed ListWorkRequestsStatusEnum = "FAILED"
+ ListWorkRequestsStatusSucceeded ListWorkRequestsStatusEnum = "SUCCEEDED"
+)
+
+var mappingListWorkRequestsStatusEnum = map[string]ListWorkRequestsStatusEnum{
+ "ACCEPTED": ListWorkRequestsStatusAccepted,
+ "IN_PROGRESS": ListWorkRequestsStatusInProgress,
+ "FAILED": ListWorkRequestsStatusFailed,
+ "SUCCEEDED": ListWorkRequestsStatusSucceeded,
+}
+
+var mappingListWorkRequestsStatusEnumLowerCase = map[string]ListWorkRequestsStatusEnum{
+ "accepted": ListWorkRequestsStatusAccepted,
+ "in_progress": ListWorkRequestsStatusInProgress,
+ "failed": ListWorkRequestsStatusFailed,
+ "succeeded": ListWorkRequestsStatusSucceeded,
+}
+
+// GetListWorkRequestsStatusEnumValues Enumerates the set of values for ListWorkRequestsStatusEnum
+func GetListWorkRequestsStatusEnumValues() []ListWorkRequestsStatusEnum {
+ values := make([]ListWorkRequestsStatusEnum, 0)
+ for _, v := range mappingListWorkRequestsStatusEnum {
+ values = append(values, v)
+ }
+ return values
+}
+
+// GetListWorkRequestsStatusEnumStringValues Enumerates the set of values in String for ListWorkRequestsStatusEnum
+func GetListWorkRequestsStatusEnumStringValues() []string {
+ return []string{
+ "ACCEPTED",
+ "IN_PROGRESS",
+ "FAILED",
+ "SUCCEEDED",
+ }
+}
+
+// GetMappingListWorkRequestsStatusEnum performs case Insensitive comparison on enum value and return the desired enum
+func GetMappingListWorkRequestsStatusEnum(val string) (ListWorkRequestsStatusEnum, bool) {
+ enum, ok := mappingListWorkRequestsStatusEnumLowerCase[strings.ToLower(val)]
+ return enum, ok
+}
+
+// ListWorkRequestsSortOrderEnum Enum with underlying type: string
+type ListWorkRequestsSortOrderEnum string
+
+// Set of constants representing the allowable values for ListWorkRequestsSortOrderEnum
+const (
+ ListWorkRequestsSortOrderAsc ListWorkRequestsSortOrderEnum = "ASC"
+ ListWorkRequestsSortOrderDesc ListWorkRequestsSortOrderEnum = "DESC"
+)
+
+var mappingListWorkRequestsSortOrderEnum = map[string]ListWorkRequestsSortOrderEnum{
+ "ASC": ListWorkRequestsSortOrderAsc,
+ "DESC": ListWorkRequestsSortOrderDesc,
+}
+
+var mappingListWorkRequestsSortOrderEnumLowerCase = map[string]ListWorkRequestsSortOrderEnum{
+ "asc": ListWorkRequestsSortOrderAsc,
+ "desc": ListWorkRequestsSortOrderDesc,
+}
+
+// GetListWorkRequestsSortOrderEnumValues Enumerates the set of values for ListWorkRequestsSortOrderEnum
+func GetListWorkRequestsSortOrderEnumValues() []ListWorkRequestsSortOrderEnum {
+ values := make([]ListWorkRequestsSortOrderEnum, 0)
+ for _, v := range mappingListWorkRequestsSortOrderEnum {
+ values = append(values, v)
+ }
+ return values
+}
+
+// GetListWorkRequestsSortOrderEnumStringValues Enumerates the set of values in String for ListWorkRequestsSortOrderEnum
+func GetListWorkRequestsSortOrderEnumStringValues() []string {
+ return []string{
+ "ASC",
+ "DESC",
+ }
+}
+
+// GetMappingListWorkRequestsSortOrderEnum performs case Insensitive comparison on enum value and return the desired enum
+func GetMappingListWorkRequestsSortOrderEnum(val string) (ListWorkRequestsSortOrderEnum, bool) {
+ enum, ok := mappingListWorkRequestsSortOrderEnumLowerCase[strings.ToLower(val)]
+ return enum, ok
+}
+
+// ListWorkRequestsSortByEnum Enum with underlying type: string
+type ListWorkRequestsSortByEnum string
+
+// Set of constants representing the allowable values for ListWorkRequestsSortByEnum
+const (
+ ListWorkRequestsSortByTimeaccepted ListWorkRequestsSortByEnum = "timeAccepted"
+)
+
+var mappingListWorkRequestsSortByEnum = map[string]ListWorkRequestsSortByEnum{
+ "timeAccepted": ListWorkRequestsSortByTimeaccepted,
+}
+
+var mappingListWorkRequestsSortByEnumLowerCase = map[string]ListWorkRequestsSortByEnum{
+ "timeaccepted": ListWorkRequestsSortByTimeaccepted,
+}
+
+// GetListWorkRequestsSortByEnumValues Enumerates the set of values for ListWorkRequestsSortByEnum
+func GetListWorkRequestsSortByEnumValues() []ListWorkRequestsSortByEnum {
+ values := make([]ListWorkRequestsSortByEnum, 0)
+ for _, v := range mappingListWorkRequestsSortByEnum {
+ values = append(values, v)
+ }
+ return values
+}
+
+// GetListWorkRequestsSortByEnumStringValues Enumerates the set of values in String for ListWorkRequestsSortByEnum
+func GetListWorkRequestsSortByEnumStringValues() []string {
+ return []string{
+ "timeAccepted",
+ }
+}
+
+// GetMappingListWorkRequestsSortByEnum performs case Insensitive comparison on enum value and return the desired enum
+func GetMappingListWorkRequestsSortByEnum(val string) (ListWorkRequestsSortByEnum, bool) {
+ enum, ok := mappingListWorkRequestsSortByEnumLowerCase[strings.ToLower(val)]
+ return enum, ok
+}
diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/listing.go b/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/listing.go
index bf4141ac150..f3de64a7f95 100644
--- a/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/listing.go
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/listing.go
@@ -186,6 +186,8 @@ type ListingPackageTypeEnum = PackageTypeEnumEnum
const (
ListingPackageTypeOrchestration PackageTypeEnumEnum = "ORCHESTRATION"
ListingPackageTypeImage PackageTypeEnumEnum = "IMAGE"
+ ListingPackageTypeContainer PackageTypeEnumEnum = "CONTAINER"
+ ListingPackageTypeKubernetes PackageTypeEnumEnum = "KUBERNETES"
)
// GetListingPackageTypeEnumValues Enumerates the set of values for PackageTypeEnumEnum
diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/listing_package.go b/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/listing_package.go
index 768a5cf8ebe..6ca42588fe9 100644
--- a/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/listing_package.go
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/listing_package.go
@@ -90,6 +90,10 @@ func (m *listingpackage) UnmarshalPolymorphicJSON(data []byte) (interface{}, err
var err error
switch m.PackageType {
+ case "CONTAINER":
+ mm := ContainerListingPackage{}
+ err = json.Unmarshal(data, &mm)
+ return mm, err
case "ORCHESTRATION":
mm := OrchestrationListingPackage{}
err = json.Unmarshal(data, &mm)
@@ -98,6 +102,10 @@ func (m *listingpackage) UnmarshalPolymorphicJSON(data []byte) (interface{}, err
mm := ImageListingPackage{}
err = json.Unmarshal(data, &mm)
return mm, err
+ case "KUBERNETES":
+ mm := KubernetesListingPackage{}
+ err = json.Unmarshal(data, &mm)
+ return mm, err
default:
common.Logf("Recieved unsupported enum value for ListingPackage: %s.", m.PackageType)
return *m, nil
diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/marketplace_client.go b/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/marketplace_client.go
index 880963feb7e..a0385ffa0b4 100644
--- a/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/marketplace_client.go
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/marketplace_client.go
@@ -399,6 +399,69 @@ func (client MarketplaceClient) deletePublication(ctx context.Context, request c
return response, err
}
+// ExportListing Exports container images or helm chart from marketplace to customer's registry.
+//
+// # See also
+//
+// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/marketplace/ExportListing.go.html to see an example of how to use ExportListing API.
+// A default retry strategy applies to this operation ExportListing()
+func (client MarketplaceClient) ExportListing(ctx context.Context, request ExportListingRequest) (response ExportListingResponse, 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.exportListing, policy)
+ if err != nil {
+ if ociResponse != nil {
+ if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil {
+ opcRequestId := httpResponse.Header.Get("opc-request-id")
+ response = ExportListingResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId}
+ } else {
+ response = ExportListingResponse{}
+ }
+ }
+ return
+ }
+ if convertedResponse, ok := ociResponse.(ExportListingResponse); ok {
+ response = convertedResponse
+ } else {
+ err = fmt.Errorf("failed to convert OCIResponse into ExportListingResponse")
+ }
+ return
+}
+
+// exportListing implements the OCIOperation interface (enables retrying operations)
+func (client MarketplaceClient) exportListing(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) {
+
+ httpRequest, err := request.HTTPRequest(http.MethodPost, "/listings/{listingId}/packages/{packageVersion}/actions/export", binaryReqBody, extraHeaders)
+ if err != nil {
+ return nil, err
+ }
+
+ var response ExportListingResponse
+ 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/marketplace/20181001/Listing/ExportListing"
+ err = common.PostProcessServiceError(err, "Marketplace", "ExportListing", apiReferenceLink)
+ return response, err
+ }
+
+ err = common.UnmarshalResponse(httpResponse, &response)
+ return response, err
+}
+
// GetAcceptedAgreement Gets the details of a specific, previously accepted terms of use agreement.
//
// # See also
@@ -769,6 +832,64 @@ func (client MarketplaceClient) getPublicationPackage(ctx context.Context, reque
return response, err
}
+// GetWorkRequest Gets the details of the specified work request
+//
+// # See also
+//
+// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/marketplace/GetWorkRequest.go.html to see an example of how to use GetWorkRequest API.
+// A default retry strategy applies to this operation GetWorkRequest()
+func (client MarketplaceClient) 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
+}
+
+// getWorkRequest implements the OCIOperation interface (enables retrying operations)
+func (client MarketplaceClient) getWorkRequest(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)
+ if err != nil {
+ return nil, err
+ }
+
+ 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/marketplace/20181001/WorkRequest/GetWorkRequest"
+ err = common.PostProcessServiceError(err, "Marketplace", "GetWorkRequest", apiReferenceLink)
+ return response, err
+ }
+
+ err = common.UnmarshalResponse(httpResponse, &response)
+ return response, err
+}
+
// ListAcceptedAgreements Lists the terms of use agreements that have been accepted in the specified compartment.
// You can filter results by specifying query parameters.
//
@@ -1430,6 +1551,180 @@ func (client MarketplaceClient) listTaxes(ctx context.Context, request common.OC
return response, err
}
+// ListWorkRequestErrors List all errors for a work request
+//
+// # See also
+//
+// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/marketplace/ListWorkRequestErrors.go.html to see an example of how to use ListWorkRequestErrors API.
+// A default retry strategy applies to this operation ListWorkRequestErrors()
+func (client MarketplaceClient) ListWorkRequestErrors(ctx context.Context, request ListWorkRequestErrorsRequest) (response ListWorkRequestErrorsResponse, 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.listWorkRequestErrors, policy)
+ if err != nil {
+ if ociResponse != nil {
+ if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil {
+ opcRequestId := httpResponse.Header.Get("opc-request-id")
+ response = ListWorkRequestErrorsResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId}
+ } else {
+ response = ListWorkRequestErrorsResponse{}
+ }
+ }
+ return
+ }
+ if convertedResponse, ok := ociResponse.(ListWorkRequestErrorsResponse); ok {
+ response = convertedResponse
+ } else {
+ err = fmt.Errorf("failed to convert OCIResponse into ListWorkRequestErrorsResponse")
+ }
+ return
+}
+
+// listWorkRequestErrors implements the OCIOperation interface (enables retrying operations)
+func (client MarketplaceClient) listWorkRequestErrors(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) {
+
+ httpRequest, err := request.HTTPRequest(http.MethodGet, "/workRequests/{workRequestId}/errors", binaryReqBody, extraHeaders)
+ if err != nil {
+ return nil, err
+ }
+
+ var response ListWorkRequestErrorsResponse
+ 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/marketplace/20181001/WorkRequest/ListWorkRequestErrors"
+ err = common.PostProcessServiceError(err, "Marketplace", "ListWorkRequestErrors", apiReferenceLink)
+ return response, err
+ }
+
+ err = common.UnmarshalResponse(httpResponse, &response)
+ return response, err
+}
+
+// ListWorkRequestLogs List all logs for a work request
+//
+// # See also
+//
+// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/marketplace/ListWorkRequestLogs.go.html to see an example of how to use ListWorkRequestLogs API.
+// A default retry strategy applies to this operation ListWorkRequestLogs()
+func (client MarketplaceClient) ListWorkRequestLogs(ctx context.Context, request ListWorkRequestLogsRequest) (response ListWorkRequestLogsResponse, 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.listWorkRequestLogs, policy)
+ if err != nil {
+ if ociResponse != nil {
+ if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil {
+ opcRequestId := httpResponse.Header.Get("opc-request-id")
+ response = ListWorkRequestLogsResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId}
+ } else {
+ response = ListWorkRequestLogsResponse{}
+ }
+ }
+ return
+ }
+ if convertedResponse, ok := ociResponse.(ListWorkRequestLogsResponse); ok {
+ response = convertedResponse
+ } else {
+ err = fmt.Errorf("failed to convert OCIResponse into ListWorkRequestLogsResponse")
+ }
+ return
+}
+
+// listWorkRequestLogs implements the OCIOperation interface (enables retrying operations)
+func (client MarketplaceClient) listWorkRequestLogs(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) {
+
+ httpRequest, err := request.HTTPRequest(http.MethodGet, "/workRequests/{workRequestId}/logs", binaryReqBody, extraHeaders)
+ if err != nil {
+ return nil, err
+ }
+
+ var response ListWorkRequestLogsResponse
+ 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/marketplace/20181001/WorkRequest/ListWorkRequestLogs"
+ err = common.PostProcessServiceError(err, "Marketplace", "ListWorkRequestLogs", apiReferenceLink)
+ return response, err
+ }
+
+ err = common.UnmarshalResponse(httpResponse, &response)
+ return response, err
+}
+
+// ListWorkRequests List all work requests in a compartment
+//
+// # See also
+//
+// Click https://docs.cloud.oracle.com/en-us/iaas/tools/go-sdk-examples/latest/marketplace/ListWorkRequests.go.html to see an example of how to use ListWorkRequests API.
+// A default retry strategy applies to this operation ListWorkRequests()
+func (client MarketplaceClient) ListWorkRequests(ctx context.Context, request ListWorkRequestsRequest) (response ListWorkRequestsResponse, 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.listWorkRequests, policy)
+ if err != nil {
+ if ociResponse != nil {
+ if httpResponse := ociResponse.HTTPResponse(); httpResponse != nil {
+ opcRequestId := httpResponse.Header.Get("opc-request-id")
+ response = ListWorkRequestsResponse{RawResponse: httpResponse, OpcRequestId: &opcRequestId}
+ } else {
+ response = ListWorkRequestsResponse{}
+ }
+ }
+ return
+ }
+ if convertedResponse, ok := ociResponse.(ListWorkRequestsResponse); ok {
+ response = convertedResponse
+ } else {
+ err = fmt.Errorf("failed to convert OCIResponse into ListWorkRequestsResponse")
+ }
+ return
+}
+
+// listWorkRequests implements the OCIOperation interface (enables retrying operations)
+func (client MarketplaceClient) listWorkRequests(ctx context.Context, request common.OCIRequest, binaryReqBody *common.OCIReadSeekCloser, extraHeaders map[string]string) (common.OCIResponse, error) {
+
+ httpRequest, err := request.HTTPRequest(http.MethodGet, "/workRequests", binaryReqBody, extraHeaders)
+ if err != nil {
+ return nil, err
+ }
+
+ var response ListWorkRequestsResponse
+ 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/marketplace/20181001/WorkRequest/ListWorkRequests"
+ err = common.PostProcessServiceError(err, "Marketplace", "ListWorkRequests", apiReferenceLink)
+ return response, err
+ }
+
+ err = common.UnmarshalResponse(httpResponse, &response)
+ return response, err
+}
+
// SearchListings Queries all Marketplace Applications to find listings that match the specified criteria. To search
// for a listing, you can use a free text or structured search.
//
diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/operation_status.go b/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/operation_status.go
new file mode 100644
index 00000000000..0e9a560e06a
--- /dev/null
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/operation_status.go
@@ -0,0 +1,64 @@
+// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved.
+// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+// Code generated. DO NOT EDIT.
+
+// Marketplace Service API
+//
+// Use the Marketplace API to manage applications in Oracle Cloud Infrastructure Marketplace. For more information, see Overview of Marketplace (https://docs.cloud.oracle.com/Content/Marketplace/Concepts/marketoverview.htm)
+//
+
+package marketplace
+
+import (
+ "strings"
+)
+
+// OperationStatusEnum Enum with underlying type: string
+type OperationStatusEnum string
+
+// Set of constants representing the allowable values for OperationStatusEnum
+const (
+ OperationStatusAccepted OperationStatusEnum = "ACCEPTED"
+ OperationStatusInProgress OperationStatusEnum = "IN_PROGRESS"
+ OperationStatusFailed OperationStatusEnum = "FAILED"
+ OperationStatusSucceeded OperationStatusEnum = "SUCCEEDED"
+)
+
+var mappingOperationStatusEnum = map[string]OperationStatusEnum{
+ "ACCEPTED": OperationStatusAccepted,
+ "IN_PROGRESS": OperationStatusInProgress,
+ "FAILED": OperationStatusFailed,
+ "SUCCEEDED": OperationStatusSucceeded,
+}
+
+var mappingOperationStatusEnumLowerCase = map[string]OperationStatusEnum{
+ "accepted": OperationStatusAccepted,
+ "in_progress": OperationStatusInProgress,
+ "failed": OperationStatusFailed,
+ "succeeded": OperationStatusSucceeded,
+}
+
+// GetOperationStatusEnumValues Enumerates the set of values for OperationStatusEnum
+func GetOperationStatusEnumValues() []OperationStatusEnum {
+ values := make([]OperationStatusEnum, 0)
+ for _, v := range mappingOperationStatusEnum {
+ values = append(values, v)
+ }
+ return values
+}
+
+// GetOperationStatusEnumStringValues Enumerates the set of values in String for OperationStatusEnum
+func GetOperationStatusEnumStringValues() []string {
+ return []string{
+ "ACCEPTED",
+ "IN_PROGRESS",
+ "FAILED",
+ "SUCCEEDED",
+ }
+}
+
+// GetMappingOperationStatusEnum performs case Insensitive comparison on enum value and return the desired enum
+func GetMappingOperationStatusEnum(val string) (OperationStatusEnum, bool) {
+ enum, ok := mappingOperationStatusEnumLowerCase[strings.ToLower(val)]
+ return enum, ok
+}
diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/operation_type.go b/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/operation_type.go
new file mode 100644
index 00000000000..10102e5f4d5
--- /dev/null
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/operation_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.
+
+// Marketplace Service API
+//
+// Use the Marketplace API to manage applications in Oracle Cloud Infrastructure Marketplace. For more information, see Overview of Marketplace (https://docs.cloud.oracle.com/Content/Marketplace/Concepts/marketoverview.htm)
+//
+
+package marketplace
+
+import (
+ "strings"
+)
+
+// OperationTypeEnum Enum with underlying type: string
+type OperationTypeEnum string
+
+// Set of constants representing the allowable values for OperationTypeEnum
+const (
+ OperationTypeExportListing OperationTypeEnum = "EXPORT_LISTING"
+)
+
+var mappingOperationTypeEnum = map[string]OperationTypeEnum{
+ "EXPORT_LISTING": OperationTypeExportListing,
+}
+
+var mappingOperationTypeEnumLowerCase = map[string]OperationTypeEnum{
+ "export_listing": OperationTypeExportListing,
+}
+
+// GetOperationTypeEnumValues Enumerates the set of values for OperationTypeEnum
+func GetOperationTypeEnumValues() []OperationTypeEnum {
+ values := make([]OperationTypeEnum, 0)
+ for _, v := range mappingOperationTypeEnum {
+ values = append(values, v)
+ }
+ return values
+}
+
+// GetOperationTypeEnumStringValues Enumerates the set of values in String for OperationTypeEnum
+func GetOperationTypeEnumStringValues() []string {
+ return []string{
+ "EXPORT_LISTING",
+ }
+}
+
+// GetMappingOperationTypeEnum performs case Insensitive comparison on enum value and return the desired enum
+func GetMappingOperationTypeEnum(val string) (OperationTypeEnum, bool) {
+ enum, ok := mappingOperationTypeEnumLowerCase[strings.ToLower(val)]
+ return enum, ok
+}
diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/package_type_enum.go b/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/package_type_enum.go
index baa5fa27252..bdd1f178007 100644
--- a/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/package_type_enum.go
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/package_type_enum.go
@@ -20,16 +20,22 @@ type PackageTypeEnumEnum string
const (
PackageTypeEnumOrchestration PackageTypeEnumEnum = "ORCHESTRATION"
PackageTypeEnumImage PackageTypeEnumEnum = "IMAGE"
+ PackageTypeEnumContainer PackageTypeEnumEnum = "CONTAINER"
+ PackageTypeEnumKubernetes PackageTypeEnumEnum = "KUBERNETES"
)
var mappingPackageTypeEnumEnum = map[string]PackageTypeEnumEnum{
"ORCHESTRATION": PackageTypeEnumOrchestration,
"IMAGE": PackageTypeEnumImage,
+ "CONTAINER": PackageTypeEnumContainer,
+ "KUBERNETES": PackageTypeEnumKubernetes,
}
var mappingPackageTypeEnumEnumLowerCase = map[string]PackageTypeEnumEnum{
"orchestration": PackageTypeEnumOrchestration,
"image": PackageTypeEnumImage,
+ "container": PackageTypeEnumContainer,
+ "kubernetes": PackageTypeEnumKubernetes,
}
// GetPackageTypeEnumEnumValues Enumerates the set of values for PackageTypeEnumEnum
@@ -46,6 +52,8 @@ func GetPackageTypeEnumEnumStringValues() []string {
return []string{
"ORCHESTRATION",
"IMAGE",
+ "CONTAINER",
+ "KUBERNETES",
}
}
diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/work_request.go b/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/work_request.go
new file mode 100644
index 00000000000..b10bde74160
--- /dev/null
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/work_request.go
@@ -0,0 +1,75 @@
+// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved.
+// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+// Code generated. DO NOT EDIT.
+
+// Marketplace Service API
+//
+// Use the Marketplace API to manage applications in Oracle Cloud Infrastructure Marketplace. For more information, see Overview of Marketplace (https://docs.cloud.oracle.com/Content/Marketplace/Concepts/marketoverview.htm)
+//
+
+package marketplace
+
+import (
+ "fmt"
+ "github.com/oracle/oci-go-sdk/v65/common"
+ "strings"
+)
+
+// WorkRequest A description of workrequest
+type WorkRequest struct {
+
+ // Type of the work request
+ OperationType OperationTypeEnum `mandatory:"true" json:"operationType"`
+
+ // The current status of the work request.
+ Status OperationStatusEnum `mandatory:"true" json:"status"`
+
+ // The OCID of the work request.
+ Id *string `mandatory:"true" json:"id"`
+
+ // The OCID of the compartment that contains the work request.
+ CompartmentId *string `mandatory:"true" json:"compartmentId"`
+
+ // How much progress the operation has made.
+ PercentComplete *float32 `mandatory:"true" json:"percentComplete"`
+
+ // Date and time the work was accepted, in the format defined by RFC3339. Example: `2016-08-25T21:10:29.600Z`
+ TimeAccepted *common.SDKTime `mandatory:"true" json:"timeAccepted"`
+
+ // The resources affected by this work request.
+ Resources []WorkRequestResource `mandatory:"false" json:"resources"`
+
+ // Date and time the work started, in the format defined by RFC3339. Example: `2016-08-25T21:10:29.600Z`
+ TimeStarted *common.SDKTime `mandatory:"false" json:"timeStarted"`
+
+ // Date and time the work completed, in the format defined by RFC3339. Example: `2016-08-25T21:10:29.600Z`
+ TimeFinished *common.SDKTime `mandatory:"false" json:"timeFinished"`
+
+ // The listing id associated with the work request.
+ ListingId *string `mandatory:"false" json:"listingId"`
+
+ // The package version associated with the work request.
+ PackageVersion *string `mandatory:"false" json:"packageVersion"`
+}
+
+func (m WorkRequest) String() string {
+ return common.PointerString(m)
+}
+
+// ValidateEnumValue returns an error when providing an unsupported enum value
+// This function is being called during constructing API request process
+// Not recommended for calling this function directly
+func (m WorkRequest) ValidateEnumValue() (bool, error) {
+ errMessage := []string{}
+ if _, ok := GetMappingOperationTypeEnum(string(m.OperationType)); !ok && m.OperationType != "" {
+ errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for OperationType: %s. Supported values are: %s.", m.OperationType, strings.Join(GetOperationTypeEnumStringValues(), ",")))
+ }
+ if _, ok := GetMappingOperationStatusEnum(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(GetOperationStatusEnumStringValues(), ",")))
+ }
+
+ 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/marketplace/work_request_action_type.go b/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/work_request_action_type.go
new file mode 100644
index 00000000000..844e44a0bd3
--- /dev/null
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/work_request_action_type.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.
+
+// Marketplace Service API
+//
+// Use the Marketplace API to manage applications in Oracle Cloud Infrastructure Marketplace. For more information, see Overview of Marketplace (https://docs.cloud.oracle.com/Content/Marketplace/Concepts/marketoverview.htm)
+//
+
+package marketplace
+
+import (
+ "strings"
+)
+
+// WorkRequestActionTypeEnum Enum with underlying type: string
+type WorkRequestActionTypeEnum string
+
+// Set of constants representing the allowable values for WorkRequestActionTypeEnum
+const (
+ WorkRequestActionTypeAccepted WorkRequestActionTypeEnum = "ACCEPTED"
+ WorkRequestActionTypeInProgress WorkRequestActionTypeEnum = "IN_PROGRESS"
+ WorkRequestActionTypeWaiting WorkRequestActionTypeEnum = "WAITING"
+ WorkRequestActionTypeNeedsAttention WorkRequestActionTypeEnum = "NEEDS_ATTENTION"
+ WorkRequestActionTypeFailed WorkRequestActionTypeEnum = "FAILED"
+ WorkRequestActionTypeSucceeded WorkRequestActionTypeEnum = "SUCCEEDED"
+ WorkRequestActionTypeCanceled WorkRequestActionTypeEnum = "CANCELED"
+)
+
+var mappingWorkRequestActionTypeEnum = map[string]WorkRequestActionTypeEnum{
+ "ACCEPTED": WorkRequestActionTypeAccepted,
+ "IN_PROGRESS": WorkRequestActionTypeInProgress,
+ "WAITING": WorkRequestActionTypeWaiting,
+ "NEEDS_ATTENTION": WorkRequestActionTypeNeedsAttention,
+ "FAILED": WorkRequestActionTypeFailed,
+ "SUCCEEDED": WorkRequestActionTypeSucceeded,
+ "CANCELED": WorkRequestActionTypeCanceled,
+}
+
+var mappingWorkRequestActionTypeEnumLowerCase = map[string]WorkRequestActionTypeEnum{
+ "accepted": WorkRequestActionTypeAccepted,
+ "in_progress": WorkRequestActionTypeInProgress,
+ "waiting": WorkRequestActionTypeWaiting,
+ "needs_attention": WorkRequestActionTypeNeedsAttention,
+ "failed": WorkRequestActionTypeFailed,
+ "succeeded": WorkRequestActionTypeSucceeded,
+ "canceled": WorkRequestActionTypeCanceled,
+}
+
+// GetWorkRequestActionTypeEnumValues Enumerates the set of values for WorkRequestActionTypeEnum
+func GetWorkRequestActionTypeEnumValues() []WorkRequestActionTypeEnum {
+ values := make([]WorkRequestActionTypeEnum, 0)
+ for _, v := range mappingWorkRequestActionTypeEnum {
+ values = append(values, v)
+ }
+ return values
+}
+
+// GetWorkRequestActionTypeEnumStringValues Enumerates the set of values in String for WorkRequestActionTypeEnum
+func GetWorkRequestActionTypeEnumStringValues() []string {
+ return []string{
+ "ACCEPTED",
+ "IN_PROGRESS",
+ "WAITING",
+ "NEEDS_ATTENTION",
+ "FAILED",
+ "SUCCEEDED",
+ "CANCELED",
+ }
+}
+
+// GetMappingWorkRequestActionTypeEnum performs case Insensitive comparison on enum value and return the desired enum
+func GetMappingWorkRequestActionTypeEnum(val string) (WorkRequestActionTypeEnum, bool) {
+ enum, ok := mappingWorkRequestActionTypeEnumLowerCase[strings.ToLower(val)]
+ return enum, ok
+}
diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/work_request_collection.go b/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/work_request_collection.go
new file mode 100644
index 00000000000..742edc3db0c
--- /dev/null
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/work_request_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.
+
+// Marketplace Service API
+//
+// Use the Marketplace API to manage applications in Oracle Cloud Infrastructure Marketplace. For more information, see Overview of Marketplace (https://docs.cloud.oracle.com/Content/Marketplace/Concepts/marketoverview.htm)
+//
+
+package marketplace
+
+import (
+ "fmt"
+ "github.com/oracle/oci-go-sdk/v65/common"
+ "strings"
+)
+
+// WorkRequestCollection Results of a workRequest search. Contains both WorkRequest items and other information, such as metadata.
+type WorkRequestCollection struct {
+
+ // List of workRequestSummary objects.
+ Items []WorkRequestSummary `mandatory:"true" json:"items"`
+}
+
+func (m WorkRequestCollection) String() string {
+ return common.PointerString(m)
+}
+
+// ValidateEnumValue returns an error when providing an unsupported enum value
+// This function is being called during constructing API request process
+// Not recommended for calling this function directly
+func (m WorkRequestCollection) 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/marketplace/work_request_error.go b/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/work_request_error.go
new file mode 100644
index 00000000000..ddcff64d901
--- /dev/null
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/work_request_error.go
@@ -0,0 +1,46 @@
+// Copyright (c) 2016, 2018, 2023, Oracle and/or its affiliates. All rights reserved.
+// This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
+// Code generated. DO NOT EDIT.
+
+// Marketplace Service API
+//
+// Use the Marketplace API to manage applications in Oracle Cloud Infrastructure Marketplace. For more information, see Overview of Marketplace (https://docs.cloud.oracle.com/Content/Marketplace/Concepts/marketoverview.htm)
+//
+
+package marketplace
+
+import (
+ "fmt"
+ "github.com/oracle/oci-go-sdk/v65/common"
+ "strings"
+)
+
+// WorkRequestError Details about errors encountered while executing a work request.
+type WorkRequestError struct {
+
+ // A machine-usable code for the error that occurred. Error codes are listed
+ // (https://docs.cloud.oracle.com/Content/API/References/apierrors.htm)
+ Code *string `mandatory:"true" json:"code"`
+
+ // A human-readable error string.
+ Message *string `mandatory:"true" json:"message"`
+
+ // Date and time the error happened, in the format defined by RFC3339. Example: `2016-08-25T21:10:29.600Z`
+ Timestamp *common.SDKTime `mandatory:"true" json:"timestamp"`
+}
+
+func (m WorkRequestError) String() string {
+ return common.PointerString(m)
+}
+
+// ValidateEnumValue returns an error when providing an unsupported enum value
+// This function is being called during constructing API request process
+// Not recommended for calling this function directly
+func (m WorkRequestError) 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/marketplace/work_request_error_collection.go b/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/work_request_error_collection.go
new file mode 100644
index 00000000000..8a609787312
--- /dev/null
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/work_request_error_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.
+
+// Marketplace Service API
+//
+// Use the Marketplace API to manage applications in Oracle Cloud Infrastructure Marketplace. For more information, see Overview of Marketplace (https://docs.cloud.oracle.com/Content/Marketplace/Concepts/marketoverview.htm)
+//
+
+package marketplace
+
+import (
+ "fmt"
+ "github.com/oracle/oci-go-sdk/v65/common"
+ "strings"
+)
+
+// WorkRequestErrorCollection A list of work request errors that match filter criteria, if any. Results contain `WorkRequestError` objects.
+type WorkRequestErrorCollection struct {
+
+ // A collection of work request errors.
+ Items []WorkRequestError `mandatory:"true" json:"items"`
+}
+
+func (m WorkRequestErrorCollection) String() string {
+ return common.PointerString(m)
+}
+
+// ValidateEnumValue returns an error when providing an unsupported enum value
+// This function is being called during constructing API request process
+// Not recommended for calling this function directly
+func (m WorkRequestErrorCollection) 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/marketplace/work_request_log_entry.go b/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/work_request_log_entry.go
new file mode 100644
index 00000000000..d5ec881de94
--- /dev/null
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/work_request_log_entry.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.
+
+// Marketplace Service API
+//
+// Use the Marketplace API to manage applications in Oracle Cloud Infrastructure Marketplace. For more information, see Overview of Marketplace (https://docs.cloud.oracle.com/Content/Marketplace/Concepts/marketoverview.htm)
+//
+
+package marketplace
+
+import (
+ "fmt"
+ "github.com/oracle/oci-go-sdk/v65/common"
+ "strings"
+)
+
+// WorkRequestLogEntry Details about the log entity.
+type WorkRequestLogEntry struct {
+
+ // A human-readable string.
+ Message *string `mandatory:"true" json:"message"`
+
+ // Date and time the log was written, in the format defined by RFC3339. Example: `2016-08-25T21:10:29.600Z`
+ Timestamp *common.SDKTime `mandatory:"true" json:"timestamp"`
+}
+
+func (m WorkRequestLogEntry) String() string {
+ return common.PointerString(m)
+}
+
+// ValidateEnumValue returns an error when providing an unsupported enum value
+// This function is being called during constructing API request process
+// Not recommended for calling this function directly
+func (m WorkRequestLogEntry) 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/marketplace/work_request_log_entry_collection.go b/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/work_request_log_entry_collection.go
new file mode 100644
index 00000000000..8680d56c7f4
--- /dev/null
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/work_request_log_entry_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.
+
+// Marketplace Service API
+//
+// Use the Marketplace API to manage applications in Oracle Cloud Infrastructure Marketplace. For more information, see Overview of Marketplace (https://docs.cloud.oracle.com/Content/Marketplace/Concepts/marketoverview.htm)
+//
+
+package marketplace
+
+import (
+ "fmt"
+ "github.com/oracle/oci-go-sdk/v65/common"
+ "strings"
+)
+
+// WorkRequestLogEntryCollection A list of work request logs that match filter criteria, if any. Results contain `WorkRequestLogEntry` objects.
+type WorkRequestLogEntryCollection struct {
+
+ // A collection of work request log entries.
+ Items []WorkRequestLogEntry `mandatory:"true" json:"items"`
+}
+
+func (m WorkRequestLogEntryCollection) String() string {
+ return common.PointerString(m)
+}
+
+// ValidateEnumValue returns an error when providing an unsupported enum value
+// This function is being called during constructing API request process
+// Not recommended for calling this function directly
+func (m WorkRequestLogEntryCollection) 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/marketplace/work_request_resource.go b/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/work_request_resource.go
new file mode 100644
index 00000000000..f47f1e96981
--- /dev/null
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/work_request_resource.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.
+
+// Marketplace Service API
+//
+// Use the Marketplace API to manage applications in Oracle Cloud Infrastructure Marketplace. For more information, see Overview of Marketplace (https://docs.cloud.oracle.com/Content/Marketplace/Concepts/marketoverview.htm)
+//
+
+package marketplace
+
+import (
+ "fmt"
+ "github.com/oracle/oci-go-sdk/v65/common"
+ "strings"
+)
+
+// WorkRequestResource Details about the resource entity.
+type WorkRequestResource struct {
+
+ // The resource type the work request affects.
+ EntityType *string `mandatory:"true" json:"entityType"`
+
+ // The way in which this resource was affected by the work tracked by the work request.
+ // A resource being created, updated, or deleted remains in the `IN_PROGRESS` state until
+ // work is complete for that resource. At that point, the resource transitions to the `CREATED`, `UPDATED`,
+ // or `DELETED` state.
+ ActionType WorkRequestActionTypeEnum `mandatory:"true" json:"actionType"`
+
+ // The resource identifier the work request affects.
+ Identifier *string `mandatory:"true" json:"identifier"`
+
+ // The URI path that the user can do a GET on to access the resource metadata
+ EntityUri *string `mandatory:"false" json:"entityUri"`
+
+ // Additional information about the resource.
+ Metadata map[string]string `mandatory:"false" json:"metadata"`
+}
+
+func (m WorkRequestResource) String() string {
+ return common.PointerString(m)
+}
+
+// ValidateEnumValue returns an error when providing an unsupported enum value
+// This function is being called during constructing API request process
+// Not recommended for calling this function directly
+func (m WorkRequestResource) ValidateEnumValue() (bool, error) {
+ errMessage := []string{}
+ if _, ok := GetMappingWorkRequestActionTypeEnum(string(m.ActionType)); !ok && m.ActionType != "" {
+ errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for ActionType: %s. Supported values are: %s.", m.ActionType, strings.Join(GetWorkRequestActionTypeEnumStringValues(), ",")))
+ }
+
+ 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/marketplace/work_request_resource_metadata_key.go b/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/work_request_resource_metadata_key.go
new file mode 100644
index 00000000000..fa5b7e849ca
--- /dev/null
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/work_request_resource_metadata_key.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.
+
+// Marketplace Service API
+//
+// Use the Marketplace API to manage applications in Oracle Cloud Infrastructure Marketplace. For more information, see Overview of Marketplace (https://docs.cloud.oracle.com/Content/Marketplace/Concepts/marketoverview.htm)
+//
+
+package marketplace
+
+import (
+ "strings"
+)
+
+// WorkRequestResourceMetadataKeyEnum Enum with underlying type: string
+type WorkRequestResourceMetadataKeyEnum string
+
+// Set of constants representing the allowable values for WorkRequestResourceMetadataKeyEnum
+const (
+ WorkRequestResourceMetadataKeyOperationName WorkRequestResourceMetadataKeyEnum = "OPERATION_NAME"
+)
+
+var mappingWorkRequestResourceMetadataKeyEnum = map[string]WorkRequestResourceMetadataKeyEnum{
+ "OPERATION_NAME": WorkRequestResourceMetadataKeyOperationName,
+}
+
+var mappingWorkRequestResourceMetadataKeyEnumLowerCase = map[string]WorkRequestResourceMetadataKeyEnum{
+ "operation_name": WorkRequestResourceMetadataKeyOperationName,
+}
+
+// GetWorkRequestResourceMetadataKeyEnumValues Enumerates the set of values for WorkRequestResourceMetadataKeyEnum
+func GetWorkRequestResourceMetadataKeyEnumValues() []WorkRequestResourceMetadataKeyEnum {
+ values := make([]WorkRequestResourceMetadataKeyEnum, 0)
+ for _, v := range mappingWorkRequestResourceMetadataKeyEnum {
+ values = append(values, v)
+ }
+ return values
+}
+
+// GetWorkRequestResourceMetadataKeyEnumStringValues Enumerates the set of values in String for WorkRequestResourceMetadataKeyEnum
+func GetWorkRequestResourceMetadataKeyEnumStringValues() []string {
+ return []string{
+ "OPERATION_NAME",
+ }
+}
+
+// GetMappingWorkRequestResourceMetadataKeyEnum performs case Insensitive comparison on enum value and return the desired enum
+func GetMappingWorkRequestResourceMetadataKeyEnum(val string) (WorkRequestResourceMetadataKeyEnum, bool) {
+ enum, ok := mappingWorkRequestResourceMetadataKeyEnumLowerCase[strings.ToLower(val)]
+ return enum, ok
+}
diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/work_request_summary.go b/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/work_request_summary.go
new file mode 100644
index 00000000000..86ac593bf92
--- /dev/null
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/marketplace/work_request_summary.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.
+
+// Marketplace Service API
+//
+// Use the Marketplace API to manage applications in Oracle Cloud Infrastructure Marketplace. For more information, see Overview of Marketplace (https://docs.cloud.oracle.com/Content/Marketplace/Concepts/marketoverview.htm)
+//
+
+package marketplace
+
+import (
+ "fmt"
+ "github.com/oracle/oci-go-sdk/v65/common"
+ "strings"
+)
+
+// WorkRequestSummary A summary of the status of a work request.
+type WorkRequestSummary struct {
+
+ // Type of the work request
+ OperationType OperationTypeEnum `mandatory:"true" json:"operationType"`
+
+ // Status of current work request.
+ Status OperationStatusEnum `mandatory:"true" json:"status"`
+
+ // The id of the work request.
+ Id *string `mandatory:"true" json:"id"`
+
+ // The ocid of the compartment that contains the work request. Work requests should be scoped to
+ // the same compartment as the resource the work request affects.
+ CompartmentId *string `mandatory:"true" json:"compartmentId"`
+
+ // Percentage of the request completed.
+ PercentComplete *float32 `mandatory:"true" json:"percentComplete"`
+
+ // The date and time the request was created, as described in
+ // RFC 3339 (https://tools.ietf.org/rfc/rfc3339), section 14.29.
+ TimeAccepted *common.SDKTime `mandatory:"true" json:"timeAccepted"`
+
+ // The resources affected by this work request.
+ Resources []WorkRequestResource `mandatory:"false" json:"resources"`
+
+ // The date and time the request was started, as described in RFC 3339 (https://tools.ietf.org/rfc/rfc3339),
+ // section 14.29.
+ TimeStarted *common.SDKTime `mandatory:"false" json:"timeStarted"`
+
+ // The date and time the object was finished, as described in RFC 3339 (https://tools.ietf.org/rfc/rfc3339).
+ TimeFinished *common.SDKTime `mandatory:"false" json:"timeFinished"`
+
+ // The listing id associated with the work request.
+ ListingId *string `mandatory:"false" json:"listingId"`
+
+ // The package version associated with the work request.
+ PackageVersion *string `mandatory:"false" json:"packageVersion"`
+}
+
+func (m WorkRequestSummary) String() string {
+ return common.PointerString(m)
+}
+
+// ValidateEnumValue returns an error when providing an unsupported enum value
+// This function is being called during constructing API request process
+// Not recommended for calling this function directly
+func (m WorkRequestSummary) ValidateEnumValue() (bool, error) {
+ errMessage := []string{}
+ if _, ok := GetMappingOperationTypeEnum(string(m.OperationType)); !ok && m.OperationType != "" {
+ errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for OperationType: %s. Supported values are: %s.", m.OperationType, strings.Join(GetOperationTypeEnumStringValues(), ",")))
+ }
+ if _, ok := GetMappingOperationStatusEnum(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(GetOperationStatusEnumStringValues(), ",")))
+ }
+
+ 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/vnmonitoring/capture_filter.go b/vendor/github.com/oracle/oci-go-sdk/v65/vnmonitoring/capture_filter.go
index d24f256f242..cbdc59d495d 100644
--- a/vendor/github.com/oracle/oci-go-sdk/v65/vnmonitoring/capture_filter.go
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/vnmonitoring/capture_filter.go
@@ -50,6 +50,9 @@ type CaptureFilter struct {
// The set of rules governing what traffic a VTAP mirrors.
VtapCaptureFilterRules []VtapCaptureFilterRuleDetails `mandatory:"false" json:"vtapCaptureFilterRules"`
+
+ // The set of rules governing what traffic the Flow Log collects when creating a flow log capture filter.
+ FlowLogCaptureFilterRules []FlowLogCaptureFilterRuleDetails `mandatory:"false" json:"flowLogCaptureFilterRules"`
}
func (m CaptureFilter) String() string {
@@ -133,15 +136,18 @@ type CaptureFilterFilterTypeEnum string
// Set of constants representing the allowable values for CaptureFilterFilterTypeEnum
const (
- CaptureFilterFilterTypeVtap CaptureFilterFilterTypeEnum = "VTAP"
+ CaptureFilterFilterTypeVtap CaptureFilterFilterTypeEnum = "VTAP"
+ CaptureFilterFilterTypeFlowlog CaptureFilterFilterTypeEnum = "FLOWLOG"
)
var mappingCaptureFilterFilterTypeEnum = map[string]CaptureFilterFilterTypeEnum{
- "VTAP": CaptureFilterFilterTypeVtap,
+ "VTAP": CaptureFilterFilterTypeVtap,
+ "FLOWLOG": CaptureFilterFilterTypeFlowlog,
}
var mappingCaptureFilterFilterTypeEnumLowerCase = map[string]CaptureFilterFilterTypeEnum{
- "vtap": CaptureFilterFilterTypeVtap,
+ "vtap": CaptureFilterFilterTypeVtap,
+ "flowlog": CaptureFilterFilterTypeFlowlog,
}
// GetCaptureFilterFilterTypeEnumValues Enumerates the set of values for CaptureFilterFilterTypeEnum
@@ -157,6 +163,7 @@ func GetCaptureFilterFilterTypeEnumValues() []CaptureFilterFilterTypeEnum {
func GetCaptureFilterFilterTypeEnumStringValues() []string {
return []string{
"VTAP",
+ "FLOWLOG",
}
}
diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/vnmonitoring/create_capture_filter_details.go b/vendor/github.com/oracle/oci-go-sdk/v65/vnmonitoring/create_capture_filter_details.go
index d7c6cc92e17..09843754d7e 100644
--- a/vendor/github.com/oracle/oci-go-sdk/v65/vnmonitoring/create_capture_filter_details.go
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/vnmonitoring/create_capture_filter_details.go
@@ -39,6 +39,9 @@ type CreateCaptureFilterDetails struct {
// The set of rules governing what traffic a VTAP mirrors.
VtapCaptureFilterRules []VtapCaptureFilterRuleDetails `mandatory:"false" json:"vtapCaptureFilterRules"`
+
+ // The set of rules governing what traffic the Flow Log collects when creating a flow log capture filter.
+ FlowLogCaptureFilterRules []FlowLogCaptureFilterRuleDetails `mandatory:"false" json:"flowLogCaptureFilterRules"`
}
func (m CreateCaptureFilterDetails) String() string {
@@ -65,15 +68,18 @@ type CreateCaptureFilterDetailsFilterTypeEnum string
// Set of constants representing the allowable values for CreateCaptureFilterDetailsFilterTypeEnum
const (
- CreateCaptureFilterDetailsFilterTypeVtap CreateCaptureFilterDetailsFilterTypeEnum = "VTAP"
+ CreateCaptureFilterDetailsFilterTypeVtap CreateCaptureFilterDetailsFilterTypeEnum = "VTAP"
+ CreateCaptureFilterDetailsFilterTypeFlowlog CreateCaptureFilterDetailsFilterTypeEnum = "FLOWLOG"
)
var mappingCreateCaptureFilterDetailsFilterTypeEnum = map[string]CreateCaptureFilterDetailsFilterTypeEnum{
- "VTAP": CreateCaptureFilterDetailsFilterTypeVtap,
+ "VTAP": CreateCaptureFilterDetailsFilterTypeVtap,
+ "FLOWLOG": CreateCaptureFilterDetailsFilterTypeFlowlog,
}
var mappingCreateCaptureFilterDetailsFilterTypeEnumLowerCase = map[string]CreateCaptureFilterDetailsFilterTypeEnum{
- "vtap": CreateCaptureFilterDetailsFilterTypeVtap,
+ "vtap": CreateCaptureFilterDetailsFilterTypeVtap,
+ "flowlog": CreateCaptureFilterDetailsFilterTypeFlowlog,
}
// GetCreateCaptureFilterDetailsFilterTypeEnumValues Enumerates the set of values for CreateCaptureFilterDetailsFilterTypeEnum
@@ -89,6 +95,7 @@ func GetCreateCaptureFilterDetailsFilterTypeEnumValues() []CreateCaptureFilterDe
func GetCreateCaptureFilterDetailsFilterTypeEnumStringValues() []string {
return []string{
"VTAP",
+ "FLOWLOG",
}
}
diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/vnmonitoring/flow_log_capture_filter_rule_details.go b/vendor/github.com/oracle/oci-go-sdk/v65/vnmonitoring/flow_log_capture_filter_rule_details.go
new file mode 100644
index 00000000000..65d78cc450f
--- /dev/null
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/vnmonitoring/flow_log_capture_filter_rule_details.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.
+
+// Network Monitoring API
+//
+// Use the Network Monitoring API to troubleshoot routing and security issues for resources such as virtual cloud networks (VCNs) and compute instances. For more information, see the console
+// documentation for the Network Path Analyzer (https://docs.cloud.oracle.com/iaas/Content/Network/Concepts/path_analyzer.htm) tool.
+//
+
+package vnmonitoring
+
+import (
+ "fmt"
+ "github.com/oracle/oci-go-sdk/v65/common"
+ "strings"
+)
+
+// FlowLogCaptureFilterRuleDetails The set of rules governing what traffic the flow log collects when creating a flow log capture filter.
+type FlowLogCaptureFilterRuleDetails struct {
+
+ // Indicates whether a flow log capture filter rule is enabled.
+ IsEnabled *bool `mandatory:"false" json:"isEnabled"`
+
+ // A lower number indicates a higher priority, range 0-9. Each rule must have a distinct priority.
+ Priority *int `mandatory:"false" json:"priority"`
+
+ // Sampling interval as 1 of X, where X is an integer not greater than 100000.
+ SamplingRate *int `mandatory:"false" json:"samplingRate"`
+
+ // Traffic from this CIDR will be captured in the flow log.
+ SourceCidr *string `mandatory:"false" json:"sourceCidr"`
+
+ // Traffic to this CIDR will be captured in the flow log.
+ DestinationCidr *string `mandatory:"false" json:"destinationCidr"`
+
+ // The transport protocol the filter uses.
+ Protocol *string `mandatory:"false" json:"protocol"`
+
+ IcmpOptions *IcmpOptions `mandatory:"false" json:"icmpOptions"`
+
+ TcpOptions *TcpOptions `mandatory:"false" json:"tcpOptions"`
+
+ UdpOptions *UdpOptions `mandatory:"false" json:"udpOptions"`
+
+ // Type or types of flow logs to store. `ALL` includes records for both accepted traffic and
+ // rejected traffic.
+ FlowLogType FlowLogCaptureFilterRuleDetailsFlowLogTypeEnum `mandatory:"false" json:"flowLogType,omitempty"`
+
+ // Include or exclude a ruleAction object.
+ RuleAction FlowLogCaptureFilterRuleDetailsRuleActionEnum `mandatory:"false" json:"ruleAction,omitempty"`
+}
+
+func (m FlowLogCaptureFilterRuleDetails) String() string {
+ return common.PointerString(m)
+}
+
+// ValidateEnumValue returns an error when providing an unsupported enum value
+// This function is being called during constructing API request process
+// Not recommended for calling this function directly
+func (m FlowLogCaptureFilterRuleDetails) ValidateEnumValue() (bool, error) {
+ errMessage := []string{}
+
+ if _, ok := GetMappingFlowLogCaptureFilterRuleDetailsFlowLogTypeEnum(string(m.FlowLogType)); !ok && m.FlowLogType != "" {
+ errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for FlowLogType: %s. Supported values are: %s.", m.FlowLogType, strings.Join(GetFlowLogCaptureFilterRuleDetailsFlowLogTypeEnumStringValues(), ",")))
+ }
+ if _, ok := GetMappingFlowLogCaptureFilterRuleDetailsRuleActionEnum(string(m.RuleAction)); !ok && m.RuleAction != "" {
+ errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for RuleAction: %s. Supported values are: %s.", m.RuleAction, strings.Join(GetFlowLogCaptureFilterRuleDetailsRuleActionEnumStringValues(), ",")))
+ }
+ if len(errMessage) > 0 {
+ return true, fmt.Errorf(strings.Join(errMessage, "\n"))
+ }
+ return false, nil
+}
+
+// FlowLogCaptureFilterRuleDetailsFlowLogTypeEnum Enum with underlying type: string
+type FlowLogCaptureFilterRuleDetailsFlowLogTypeEnum string
+
+// Set of constants representing the allowable values for FlowLogCaptureFilterRuleDetailsFlowLogTypeEnum
+const (
+ FlowLogCaptureFilterRuleDetailsFlowLogTypeAll FlowLogCaptureFilterRuleDetailsFlowLogTypeEnum = "ALL"
+ FlowLogCaptureFilterRuleDetailsFlowLogTypeReject FlowLogCaptureFilterRuleDetailsFlowLogTypeEnum = "REJECT"
+ FlowLogCaptureFilterRuleDetailsFlowLogTypeAccept FlowLogCaptureFilterRuleDetailsFlowLogTypeEnum = "ACCEPT"
+)
+
+var mappingFlowLogCaptureFilterRuleDetailsFlowLogTypeEnum = map[string]FlowLogCaptureFilterRuleDetailsFlowLogTypeEnum{
+ "ALL": FlowLogCaptureFilterRuleDetailsFlowLogTypeAll,
+ "REJECT": FlowLogCaptureFilterRuleDetailsFlowLogTypeReject,
+ "ACCEPT": FlowLogCaptureFilterRuleDetailsFlowLogTypeAccept,
+}
+
+var mappingFlowLogCaptureFilterRuleDetailsFlowLogTypeEnumLowerCase = map[string]FlowLogCaptureFilterRuleDetailsFlowLogTypeEnum{
+ "all": FlowLogCaptureFilterRuleDetailsFlowLogTypeAll,
+ "reject": FlowLogCaptureFilterRuleDetailsFlowLogTypeReject,
+ "accept": FlowLogCaptureFilterRuleDetailsFlowLogTypeAccept,
+}
+
+// GetFlowLogCaptureFilterRuleDetailsFlowLogTypeEnumValues Enumerates the set of values for FlowLogCaptureFilterRuleDetailsFlowLogTypeEnum
+func GetFlowLogCaptureFilterRuleDetailsFlowLogTypeEnumValues() []FlowLogCaptureFilterRuleDetailsFlowLogTypeEnum {
+ values := make([]FlowLogCaptureFilterRuleDetailsFlowLogTypeEnum, 0)
+ for _, v := range mappingFlowLogCaptureFilterRuleDetailsFlowLogTypeEnum {
+ values = append(values, v)
+ }
+ return values
+}
+
+// GetFlowLogCaptureFilterRuleDetailsFlowLogTypeEnumStringValues Enumerates the set of values in String for FlowLogCaptureFilterRuleDetailsFlowLogTypeEnum
+func GetFlowLogCaptureFilterRuleDetailsFlowLogTypeEnumStringValues() []string {
+ return []string{
+ "ALL",
+ "REJECT",
+ "ACCEPT",
+ }
+}
+
+// GetMappingFlowLogCaptureFilterRuleDetailsFlowLogTypeEnum performs case Insensitive comparison on enum value and return the desired enum
+func GetMappingFlowLogCaptureFilterRuleDetailsFlowLogTypeEnum(val string) (FlowLogCaptureFilterRuleDetailsFlowLogTypeEnum, bool) {
+ enum, ok := mappingFlowLogCaptureFilterRuleDetailsFlowLogTypeEnumLowerCase[strings.ToLower(val)]
+ return enum, ok
+}
+
+// FlowLogCaptureFilterRuleDetailsRuleActionEnum Enum with underlying type: string
+type FlowLogCaptureFilterRuleDetailsRuleActionEnum string
+
+// Set of constants representing the allowable values for FlowLogCaptureFilterRuleDetailsRuleActionEnum
+const (
+ FlowLogCaptureFilterRuleDetailsRuleActionInclude FlowLogCaptureFilterRuleDetailsRuleActionEnum = "INCLUDE"
+ FlowLogCaptureFilterRuleDetailsRuleActionExclude FlowLogCaptureFilterRuleDetailsRuleActionEnum = "EXCLUDE"
+)
+
+var mappingFlowLogCaptureFilterRuleDetailsRuleActionEnum = map[string]FlowLogCaptureFilterRuleDetailsRuleActionEnum{
+ "INCLUDE": FlowLogCaptureFilterRuleDetailsRuleActionInclude,
+ "EXCLUDE": FlowLogCaptureFilterRuleDetailsRuleActionExclude,
+}
+
+var mappingFlowLogCaptureFilterRuleDetailsRuleActionEnumLowerCase = map[string]FlowLogCaptureFilterRuleDetailsRuleActionEnum{
+ "include": FlowLogCaptureFilterRuleDetailsRuleActionInclude,
+ "exclude": FlowLogCaptureFilterRuleDetailsRuleActionExclude,
+}
+
+// GetFlowLogCaptureFilterRuleDetailsRuleActionEnumValues Enumerates the set of values for FlowLogCaptureFilterRuleDetailsRuleActionEnum
+func GetFlowLogCaptureFilterRuleDetailsRuleActionEnumValues() []FlowLogCaptureFilterRuleDetailsRuleActionEnum {
+ values := make([]FlowLogCaptureFilterRuleDetailsRuleActionEnum, 0)
+ for _, v := range mappingFlowLogCaptureFilterRuleDetailsRuleActionEnum {
+ values = append(values, v)
+ }
+ return values
+}
+
+// GetFlowLogCaptureFilterRuleDetailsRuleActionEnumStringValues Enumerates the set of values in String for FlowLogCaptureFilterRuleDetailsRuleActionEnum
+func GetFlowLogCaptureFilterRuleDetailsRuleActionEnumStringValues() []string {
+ return []string{
+ "INCLUDE",
+ "EXCLUDE",
+ }
+}
+
+// GetMappingFlowLogCaptureFilterRuleDetailsRuleActionEnum performs case Insensitive comparison on enum value and return the desired enum
+func GetMappingFlowLogCaptureFilterRuleDetailsRuleActionEnum(val string) (FlowLogCaptureFilterRuleDetailsRuleActionEnum, bool) {
+ enum, ok := mappingFlowLogCaptureFilterRuleDetailsRuleActionEnumLowerCase[strings.ToLower(val)]
+ return enum, ok
+}
diff --git a/vendor/github.com/oracle/oci-go-sdk/v65/vnmonitoring/update_capture_filter_details.go b/vendor/github.com/oracle/oci-go-sdk/v65/vnmonitoring/update_capture_filter_details.go
index 1029ad066fc..de0cf2f9cfd 100644
--- a/vendor/github.com/oracle/oci-go-sdk/v65/vnmonitoring/update_capture_filter_details.go
+++ b/vendor/github.com/oracle/oci-go-sdk/v65/vnmonitoring/update_capture_filter_details.go
@@ -30,6 +30,9 @@ type UpdateCaptureFilterDetails struct {
// The set of rules governing what traffic a VTAP mirrors.
VtapCaptureFilterRules []VtapCaptureFilterRuleDetails `mandatory:"false" json:"vtapCaptureFilterRules"`
+ // The set of rules governing what traffic the Flow Log collects when creating a flow log capture filter.
+ FlowLogCaptureFilterRules []FlowLogCaptureFilterRuleDetails `mandatory:"false" json:"flowLogCaptureFilterRules"`
+
// 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"`
diff --git a/vendor/modules.txt b/vendor/modules.txt
index cedbea61060..3a73a797d0d 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.49.3
+# github.com/oracle/oci-go-sdk/v65 v65.49.4
## explicit; go 1.13
github.com/oracle/oci-go-sdk/v65/adm
github.com/oracle/oci-go-sdk/v65/aianomalydetection
diff --git a/website/docs/d/core_capture_filter.html.markdown b/website/docs/d/core_capture_filter.html.markdown
index a9d0f6bf970..d9340986904 100644
--- a/website/docs/d/core_capture_filter.html.markdown
+++ b/website/docs/d/core_capture_filter.html.markdown
@@ -36,6 +36,36 @@ The following attributes are exported:
* `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.
* `filter_type` - Indicates which service will use this capture filter
+* `flow_log_capture_filter_rules` - The set of rules governing what traffic the Flow Log collects when creating a flow log capture filter.
+ * `destination_cidr` - Traffic to this CIDR will be captured in the flow log.
+ * `flow_log_type` - Type or types of flow logs to store. `ALL` includes records for both accepted traffic and rejected traffic.
+ * `icmp_options` - Optional and valid only for ICMP and ICMPv6. Use to specify a particular ICMP type and code as defined in:
+ * [ICMP Parameters](http://www.iana.org/assignments/icmp-parameters/icmp-parameters.xhtml)
+ * [ICMPv6 Parameters](https://www.iana.org/assignments/icmpv6-parameters/icmpv6-parameters.xhtml)
+
+ If you specify ICMP or ICMPv6 as the protocol but omit this object, then all ICMP types and codes are allowed. If you do provide this object, the type is required and the code is optional. To enable MTU negotiation for ingress internet traffic via IPv4, make sure to allow type 3 ("Destination Unreachable") code 4 ("Fragmentation Needed and Don't Fragment was Set"). If you need to specify multiple codes for a single type, create a separate security list rule for each.
+ * `code` - The ICMP code (optional).
+ * `type` - The ICMP type.
+ * `is_enabled` - Indicates whether a flow log capture filter rule is enabled.
+ * `priority` - A lower number indicates a higher priority, range 0-9. Each rule must have a distinct priority.
+ * `protocol` - The transport protocol the filter uses.
+ * `rule_action` - Include or exclude a ruleAction object.
+ * `sampling_rate` - Sampling interval as 1 of X, where X is an integer not greater than 100000.
+ * `source_cidr` - Traffic from this CIDR will be captured in the flow log.
+ * `tcp_options` - Optional and valid only for TCP. Use to specify particular destination ports for TCP rules. If you specify TCP as the protocol but omit this object, then all destination ports are allowed.
+ * `destination_port_range` -
+ * `max` - The maximum port number, which must not be less than the minimum port number. To specify a single port number, set both the min and max to the same value.
+ * `min` - The minimum port number, which must not be greater than the maximum port number.
+ * `source_port_range` -
+ * `max` - The maximum port number, which must not be less than the minimum port number. To specify a single port number, set both the min and max to the same value.
+ * `min` - The minimum port number, which must not be greater than the maximum port number.
+ * `udp_options` - Optional and valid only for UDP. Use to specify particular destination ports for UDP rules. If you specify UDP as the protocol but omit this object, then all destination ports are allowed.
+ * `destination_port_range` -
+ * `max` - The maximum port number, which must not be less than the minimum port number. To specify a single port number, set both the min and max to the same value.
+ * `min` - The minimum port number, which must not be greater than the maximum port number.
+ * `source_port_range` -
+ * `max` - The maximum port number, which must not be less than the minimum port number. To specify a single port number, set both the min and max to the same value.
+ * `min` - The minimum port number, which must not be greater than the maximum port number.
* `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 capture filter's Oracle ID ([OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm)).
* `state` - The capture filter's current administrative state.
diff --git a/website/docs/d/core_capture_filters.html.markdown b/website/docs/d/core_capture_filters.html.markdown
index e73a3462c9e..0d749a6ce54 100644
--- a/website/docs/d/core_capture_filters.html.markdown
+++ b/website/docs/d/core_capture_filters.html.markdown
@@ -22,6 +22,7 @@ data "oci_core_capture_filters" "test_capture_filters" {
#Optional
display_name = var.capture_filter_display_name
+ filter_type = var.capture_filter_filter_type
state = var.capture_filter_state
}
```
@@ -32,6 +33,7 @@ The following arguments are supported:
* `compartment_id` - (Required) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment.
* `display_name` - (Optional) A filter to return only resources that match the given display name exactly.
+* `filter_type` - (Optional) A filter to only return resources that match the given capture filterType. The filterType value is the string representation of enum - VTAP, FLOWLOG.
* `state` - (Optional) A filter to return only resources that match the given capture filter lifecycle state. The state value is case-insensitive.
@@ -49,6 +51,36 @@ The following attributes are exported:
* `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.
* `filter_type` - Indicates which service will use this capture filter
+* `flow_log_capture_filter_rules` - The set of rules governing what traffic the Flow Log collects when creating a flow log capture filter.
+ * `destination_cidr` - Traffic to this CIDR will be captured in the flow log.
+ * `flow_log_type` - Type or types of flow logs to store. `ALL` includes records for both accepted traffic and rejected traffic.
+ * `icmp_options` - Optional and valid only for ICMP and ICMPv6. Use to specify a particular ICMP type and code as defined in:
+ * [ICMP Parameters](http://www.iana.org/assignments/icmp-parameters/icmp-parameters.xhtml)
+ * [ICMPv6 Parameters](https://www.iana.org/assignments/icmpv6-parameters/icmpv6-parameters.xhtml)
+
+ If you specify ICMP or ICMPv6 as the protocol but omit this object, then all ICMP types and codes are allowed. If you do provide this object, the type is required and the code is optional. To enable MTU negotiation for ingress internet traffic via IPv4, make sure to allow type 3 ("Destination Unreachable") code 4 ("Fragmentation Needed and Don't Fragment was Set"). If you need to specify multiple codes for a single type, create a separate security list rule for each.
+ * `code` - The ICMP code (optional).
+ * `type` - The ICMP type.
+ * `is_enabled` - Indicates whether a flow log capture filter rule is enabled.
+ * `priority` - A lower number indicates a higher priority, range 0-9. Each rule must have a distinct priority.
+ * `protocol` - The transport protocol the filter uses.
+ * `rule_action` - Include or exclude a ruleAction object.
+ * `sampling_rate` - Sampling interval as 1 of X, where X is an integer not greater than 100000.
+ * `source_cidr` - Traffic from this CIDR will be captured in the flow log.
+ * `tcp_options` - Optional and valid only for TCP. Use to specify particular destination ports for TCP rules. If you specify TCP as the protocol but omit this object, then all destination ports are allowed.
+ * `destination_port_range` -
+ * `max` - The maximum port number, which must not be less than the minimum port number. To specify a single port number, set both the min and max to the same value.
+ * `min` - The minimum port number, which must not be greater than the maximum port number.
+ * `source_port_range` -
+ * `max` - The maximum port number, which must not be less than the minimum port number. To specify a single port number, set both the min and max to the same value.
+ * `min` - The minimum port number, which must not be greater than the maximum port number.
+ * `udp_options` - Optional and valid only for UDP. Use to specify particular destination ports for UDP rules. If you specify UDP as the protocol but omit this object, then all destination ports are allowed.
+ * `destination_port_range` -
+ * `max` - The maximum port number, which must not be less than the minimum port number. To specify a single port number, set both the min and max to the same value.
+ * `min` - The minimum port number, which must not be greater than the maximum port number.
+ * `source_port_range` -
+ * `max` - The maximum port number, which must not be less than the minimum port number. To specify a single port number, set both the min and max to the same value.
+ * `min` - The minimum port number, which must not be greater than the maximum port number.
* `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 capture filter's Oracle ID ([OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm)).
* `state` - The capture filter's current administrative state.
diff --git a/website/docs/d/core_cluster_network.html.markdown b/website/docs/d/core_cluster_network.html.markdown
index f7edd02e2c8..9f539853919 100644
--- a/website/docs/d/core_cluster_network.html.markdown
+++ b/website/docs/d/core_cluster_network.html.markdown
@@ -47,7 +47,7 @@ The following attributes are exported:
* `display_name` - A user-friendly name. Does not have to be unique, and it's changeable. Avoid entering confidential information.
* `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 pool.
- * `instance_configuration_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the instance configuration associated with the instance pool.
+ * `instance_configuration_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the instance configuration associated with the instance pool.
* `load_balancers` - The load balancers attached to the instance pool.
* `backend_set_name` - The name of the backend set on the load balancer.
* `id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the load balancer attachment.
diff --git a/website/docs/d/database_autonomous_container_database_resource_usage.html.markdown b/website/docs/d/database_autonomous_container_database_resource_usage.html.markdown
index 6879405f83b..239b642ee4d 100644
--- a/website/docs/d/database_autonomous_container_database_resource_usage.html.markdown
+++ b/website/docs/d/database_autonomous_container_database_resource_usage.html.markdown
@@ -50,5 +50,5 @@ The following attributes are exported:
* `provisioned_cpus` - CPUs / cores assigned to ADBs in the Autonomous Container Database.
* `reclaimable_cpus` - CPUs / cores reclaimable or released to cluster on Autonomous Container Database restart.
* `reserved_cpus` - CPUs / cores reserved for scalability, resilliency and other overheads. This includes failover, autoscaling and idle instance overhead.
-* `used_cpus` - CPUs / cores assigned to the Autonomous Container Database. Sum of provisioned, reserved and reclaimable CPUs/ cores.
+* `used_cpus` - CPUs / cores assigned to the Autonomous Container Database. Sum of provisioned, reserved and reclaimable CPUs/ cores.
diff --git a/website/docs/d/database_autonomous_database.html.markdown b/website/docs/d/database_autonomous_database.html.markdown
index d73f4c10ea7..eb18b6cb531 100644
--- a/website/docs/d/database_autonomous_database.html.markdown
+++ b/website/docs/d/database_autonomous_database.html.markdown
@@ -168,7 +168,7 @@ The following attributes are exported:
* `ncharacter_set` - The national character set for the autonomous database. The default is AL16UTF16. Allowed values are: AL16UTF16 or UTF8.
* `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.
-* `ocpu_count` - The number of OCPU cores to be made available to the database.
+* `ocpu_count` - The number of OCPU cores to be made available to the database.
The following points apply:
* For Autonomous Databases on dedicated Exadata infrastructure, to provision less than 1 core, enter a fractional value in an increment of 0.1. For example, you can provision 0.3 or 0.4 cores, but not 0.35 cores. (Note that fractional OCPU values are not supported for Autonomous Databasese on shared Exadata infrastructure.)
@@ -256,4 +256,4 @@ The following attributes are exported:
For an update operation, if you want to delete all the IPs in the ACL, use an array with a single empty string entry.
- This cannot be updated in parallel with any of the following: licenseModel, dbEdition, cpuCoreCount, computeCount, computeModel, adminPassword, isMTLSConnectionRequired, openMode, permissionLevel, dbWorkload, dbVersion, isRefreshable, dbName, scheduledOperations, dbToolsDetails, isLocalDataGuardEnabled, or isFreeTier.
+ This cannot be updated in parallel with any of the following: licenseModel, dbEdition, cpuCoreCount, computeCount, computeModel, adminPassword, isMTLSConnectionRequired, openMode, permissionLevel, dbWorkload, dbVersion, isRefreshable, dbName, scheduledOperations, dbToolsDetails, isLocalDataGuardEnabled, or isFreeTier.
\ No newline at end of file
diff --git a/website/docs/d/database_autonomous_database_character_sets.html.markdown b/website/docs/d/database_autonomous_database_character_sets.html.markdown
index 0532080c759..97bcf658732 100644
--- a/website/docs/d/database_autonomous_database_character_sets.html.markdown
+++ b/website/docs/d/database_autonomous_database_character_sets.html.markdown
@@ -19,7 +19,6 @@ data "oci_database_autonomous_database_character_sets" "test_autonomous_database
#Optional
character_set_type = var.autonomous_database_character_set_character_set_type
- is_dedicated = var.autonomous_database_character_set_is_dedicated
is_shared = var.autonomous_database_character_set_is_shared
}
```
@@ -30,7 +29,7 @@ The following arguments are supported:
* `character_set_type` - (Optional) Specifies whether this request pertains to database character sets or national character sets.
* `is_dedicated` - (Optional) Specifies if the request is for an Autonomous Database Dedicated instance. The default request is for an Autonomous Database Dedicated instance.
-* `is_shared` - (Optional) Specifies whether this request is for an Autonomous Database Serverless instance. By default, this request will be for Autonomous Database on Dedicated Exadata Infrastructure.
+* `is_shared` - (Optional) Specifies whether this request is for Autonomous Database on Shared infrastructure. By default, this request will be for Autonomous Database on Dedicated Exadata Infrastructure.
## Attributes Reference
diff --git a/website/docs/d/database_autonomous_databases.html.markdown b/website/docs/d/database_autonomous_databases.html.markdown
index bb5733bba0e..36c111e3e76 100644
--- a/website/docs/d/database_autonomous_databases.html.markdown
+++ b/website/docs/d/database_autonomous_databases.html.markdown
@@ -1,3 +1,5 @@
+
+
---
subcategory: "Database"
layout: "oci"
@@ -191,7 +193,7 @@ The following attributes are exported:
* `next_long_term_backup_time_stamp` - The date and time when the next long-term backup would be created.
* `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.
-* `ocpu_count` - The number of OCPU cores to be made available to the database.
+* `ocpu_count` - The number of OCPU cores to be made available to the database.
The following points apply:
* For Autonomous Databases on dedicated Exadata infrastructure, to provision less than 1 core, enter a fractional value in an increment of 0.1. For example, you can provision 0.3 or 0.4 cores, but not 0.35 cores. (Note that fractional OCPU values are not supported for Autonomous Databasese on shared Exadata infrastructure.)
diff --git a/website/docs/d/database_autonomous_vm_cluster_acd_resource_usages.html.markdown b/website/docs/d/database_autonomous_vm_cluster_acd_resource_usages.html.markdown
new file mode 100644
index 00000000000..7b7c84fd887
--- /dev/null
+++ b/website/docs/d/database_autonomous_vm_cluster_acd_resource_usages.html.markdown
@@ -0,0 +1,64 @@
+---
+subcategory: "Database"
+layout: "oci"
+page_title: "Oracle Cloud Infrastructure: oci_database_autonomous_vm_cluster_acd_resource_usages"
+sidebar_current: "docs-oci-datasource-database-autonomous_vm_cluster_acd_resource_usages"
+description: |-
+ Provides the list of Autonomous Vm Cluster Acd Resource Usages in Oracle Cloud Infrastructure Database service
+---
+
+# Data Source: oci_database_autonomous_vm_cluster_acd_resource_usages
+This data source provides the list of Autonomous Vm Cluster Acd Resource Usages in Oracle Cloud Infrastructure Database service.
+
+Gets the list of resource usage details for all the Autonomous Container Database in the specified Autonomous Exadata VM cluster.
+
+
+## Example Usage
+
+```hcl
+data "oci_database_autonomous_vm_cluster_acd_resource_usages" "test_autonomous_vm_cluster_acd_resource_usages" {
+ #Required
+ autonomous_vm_cluster_id = oci_database_autonomous_vm_cluster.test_autonomous_vm_cluster.id
+
+ #Optional
+ compartment_id = var.compartment_id
+}
+```
+
+## Argument Reference
+
+The following arguments are supported:
+
+* `autonomous_vm_cluster_id` - (Required) The autonomous VM cluster [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm).
+* `compartment_id` - (Optional) The compartment [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm).
+
+
+## Attributes Reference
+
+The following attributes are exported:
+
+* `autonomous_container_database_resource_usages` - The list of autonomous_container_database_resource_usages.
+
+### AutonomousVmClusterAcdResourceUsage Reference
+
+The following attributes are exported:
+
+* `autonomous_container_database_vm_usage` - list of autonomous container database resource usage per autonomous virtual machine.
+ * `display_name` - The user-friendly name for the Autonomous VM. The name does not need to be unique.
+ * `id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the Autonomous VM.
+ * `provisioned_cpus` - CPUs/cores assigned to Autonomous Databases for the ACD instance in given Autonomus VM.
+ * `reclaimable_cpus` - CPUs/cores that continue to be included in the count of OCPUs available to the Autonomous Container Database in given Autonomous VM, even after one of its Autonomous Database is terminated or scaled down. You can release them to the available OCPUs at its parent AVMC level by restarting the Autonomous Container Database.
+ * `reserved_cpus` - CPUs/cores reserved for scalability, resilliency and other overheads. This includes failover, autoscaling and idle instance overhead.
+ * `used_cpus` - CPUs/cores assigned to the ACD instance in given Autonomous VM. Sum of provisioned, reserved and reclaimable CPUs/ cores to the ACD instance.
+* `available_cpus` - CPUs / cores available for ADB provisioning or scaling in the Autonomous Container Database.
+* `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).
+* `display_name` - The user-friendly name for the Autonomous Container Database. The name does not need to be unique.
+* `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 Autonomous Container Database.
+* `largest_provisionable_autonomous_database_in_cpus` - Largest provisionable ADB in the Autonomous Container Database.
+* `provisionable_cpus` - Valid list of provisionable CPUs / cores for ADB creation.
+* `provisioned_cpus` - CPUs / cores assigned to ADBs in the Autonomous Container Database.
+* `reclaimable_cpus` - CPUs / cores reclaimable or released to cluster on Autonomous Container Database restart.
+* `reserved_cpus` - CPUs / cores reserved for scalability, resilliency and other overheads. This includes failover, autoscaling and idle instance overhead.
+* `used_cpus` - CPUs / cores assigned to the Autonomous Container Database. Sum of provisioned, reserved and reclaimable CPUs/ cores.
+
diff --git a/website/docs/d/database_autonomous_vm_cluster_resource_usage.html.markdown b/website/docs/d/database_autonomous_vm_cluster_resource_usage.html.markdown
new file mode 100644
index 00000000000..59f88504375
--- /dev/null
+++ b/website/docs/d/database_autonomous_vm_cluster_resource_usage.html.markdown
@@ -0,0 +1,72 @@
+---
+subcategory: "Database"
+layout: "oci"
+page_title: "Oracle Cloud Infrastructure: oci_database_autonomous_vm_cluster_resource_usage"
+sidebar_current: "docs-oci-datasource-database-autonomous_vm_cluster_resource_usage"
+description: |-
+ Provides details about a specific Autonomous Vm Cluster Resource Usage in Oracle Cloud Infrastructure Database service
+---
+
+# Data Source: oci_database_autonomous_vm_cluster_resource_usage
+This data source provides details about a specific Autonomous Vm Cluster Resource Usage resource in Oracle Cloud Infrastructure Database service.
+
+Get the resource usage details for the specified Autonomous Exadata VM cluster.
+
+
+## Example Usage
+
+```hcl
+data "oci_database_autonomous_vm_cluster_resource_usage" "test_autonomous_vm_cluster_resource_usage" {
+ #Required
+ autonomous_vm_cluster_id = oci_database_autonomous_vm_cluster.test_autonomous_vm_cluster.id
+}
+```
+
+## Argument Reference
+
+The following arguments are supported:
+
+* `autonomous_vm_cluster_id` - (Required) The autonomous VM cluster [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm).
+
+
+## Attributes Reference
+
+The following attributes are exported:
+
+* `autonomous_data_storage_size_in_tbs` - The data disk group size allocated for Autonomous Databases, in TBs.
+* `autonomous_vm_resource_usage` - List of autonomous vm cluster resource usages.
+ * `autonomous_container_database_usage` - associated autonomous container database usages
+ * `available_cpus` - The number of CPU cores available.
+ * `display_name` - The user-friendly name for the Autonomous Container Database. The name does not need to be unique.
+ * `id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the Autonomous Container Database.
+ * `provisioned_cpus` - CPUs/cores assigned to Autonomous Databases in the ACD instances.
+ * `reclaimable_cpus` - CPUs/cores that continue to be included in the count of OCPUs available to the Autonomous Container Database even after one of its Autonomous Database is terminated or scaled down. You can release them to the available OCPUs at its parent AVMC level by restarting the Autonomous Container Database.
+ * `reserved_cpus` - CPUs/cores reserved for scalability, resilliency and other overheads. This includes failover, autoscaling and idle instance overhead.
+ * `used_cpus` - CPUs/cores assigned to the ACD instance. Sum of provisioned, reserved and reclaimable CPUs/ cores to the ACD instance.
+ * `available_cpus` - The number of CPU cores available.
+ * `display_name` - The user-friendly name for the Autonomous VM cluster. The name does not need to be unique.
+ * `id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the Autonomous Vm Cluster.
+ * `provisioned_cpus` - The number of CPUs provisioned in an Autonomous VM Cluster
+ * `reclaimable_cpus` - CPU cores that continue to be included in the count of OCPUs available to the Autonomous Container Database even after one of its Autonomous Database is terminated or scaled down. You can release them to the available OCPUs at its parent AVMC level by restarting the Autonomous Container Database.
+ * `reserved_cpus` - The number of CPUs reserved in an Autonomous VM Cluster
+ * `used_cpus` - The number of CPU cores alloted to the Autonomous Container Databases in an Cloud Autonomous VM cluster.
+* `available_autonomous_data_storage_size_in_tbs` - The data disk group size available for Autonomous Databases, in TBs.
+* `available_cpus` - The number of CPU cores available.
+* `db_node_storage_size_in_gbs` - The local node storage allocated in GBs.
+* `display_name` - The user-friendly name for the Autonomous VM cluster. The name does not need to be unique.
+* `exadata_storage_in_tbs` - Total exadata storage allocated for the Autonomous VM Cluster. DATA + RECOVERY + SPARSE + any overhead in TBs.
+* `id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the Autonomous VM cluster.
+* `is_local_backup_enabled` - If true, database backup on local Exadata storage is configured for the Autonomous VM cluster. If false, database backup on local Exadata storage is not available in the Autonomous VM cluster.
+* `memory_per_oracle_compute_unit_in_gbs` - The amount of memory (in GBs) to be enabled per each CPU core.
+* `memory_size_in_gbs` - The memory allocated in GBs.
+* `non_provisionable_autonomous_container_databases` - The number of non-provisionable Autonomous Container Databases in an Autonomous VM Cluster.
+* `provisionable_autonomous_container_databases` - The number of provisionable Autonomous Container Databases in an Autonomous VM Cluster.
+* `provisioned_autonomous_container_databases` - The number of provisioned Autonomous Container Databases in an Autonomous VM Cluster.
+* `provisioned_cpus` - The number of CPUs provisioned in an Autonomous VM Cluster.
+* `reclaimable_cpus` - CPU cores that continue to be included in the count of OCPUs available to the Autonomous Container Database even after one of its Autonomous Database is terminated or scaled down. You can release them to the available OCPUs at its parent AVMC level by restarting the Autonomous Container Database.
+* `reserved_cpus` - The number of CPUs reserved in an Autonomous VM Cluster.
+* `total_container_databases` - The total number of Autonomous Container Databases that can be created.
+* `total_cpus` - The number of CPU cores enabled on the Autonomous VM cluster.
+* `used_autonomous_data_storage_size_in_tbs` - The data disk group size used for Autonomous Databases, in TBs.
+* `used_cpus` - The number of CPU cores alloted to the Autonomous Container Databases in an Autonomous VM cluster.
+
diff --git a/website/docs/d/database_db_node.html.markdown b/website/docs/d/database_db_node.html.markdown
index 1a2110ebb27..850e7102232 100644
--- a/website/docs/d/database_db_node.html.markdown
+++ b/website/docs/d/database_db_node.html.markdown
@@ -48,7 +48,6 @@ The following attributes are exported:
* `fault_domain` - The name of the Fault Domain the instance is contained in.
* `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"}`
* `host_ip_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the host IP address associated with the database node. Use this OCID with either the [GetPrivateIp](https://docs.cloud.oracle.com/iaas/api/#/en/iaas/20160918/PrivateIp/GetPrivateIp) or the [GetPublicIpByPrivateIpId](https://docs.cloud.oracle.com/iaas/api/#/en/iaas/20160918/PublicIp/GetPublicIpByPrivateIpId) API to get the IP address needed to make a database connection.
-
**Note:** Applies only to Exadata Cloud Service.
* `hostname` - The host name for the database node.
* `id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the database node.
diff --git a/website/docs/d/database_db_nodes.html.markdown b/website/docs/d/database_db_nodes.html.markdown
index a6764e465db..452c6a0eb53 100644
--- a/website/docs/d/database_db_nodes.html.markdown
+++ b/website/docs/d/database_db_nodes.html.markdown
@@ -61,11 +61,10 @@ The following attributes are exported:
* `db_node_storage_size_in_gbs` - The allocated local node storage in GBs on the Db node.
* `db_server_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the Exacc Db server associated with the database node.
* `db_system_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the DB system.
-* `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).
+* `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).
* `fault_domain` - The name of the Fault Domain the instance is contained in.
* `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"}`
* `host_ip_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the host IP address associated with the database node. Use this OCID with either the [GetPrivateIp](https://docs.cloud.oracle.com/iaas/api/#/en/iaas/20160918/PrivateIp/GetPrivateIp) or the [GetPublicIpByPrivateIpId](https://docs.cloud.oracle.com/iaas/api/#/en/iaas/20160918/PublicIp/GetPublicIpByPrivateIpId) API to get the IP address needed to make a database connection.
-
**Note:** Applies only to Exadata Cloud Service.
* `hostname` - The host name for the database node.
* `id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the database node.
diff --git a/website/docs/d/database_pluggable_database.html.markdown b/website/docs/d/database_pluggable_database.html.markdown
index aa6ae242ea7..5aa367d4d16 100644
--- a/website/docs/d/database_pluggable_database.html.markdown
+++ b/website/docs/d/database_pluggable_database.html.markdown
@@ -43,10 +43,15 @@ The following attributes are exported:
* `id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the pluggable database.
* `is_restricted` - The restricted mode of the pluggable database. If a pluggable database is opened in restricted mode, the user needs both create a session and have restricted session privileges to connect to it.
* `lifecycle_details` - Detailed message for the lifecycle state.
-* `open_mode` - The mode that pluggable database is in. Open mode can only be changed to READ_ONLY or MIGRATE directly from the backend (within the Oracle Database software).
+* `open_mode` - **Deprecated.** Use [PluggableDatabaseNodeLevelDetails](https://docs.cloud.oracle.com/iaas/api/#/en/database/latest/datatypes/PluggableDatabaseNodeLevelDetails) for OpenMode details. The mode that pluggable database is in. Open mode can only be changed to READ_ONLY or MIGRATE directly from the backend (within the Oracle Database software).
* `pdb_name` - The name for the pluggable database (PDB). The name is unique in the context of a [container database](https://docs.cloud.oracle.com/iaas/api/#/en/database/latest/Database/). The name must begin with an alphabetic character and can contain a maximum of thirty alphanumeric characters. Special characters are not permitted. The pluggable database name should not be same as the container database name.
+* `pdb_node_level_details` - Pluggable Database Node Level Details. Example: [{"nodeName" : "node1", "openMode" : "READ_WRITE"}, {"nodeName" : "node2", "openMode" : "READ_ONLY"}]
+ * `node_name` - The Node name of the Database Instance.
+ * `open_mode` - The mode that pluggable database is in. Open mode can only be changed to READ_ONLY or MIGRATE directly from the backend (within the Oracle Database software).
* `pluggable_database_management_config` - The configuration of the Pluggable Database Management service.
* `management_status` - The status of the Pluggable Database Management service.
+* `refreshable_clone_config` - Pluggable Database Refreshable Clone Configuration.
+ * `is_refreshable_clone` - Indicates whether the Pluggable Database is a refreshable clone.
* `state` - The current state of the pluggable database.
* `time_created` - The date and time the pluggable database was created.
diff --git a/website/docs/d/database_pluggable_databases.html.markdown b/website/docs/d/database_pluggable_databases.html.markdown
index 821e44d9924..103adf796ec 100644
--- a/website/docs/d/database_pluggable_databases.html.markdown
+++ b/website/docs/d/database_pluggable_databases.html.markdown
@@ -57,10 +57,15 @@ The following attributes are exported:
* `id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the pluggable database.
* `is_restricted` - The restricted mode of the pluggable database. If a pluggable database is opened in restricted mode, the user needs both create a session and have restricted session privileges to connect to it.
* `lifecycle_details` - Detailed message for the lifecycle state.
-* `open_mode` - The mode that pluggable database is in. Open mode can only be changed to READ_ONLY or MIGRATE directly from the backend (within the Oracle Database software).
+* `open_mode` - **Deprecated.** Use [PluggableDatabaseNodeLevelDetails](https://docs.cloud.oracle.com/iaas/api/#/en/database/latest/datatypes/PluggableDatabaseNodeLevelDetails) for OpenMode details. The mode that pluggable database is in. Open mode can only be changed to READ_ONLY or MIGRATE directly from the backend (within the Oracle Database software).
* `pdb_name` - The name for the pluggable database (PDB). The name is unique in the context of a [container database](https://docs.cloud.oracle.com/iaas/api/#/en/database/latest/Database/). The name must begin with an alphabetic character and can contain a maximum of thirty alphanumeric characters. Special characters are not permitted. The pluggable database name should not be same as the container database name.
+* `pdb_node_level_details` - Pluggable Database Node Level Details. Example: [{"nodeName" : "node1", "openMode" : "READ_WRITE"}, {"nodeName" : "node2", "openMode" : "READ_ONLY"}]
+ * `node_name` - The Node name of the Database Instance.
+ * `open_mode` - The mode that pluggable database is in. Open mode can only be changed to READ_ONLY or MIGRATE directly from the backend (within the Oracle Database software).
* `pluggable_database_management_config` - The configuration of the Pluggable Database Management service.
* `management_status` - The status of the Pluggable Database Management service.
+* `refreshable_clone_config` - Pluggable Database Refreshable Clone Configuration.
+ * `is_refreshable_clone` - Indicates whether the Pluggable Database is a refreshable clone.
* `state` - The current state of the pluggable database.
* `time_created` - The date and time the pluggable database was created.
diff --git a/website/docs/d/dataintegration_workspace_export_request.html.markdown b/website/docs/d/dataintegration_workspace_export_request.html.markdown
new file mode 100644
index 00000000000..7241e515a9b
--- /dev/null
+++ b/website/docs/d/dataintegration_workspace_export_request.html.markdown
@@ -0,0 +1,64 @@
+---
+subcategory: "Data Integration"
+layout: "oci"
+page_title: "Oracle Cloud Infrastructure: oci_dataintegration_workspace_export_request"
+sidebar_current: "docs-oci-datasource-dataintegration-workspace_export_request"
+description: |-
+ Provides details about a specific Workspace Export Request in Oracle Cloud Infrastructure Data Integration service
+---
+
+# Data Source: oci_dataintegration_workspace_export_request
+This data source provides details about a specific Workspace Export Request resource in Oracle Cloud Infrastructure Data Integration service.
+
+This endpoint can be used to get the summary/details of object being exported.
+
+
+## Example Usage
+
+```hcl
+data "oci_dataintegration_workspace_export_request" "test_workspace_export_request" {
+ #Required
+ export_request_key = var.workspace_export_request_export_request_key
+ workspace_id = oci_dataintegration_workspace.test_workspace.id
+}
+```
+
+## Argument Reference
+
+The following arguments are supported:
+
+* `export_request_key` - (Required) The key of the object export object request
+* `workspace_id` - (Required) The workspace ID.
+
+
+## Attributes Reference
+
+The following attributes are exported:
+
+* `are_references_included` - Controls if the references will be exported along with the objects
+* `bucket` - The name of the Object Storage Bucket where the objects will be exported to
+* `created_by` - Name of the user who initiated export request.
+* `error_messages` - Contains key of the error
+* `exported_items` - The array of exported object details.
+ * `aggregator_key` - Aggregator key
+ * `identifier` - Object identifier
+ * `key` - Key of the object
+ * `name` - Name of the object
+ * `name_path` - Object name path
+ * `object_type` - Object type
+ * `object_version` - Object version
+ * `time_updated_in_millis` - time at which this object was last updated.
+* `file_name` - Name of the exported zip file.
+* `filters` - Export multiple objects based on filters.
+* `is_object_overwrite_enabled` - Flag to control whether to overwrite the object if it is already present at the provided object storage location.
+* `key` - Export object request key
+* `name` - Name of the export request.
+* `object_keys` - The list of the objects to be exported
+* `object_storage_region` - Region of the object storage (if using object storage of different region)
+* `object_storage_tenancy_id` - Optional parameter to point to object storage tenancy (if using Object Storage of different tenancy)
+* `referenced_items` - The array of exported referenced objects.
+* `status` - Export Objects request status.
+* `time_ended_in_millis` - Time at which the request was completely processed.
+* `time_started_in_millis` - Time at which the request started getting processed.
+* `total_exported_object_count` - Number of objects that are exported.
+
diff --git a/website/docs/d/dataintegration_workspace_export_requests.html.markdown b/website/docs/d/dataintegration_workspace_export_requests.html.markdown
new file mode 100644
index 00000000000..d59564ae5ce
--- /dev/null
+++ b/website/docs/d/dataintegration_workspace_export_requests.html.markdown
@@ -0,0 +1,80 @@
+---
+subcategory: "Data Integration"
+layout: "oci"
+page_title: "Oracle Cloud Infrastructure: oci_dataintegration_workspace_export_requests"
+sidebar_current: "docs-oci-datasource-dataintegration-workspace_export_requests"
+description: |-
+ Provides the list of Workspace Export Requests in Oracle Cloud Infrastructure Data Integration service
+---
+
+# Data Source: oci_dataintegration_workspace_export_requests
+This data source provides the list of Workspace Export Requests in Oracle Cloud Infrastructure Data Integration service.
+
+This endpoint can be used to get the list of export object requests.
+
+
+## Example Usage
+
+```hcl
+data "oci_dataintegration_workspace_export_requests" "test_workspace_export_requests" {
+ #Required
+ workspace_id = oci_dataintegration_workspace.test_workspace.id
+
+ #Optional
+ export_status = var.workspace_export_request_export_status
+ name = var.workspace_export_request_name
+ projection = var.workspace_export_request_projection
+ time_ended_in_millis = var.workspace_export_request_time_ended_in_millis
+ time_started_in_millis = var.workspace_export_request_time_started_in_millis
+}
+```
+
+## Argument Reference
+
+The following arguments are supported:
+
+* `export_status` - (Optional) Specifies export status to use, either - ALL, SUCCESSFUL, IN_PROGRESS, QUEUED, FAILED .
+* `name` - (Optional) Used to filter by the name of the object.
+* `projection` - (Optional) This parameter allows users to specify which view of the export object response to return. SUMMARY - Summary of the export object request will be returned. This is the default option when no value is specified. DETAILS - Details of export object request will be returned. This will include details of all the objects to be exported.
+* `time_ended_in_millis` - (Optional) Specifies end time of a copy object request.
+* `time_started_in_millis` - (Optional) Specifies start time of a copy object request.
+* `workspace_id` - (Required) The workspace ID.
+
+
+## Attributes Reference
+
+The following attributes are exported:
+
+* `export_request_summary_collection` - The list of export_request_summary_collection.
+
+### WorkspaceExportRequest Reference
+
+The following attributes are exported:
+
+* `are_references_included` - Controls if the references will be exported along with the objects
+* `bucket` - The name of the Object Storage Bucket where the objects will be exported to
+* `created_by` - Name of the user who initiated export request.
+* `error_messages` - Contains key of the error
+* `exported_items` - The array of exported object details.
+ * `aggregator_key` - Aggregator key
+ * `identifier` - Object identifier
+ * `key` - Key of the object
+ * `name` - Name of the object
+ * `name_path` - Object name path
+ * `object_type` - Object type
+ * `object_version` - Object version
+ * `time_updated_in_millis` - time at which this object was last updated.
+* `file_name` - Name of the exported zip file.
+* `filters` - Export multiple objects based on filters.
+* `is_object_overwrite_enabled` - Flag to control whether to overwrite the object if it is already present at the provided object storage location.
+* `key` - Export object request key
+* `name` - Name of the export request.
+* `object_keys` - The list of the objects to be exported
+* `object_storage_region` - Region of the object storage (if using object storage of different region)
+* `object_storage_tenancy_id` - Optional parameter to point to object storage tenancy (if using Object Storage of different tenancy)
+* `referenced_items` - The array of exported referenced objects.
+* `status` - Export Objects request status.
+* `time_ended_in_millis` - Time at which the request was completely processed.
+* `time_started_in_millis` - Time at which the request started getting processed.
+* `total_exported_object_count` - Number of objects that are exported.
+
diff --git a/website/docs/d/dataintegration_workspace_import_request.html.markdown b/website/docs/d/dataintegration_workspace_import_request.html.markdown
new file mode 100644
index 00000000000..fd56a7b46df
--- /dev/null
+++ b/website/docs/d/dataintegration_workspace_import_request.html.markdown
@@ -0,0 +1,66 @@
+---
+subcategory: "Data Integration"
+layout: "oci"
+page_title: "Oracle Cloud Infrastructure: oci_dataintegration_workspace_import_request"
+sidebar_current: "docs-oci-datasource-dataintegration-workspace_import_request"
+description: |-
+ Provides details about a specific Workspace Import Request in Oracle Cloud Infrastructure Data Integration service
+---
+
+# Data Source: oci_dataintegration_workspace_import_request
+This data source provides details about a specific Workspace Import Request resource in Oracle Cloud Infrastructure Data Integration service.
+
+This endpoint can be used to get the summary/details of object being imported.
+
+
+## Example Usage
+
+```hcl
+data "oci_dataintegration_workspace_import_request" "test_workspace_import_request" {
+ #Required
+ import_request_key = var.workspace_import_request_import_request_key
+ workspace_id = oci_dataintegration_workspace.test_workspace.id
+}
+```
+
+## Argument Reference
+
+The following arguments are supported:
+
+* `import_request_key` - (Required) The key of the object export object request
+* `workspace_id` - (Required) The workspace ID.
+
+
+## Attributes Reference
+
+The following attributes are exported:
+
+* `bucket` - The name of the Object Storage Bucket where the objects will be imported from
+* `created_by` - Name of the user who initiated import request.
+* `error_messages` - Contains key of the error
+* `file_name` - Name of the zip file from which objects will be imported.
+* `import_conflict_resolution` - Import Objects Conflict resolution.
+ * `duplicate_prefix` - In case of DUPLICATE mode, prefix will be used to disambiguate the object.
+ * `duplicate_suffix` - In case of DUPLICATE mode, suffix will be used to disambiguate the object.
+ * `import_conflict_resolution_type` - Import Objects Conflict resolution Type (RETAIN/DUPLICATE/REPLACE).
+* `imported_objects` - The array of imported object details.
+ * `aggregator_key` - Aggregator key
+ * `identifier` - Object identifier
+ * `name` - Name of the object
+ * `name_path` - Object name path
+ * `new_key` - New key of the object
+ * `object_type` - Object type
+ * `object_version` - Object version
+ * `old_key` - Old key of the object
+ * `resolution_action` - Object resolution action
+ * `time_updated_in_millis` - time at which this object was last updated.
+* `key` - Import object request key
+* `name` - Name of the import request.
+* `object_key_for_import` - Key of the object inside which all the objects will be imported
+* `object_storage_region` - Region of the object storage (if using object storage of different region)
+* `object_storage_tenancy_id` - Optional parameter to point to object storage tenancy (if using Object Storage of different tenancy)
+* `status` - Import Objects request status.
+* `time_ended_in_millis` - Time at which the request was completely processed.
+* `time_started_in_millis` - Time at which the request started getting processed.
+* `total_imported_object_count` - Number of objects that are imported.
+
diff --git a/website/docs/d/dataintegration_workspace_import_requests.html.markdown b/website/docs/d/dataintegration_workspace_import_requests.html.markdown
new file mode 100644
index 00000000000..a0b6e23fbf3
--- /dev/null
+++ b/website/docs/d/dataintegration_workspace_import_requests.html.markdown
@@ -0,0 +1,82 @@
+---
+subcategory: "Data Integration"
+layout: "oci"
+page_title: "Oracle Cloud Infrastructure: oci_dataintegration_workspace_import_requests"
+sidebar_current: "docs-oci-datasource-dataintegration-workspace_import_requests"
+description: |-
+ Provides the list of Workspace Import Requests in Oracle Cloud Infrastructure Data Integration service
+---
+
+# Data Source: oci_dataintegration_workspace_import_requests
+This data source provides the list of Workspace Import Requests in Oracle Cloud Infrastructure Data Integration service.
+
+This endpoint can be used to get the list of import object requests.
+
+
+## Example Usage
+
+```hcl
+data "oci_dataintegration_workspace_import_requests" "test_workspace_import_requests" {
+ #Required
+ workspace_id = oci_dataintegration_workspace.test_workspace.id
+
+ #Optional
+ import_status = var.workspace_import_request_import_status
+ name = var.workspace_import_request_name
+ projection = var.workspace_import_request_projection
+ time_ended_in_millis = var.workspace_import_request_time_ended_in_millis
+ time_started_in_millis = var.workspace_import_request_time_started_in_millis
+}
+```
+
+## Argument Reference
+
+The following arguments are supported:
+
+* `import_status` - (Optional) Specifies import status to use, either - ALL, SUCCESSFUL, IN_PROGRESS, QUEUED, FAILED .
+* `name` - (Optional) Used to filter by the name of the object.
+* `projection` - (Optional) This parameter allows users to specify which view of the import object response to return. SUMMARY - Summary of the import object request will be returned. This is the default option when no value is specified. DETAILS - Details of import object request will be returned. This will include details of all the objects to be exported.
+* `time_ended_in_millis` - (Optional) Specifies end time of a copy object request.
+* `time_started_in_millis` - (Optional) Specifies start time of a copy object request.
+* `workspace_id` - (Required) The workspace ID.
+
+
+## Attributes Reference
+
+The following attributes are exported:
+
+* `import_request_summary_collection` - The list of import_request_summary_collection.
+
+### WorkspaceImportRequest Reference
+
+The following attributes are exported:
+
+* `bucket` - The name of the Object Storage Bucket where the objects will be imported from
+* `created_by` - Name of the user who initiated import request.
+* `error_messages` - Contains key of the error
+* `file_name` - Name of the zip file from which objects will be imported.
+* `import_conflict_resolution` - Import Objects Conflict resolution.
+ * `duplicate_prefix` - In case of DUPLICATE mode, prefix will be used to disambiguate the object.
+ * `duplicate_suffix` - In case of DUPLICATE mode, suffix will be used to disambiguate the object.
+ * `import_conflict_resolution_type` - Import Objects Conflict resolution Type (RETAIN/DUPLICATE/REPLACE).
+* `imported_objects` - The array of imported object details.
+ * `aggregator_key` - Aggregator key
+ * `identifier` - Object identifier
+ * `name` - Name of the object
+ * `name_path` - Object name path
+ * `new_key` - New key of the object
+ * `object_type` - Object type
+ * `object_version` - Object version
+ * `old_key` - Old key of the object
+ * `resolution_action` - Object resolution action
+ * `time_updated_in_millis` - time at which this object was last updated.
+* `key` - Import object request key
+* `name` - Name of the import request.
+* `object_key_for_import` - Key of the object inside which all the objects will be imported
+* `object_storage_region` - Region of the object storage (if using object storage of different region)
+* `object_storage_tenancy_id` - Optional parameter to point to object storage tenancy (if using Object Storage of different tenancy)
+* `status` - Import Objects request status.
+* `time_ended_in_millis` - Time at which the request was completely processed.
+* `time_started_in_millis` - Time at which the request started getting processed.
+* `total_imported_object_count` - Number of objects that are imported.
+
diff --git a/website/docs/d/ocvp_esxi_host.html.markdown b/website/docs/d/ocvp_esxi_host.html.markdown
index 3ee9803cd96..045adc18aef 100644
--- a/website/docs/d/ocvp_esxi_host.html.markdown
+++ b/website/docs/d/ocvp_esxi_host.html.markdown
@@ -38,7 +38,7 @@ The following attributes are exported:
* `compartment_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment that contains the SDDC.
* `compute_availability_domain` - The availability domain of the ESXi host.
* `compute_instance_id` - In terms of implementation, an ESXi host is a Compute instance that is configured with the chosen bundle of VMware software. The `computeInstanceId` is the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of that Compute instance.
-* `current_sku` - The billing option currently used by the ESXi host. [ListSupportedSkus](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/SupportedSkuSummary/ListSupportedSkus).
+* `current_sku` - (**Deprecated**) The billing option currently used by the ESXi host. [ListSupportedSkus](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/SupportedSkuSummary/ListSupportedSkus).
* `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 descriptive name for the ESXi host. Does not have to be unique, and it's changeable. Avoid entering confidential information.
* `failed_esxi_host_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the ESXi host that failed.
@@ -49,10 +49,10 @@ The following attributes are exported:
* `id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the ESXi host.
* `is_billing_continuation_in_progress` - Indicates whether this host is in the progress of billing continuation.
* `is_billing_swapping_in_progress` - Indicates whether this host is in the progress of swapping billing.
-* `next_sku` - The billing option to switch to after the current billing cycle ends. If `nextSku` is null or empty, `currentSku` continues to the next billing cycle. [ListSupportedSkus](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/SupportedSkuSummary/ListSupportedSkus).
+* `next_sku` - (**Deprecated**) The billing option to switch to after the current billing cycle ends. If `nextSku` is null or empty, `currentSku` continues to the next billing cycle. [ListSupportedSkus](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/SupportedSkuSummary/ListSupportedSkus).
* `non_upgraded_esxi_host_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the ESXi host that will be upgraded.
* `replacement_esxi_host_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the esxi host that is newly created to replace the failed node.
-* `sddc_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the SDDC that the ESXi host belongs to.
+* `sddc_id` - (**Deprecated**) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the SDDC that the ESXi host belongs to.
* `state` - The current state of the ESXi host.
* `swap_billing_host_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the active ESXi Host to swap billing with current host.
* `time_created` - The date and time the ESXi host 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/ocvp_esxi_hosts.html.markdown b/website/docs/d/ocvp_esxi_hosts.html.markdown
index 1e9a61abf0e..67b166cb89b 100644
--- a/website/docs/d/ocvp_esxi_hosts.html.markdown
+++ b/website/docs/d/ocvp_esxi_hosts.html.markdown
@@ -66,7 +66,7 @@ The following attributes are exported:
* `compartment_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment that contains the SDDC.
* `compute_availability_domain` - The availability domain of the ESXi host.
* `compute_instance_id` - In terms of implementation, an ESXi host is a Compute instance that is configured with the chosen bundle of VMware software. The `computeInstanceId` is the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of that Compute instance.
-* `current_sku` - The billing option currently used by the ESXi host. [ListSupportedSkus](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/SupportedSkuSummary/ListSupportedSkus).
+* `current_sku` - (**Deprecated**) The billing option currently used by the ESXi host. [ListSupportedSkus](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/SupportedSkuSummary/ListSupportedSkus).
* `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 descriptive name for the ESXi host. Does not have to be unique, and it's changeable. Avoid entering confidential information.
* `failed_esxi_host_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the ESXi host that failed.
@@ -77,10 +77,10 @@ The following attributes are exported:
* `id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the ESXi host.
* `is_billing_continuation_in_progress` - Indicates whether this host is in the progress of billing continuation.
* `is_billing_swapping_in_progress` - Indicates whether this host is in the progress of swapping billing.
-* `next_sku` - The billing option to switch to after the current billing cycle ends. If `nextSku` is null or empty, `currentSku` continues to the next billing cycle. [ListSupportedSkus](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/SupportedSkuSummary/ListSupportedSkus).
+* `next_sku` - (**Deprecated**) The billing option to switch to after the current billing cycle ends. If `nextSku` is null or empty, `currentSku` continues to the next billing cycle. [ListSupportedSkus](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/SupportedSkuSummary/ListSupportedSkus).
* `non_upgraded_esxi_host_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the ESXi host that will be upgraded.
* `replacement_esxi_host_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the esxi host that is newly created to replace the failed node.
-* `sddc_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the SDDC that the ESXi host belongs to.
+* `sddc_id` - (**Deprecated**) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the SDDC that the ESXi host belongs to.
* `state` - The current state of the ESXi host.
* `swap_billing_host_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the active ESXi Host to swap billing with current host.
* `time_created` - The date and time the ESXi host 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/ocvp_sddc.html.markdown b/website/docs/d/ocvp_sddc.html.markdown
index 207a8265e94..19c7f524e37 100644
--- a/website/docs/d/ocvp_sddc.html.markdown
+++ b/website/docs/d/ocvp_sddc.html.markdown
@@ -32,72 +32,72 @@ The following arguments are supported:
The following attributes are exported:
-* `capacity_reservation_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the Capacity Reservation.
+* `capacity_reservation_id` - (**Deprecated**) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the Capacity Reservation.
* `compartment_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment that contains the SDDC.
-* `compute_availability_domain` - The availability domain the ESXi hosts are running in. For Multi-AD SDDC, it is `multi-AD`. Example: `Uocm:PHX-AD-1`, `multi-AD`
-* `datastores` - Datastores used for the Sddc.
+* `compute_availability_domain` - (**Deprecated**) The availability domain the ESXi hosts are running in. For Multi-AD SDDC, it is `multi-AD`. Example: `Uocm:PHX-AD-1`, `multi-AD`
+* `datastores` - (**Deprecated**) Datastores used for the Sddc.
* `block_volume_ids` - A list of [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm)s of Block Storage Volumes.
* `capacity` - Size of the Block Storage Volume in GB.
* `datastore_type` - Type of the datastore.
* `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 descriptive name for the SDDC. It must be unique, start with a letter, and contain only letters, digits, whitespaces, dashes and underscores. Avoid entering confidential information.
-* `esxi_hosts_count` - The number of ESXi hosts in the SDDC.
-* `actual_esxi_hosts_count` - The number of actual ESXi hosts in the SDDC on the cloud. This attribute will be different when esxi Host is added to an existing SDDC.
+* `esxi_hosts_count` - (**Deprecated**) The number of ESXi hosts in the SDDC.
+* `actual_esxi_hosts_count` - (**Deprecated**) The number of actual ESXi hosts in the SDDC on the cloud. This attribute will be different when esxi Host is added to an existing SDDC.
* `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"}`
* `hcx_fqdn` - The FQDN for HCX Manager. Example: `hcx-my-sddc.sddc.us-phoenix-1.oraclecloud.com`
-* `hcx_initial_password` - The SDDC includes an administrator username and initial password for HCX Manager. Make sure to change this initial HCX Manager password to a different value.
-* `hcx_on_prem_key` - The activation keys to use on the on-premises HCX Enterprise appliances you site pair with HCX Manager in your VMware Solution. The number of keys provided depends on the HCX license type. HCX Advanced provides 3 activation keys. HCX Enterprise provides 10 activation keys.
+* `hcx_initial_password` - (**Deprecated**) The SDDC includes an administrator username and initial password for HCX Manager. Make sure to change this initial HCX Manager password to a different value.
+* `hcx_on_prem_key` - (**Deprecated**) The activation keys to use on the on-premises HCX Enterprise appliances you site pair with HCX Manager in your VMware Solution. The number of keys provided depends on the HCX license type. HCX Advanced provides 3 activation keys. HCX Enterprise provides 10 activation keys.
* `hcx_on_prem_licenses` - The activation licenses to use on the on-premises HCX Enterprise appliance you site pair with HCX Manager in your VMware Solution.
* `activation_key` - HCX on-premise license key value.
* `status` - status of HCX on-premise license.
* `system_name` - Name of the system that consumed the HCX on-premise license
* `hcx_private_ip_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the `PrivateIp` object that is the virtual IP (VIP) for HCX Manager. For information about `PrivateIp` objects, see the Core Services API.
-* `hcx_vlan_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the HCX component of the VMware environment.
+* `hcx_vlan_id` - (**Deprecated**) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the HCX component of the VMware environment.
This attribute is not guaranteed to reflect the HCX VLAN currently used by the ESXi hosts in the SDDC. The purpose of this attribute is to show the HCX VLAN that the Oracle Cloud VMware Solution will use for any new ESXi hosts that you *add to this SDDC in the future* with [CreateEsxiHost](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/EsxiHost/CreateEsxiHost).
Therefore, if you change the existing ESXi hosts in the SDDC to use a different VLAN for the HCX component of the VMware environment, you should use [UpdateSddc](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/Sddc/UpdateSddc) to update the SDDC's `hcxVlanId` with that new VLAN's OCID.
* `id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the SDDC.
-* `initial_host_ocpu_count` - The initial OCPU count of the SDDC's ESXi hosts.
-* `initial_host_shape_name` - The initial compute shape of the SDDC's ESXi hosts. [ListSupportedHostShapes](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/SupportedHostShapes/ListSupportedHostShapes).
-* `initial_sku` - The billing option selected during SDDC creation. [ListSupportedSkus](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/SupportedSkuSummary/ListSupportedSkus).
-* `instance_display_name_prefix` - A prefix used in the name of each ESXi host and Compute instance in the SDDC. If this isn't set, the SDDC's `displayName` is used as the prefix.
+* `initial_host_ocpu_count` - (**Deprecated**) The initial OCPU count of the SDDC's ESXi hosts.
+* `initial_host_shape_name` - (**Deprecated**) The initial compute shape of the SDDC's ESXi hosts. [ListSupportedHostShapes](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/SupportedHostShapes/ListSupportedHostShapes).
+* `initial_sku` - (**Deprecated**) The billing option selected during SDDC creation. [ListSupportedSkus](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/SupportedSkuSummary/ListSupportedSkus).
+* `instance_display_name_prefix` - (**Deprecated**) A prefix used in the name of each ESXi host and Compute instance in the SDDC. If this isn't set, the SDDC's `displayName` is used as the prefix.
For example, if the value is `MySDDC`, the ESXi hosts are named `MySDDC-1`, `MySDDC-2`, and so on.
-* `is_hcx_enabled` - Indicates whether HCX is enabled for this SDDC.
-* `is_hcx_enterprise_enabled` - Indicates whether HCX Enterprise is enabled for this SDDC.
+* `is_hcx_enabled` - (**Deprecated**) Indicates whether HCX is enabled for this SDDC.
+* `is_hcx_enterprise_enabled` - (**Deprecated**) Indicates whether HCX Enterprise is enabled for this SDDC.
* `is_hcx_pending_downgrade` - Indicates whether SDDC is pending downgrade from HCX Enterprise to HCX Advanced.
-* `is_shielded_instance_enabled` - Indicates whether shielded instance is enabled at the SDDC level.
+* `is_shielded_instance_enabled` - (**Deprecated**) Indicates whether shielded instance is enabled at the SDDC level.
* `is_single_host_sddc` - Indicates whether this SDDC is designated for only single ESXi host.
-* `nsx_edge_uplink1vlan_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the NSX Edge Uplink 1 component of the VMware environment.
+* `nsx_edge_uplink1vlan_id` - (**Deprecated**) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the NSX Edge Uplink 1 component of the VMware environment.
This attribute is not guaranteed to reflect the NSX Edge Uplink 1 VLAN currently used by the ESXi hosts in the SDDC. The purpose of this attribute is to show the NSX Edge Uplink 1 VLAN that the Oracle Cloud VMware Solution will use for any new ESXi hosts that you *add to this SDDC in the future* with [CreateEsxiHost](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/EsxiHost/CreateEsxiHost).
Therefore, if you change the existing ESXi hosts in the SDDC to use a different VLAN for the NSX Edge Uplink 1 component of the VMware environment, you should use [UpdateSddc](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/Sddc/UpdateSddc) to update the SDDC's `nsxEdgeUplink1VlanId` with that new VLAN's OCID.
-* `nsx_edge_uplink2vlan_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the NSX Edge Uplink 2 component of the VMware environment.
+* `nsx_edge_uplink2vlan_id` - (**Deprecated**) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the NSX Edge Uplink 2 component of the VMware environment.
This attribute is not guaranteed to reflect the NSX Edge Uplink 2 VLAN currently used by the ESXi hosts in the SDDC. The purpose of this attribute is to show the NSX Edge Uplink 2 VLAN that the Oracle Cloud VMware Solution will use for any new ESXi hosts that you *add to this SDDC in the future* with [CreateEsxiHost](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/EsxiHost/CreateEsxiHost).
Therefore, if you change the existing ESXi hosts in the SDDC to use a different VLAN for the NSX Edge Uplink 2 component of the VMware environment, you should use [UpdateSddc](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/Sddc/UpdateSddc) to update the SDDC's `nsxEdgeUplink2VlanId` with that new VLAN's OCID.
* `nsx_edge_uplink_ip_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the `PrivateIp` object that is the virtual IP (VIP) for the NSX Edge Uplink. Use this OCID as the route target for route table rules when setting up connectivity between the SDDC and other networks. For information about `PrivateIp` objects, see the Core Services API.
-* `nsx_edge_vtep_vlan_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the NSX Edge VTEP component of the VMware environment.
+* `nsx_edge_vtep_vlan_id` - (**Deprecated**) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the NSX Edge VTEP component of the VMware environment.
This attribute is not guaranteed to reflect the NSX Edge VTEP VLAN currently used by the ESXi hosts in the SDDC. The purpose of this attribute is to show the NSX Edge VTEP VLAN that the Oracle Cloud VMware Solution will use for any new ESXi hosts that you *add to this SDDC in the future* with [CreateEsxiHost](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/EsxiHost/CreateEsxiHost).
Therefore, if you change the existing ESXi hosts in the SDDC to use a different VLAN for the NSX Edge VTEP component of the VMware environment, you should use [UpdateSddc](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/Sddc/UpdateSddc) to update the SDDC's `nsxEdgeVTepVlanId` with that new VLAN's OCID.
* `nsx_manager_fqdn` - The FQDN for NSX Manager. Example: `nsx-my-sddc.sddc.us-phoenix-1.oraclecloud.com`
-* `nsx_manager_initial_password` - The SDDC includes an administrator username and initial password for NSX Manager. Make sure to change this initial NSX Manager password to a different value.
+* `nsx_manager_initial_password` - (**Deprecated**) The SDDC includes an administrator username and initial password for NSX Manager. Make sure to change this initial NSX Manager password to a different value.
* `nsx_manager_private_ip_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the `PrivateIp` object that is the virtual IP (VIP) for NSX Manager. For information about `PrivateIp` objects, see the Core Services API.
* `nsx_manager_username` - The SDDC includes an administrator username and initial password for NSX Manager. You can change this initial username to a different value in NSX Manager.
-* `nsx_overlay_segment_name` - The VMware NSX overlay workload segment to host your application. Connect to workload portgroup in vCenter to access this overlay segment.
-* `nsx_vtep_vlan_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the NSX VTEP component of the VMware environment.
+* `nsx_overlay_segment_name` - (**Deprecated**) The VMware NSX overlay workload segment to host your application. Connect to workload portgroup in vCenter to access this overlay segment.
+* `nsx_vtep_vlan_id` - (**Deprecated**) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the NSX VTEP component of the VMware environment.
This attribute is not guaranteed to reflect the NSX VTEP VLAN currently used by the ESXi hosts in the SDDC. The purpose of this attribute is to show the NSX VTEP VLAN that the Oracle Cloud VMware Solution will use for any new ESXi hosts that you *add to this SDDC in the future* with [CreateEsxiHost](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/EsxiHost/CreateEsxiHost).
Therefore, if you change the existing ESXi hosts in the SDDC to use a different VLAN for the NSX VTEP component of the VMware environment, you should use [UpdateSddc](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/Sddc/UpdateSddc) to update the SDDC's `nsxVTepVlanId` with that new VLAN's OCID.
-* `provisioning_subnet_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the management subnet used to provision the SDDC.
-* `provisioning_vlan_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the Provisioning component of the VMware environment.
-* `replication_vlan_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the vSphere Replication component of the VMware environment.
+* `provisioning_subnet_id` - (**Deprecated**) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the management subnet used to provision the SDDC.
+* `provisioning_vlan_id` - (**Deprecated**) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the Provisioning component of the VMware environment.
+* `replication_vlan_id` - (**Deprecated**) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the vSphere Replication component of the VMware environment.
* `ssh_authorized_keys` - One or more public SSH keys to be included in the `~/.ssh/authorized_keys` file for the default user on each ESXi host. Use a newline character to separate multiple keys. The SSH keys must be in the format required for the `authorized_keys` file.
This attribute is not guaranteed to reflect the public SSH keys currently installed on the ESXi hosts in the SDDC. The purpose of this attribute is to show the public SSH keys that Oracle Cloud VMware Solution will install on any new ESXi hosts that you *add to this SDDC in the future* with [CreateEsxiHost](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/EsxiHost/CreateEsxiHost).
@@ -108,14 +108,14 @@ The following attributes are exported:
* `time_hcx_billing_cycle_end` - The date and time current HCX Enterprise billing cycle ends, in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). Example: `2016-08-25T21:10:29.600Z`
* `time_hcx_license_status_updated` - The date and time the SDDC's HCX on-premise license status was updated, in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). Example: `2016-08-25T21:10:29.600Z`
* `time_updated` - The date and time the SDDC was updated, in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339).
-* `upgrade_licenses` - The vSphere licenses to use when upgrading the SDDC.
+* `upgrade_licenses` - (**Deprecated**) The vSphere licenses to use when upgrading the SDDC.
* `license_key` - vSphere license key value.
* `license_type` - vSphere license type.
* `vcenter_fqdn` - The FQDN for vCenter. Example: `vcenter-my-sddc.sddc.us-phoenix-1.oraclecloud.com`
-* `vcenter_initial_password` - The SDDC includes an administrator username and initial password for vCenter. Make sure to change this initial vCenter password to a different value.
+* `vcenter_initial_password` - (**Deprecated**) The SDDC includes an administrator username and initial password for vCenter. Make sure to change this initial vCenter password to a different value.
* `vcenter_private_ip_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the `PrivateIp` object that is the virtual IP (VIP) for vCenter. For information about `PrivateIp` objects, see the Core Services API.
* `vcenter_username` - The SDDC includes an administrator username and initial password for vCenter. You can change this initial username to a different value in vCenter.
-* `vmotion_vlan_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the vMotion component of the VMware environment.
+* `vmotion_vlan_id` - (**Deprecated**) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the vMotion component of the VMware environment.
This attribute is not guaranteed to reflect the vMotion VLAN currently used by the ESXi hosts in the SDDC. The purpose of this attribute is to show the vMotion VLAN that the Oracle Cloud VMware Solution will use for any new ESXi hosts that you *add to this SDDC in the future* with [CreateEsxiHost](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/EsxiHost/CreateEsxiHost).
@@ -125,19 +125,19 @@ The following attributes are exported:
This attribute is not guaranteed to reflect the version of software currently installed on the ESXi hosts in the SDDC. The purpose of this attribute is to show the version of software that the Oracle Cloud VMware Solution will install on any new ESXi hosts that you *add to this SDDC in the future* with [CreateEsxiHost](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/EsxiHost/CreateEsxiHost).
Therefore, if you upgrade the existing ESXi hosts in the SDDC to use a newer version of bundled VMware software supported by the Oracle Cloud VMware Solution, you should use [UpdateSddc](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/Sddc/UpdateSddc) to update the SDDC's `vmwareSoftwareVersion` with that new version.
-* `vsan_vlan_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the vSAN component of the VMware environment.
+* `vsan_vlan_id` - (**Deprecated**) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the vSAN component of the VMware environment.
This attribute is not guaranteed to reflect the vSAN VLAN currently used by the ESXi hosts in the SDDC. The purpose of this attribute is to show the vSAN VLAN that the Oracle Cloud VMware Solution will use for any new ESXi hosts that you *add to this SDDC in the future* with [CreateEsxiHost](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/EsxiHost/CreateEsxiHost).
Therefore, if you change the existing ESXi hosts in the SDDC to use a different VLAN for the vSAN component of the VMware environment, you should use [UpdateSddc](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/Sddc/UpdateSddc) to update the SDDC's `vsanVlanId` with that new VLAN's OCID.
-* `vsphere_upgrade_guide` - The link to guidance for upgrading vSphere.
-* `vsphere_upgrade_objects` - The links to binary objects needed to upgrade vSphere.
+* `vsphere_upgrade_guide` - (**Deprecated**) The link to guidance for upgrading vSphere.
+* `vsphere_upgrade_objects` - (**Deprecated**) The links to binary objects needed to upgrade vSphere.
* `download_link` - Binary object download link.
* `link_description` - Binary object description.
-* `vsphere_vlan_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the vSphere component of the VMware environment.
+* `vsphere_vlan_id` - (**Deprecated**) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the vSphere component of the VMware environment.
This attribute is not guaranteed to reflect the vSphere VLAN currently used by the ESXi hosts in the SDDC. The purpose of this attribute is to show the vSphere VLAN that the Oracle Cloud VMware Solution will use for any new ESXi hosts that you *add to this SDDC in the future* with [CreateEsxiHost](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/EsxiHost/CreateEsxiHost).
Therefore, if you change the existing ESXi hosts in the SDDC to use a different VLAN for the vSphere component of the VMware environment, you should use [UpdateSddc](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/Sddc/UpdateSddc) to update the SDDC's `vsphereVlanId` with that new VLAN's OCID.
-* `workload_network_cidr` - The CIDR block for the IP addresses that VMware VMs in the SDDC use to run application workloads.
+* `workload_network_cidr` - (**Deprecated**) The CIDR block for the IP addresses that VMware VMs in the SDDC use to run application workloads.
diff --git a/website/docs/d/ocvp_sddcs.html.markdown b/website/docs/d/ocvp_sddcs.html.markdown
index 6e35e9b3f17..037ced2ef39 100644
--- a/website/docs/d/ocvp_sddcs.html.markdown
+++ b/website/docs/d/ocvp_sddcs.html.markdown
@@ -48,72 +48,72 @@ The following attributes are exported:
The following attributes are exported:
-* `capacity_reservation_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the Capacity Reservation.
+* `capacity_reservation_id` - (**Deprecated**) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the Capacity Reservation.
* `compartment_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment that contains the SDDC.
-* `compute_availability_domain` - The availability domain the ESXi hosts are running in. For Multi-AD SDDC, it is `multi-AD`. Example: `Uocm:PHX-AD-1`, `multi-AD`
-* `datastores` - Datastores used for the Sddc.
+* `compute_availability_domain` - (**Deprecated**) The availability domain the ESXi hosts are running in. For Multi-AD SDDC, it is `multi-AD`. Example: `Uocm:PHX-AD-1`, `multi-AD`
+* `datastores` - (**Deprecated**) Datastores used for the Sddc.
* `block_volume_ids` - A list of [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm)s of Block Storage Volumes.
* `capacity` - Size of the Block Storage Volume in GB.
* `datastore_type` - Type of the datastore.
* `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 descriptive name for the SDDC. It must be unique, start with a letter, and contain only letters, digits, whitespaces, dashes and underscores. Avoid entering confidential information.
-* `esxi_hosts_count` - The number of ESXi hosts in the SDDC.
-* `actual_esxi_hosts_count` - The number of actual ESXi hosts in the SDDC on the cloud. This attribute will be different when esxi Host is added to an existing SDDC.
+* `esxi_hosts_count` - (**Deprecated**) The number of ESXi hosts in the SDDC.
+* `actual_esxi_hosts_count` - (**Deprecated**) The number of actual ESXi hosts in the SDDC on the cloud. This attribute will be different when esxi Host is added to an existing SDDC.
* `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"}`
* `hcx_fqdn` - The FQDN for HCX Manager. Example: `hcx-my-sddc.sddc.us-phoenix-1.oraclecloud.com`
-* `hcx_initial_password` - The SDDC includes an administrator username and initial password for HCX Manager. Make sure to change this initial HCX Manager password to a different value.
-* `hcx_on_prem_key` - The activation keys to use on the on-premises HCX Enterprise appliances you site pair with HCX Manager in your VMware Solution. The number of keys provided depends on the HCX license type. HCX Advanced provides 3 activation keys. HCX Enterprise provides 10 activation keys.
+* `hcx_initial_password` - (**Deprecated**) The SDDC includes an administrator username and initial password for HCX Manager. Make sure to change this initial HCX Manager password to a different value.
+* `hcx_on_prem_key` - (**Deprecated**) The activation keys to use on the on-premises HCX Enterprise appliances you site pair with HCX Manager in your VMware Solution. The number of keys provided depends on the HCX license type. HCX Advanced provides 3 activation keys. HCX Enterprise provides 10 activation keys.
* `hcx_on_prem_licenses` - The activation licenses to use on the on-premises HCX Enterprise appliance you site pair with HCX Manager in your VMware Solution.
* `activation_key` - HCX on-premise license key value.
* `status` - status of HCX on-premise license.
* `system_name` - Name of the system that consumed the HCX on-premise license
* `hcx_private_ip_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the `PrivateIp` object that is the virtual IP (VIP) for HCX Manager. For information about `PrivateIp` objects, see the Core Services API.
-* `hcx_vlan_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the HCX component of the VMware environment.
+* `hcx_vlan_id` - (**Deprecated**) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the HCX component of the VMware environment.
This attribute is not guaranteed to reflect the HCX VLAN currently used by the ESXi hosts in the SDDC. The purpose of this attribute is to show the HCX VLAN that the Oracle Cloud VMware Solution will use for any new ESXi hosts that you *add to this SDDC in the future* with [CreateEsxiHost](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/EsxiHost/CreateEsxiHost).
Therefore, if you change the existing ESXi hosts in the SDDC to use a different VLAN for the HCX component of the VMware environment, you should use [UpdateSddc](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/Sddc/UpdateSddc) to update the SDDC's `hcxVlanId` with that new VLAN's OCID.
* `id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the SDDC.
-* `initial_host_ocpu_count` - The initial OCPU count of the SDDC's ESXi hosts.
-* `initial_host_shape_name` - The initial compute shape of the SDDC's ESXi hosts. [ListSupportedHostShapes](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/SupportedHostShapes/ListSupportedHostShapes).
-* `initial_sku` - The billing option selected during SDDC creation. [ListSupportedSkus](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/SupportedSkuSummary/ListSupportedSkus).
-* `instance_display_name_prefix` - A prefix used in the name of each ESXi host and Compute instance in the SDDC. If this isn't set, the SDDC's `displayName` is used as the prefix.
+* `initial_host_ocpu_count` - (**Deprecated**) The initial OCPU count of the SDDC's ESXi hosts.
+* `initial_host_shape_name` - (**Deprecated**) The initial compute shape of the SDDC's ESXi hosts. [ListSupportedHostShapes](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/SupportedHostShapes/ListSupportedHostShapes).
+* `initial_sku` - (**Deprecated**) The billing option selected during SDDC creation. [ListSupportedSkus](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/SupportedSkuSummary/ListSupportedSkus).
+* `instance_display_name_prefix` - (**Deprecated**) A prefix used in the name of each ESXi host and Compute instance in the SDDC. If this isn't set, the SDDC's `displayName` is used as the prefix.
For example, if the value is `MySDDC`, the ESXi hosts are named `MySDDC-1`, `MySDDC-2`, and so on.
-* `is_hcx_enabled` - Indicates whether HCX is enabled for this SDDC.
-* `is_hcx_enterprise_enabled` - Indicates whether HCX Enterprise is enabled for this SDDC.
+* `is_hcx_enabled` - (**Deprecated**) Indicates whether HCX is enabled for this SDDC.
+* `is_hcx_enterprise_enabled` - (**Deprecated**) Indicates whether HCX Enterprise is enabled for this SDDC.
* `is_hcx_pending_downgrade` - Indicates whether SDDC is pending downgrade from HCX Enterprise to HCX Advanced.
-* `is_shielded_instance_enabled` - Indicates whether shielded instance is enabled at the SDDC level.
+* `is_shielded_instance_enabled` - (**Deprecated**) Indicates whether shielded instance is enabled at the SDDC level.
* `is_single_host_sddc` - Indicates whether this SDDC is designated for only single ESXi host.
-* `nsx_edge_uplink1vlan_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the NSX Edge Uplink 1 component of the VMware environment.
+* `nsx_edge_uplink1vlan_id` - (**Deprecated**) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the NSX Edge Uplink 1 component of the VMware environment.
This attribute is not guaranteed to reflect the NSX Edge Uplink 1 VLAN currently used by the ESXi hosts in the SDDC. The purpose of this attribute is to show the NSX Edge Uplink 1 VLAN that the Oracle Cloud VMware Solution will use for any new ESXi hosts that you *add to this SDDC in the future* with [CreateEsxiHost](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/EsxiHost/CreateEsxiHost).
Therefore, if you change the existing ESXi hosts in the SDDC to use a different VLAN for the NSX Edge Uplink 1 component of the VMware environment, you should use [UpdateSddc](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/Sddc/UpdateSddc) to update the SDDC's `nsxEdgeUplink1VlanId` with that new VLAN's OCID.
-* `nsx_edge_uplink2vlan_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the NSX Edge Uplink 2 component of the VMware environment.
+* `nsx_edge_uplink2vlan_id` - (**Deprecated**) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the NSX Edge Uplink 2 component of the VMware environment.
This attribute is not guaranteed to reflect the NSX Edge Uplink 2 VLAN currently used by the ESXi hosts in the SDDC. The purpose of this attribute is to show the NSX Edge Uplink 2 VLAN that the Oracle Cloud VMware Solution will use for any new ESXi hosts that you *add to this SDDC in the future* with [CreateEsxiHost](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/EsxiHost/CreateEsxiHost).
Therefore, if you change the existing ESXi hosts in the SDDC to use a different VLAN for the NSX Edge Uplink 2 component of the VMware environment, you should use [UpdateSddc](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/Sddc/UpdateSddc) to update the SDDC's `nsxEdgeUplink2VlanId` with that new VLAN's OCID.
* `nsx_edge_uplink_ip_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the `PrivateIp` object that is the virtual IP (VIP) for the NSX Edge Uplink. Use this OCID as the route target for route table rules when setting up connectivity between the SDDC and other networks. For information about `PrivateIp` objects, see the Core Services API.
-* `nsx_edge_vtep_vlan_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the NSX Edge VTEP component of the VMware environment.
+* `nsx_edge_vtep_vlan_id` - (**Deprecated**) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the NSX Edge VTEP component of the VMware environment.
This attribute is not guaranteed to reflect the NSX Edge VTEP VLAN currently used by the ESXi hosts in the SDDC. The purpose of this attribute is to show the NSX Edge VTEP VLAN that the Oracle Cloud VMware Solution will use for any new ESXi hosts that you *add to this SDDC in the future* with [CreateEsxiHost](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/EsxiHost/CreateEsxiHost).
Therefore, if you change the existing ESXi hosts in the SDDC to use a different VLAN for the NSX Edge VTEP component of the VMware environment, you should use [UpdateSddc](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/Sddc/UpdateSddc) to update the SDDC's `nsxEdgeVTepVlanId` with that new VLAN's OCID.
* `nsx_manager_fqdn` - The FQDN for NSX Manager. Example: `nsx-my-sddc.sddc.us-phoenix-1.oraclecloud.com`
-* `nsx_manager_initial_password` - The SDDC includes an administrator username and initial password for NSX Manager. Make sure to change this initial NSX Manager password to a different value.
+* `nsx_manager_initial_password` - (**Deprecated**) The SDDC includes an administrator username and initial password for NSX Manager. Make sure to change this initial NSX Manager password to a different value.
* `nsx_manager_private_ip_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the `PrivateIp` object that is the virtual IP (VIP) for NSX Manager. For information about `PrivateIp` objects, see the Core Services API.
* `nsx_manager_username` - The SDDC includes an administrator username and initial password for NSX Manager. You can change this initial username to a different value in NSX Manager.
-* `nsx_overlay_segment_name` - The VMware NSX overlay workload segment to host your application. Connect to workload portgroup in vCenter to access this overlay segment.
-* `nsx_vtep_vlan_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the NSX VTEP component of the VMware environment.
+* `nsx_overlay_segment_name` - (**Deprecated**) The VMware NSX overlay workload segment to host your application. Connect to workload portgroup in vCenter to access this overlay segment.
+* `nsx_vtep_vlan_id` - (**Deprecated**) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the NSX VTEP component of the VMware environment.
This attribute is not guaranteed to reflect the NSX VTEP VLAN currently used by the ESXi hosts in the SDDC. The purpose of this attribute is to show the NSX VTEP VLAN that the Oracle Cloud VMware Solution will use for any new ESXi hosts that you *add to this SDDC in the future* with [CreateEsxiHost](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/EsxiHost/CreateEsxiHost).
Therefore, if you change the existing ESXi hosts in the SDDC to use a different VLAN for the NSX VTEP component of the VMware environment, you should use [UpdateSddc](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/Sddc/UpdateSddc) to update the SDDC's `nsxVTepVlanId` with that new VLAN's OCID.
-* `provisioning_subnet_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the management subnet used to provision the SDDC.
-* `provisioning_vlan_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the Provisioning component of the VMware environment.
-* `replication_vlan_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the vSphere Replication component of the VMware environment.
+* `provisioning_subnet_id` - (**Deprecated**) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the management subnet used to provision the SDDC.
+* `provisioning_vlan_id` - (**Deprecated**) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the Provisioning component of the VMware environment.
+* `replication_vlan_id` - (**Deprecated**) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the vSphere Replication component of the VMware environment.
* `ssh_authorized_keys` - One or more public SSH keys to be included in the `~/.ssh/authorized_keys` file for the default user on each ESXi host. Use a newline character to separate multiple keys. The SSH keys must be in the format required for the `authorized_keys` file.
This attribute is not guaranteed to reflect the public SSH keys currently installed on the ESXi hosts in the SDDC. The purpose of this attribute is to show the public SSH keys that Oracle Cloud VMware Solution will install on any new ESXi hosts that you *add to this SDDC in the future* with [CreateEsxiHost](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/EsxiHost/CreateEsxiHost).
@@ -124,14 +124,14 @@ The following attributes are exported:
* `time_hcx_billing_cycle_end` - The date and time current HCX Enterprise billing cycle ends, in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). Example: `2016-08-25T21:10:29.600Z`
* `time_hcx_license_status_updated` - The date and time the SDDC's HCX on-premise license status was updated, in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). Example: `2016-08-25T21:10:29.600Z`
* `time_updated` - The date and time the SDDC was updated, in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339).
-* `upgrade_licenses` - The vSphere licenses to use when upgrading the SDDC.
+* `upgrade_licenses` - (**Deprecated**) The vSphere licenses to use when upgrading the SDDC.
* `license_key` - vSphere license key value.
* `license_type` - vSphere license type.
* `vcenter_fqdn` - The FQDN for vCenter. Example: `vcenter-my-sddc.sddc.us-phoenix-1.oraclecloud.com`
-* `vcenter_initial_password` - The SDDC includes an administrator username and initial password for vCenter. Make sure to change this initial vCenter password to a different value.
+* `vcenter_initial_password` - (**Deprecated**) The SDDC includes an administrator username and initial password for vCenter. Make sure to change this initial vCenter password to a different value.
* `vcenter_private_ip_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the `PrivateIp` object that is the virtual IP (VIP) for vCenter. For information about `PrivateIp` objects, see the Core Services API.
* `vcenter_username` - The SDDC includes an administrator username and initial password for vCenter. You can change this initial username to a different value in vCenter.
-* `vmotion_vlan_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the vMotion component of the VMware environment.
+* `vmotion_vlan_id` - (**Deprecated**) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the vMotion component of the VMware environment.
This attribute is not guaranteed to reflect the vMotion VLAN currently used by the ESXi hosts in the SDDC. The purpose of this attribute is to show the vMotion VLAN that the Oracle Cloud VMware Solution will use for any new ESXi hosts that you *add to this SDDC in the future* with [CreateEsxiHost](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/EsxiHost/CreateEsxiHost).
@@ -141,19 +141,19 @@ The following attributes are exported:
This attribute is not guaranteed to reflect the version of software currently installed on the ESXi hosts in the SDDC. The purpose of this attribute is to show the version of software that the Oracle Cloud VMware Solution will install on any new ESXi hosts that you *add to this SDDC in the future* with [CreateEsxiHost](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/EsxiHost/CreateEsxiHost).
Therefore, if you upgrade the existing ESXi hosts in the SDDC to use a newer version of bundled VMware software supported by the Oracle Cloud VMware Solution, you should use [UpdateSddc](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/Sddc/UpdateSddc) to update the SDDC's `vmwareSoftwareVersion` with that new version.
-* `vsan_vlan_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the vSAN component of the VMware environment.
+* `vsan_vlan_id` - (**Deprecated**) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the vSAN component of the VMware environment.
This attribute is not guaranteed to reflect the vSAN VLAN currently used by the ESXi hosts in the SDDC. The purpose of this attribute is to show the vSAN VLAN that the Oracle Cloud VMware Solution will use for any new ESXi hosts that you *add to this SDDC in the future* with [CreateEsxiHost](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/EsxiHost/CreateEsxiHost).
Therefore, if you change the existing ESXi hosts in the SDDC to use a different VLAN for the vSAN component of the VMware environment, you should use [UpdateSddc](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/Sddc/UpdateSddc) to update the SDDC's `vsanVlanId` with that new VLAN's OCID.
-* `vsphere_upgrade_guide` - The link to guidance for upgrading vSphere.
-* `vsphere_upgrade_objects` - The links to binary objects needed to upgrade vSphere.
+* `vsphere_upgrade_guide` - (**Deprecated**) The link to guidance for upgrading vSphere.
+* `vsphere_upgrade_objects` - (**Deprecated**) The links to binary objects needed to upgrade vSphere.
* `download_link` - Binary object download link.
* `link_description` - Binary object description.
-* `vsphere_vlan_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the vSphere component of the VMware environment.
+* `vsphere_vlan_id` - (**Deprecated**) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the vSphere component of the VMware environment.
This attribute is not guaranteed to reflect the vSphere VLAN currently used by the ESXi hosts in the SDDC. The purpose of this attribute is to show the vSphere VLAN that the Oracle Cloud VMware Solution will use for any new ESXi hosts that you *add to this SDDC in the future* with [CreateEsxiHost](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/EsxiHost/CreateEsxiHost).
Therefore, if you change the existing ESXi hosts in the SDDC to use a different VLAN for the vSphere component of the VMware environment, you should use [UpdateSddc](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/Sddc/UpdateSddc) to update the SDDC's `vsphereVlanId` with that new VLAN's OCID.
-* `workload_network_cidr` - The CIDR block for the IP addresses that VMware VMs in the SDDC use to run application workloads.
+* `workload_network_cidr` - (**Deprecated**) The CIDR block for the IP addresses that VMware VMs in the SDDC use to run application workloads.
diff --git a/website/docs/d/ocvp_supported_host_shapes.html.markdown b/website/docs/d/ocvp_supported_host_shapes.html.markdown
index cdcee1f8620..0c5e990bc1b 100644
--- a/website/docs/d/ocvp_supported_host_shapes.html.markdown
+++ b/website/docs/d/ocvp_supported_host_shapes.html.markdown
@@ -32,7 +32,7 @@ The following arguments are supported:
* `compartment_id` - (Required) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment.
* `name` - (Optional) A filter to return only resources that match the given name exactly.
-* `sddc_type` - (Optional) A filter to return only resources that match the given SDDC type exactly.
+* `sddc_type` - (**Deprecated**) (Optional) A filter to return only resources that match the given SDDC type exactly.
## Attributes Reference
diff --git a/website/docs/d/ocvp_supported_skus.html.markdown b/website/docs/d/ocvp_supported_skus.html.markdown
index 5d4ca19ac0a..703b506ce26 100644
--- a/website/docs/d/ocvp_supported_skus.html.markdown
+++ b/website/docs/d/ocvp_supported_skus.html.markdown
@@ -8,7 +8,8 @@ description: |-
---
# Data Source: oci_ocvp_supported_skus
-This data source provides the list of Supported Skus in Oracle Cloud Infrastructure Oracle Cloud VMware Solution service.
+This data source provides the list of Supported Skus in Oracle Cloud Infrastructure Oracle Cloud VMware Solution service.
+!> **WARNING:** This data source is deprecated and will be removed, please use "oci_ocvp_supported_commitments" instead.
Lists supported SKUs.
diff --git a/website/docs/guides/resource_discovery.html.markdown b/website/docs/guides/resource_discovery.html.markdown
index 6bb4bc64180..748a6b61d4f 100644
--- a/website/docs/guides/resource_discovery.html.markdown
+++ b/website/docs/guides/resource_discovery.html.markdown
@@ -636,6 +636,8 @@ dataintegration
* oci\_dataintegration\_workspace\_project
* oci\_dataintegration\_workspace\_folder
* oci\_dataintegration\_workspace\_application
+* oci\_dataintegration\_workspace\_import\_request
+* oci\_dataintegration\_workspace\_export\_request
datascience
diff --git a/website/docs/r/core_capture_filter.html.markdown b/website/docs/r/core_capture_filter.html.markdown
index 5192cfce5ff..6747075f157 100644
--- a/website/docs/r/core_capture_filter.html.markdown
+++ b/website/docs/r/core_capture_filter.html.markdown
@@ -32,6 +32,53 @@ resource "oci_core_capture_filter" "test_capture_filter" {
#Optional
defined_tags = {"Operations.CostCenter"= "42"}
display_name = var.capture_filter_display_name
+ flow_log_capture_filter_rules {
+
+ #Optional
+ destination_cidr = var.capture_filter_flow_log_capture_filter_rules_destination_cidr
+ flow_log_type = var.capture_filter_flow_log_capture_filter_rules_flow_log_type
+ icmp_options {
+ #Required
+ type = var.capture_filter_flow_log_capture_filter_rules_icmp_options_type
+
+ #Optional
+ code = var.capture_filter_flow_log_capture_filter_rules_icmp_options_code
+ }
+ is_enabled = var.capture_filter_flow_log_capture_filter_rules_is_enabled
+ priority = var.capture_filter_flow_log_capture_filter_rules_priority
+ protocol = var.capture_filter_flow_log_capture_filter_rules_protocol
+ rule_action = var.capture_filter_flow_log_capture_filter_rules_rule_action
+ sampling_rate = var.capture_filter_flow_log_capture_filter_rules_sampling_rate
+ source_cidr = var.capture_filter_flow_log_capture_filter_rules_source_cidr
+ tcp_options {
+
+ #Optional
+ destination_port_range {
+ #Required
+ max = var.capture_filter_flow_log_capture_filter_rules_tcp_options_destination_port_range_max
+ min = var.capture_filter_flow_log_capture_filter_rules_tcp_options_destination_port_range_min
+ }
+ source_port_range {
+ #Required
+ max = var.capture_filter_flow_log_capture_filter_rules_tcp_options_source_port_range_max
+ min = var.capture_filter_flow_log_capture_filter_rules_tcp_options_source_port_range_min
+ }
+ }
+ udp_options {
+
+ #Optional
+ destination_port_range {
+ #Required
+ max = var.capture_filter_flow_log_capture_filter_rules_udp_options_destination_port_range_max
+ min = var.capture_filter_flow_log_capture_filter_rules_udp_options_destination_port_range_min
+ }
+ source_port_range {
+ #Required
+ max = var.capture_filter_flow_log_capture_filter_rules_udp_options_source_port_range_max
+ min = var.capture_filter_flow_log_capture_filter_rules_udp_options_source_port_range_min
+ }
+ }
+ }
freeform_tags = {"Department"= "Finance"}
vtap_capture_filter_rules {
#Required
@@ -89,6 +136,36 @@ The following arguments are supported:
* `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.
* `filter_type` - (Required) Indicates which service will use this capture filter
+* `flow_log_capture_filter_rules` - (Optional) (Updatable) The set of rules governing what traffic the Flow Log collects when creating a flow log capture filter.
+ * `destination_cidr` - (Optional) (Updatable) Traffic to this CIDR will be captured in the flow log.
+ * `flow_log_type` - (Optional) (Updatable) Type or types of flow logs to store. `ALL` includes records for both accepted traffic and rejected traffic.
+ * `icmp_options` - (Optional) (Updatable) Optional and valid only for ICMP and ICMPv6. Use to specify a particular ICMP type and code as defined in:
+ * [ICMP Parameters](http://www.iana.org/assignments/icmp-parameters/icmp-parameters.xhtml)
+ * [ICMPv6 Parameters](https://www.iana.org/assignments/icmpv6-parameters/icmpv6-parameters.xhtml)
+
+ If you specify ICMP or ICMPv6 as the protocol but omit this object, then all ICMP types and codes are allowed. If you do provide this object, the type is required and the code is optional. To enable MTU negotiation for ingress internet traffic via IPv4, make sure to allow type 3 ("Destination Unreachable") code 4 ("Fragmentation Needed and Don't Fragment was Set"). If you need to specify multiple codes for a single type, create a separate security list rule for each.
+ * `code` - (Optional) (Updatable) The ICMP code (optional).
+ * `type` - (Required) (Updatable) The ICMP type.
+ * `is_enabled` - (Optional) (Updatable) Indicates whether a flow log capture filter rule is enabled.
+ * `priority` - (Optional) (Updatable) A lower number indicates a higher priority, range 0-9. Each rule must have a distinct priority.
+ * `protocol` - (Optional) (Updatable) The transport protocol the filter uses.
+ * `rule_action` - (Optional) (Updatable) Include or exclude a ruleAction object.
+ * `sampling_rate` - (Optional) (Updatable) Sampling interval as 1 of X, where X is an integer not greater than 100000.
+ * `source_cidr` - (Optional) (Updatable) Traffic from this CIDR will be captured in the flow log.
+ * `tcp_options` - (Optional) (Updatable) Optional and valid only for TCP. Use to specify particular destination ports for TCP rules. If you specify TCP as the protocol but omit this object, then all destination ports are allowed.
+ * `destination_port_range` - (Optional) (Updatable)
+ * `max` - (Required) (Updatable) The maximum port number, which must not be less than the minimum port number. To specify a single port number, set both the min and max to the same value.
+ * `min` - (Required) (Updatable) The minimum port number, which must not be greater than the maximum port number.
+ * `source_port_range` - (Optional) (Updatable)
+ * `max` - (Required) (Updatable) The maximum port number, which must not be less than the minimum port number. To specify a single port number, set both the min and max to the same value.
+ * `min` - (Required) (Updatable) The minimum port number, which must not be greater than the maximum port number.
+ * `udp_options` - (Optional) (Updatable) Optional and valid only for UDP. Use to specify particular destination ports for UDP rules. If you specify UDP as the protocol but omit this object, then all destination ports are allowed.
+ * `destination_port_range` - (Optional) (Updatable)
+ * `max` - (Required) (Updatable) The maximum port number, which must not be less than the minimum port number. To specify a single port number, set both the min and max to the same value.
+ * `min` - (Required) (Updatable) The minimum port number, which must not be greater than the maximum port number.
+ * `source_port_range` - (Optional) (Updatable)
+ * `max` - (Required) (Updatable) The maximum port number, which must not be less than the minimum port number. To specify a single port number, set both the min and max to the same value.
+ * `min` - (Required) (Updatable) The minimum port number, which must not be greater than the maximum port number.
* `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"}`
* `vtap_capture_filter_rules` - (Optional) (Updatable) The set of rules governing what traffic a VTAP mirrors.
* `destination_cidr` - (Optional) (Updatable) Traffic sent to this CIDR block through the VTAP source will be mirrored to the VTAP target.
@@ -133,6 +210,36 @@ The following attributes are exported:
* `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.
* `filter_type` - Indicates which service will use this capture filter
+* `flow_log_capture_filter_rules` - The set of rules governing what traffic the Flow Log collects when creating a flow log capture filter.
+ * `destination_cidr` - Traffic to this CIDR will be captured in the flow log.
+ * `flow_log_type` - Type or types of flow logs to store. `ALL` includes records for both accepted traffic and rejected traffic.
+ * `icmp_options` - Optional and valid only for ICMP and ICMPv6. Use to specify a particular ICMP type and code as defined in:
+ * [ICMP Parameters](http://www.iana.org/assignments/icmp-parameters/icmp-parameters.xhtml)
+ * [ICMPv6 Parameters](https://www.iana.org/assignments/icmpv6-parameters/icmpv6-parameters.xhtml)
+
+ If you specify ICMP or ICMPv6 as the protocol but omit this object, then all ICMP types and codes are allowed. If you do provide this object, the type is required and the code is optional. To enable MTU negotiation for ingress internet traffic via IPv4, make sure to allow type 3 ("Destination Unreachable") code 4 ("Fragmentation Needed and Don't Fragment was Set"). If you need to specify multiple codes for a single type, create a separate security list rule for each.
+ * `code` - The ICMP code (optional).
+ * `type` - The ICMP type.
+ * `is_enabled` - Indicates whether a flow log capture filter rule is enabled.
+ * `priority` - A lower number indicates a higher priority, range 0-9. Each rule must have a distinct priority.
+ * `protocol` - The transport protocol the filter uses.
+ * `rule_action` - Include or exclude a ruleAction object.
+ * `sampling_rate` - Sampling interval as 1 of X, where X is an integer not greater than 100000.
+ * `source_cidr` - Traffic from this CIDR will be captured in the flow log.
+ * `tcp_options` - Optional and valid only for TCP. Use to specify particular destination ports for TCP rules. If you specify TCP as the protocol but omit this object, then all destination ports are allowed.
+ * `destination_port_range` -
+ * `max` - The maximum port number, which must not be less than the minimum port number. To specify a single port number, set both the min and max to the same value.
+ * `min` - The minimum port number, which must not be greater than the maximum port number.
+ * `source_port_range` -
+ * `max` - The maximum port number, which must not be less than the minimum port number. To specify a single port number, set both the min and max to the same value.
+ * `min` - The minimum port number, which must not be greater than the maximum port number.
+ * `udp_options` - Optional and valid only for UDP. Use to specify particular destination ports for UDP rules. If you specify UDP as the protocol but omit this object, then all destination ports are allowed.
+ * `destination_port_range` -
+ * `max` - The maximum port number, which must not be less than the minimum port number. To specify a single port number, set both the min and max to the same value.
+ * `min` - The minimum port number, which must not be greater than the maximum port number.
+ * `source_port_range` -
+ * `max` - The maximum port number, which must not be less than the minimum port number. To specify a single port number, set both the min and max to the same value.
+ * `min` - The minimum port number, which must not be greater than the maximum port number.
* `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 capture filter's Oracle ID ([OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm)).
* `state` - The capture filter's current administrative state.
diff --git a/website/docs/r/core_cluster_network.html.markdown b/website/docs/r/core_cluster_network.html.markdown
index 033adfd1d9d..5924f5cf866 100644
--- a/website/docs/r/core_cluster_network.html.markdown
+++ b/website/docs/r/core_cluster_network.html.markdown
@@ -147,7 +147,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 pool.
* `instance_configuration_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the instance configuration associated with the instance pool.
- * `load_balancers` - The load balancers attached to the instance pool.
+ * `load_balancers` - The load balancers attached to the instance pool.
* `backend_set_name` - The name of the backend set on the load balancer.
* `id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the load balancer attachment.
* `instance_pool_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the instance pool of the load balancer attachment.
diff --git a/website/docs/r/database_autonomous_container_database.html.markdown b/website/docs/r/database_autonomous_container_database.html.markdown
index 60152e1c41e..a7b393bf99f 100644
--- a/website/docs/r/database_autonomous_container_database.html.markdown
+++ b/website/docs/r/database_autonomous_container_database.html.markdown
@@ -185,14 +185,14 @@ The following attributes are exported:
* `availability_domain` - The availability domain of the Autonomous Container Database
* `available_cpus` - Sum of CPUs available on the Autonomous VM Cluster + Sum of reclaimable CPUs available in the Autonomous Container Database.
For Autonomous Databases on Dedicated Exadata Infrastructure, the CPU type (OCPUs or ECPUs) is determined by the parent Autonomous Exadata VM Cluster's compute model. See [Compute Models in Autonomous Database on Dedicated Exadata Infrastructure](https://docs.oracle.com/en/cloud/paas/autonomous-database/dedicated/adbak) for more details.
* `backup_config` - Backup options for the Autonomous Container Database.
- * `backup_destination_details` - Backup destination details.
- * `dbrs_policy_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the DBRS policy used for backup.
- * `id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the backup destination.
- * `internet_proxy` - Proxy URL to connect to object store.
- * `type` - Type of the database backup destination.
- * `vpc_password` - For a RECOVERY_APPLIANCE backup destination, the password for the VPC user that is used to access the Recovery Appliance.
- * `vpc_user` - For a RECOVERY_APPLIANCE backup destination, the Virtual Private Catalog (VPC) user that is used to access the Recovery Appliance.
- * `recovery_window_in_days` - Number of days between the current and the earliest point of recoverability covered by automatic backups. This value applies to automatic backups. After a new automatic backup has been created, Oracle removes old automatic backups that are created before the window. When the value is updated, it is applied to all existing automatic backups.
+ * `backup_destination_details` - Backup destination details.
+ * `dbrs_policy_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the DBRS policy used for backup.
+ * `id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the backup destination.
+ * `internet_proxy` - Proxy URL to connect to object store.
+ * `type` - Type of the database backup destination.
+ * `vpc_password` - For a RECOVERY_APPLIANCE backup destination, the password for the VPC user that is used to access the Recovery Appliance.
+ * `vpc_user` - For a RECOVERY_APPLIANCE backup destination, the Virtual Private Catalog (VPC) user that is used to access the Recovery Appliance.
+ * `recovery_window_in_days` - Number of days between the current and the earliest point of recoverability covered by automatic backups. This value applies to automatic backups. After a new automatic backup has been created, Oracle removes old automatic backups that are created before the window. When the value is updated, it is applied to all existing automatic backups.
* `compartment_id` - The OCID of the compartment.
* `compute_model` - The compute model of the Autonomous VM Cluster.
* `db_name` - The Database name for the Autonomous Container Database. The name must be unique within the Cloud Autonomous VM Cluster, starting with an alphabetic character, followed by 1 to 7 alphanumeric characters.
@@ -204,10 +204,10 @@ The following attributes are exported:
* `id` - The OCID of the Autonomous Container Database.
* `infrastructure_type` - The infrastructure type this resource belongs to.
* `key_history_entry` - Key History Entry.
- * `id` - The id of the Autonomous Database [Vault](https://docs.cloud.oracle.com/iaas/Content/KeyManagement/Concepts/keyoverview.htm#concepts) service key management history entry.
- * `kms_key_version_id` - The OCID of the key container version that is used in database transparent data encryption (TDE) operations KMS Key can have multiple key versions. If none is specified, the current key version (latest) of the Key Id is used for the operation.
- * `time_activated` - The date and time the kms key activated.
- * `vault_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the Oracle Cloud Infrastructure [vault](https://docs.cloud.oracle.com/iaas/Content/KeyManagement/Concepts/keyoverview.htm#concepts).
+ * `id` - The id of the Autonomous Database [Vault](https://docs.cloud.oracle.com/iaas/Content/KeyManagement/Concepts/keyoverview.htm#concepts) service key management history entry.
+ * `kms_key_version_id` - The OCID of the key container version that is used in database transparent data encryption (TDE) operations KMS Key can have multiple key versions. If none is specified, the current key version (latest) of the Key Id is used for the operation.
+ * `time_activated` - The date and time the kms key activated.
+ * `vault_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the Oracle Cloud Infrastructure [vault](https://docs.cloud.oracle.com/iaas/Content/KeyManagement/Concepts/keyoverview.htm#concepts).
* `key_store_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the key store.
* `key_store_wallet_name` - The wallet name for Oracle Key Vault.
* `kms_key_id` - The OCID of the key container that is used as the master encryption key in database transparent data encryption (TDE) operations.
@@ -216,21 +216,21 @@ The following attributes are exported:
* `last_maintenance_run_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the last maintenance run.
* `lifecycle_details` - Additional information about the current lifecycle state.
* `maintenance_window` - The scheduling details for the quarterly maintenance window. Patching and system updates take place during the maintenance window.
- * `custom_action_timeout_in_mins` - Determines the amount of time the system will wait before the start of each database server patching operation. Custom action timeout is in minutes and valid value is between 15 to 120 (inclusive).
- * `days_of_week` - Days during the week when maintenance should be performed.
- * `name` - Name of the day of the week.
- * `hours_of_day` - The window of hours during the day when maintenance should be performed. The window is a 4 hour slot. Valid values are
- * 0 - represents time slot 0:00 - 3:59 UTC - 4 - represents time slot 4:00 - 7:59 UTC - 8 - represents time slot 8:00 - 11:59 UTC - 12 - represents time slot 12:00 - 15:59 UTC - 16 - represents time slot 16:00 - 19:59 UTC - 20 - represents time slot 20:00 - 23:59 UTC
- * `is_custom_action_timeout_enabled` - If true, enables the configuration of a custom action timeout (waiting period) between database server patching operations.
- * `is_monthly_patching_enabled` - If true, enables the monthly patching option.
- * `lead_time_in_weeks` - Lead time window allows user to set a lead time to prepare for a down time. The lead time is in weeks and valid value is between 1 to 4.
- * `months` - Months during the year when maintenance should be performed.
- * `name` - Name of the month of the year.
- * `patching_mode` - Cloud Exadata infrastructure node patching method, either "ROLLING" or "NONROLLING". Default value is ROLLING.
+ * `custom_action_timeout_in_mins` - Determines the amount of time the system will wait before the start of each database server patching operation. Custom action timeout is in minutes and valid value is between 15 to 120 (inclusive).
+ * `days_of_week` - Days during the week when maintenance should be performed.
+ * `name` - Name of the day of the week.
+ * `hours_of_day` - The window of hours during the day when maintenance should be performed. The window is a 4 hour slot. Valid values are
+ * 0 - represents time slot 0:00 - 3:59 UTC - 4 - represents time slot 4:00 - 7:59 UTC - 8 - represents time slot 8:00 - 11:59 UTC - 12 - represents time slot 12:00 - 15:59 UTC - 16 - represents time slot 16:00 - 19:59 UTC - 20 - represents time slot 20:00 - 23:59 UTC
+ * `is_custom_action_timeout_enabled` - If true, enables the configuration of a custom action timeout (waiting period) between database server patching operations.
+ * `is_monthly_patching_enabled` - If true, enables the monthly patching option.
+ * `lead_time_in_weeks` - Lead time window allows user to set a lead time to prepare for a down time. The lead time is in weeks and valid value is between 1 to 4.
+ * `months` - Months during the year when maintenance should be performed.
+ * `name` - Name of the month of the year.
+ * `patching_mode` - Cloud Exadata infrastructure node patching method, either "ROLLING" or "NONROLLING". Default value is ROLLING.
- *IMPORTANT*: Non-rolling infrastructure patching involves system down time. See [Oracle-Managed Infrastructure Maintenance Updates](https://docs.cloud.oracle.com/iaas/Content/Database/Concepts/examaintenance.htm#Oracle) for more information.
- * `preference` - The maintenance window scheduling preference.
- * `weeks_of_month` - Weeks during the month when maintenance should be performed. Weeks start on the 1st, 8th, 15th, and 22nd days of the month, and have a duration of 7 days. Weeks start and end based on calendar dates, not days of the week. For example, to allow maintenance during the 2nd week of the month (from the 8th day to the 14th day of the month), use the value 2. Maintenance cannot be scheduled for the fifth week of months that contain more than 28 days. Note that this parameter works in conjunction with the daysOfWeek and hoursOfDay parameters to allow you to specify specific days of the week and hours that maintenance will be performed.
+ *IMPORTANT*: Non-rolling infrastructure patching involves system down time. See [Oracle-Managed Infrastructure Maintenance Updates](https://docs.cloud.oracle.com/iaas/Content/Database/Concepts/examaintenance.htm#Oracle) for more information.
+ * `preference` - The maintenance window scheduling preference.
+ * `weeks_of_month` - Weeks during the month when maintenance should be performed. Weeks start on the 1st, 8th, 15th, and 22nd days of the month, and have a duration of 7 days. Weeks start and end based on calendar dates, not days of the week. For example, to allow maintenance during the 2nd week of the month (from the 8th day to the 14th day of the month), use the value 2. Maintenance cannot be scheduled for the fifth week of months that contain more than 28 days. Note that this parameter works in conjunction with the daysOfWeek and hoursOfDay parameters to allow you to specify specific days of the week and hours that maintenance will be performed.
* `memory_per_oracle_compute_unit_in_gbs` - The amount of memory (in GBs) enabled per OCPU or ECPU in the Autonomous VM Cluster.
* `next_maintenance_run_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the next maintenance run.
* `patch_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the last patch applied on the system.
@@ -238,6 +238,9 @@ The following attributes are exported:
* `provisionable_cpus` - An array of CPU values that can be used to successfully provision a single Autonomous Database.\ For Autonomous Database on Dedicated Exadata Infrastructure, the CPU type (OCPUs or ECPUs) is determined by the parent Autonomous Exadata VM Cluster's compute model.
* `provisioned_cpus` - The number of CPUs provisioned in an Autonomous Container Database.
* `reclaimable_cpus` - For Autonomous Databases on Dedicated Exadata Infrastructure:
+ * These are the CPUs that continue to be included in the count of CPUs available to the Autonomous Container Database even after one of its Autonomous Database is terminated or scaled down. You can release them to the available CPUs at its parent Autonomous VM Cluster level by restarting the Autonomous Container Database.
+ * The CPU type (OCPUs or ECPUs) is determined by the parent Autonomous Exadata VM Cluster's compute model.
+* `reserved_cpus` - The number of CPUs reserved in an Autonomous Container Database.
* These are the CPUs that continue to be included in the count of CPUs available to the Autonomous Container Database even after one of its Autonomous Database is terminated or scaled down. You can release them to the available CPUs at its parent Autonomous VM Cluster level by restarting the Autonomous Container Database.
* The CPU type (OCPUs or ECPUs) is determined by the parent Autonomous Exadata VM Cluster's compute model. See [Compute Models in Autonomous Database on Dedicated Exadata Infrastructure](https://docs.oracle.com/en/cloud/paas/autonomous-database/dedicated/adbak) for more details.
* `resource_pool_leader_id` - (Optional) (Updatable) The unique identifier for leader autonomous database OCID [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm).
@@ -250,7 +253,7 @@ The following attributes are exported:
* `state` - The current state of the Autonomous Container Database.
* `time_created` - The date and time the Autonomous Container Database was created.
* `time_snapshot_standby_revert` - The date and time the Autonomous Container Database will be reverted to Standby from Snapshot Standby.
-* `total_cpus` - The number of CPUs allocated to the Autonomous VM cluster.
For Autonomous Databases on Dedicated Exadata Infrastructure, the CPU type (OCPUs or ECPUs) is determined by the parent Autonomous Exadata VM Cluster's compute model. See [Compute Models in Autonomous Database on Dedicated Exadata Infrastructure](https://docs.oracle.com/en/cloud/paas/autonomous-database/dedicated/adbak) for more details.
+* `total_cpus` - The number of CPUs allocated to the Autonomous VM cluster.
For Autonomous Databases on Dedicated Exadata Infrastructure, the CPU type (OCPUs or ECPUs) is determined by the parent Autonomous Exadata VM Cluster's compute model.
* `vault_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the Oracle Cloud Infrastructure [vault](https://docs.cloud.oracle.com/iaas/Content/KeyManagement/Concepts/keyoverview.htm#concepts).
* `version_preference` - The next maintenance version preference.
@@ -269,4 +272,3 @@ AutonomousContainerDatabases can be imported using the `id`, e.g.
```
$ terraform import oci_database_autonomous_container_database.test_autonomous_container_database "id"
```
-
diff --git a/website/docs/r/database_autonomous_database.html.markdown b/website/docs/r/database_autonomous_database.html.markdown
index 7054134fb8a..1a8a7a0220c 100644
--- a/website/docs/r/database_autonomous_database.html.markdown
+++ b/website/docs/r/database_autonomous_database.html.markdown
@@ -28,7 +28,7 @@ resource "oci_database_autonomous_database" "test_autonomous_database" {
autonomous_database_backup_id = oci_database_autonomous_database_backup.test_autonomous_database_backup.id
autonomous_database_id = oci_database_autonomous_database.test_autonomous_database.id
autonomous_maintenance_schedule_type = var.autonomous_database_autonomous_maintenance_schedule_type
- backup_retention_period_in_days = var.autonomous_database_backup_retention_period_in_days
+ backup_retention_period_in_days = var.autonomous_database_backup_retention_period_in_days
character_set = var.autonomous_database_character_set
clone_type = var.autonomous_database_clone_type
compute_count = var.autonomous_database_compute_count
@@ -48,7 +48,7 @@ resource "oci_database_autonomous_database" "test_autonomous_database" {
defined_tags = var.autonomous_database_defined_tags
display_name = var.autonomous_database_display_name
freeform_tags = {"Department"= "Finance"}
- in_memory_percentage = var.autonomous_database_in_memory_percentage
+ in_memory_percentage = var.autonomous_database_in_memory_percentage
is_access_control_enabled = var.autonomous_database_is_access_control_enabled
is_auto_scaling_enabled = var.autonomous_database_is_auto_scaling_enabled
is_auto_scaling_for_storage_enabled = var.autonomous_database_is_auto_scaling_for_storage_enabled
@@ -107,7 +107,7 @@ The following arguments are supported:
* `autonomous_database_id` - (Required when source=BACKUP_FROM_TIMESTAMP) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the source Autonomous Database that you will clone to create a new Autonomous Database.
* `autonomous_maintenance_schedule_type` - (Optional) The maintenance schedule type of the Autonomous Database on shared Exadata infrastructure. The EARLY maintenance schedule of this Autonomous Database follows a schedule that applies patches prior to the REGULAR schedule.The REGULAR maintenance schedule of this Autonomous Database follows the normal cycle.
* `backup_retention_period_in_days` - (Optional) (Updatable) Retention period, in days, for backups.
-* `character_set` - (Optional) The character set for the autonomous database. The default is AL32UTF8. Allowed values for an Autonomous Database Serverless instance as as returned by [List Autonomous Database Character Sets](https://docs.oracle.com/iaas/autonomous-database-serverless/doc/autonomous-character-set-selection.html)
+* `character_set` - (Optional) The character set for the autonomous database. The default is AL32UTF8. Allowed values for an Autonomous Database on shared infrastructure as as returned by [List Autonomous Database Character Sets](/autonomousDatabaseCharacterSets)
For an Autonomous Database on dedicated infrastructure, the allowed values are:
@@ -119,7 +119,6 @@ The following arguments are supported:
* `compute_count` - (Optional) (Updatable) The compute amount available to the database. Minimum and maximum values depend on the compute model and whether the database is on Shared or Dedicated infrastructure. For an Autonomous Database on Shared infrastructure, the 'ECPU' compute model requires values in multiples of two. Required when using the `computeModel` parameter. When using `cpuCoreCount` parameter, it is an error to specify computeCount to a non-null value.
* `compute_model` - (Optional) (Updatable) The compute model of the Autonomous Database. This is required if using the `computeCount` parameter. If using `cpuCoreCount` then it is an error to specify `computeModel` to a non-null value.
* `cpu_core_count` - (Optional) (Updatable) The number of OCPU cores to be made available to the database. For Autonomous Databases on dedicated Exadata infrastructure, the maximum number of cores is determined by the infrastructure shape. See [Characteristics of Infrastructure Shapes](https://www.oracle.com/pls/topic/lookup?ctx=en/cloud/paas/autonomous-database&id=ATPFG-GUID-B0F033C1-CC5A-42F0-B2E7-3CECFEDA1FD1) for shape details.
-
**Note:** This parameter cannot be used with the `ocpuCount` parameter. This input is ignored for Always Free resources.
* The data type must be an *integer*.
* The minimum number of cores for all types of autonomous database is *1*
@@ -168,10 +167,10 @@ The following arguments are supported:
* `is_mtls_connection_required` - (Optional) (Updatable) Indicates whether the Autonomous Database requires mTLS connections.
* `is_preview_version_with_service_terms_accepted` - (Optional) If set to `TRUE`, indicates that an Autonomous Database preview version is being provisioned, and that the preview version's terms of service have been accepted. Note that preview version software is only available for databases on [shared Exadata infrastructure](https://docs.oracle.com/en/cloud/paas/autonomous-database/index.html).
* `kms_key_id` - (Optional) The OCID of the key container that is used as the master encryption key in database transparent data encryption (TDE) operations.
-* `license_model` - (Optional) (Updatable) The Oracle license model that applies to the Oracle Autonomous Database. Bring your own license (BYOL) allows you to apply your current on-premises Oracle software licenses to equivalent, highly automated Oracle services in the cloud. License Included allows you to subscribe to new Oracle Database software licenses and the Oracle Database service. Note that when provisioning an [Autonomous Database on dedicated Exadata infrastructure](https://docs.oracle.com/en/cloud/paas/autonomous-database/index.html), this attribute must be null. It is already set at the Autonomous Exadata Infrastructure level. When provisioning an [Autonomous Database Serverless] (https://docs.oracle.com/en/cloud/paas/autonomous-database/index.html) database, if a value is not specified, the system defaults the value to `BRING_YOUR_OWN_LICENSE`.
+* `license_model` - (Optional) (Updatable) The Oracle license model that applies to the Oracle Autonomous Database. Bring your own license (BYOL) allows you to apply your current on-premises Oracle software licenses to equivalent, highly automated Oracle PaaS and IaaS services in the cloud. License Included allows you to subscribe to new Oracle Database software licenses and the Database service. Note that when provisioning an Autonomous Database on [dedicated Exadata infrastructure](https://docs.oracle.com/en/cloud/paas/autonomous-database/index.html), this attribute must be null because the attribute is already set at the Autonomous Exadata Infrastructure level. When using [shared Exadata infrastructure](https://docs.oracle.com/en/cloud/paas/autonomous-database/index.html), if a value is not specified, the system will supply the value of `BRING_YOUR_OWN_LICENSE`.
This cannot be updated in parallel with any of the following: cpuCoreCount, computeCount, maxCpuCoreCount, dataStorageSizeInTBs, adminPassword, isMTLSConnectionRequired, dbWorkload, privateEndpointLabel, nsgIds, dbVersion, dbName, scheduledOperations, dbToolsDetails, or isFreeTier. It is a required field when `db_workload` is AJD and needs to be set to `LICENSE_INCLUDED` as AJD does not support default `license_model` value `BRING_YOUR_OWN_LICENSE`.
-* `max_cpu_core_count` - (Optional) (Updatable) The number of Max OCPU cores to be made available to the autonomous database with auto scaling of cpu enabled.
+* `max_cpu_core_count` - (Optional) (Updatable) The number of Max OCPU cores to be made available to the autonomous database with auto scaling of cpu enabled.
* `ncharacter_set` - (Optional) The character set for the Autonomous Database. The default is AL32UTF8. Use [List Autonomous Database Character Sets](https://docs.cloud.oracle.com/iaas/api/#/en/database/latest/autonomousDatabaseCharacterSets/ListAutonomousDatabaseCharacterSets) to list the allowed values for an Autonomous Database on shared Exadata infrastructure. For an Autonomous Database on dedicated Exadata infrastructure, the allowed values are: AL16UTF16 or UTF8.
* `nsg_ids` - (Optional) (Updatable) 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.
@@ -181,16 +180,16 @@ The following arguments are supported:
* `ocpu_count` - (Optional) (Updatable) The number of OCPU cores to be made available to the database.
The following points apply:
- * For Autonomous Databases on Dedicated Exadata infrastructure, to provision less than 1 core, enter a fractional value in an increment of 0.1. For example, you can provision 0.3 or 0.4 cores, but not 0.35 cores. (Note that fractional OCPU values are not supported for Autonomous Databasese on shared Exadata infrastructure.)
- * To provision 1 or more cores, you must enter an integer between 1 and the maximum number of cores available for the infrastructure shape. For example, you can provision 2 cores or 3 cores, but not 2.5 cores. This applies to Autonomous Databases on both shared and dedicated Exadata infrastructure.
+ * For Autonomous Databases on dedicated Exadata infrastructure, to provision less than 1 core, enter a fractional value in an increment of 0.1. For example, you can provision 0.3 or 0.4 cores, but not 0.35 cores. (Note that fractional OCPU values are not supported for Autonomous Databasese on shared Exadata infrastructure.)
+ * To provision 1 or more cores, you must enter an integer between 1 and the maximum number of cores available for the infrastructure shape. For example, you can provision 2 cores or 3 cores, but not 2.5 cores. This applies to Autonomous Databases on both shared and dedicated Exadata infrastructure.
- For Autonomous Databases on Dedicated Exadata infrastructure, the maximum number of cores is determined by the infrastructure shape. See [Characteristics of Infrastructure Shapes](https://www.oracle.com/pls/topic/lookup?ctx=en/cloud/paas/autonomous-database&id=ATPFG-GUID-B0F033C1-CC5A-42F0-B2E7-3CECFEDA1FD1) for shape details.
+ For Autonomous Databases on dedicated Exadata infrastructure, the maximum number of cores is determined by the infrastructure shape. See [Characteristics of Infrastructure Shapes](https://www.oracle.com/pls/topic/lookup?ctx=en/cloud/paas/autonomous-database&id=ATPFG-GUID-B0F033C1-CC5A-42F0-B2E7-3CECFEDA1FD1) for shape details.
**Note:** This parameter cannot be used with the `cpuCoreCount` parameter.
* `operations_insights_status` - (Optional) (Updatable) Status of Operations Insights for this Autonomous Database. Values supported are `ENABLED` and `NOT_ENABLED`
* `private_endpoint_label` - (Optional) (Updatable) The private endpoint label for the resource.
* `refreshable_mode` - (Applicable when source=CLONE_TO_REFRESHABLE) (Updatable) The refresh mode of the clone. AUTOMATIC indicates that the clone is automatically being refreshed with data from the source Autonomous Database.
-* `remote_disaster_recovery_type` - (Required when source=CROSS_REGION_DISASTER_RECOVERY) Indicates the cross-region disaster recovery (DR) type of the standby Autonomous Database Serverless instance. Autonomous Data Guard (ADG) DR type provides business critical DR with a faster recovery time objective (RTO) during failover or switchover. Backup-based DR type provides lower cost DR with a slower RTO during failover or switchover.
+* `remote_disaster_recovery_type` - (Required when source=CROSS_REGION_DISASTER_RECOVERY) Indicates the cross-region disaster recovery (DR) type of the standby Shared Autonomous Database. Autonomous Data Guard (ADG) DR type provides business critical DR with a faster recovery time objective (RTO) during failover or switchover. Backup-based DR type provides lower cost DR with a slower RTO during failover or switchover.
* `scheduled_operations` - (Optional) (Updatable) The list of scheduled operations.
This cannot be updated in parallel with any of the following: licenseModel, dbEdition, cpuCoreCount, computeCount, computeModel, whitelistedIps, isMTLSConnectionRequired, openMode, permissionLevel, dbWorkload, privateEndpointLabel, nsgIds, dbVersion, isRefreshable, dbName, dbToolsDetails, isLocalDataGuardEnabled, or isFreeTier.
@@ -199,16 +198,14 @@ The following arguments are supported:
* `scheduled_start_time` - (Optional) (Updatable) auto start time. value must be of ISO-8601 format "HH:mm"
* `scheduled_stop_time` - (Optional) (Updatable) auto stop time. value must be of ISO-8601 format "HH:mm"
* `secret_id` - (Optional) (Updatable) The Oracle Cloud Infrastructure vault secret [/Content/General/Concepts/identifiers.htm]OCID.
-
- This cannot be used in conjunction with adminPassword.
* `secret_version_number` - (Optional) (Updatable) The version of the vault secret. If no version is specified, the latest version will be used.
* `source` - (Optional) The source of the database: Use `NONE` for creating a new Autonomous Database. Use `DATABASE` for creating a new Autonomous Database by cloning an existing Autonomous Database. Use `CROSS_REGION_DATAGUARD` to create a standby Data Guard database in another region.
- For [Autonomous Database Serverless instances](https://docs.oracle.com/en/cloud/paas/autonomous-database/shared/index.html), the following cloning options are available: Use `BACKUP_FROM_ID` for creating a new Autonomous Database from a specified backup. Use `BACKUP_FROM_TIMESTAMP` for creating a point-in-time Autonomous Database clone using backups. For more information, see [Cloning and Moving an Autonomous Database](https://docs.oracle.com/en/cloud/paas/autonomous-database/adbsa/clone-autonomous-database.html#GUID-D771796F-5081-4CFB-A7FF-0F893EABD7BC).
+ For Autonomous Databases on [shared Exadata infrastructure](https://docs.oracle.com/en/cloud/paas/autonomous-database/index.html), the following cloning options are available: Use `BACKUP_FROM_ID` for creating a new Autonomous Database from a specified backup. Use `BACKUP_FROM_TIMESTAMP` for creating a point-in-time Autonomous Database clone using backups. For more information, see [Cloning and Moving an Autonomous Database](https://docs.oracle.com/en/cloud/paas/autonomous-database/adbsa/clone-autonomous-database.html#GUID-D771796F-5081-4CFB-A7FF-0F893EABD7BC).
* `source_id` - (Required when source=CLONE_TO_REFRESHABLE | CROSS_REGION_DATAGUARD | CROSS_REGION_DISASTER_RECOVERY | DATABASE) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the source Autonomous Database that will be used to create a new standby database for the Data Guard association.
-* `standby_whitelisted_ips` - (Optional) (Updatable) The client IP access control list (ACL). This feature is available for [Autonomous Database Serverless] (https://docs.oracle.com/en/cloud/paas/autonomous-database/index.html) and on Exadata Cloud@Customer. Only clients connecting from an IP address included in the ACL may access the Autonomous Database instance.
+* `standby_whitelisted_ips` - (Optional) (Updatable) The client IP access control list (ACL). This feature is available for autonomous databases on [shared Exadata infrastructure](https://docs.oracle.com/en/cloud/paas/autonomous-database/index.html) and on Exadata Cloud@Customer. Only clients connecting from an IP address included in the ACL may access the Autonomous Database instance.
- For Autonomous Database Serverless, this is an array of CIDR (classless inter-domain routing) notations for a subnet or VCN OCID (virtual cloud network Oracle Cloud ID). Use a semicolon (;) as a deliminator between the VCN-specific subnets or IPs. Example: `["1.1.1.1","1.1.1.0/24","ocid1.vcn.oc1.sea.","ocid1.vcn.oc1.sea.;1.1.1.1","ocid1.vcn.oc1.sea.;1.1.0.0/16"]` For Exadata Cloud@Customer, this is an array of IP addresses or CIDR notations. Example: `["1.1.1.1","1.1.1.0/24","1.1.2.25"]`
+ For shared Exadata infrastructure, this is an array of CIDR (Classless Inter-Domain Routing) notations for a subnet or VCN OCID. Use a semicolon (;) as a deliminator between the VCN-specific subnets or IPs. Example: `["1.1.1.1","1.1.1.0/24","ocid1.vcn.oc1.sea.","ocid1.vcn.oc1.sea.;1.1.1.1","ocid1.vcn.oc1.sea.;1.1.0.0/16"]` For Exadata Cloud@Customer, this is an array of IP addresses or CIDR (Classless Inter-Domain Routing) notations. Example: `["1.1.1.1","1.1.1.0/24","1.1.2.25"]`
For an update operation, if you want to delete all the IPs in the ACL, use an array with a single empty string entry.
@@ -224,9 +221,9 @@ The following arguments are supported:
* `timestamp` - (Applicable when source=BACKUP_FROM_TIMESTAMP) The timestamp specified for the point-in-time clone of the source Autonomous Database. The timestamp must be in the past.
* `use_latest_available_backup_time_stamp` - (Applicable when source=BACKUP_FROM_TIMESTAMP) Clone from latest available backup timestamp.
* `vault_id` - (Optional) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the Oracle Cloud Infrastructure [vault](https://docs.cloud.oracle.com/iaas/Content/KeyManagement/Concepts/keyoverview.htm#concepts).
-* `whitelisted_ips` - (Optional) (Updatable) The client IP access control list (ACL). This feature is available for [Autonomous Database Serverless] (https://docs.oracle.com/en/cloud/paas/autonomous-database/index.html) and on Exadata Cloud@Customer. Only clients connecting from an IP address included in the ACL may access the Autonomous Database instance.
+* `whitelisted_ips` - (Optional) (Updatable) The client IP access control list (ACL). This feature is available for autonomous databases on [shared Exadata infrastructure](https://docs.oracle.com/en/cloud/paas/autonomous-database/index.html) and on Exadata Cloud@Customer. Only clients connecting from an IP address included in the ACL may access the Autonomous Database instance.
- For Autonomous Database Serverless, this is an array of CIDR (classless inter-domain routing) notations for a subnet or VCN OCID (virtual cloud network Oracle Cloud ID). Use a semicolon (;) as a deliminator between the VCN-specific subnets or IPs. Example: `["1.1.1.1","1.1.1.0/24","ocid1.vcn.oc1.sea.","ocid1.vcn.oc1.sea.;1.1.1.1","ocid1.vcn.oc1.sea.;1.1.0.0/16"]` For Exadata Cloud@Customer, this is an array of IP addresses or CIDR notations. Example: `["1.1.1.1","1.1.1.0/24","1.1.2.25"]`
+ For shared Exadata infrastructure, this is an array of CIDR (Classless Inter-Domain Routing) notations for a subnet or VCN OCID. Use a semicolon (;) as a deliminator between the VCN-specific subnets or IPs. Example: `["1.1.1.1","1.1.1.0/24","ocid1.vcn.oc1.sea.","ocid1.vcn.oc1.sea.;1.1.1.1","ocid1.vcn.oc1.sea.;1.1.0.0/16"]` For Exadata Cloud@Customer, this is an array of IP addresses or CIDR (Classless Inter-Domain Routing) notations. Example: `["1.1.1.1","1.1.1.0/24","1.1.2.25"]`
For an update operation, if you want to delete all the IPs in the ACL, use an array with a single empty string entry.
@@ -255,7 +252,7 @@ The following attributes are exported:
* `ords_version` - The Oracle REST Data Services (ORDS) version.
* `are_primary_whitelisted_ips_used` - This field will be null if the Autonomous Database is not Data Guard enabled or Access Control is disabled. It's value would be `TRUE` if Autonomous Database is Data Guard enabled and Access Control is enabled and if the Autonomous Database uses primary IP access control list (ACL) for standby. It's value would be `FALSE` if Autonomous Database is Data Guard enabled and Access Control is enabled and if the Autonomous Database uses different IP access control list (ACL) for standby compared to primary.
* `autonomous_container_database_id` - The Autonomous Container Database [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm).
-* `autonomous_maintenance_schedule_type` - The maintenance schedule type of the Autonomous Database Serverless. An EARLY maintenance schedule follows a schedule applying patches prior to the REGULAR schedule. A REGULAR maintenance schedule follows the normal cycle
+* `autonomous_maintenance_schedule_type` - The maintenance schedule type of the Autonomous Database on shared Exadata infrastructure. The EARLY maintenance schedule of this Autonomous Database follows a schedule that applies patches prior to the REGULAR schedule.The REGULAR maintenance schedule of this Autonomous Database follows the normal cycle.
* `available_upgrade_versions` - List of Oracle Database versions available for a database upgrade. If there are no version upgrades available, this list is empty.
* `backup_config` - Autonomous Database configuration details for storing [manual backups](https://docs.oracle.com/en/cloud/paas/autonomous-database/adbsa/backup-restore.html#GUID-9035DFB8-4702-4CEB-8281-C2A303820809) in the [Object Storage](https://docs.cloud.oracle.com/iaas/Content/Object/Concepts/objectstorageoverview.htm) service.
* `manual_backup_bucket_name` - Name of [Object Storage](https://docs.cloud.oracle.com/iaas/Content/Object/Concepts/objectstorageoverview.htm) bucket to use for storing manual backups.
@@ -265,7 +262,7 @@ The following attributes are exported:
AL32UTF8, AR8ADOS710, AR8ADOS720, AR8APTEC715, AR8ARABICMACS, AR8ASMO8X, AR8ISO8859P6, AR8MSWIN1256, AR8MUSSAD768, AR8NAFITHA711, AR8NAFITHA721, AR8SAKHR706, AR8SAKHR707, AZ8ISO8859P9E, BG8MSWIN, BG8PC437S, BLT8CP921, BLT8ISO8859P13, BLT8MSWIN1257, BLT8PC775, BN8BSCII, CDN8PC863, CEL8ISO8859P14, CL8ISO8859P5, CL8ISOIR111, CL8KOI8R, CL8KOI8U, CL8MACCYRILLICS, CL8MSWIN1251, EE8ISO8859P2, EE8MACCES, EE8MACCROATIANS, EE8MSWIN1250, EE8PC852, EL8DEC, EL8ISO8859P7, EL8MACGREEKS, EL8MSWIN1253, EL8PC437S, EL8PC851, EL8PC869, ET8MSWIN923, HU8ABMOD, HU8CWI2, IN8ISCII, IS8PC861, IW8ISO8859P8, IW8MACHEBREWS, IW8MSWIN1255, IW8PC1507, JA16EUC, JA16EUCTILDE, JA16SJIS, JA16SJISTILDE, JA16VMS, KO16KSC5601, KO16KSCCS, KO16MSWIN949, LA8ISO6937, LA8PASSPORT, LT8MSWIN921, LT8PC772, LT8PC774, LV8PC1117, LV8PC8LR, LV8RST104090, N8PC865, NE8ISO8859P10, NEE8ISO8859P4, RU8BESTA, RU8PC855, RU8PC866, SE8ISO8859P3, TH8MACTHAIS, TH8TISASCII, TR8DEC, TR8MACTURKISHS, TR8MSWIN1254, TR8PC857, US7ASCII, US8PC437, UTF8, VN8MSWIN1258, VN8VN3, WE8DEC, WE8DG, WE8ISO8859P1, WE8ISO8859P15, WE8ISO8859P9, WE8MACROMAN8S, WE8MSWIN1252, WE8NCR4970, WE8NEXTSTEP, WE8PC850, WE8PC858, WE8PC860, WE8ROMAN8, ZHS16CGB231280, ZHS16GBK, ZHT16BIG5, ZHT16CCDC, ZHT16DBT, ZHT16HKSCS, ZHT16MSWIN950, ZHT32EUC, ZHT32SOPS, ZHT32TRIS
* `compartment_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment.
-* `compute_count` - The compute amount available to the database. Minimum and maximum values depend on the compute model and whether the database is an Autonomous Database Serverless instance or an Autonomous Database on Dedicated Exadata Infrastructure. For an Autonomous Database Serverless instance, the 'ECPU' compute model requires values in multiples of two. Required when using the `computeModel` parameter. When using `cpuCoreCount` parameter, it is an error to specify computeCount to a non-null value.
+* `compute_count` - The compute amount available to the database. Minimum and maximum values depend on the compute model and whether the database is on Shared or Dedicated infrastructure. For an Autonomous Database on Shared infrastructure, the 'ECPU' compute model requires values in multiples of two. Required when using the `computeModel` parameter. When using `cpuCoreCount` parameter, it is an error to specify computeCount to a non-null value.
* `compute_model` - The compute model of the Autonomous Database. This is required if using the `computeCount` parameter. If using `cpuCoreCount` then it is an error to specify `computeModel` to a non-null value.
* `connection_strings` - The connection string used to connect to the Autonomous Database. The username for the Service Console is ADMIN. Use the password you entered when creating the Autonomous Database for the password value.
* `all_connection_strings` - Returns all connection strings that can be used to connect to the Autonomous Database. For more information, please see [Predefined Database Service Names for Autonomous Transaction Processing](https://docs.oracle.com/en/cloud/paas/atp-cloud/atpug/connect-predefined.html#GUID-9747539B-FD46-44F1-8FF8-F5AC650F15BE)
@@ -305,7 +302,7 @@ The following attributes are exported:
* `data_storage_size_in_tbs` - The quantity of data in the database, in terabytes.
* `database_edition` - The Oracle Database Edition that applies to the Autonomous databases.
* `database_management_status` - Status of Database Management for this Autonomous Database.
-* `dataguard_region_type` - The Autonomous Data Guard region type of the Autonomous Database. For Autonomous Database Serverless, Autonomous Data Guard associations have designated primary and standby regions, and these region types do not change when the database changes roles. The standby regions in Autonomous Data Guard associations can be the same region designated as the primary region, or they can be remote regions. Certain database administrative operations may be available only in the primary region of the Autonomous Data Guard association, and cannot be performed when the database using the primary role is operating in a remote Autonomous Data Guard standby region.
+* `dataguard_region_type` - The Autonomous Data Guard region type of the Autonomous Database. For Autonomous Databases on shared Exadata infrastructure, Data Guard associations have designated primary and standby regions, and these region types do not change when the database changes roles. The standby regions in Data Guard associations can be the same region designated as the primary region, or they can be remote regions. Certain database administrative operations may be available only in the primary region of the Data Guard association, and cannot be performed when the database using the "primary" role is operating in a remote Data Guard standby region.
* `db_name` - The database name.
* `db_version` - A valid Oracle Database version for Autonomous Database.
* `db_workload` - The Autonomous Database workload type. The following values are valid:
@@ -314,9 +311,9 @@ The following attributes are exported:
* AJD - indicates an Autonomous JSON Database
* APEX - indicates an Autonomous Database with the Oracle APEX Application Development workload type.
- This cannot be updated in parallel with any of the following: licenseModel, dbEdition, cpuCoreCount, computeCount, computeModel, adminPassword, whitelistedIps, isMTLSConnectionRequired, privateEndpointLabel, nsgIds, dbVersion, isRefreshable, dbName, scheduledOperations, dbToolsDetails, isLocalDataGuardEnabled, or isFreeTier.
-* `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).
-* `disaster_recovery_region_type` - The disaster recovery (DR) region type of the Autonomous Database. For Autonomous Database Serverless instances, DR associations have designated primary and standby regions. These region types do not change when the database changes roles. The standby region in DR associations can be the same region as the primary region, or they can be in a remote regions. Some database administration operations may be available only in the primary region of the DR association, and cannot be performed when the database using the primary role is operating in a remote region.
+ This cannot be updated in parallel with any of the following: licenseModel, dbEdition, cpuCoreCount, computeCount, computeModel, adminPassword, whitelistedIps, isMTLSConnectionRequired, privateEndpointLabel, nsgIds, dbVersion, isRefreshable, dbName, scheduledOperations, dbToolsDetails, isLocalDataGuardEnabled, or isFreeTier.
+* `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).
+* `disaster_recovery_region_type` - The disaster recovery (DR) region type of the Autonomous Database. For Shared Autonomous Databases, DR associations have designated primary and standby regions. These region types do not change when the database changes roles. The standby region in DR associations can be the same region as the primary region, or they can be in a remote regions. Some database administration operations may be available only in the primary region of the DR association, and cannot be performed when the database using the primary role is operating in a remote region.
* `display_name` - The user-friendly name for the Autonomous Database. The name does not have to be unique.
* `failed_data_recovery_in_seconds` - Indicates the number of seconds of data loss for a Data Guard failover.
* `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"}`
@@ -342,7 +339,7 @@ The following attributes are exported:
Service Change: The default value of the isMTLSConnectionRequired attribute will change from true to false on July 1, 2023 in the following APIs:
* CreateAutonomousDatabase
* GetAutonomousDatabase
- * UpdateAutonomousDatabase Details: Prior to the July 1, 2023 change, the isMTLSConnectionRequired attribute default value was true. This applies to Autonomous Database Serverless. Does this impact me? If you use or maintain custom scripts or Terraform scripts referencing the CreateAutonomousDatabase, GetAutonomousDatabase, or UpdateAutonomousDatabase APIs, you want to check, and possibly modify, the scripts for the changed default value of the attribute. Should you choose not to leave your scripts unchanged, the API calls containing this attribute will continue to work, but the default value will switch from true to false. How do I make this change? Using either Oracle Cloud Infrastructure SDKs or command line tools, update your custom scripts to explicitly set the isMTLSConnectionRequired attribute to true.
+ * UpdateAutonomousDatabase Details: Prior to the July 1, 2023 change, the isMTLSConnectionRequired attribute default value was true. This applies to Autonomous Databases on shared Exadata infrastructure. Does this impact me? If you use or maintain custom scripts or Terraform scripts referencing the CreateAutonomousDatabase, GetAutonomousDatabase, or UpdateAutonomousDatabase APIs, you want to check, and possibly modify, the scripts for the changed default value of the attribute. Should you choose not to leave your scripts unchanged, the API calls containing this attribute will continue to work, but the default value will switch from true to false. How do I make this change? Using either Oracle Cloud Infrastructure SDKs or command line tools, update your custom scripts to explicitly set the isMTLSConnectionRequired attribute to true.
* `is_preview` - Indicates if the Autonomous Database version is a preview version.
* `is_reconnect_clone_enabled` - Indicates if the refreshable clone can be reconnected to its source database.
* `is_refreshable_clone` - Indicates if the Autonomous Database is a refreshable clone.
@@ -359,7 +356,7 @@ The following attributes are exported:
* `kms_key_id` - The OCID of the key container that is used as the master encryption key in database transparent data encryption (TDE) operations.
* `kms_key_lifecycle_details` - KMS key lifecycle details.
* `kms_key_version_id` - The OCID of the key container version that is used in database transparent data encryption (TDE) operations KMS Key can have multiple key versions. If none is specified, the current key version (latest) of the Key Id is used for the operation.
-* `license_model` - The Oracle license model that applies to the Oracle Autonomous Database. Bring your own license (BYOL) allows you to apply your current on-premises Oracle software licenses to equivalent, highly automated Oracle services in the cloud. License Included allows you to subscribe to new Oracle Database software licenses and the Oracle Database service. Note that when provisioning an [Autonomous Database on dedicated Exadata infrastructure](https://docs.oracle.com/en/cloud/paas/autonomous-database/index.html), this attribute must be null. It is already set at the Autonomous Exadata Infrastructure level. When provisioning an [Autonomous Database Serverless] (https://docs.oracle.com/en/cloud/paas/autonomous-database/index.html) database, if a value is not specified, the system defaults the value to `BRING_YOUR_OWN_LICENSE`.
+* `license_model` - The Oracle license model that applies to the Oracle Autonomous Database. Bring your own license (BYOL) allows you to apply your current on-premises Oracle software licenses to equivalent, highly automated Oracle PaaS and IaaS services in the cloud. License Included allows you to subscribe to new Oracle Database software licenses and the Database service. Note that when provisioning an Autonomous Database on [dedicated Exadata infrastructure](https://docs.oracle.com/en/cloud/paas/autonomous-database/index.html), this attribute must be null because the attribute is already set at the Autonomous Exadata Infrastructure level. When using [shared Exadata infrastructure](https://docs.oracle.com/en/cloud/paas/autonomous-database/index.html), if a value is not specified, the system will supply the value of `BRING_YOUR_OWN_LICENSE`.
This cannot be updated in parallel with any of the following: cpuCoreCount, computeCount, maxCpuCoreCount, dataStorageSizeInTBs, adminPassword, isMTLSConnectionRequired, dbWorkload, privateEndpointLabel, nsgIds, dbVersion, dbName, scheduledOperations, dbToolsDetails, or isFreeTier.
* `lifecycle_details` - Information about the current lifecycle state.
@@ -369,17 +366,17 @@ The following attributes are exported:
* `repeat_cadence` - The frequency of the long-term backup schedule
* `retention_period_in_days` - Retention period, in days, for long-term backups
* `time_of_backup` - The timestamp for the long-term backup schedule. For a MONTHLY cadence, months having fewer days than the provided date will have the backup taken on the last day of that month.
-* `max_cpu_core_count` - The number of Max OCPU cores to be made available to the autonomous database with auto scaling of cpu enabled.
+* `max_cpu_core_count` - The number of Max OCPU cores to be made available to the autonomous database with auto scaling of cpu enabled.
* `memory_per_oracle_compute_unit_in_gbs` - The amount of memory (in GBs) enabled per OCPU or ECPU. See [Compute Models in Autonomous Database on Dedicated Exadata Infrastructure](https://docs.oracle.com/en/cloud/paas/autonomous-database/dedicated/adbak) for more details.
* `max_cpu_core_count` - The number of Max OCPU cores to be made available to the autonomous database with auto scaling of cpu enabled.
-* `local_disaster_recovery_type` - Indicates the local disaster recovery (DR) type of the Shared Autonomous Database. Autonomous Data Guard (ADG) DR type provides business critical DR with a faster recovery time objective (RTO) during failover or switchover. Backup-based DR type provides lower cost DR with a slower RTO during failover or switchover.
+* `local_disaster_recovery_type` - Indicates the local disaster recovery (DR) type of the Shared Autonomous Database. Autonomous Data Guard (ADG) DR type provides business critical DR with a faster recovery time objective (RTO) during failover or switchover. Backup-based DR type provides lower cost DR with a slower RTO during failover or switchover.
* `local_standby_db` - Autonomous Data Guard standby database details.
* `lag_time_in_seconds` - The amount of time, in seconds, that the data of the standby database lags the data of the primary database. Can be used to determine the potential data loss in the event of a failover.
* `lifecycle_details` - Additional information about the current lifecycle state.
* `state` - The current state of the Autonomous Database.
* `time_data_guard_role_changed` - The date and time the Autonomous Data Guard role was switched for the standby Autonomous Database.
* `time_disaster_recovery_role_changed` - The date and time the Disaster Recovery role was switched for the standby Autonomous Database.
-* `memory_per_oracle_compute_unit_in_gbs` - The amount of memory (in GBs) enabled per each CPU in the Autonomous VM Cluster.
+* `memory_per_oracle_compute_unit_in_gbs` - The amount of memory (in GBs) enabled per each OCPU core in Autonomous VM Cluster.
* `ncharacter_set` - The national character set for the autonomous database. The default is AL16UTF16. Allowed values are: AL16UTF16 or UTF8.
* `next_long_term_backup_time_stamp` - The date and time when the next long-term backup would be created.
* `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:**
@@ -397,7 +394,7 @@ The following attributes are exported:
This cannot be updated in parallel with any of the following: cpuCoreCount, computeCount, computeModel, adminPassword, whitelistedIps, isMTLSConnectionRequired, dbVersion, isRefreshable, dbName, scheduledOperations, dbToolsDetails, or isFreeTier.
* `operations_insights_status` - Status of Operations Insights for this Autonomous Database.
-* `peer_db_ids` - The list of [OCIDs](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of standby databases located in Autonomous Data Guard remote regions that are associated with the source database. Note that for Autonomous Database Serverless instances, standby databases located in the same region as the source primary database do not have OCIDs.
+* `peer_db_ids` - The list of [OCIDs](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of standby databases located in Autonomous Data Guard remote regions that are associated with the source database. Note that for shared Exadata infrastructure, standby databases located in the same region as the source primary database do not have OCIDs.
* `permission_level` - The Autonomous Database permission level. Restricted mode allows access only by admin users.
This cannot be updated in parallel with any of the following: cpuCoreCount, computeCount, computeModel, adminPassword, whitelistedIps, isMTLSConnectionRequired, nsgIds, dbVersion, isRefreshable, dbName, scheduledOperations, dbToolsDetails, or isFreeTier.
@@ -408,7 +405,7 @@ The following attributes are exported:
* `refreshable_mode` - The refresh mode of the clone. AUTOMATIC indicates that the clone is automatically being refreshed with data from the source Autonomous Database.
* `refreshable_status` - The refresh status of the clone. REFRESHING indicates that the clone is currently being refreshed with data from the source Autonomous Database.
* `remote_disaster_recovery_configuration` - Configurations of a Disaster Recovery.
- * `disaster_recovery_type` - Indicates the disaster recovery (DR) type of the Autonomous Database Serverless instance. Autonomous Data Guard (ADG) DR type provides business critical DR with a faster recovery time objective (RTO) during failover or switchover. Backup-based DR type provides lower cost DR with a slower RTO during failover or switchover.
+ * `disaster_recovery_type` - Indicates the disaster recovery (DR) type of the Shared Autonomous Database. Autonomous Data Guard (ADG) DR type provides business critical DR with a faster recovery time objective (RTO) during failover or switchover. Backup-based DR type provides lower cost DR with a slower RTO during failover or switchover.
* `is_snapshot_standby` - Indicates if user wants to convert to a snapshot standby. For example, true would set a standby database to snapshot standby database. False would set a snapshot standby database back to regular standby database.
* `time_snapshot_standby_enabled_till` - Time and date stored as an RFC 3339 formatted timestamp string. For example, 2022-01-01T12:00:00.000Z would set a limit for the snapshot standby to be converted back to a cross-region standby database.
* `is_snapshot_standby` - Indicates if user wants to convert to a snapshot standby. For example, true would set a standby database to snapshot standby database. False would set a snapshot standby database back to regular standby database.
@@ -429,9 +426,9 @@ The following attributes are exported:
* `state` - The current state of the Autonomous Database.
* `time_data_guard_role_changed` - The date and time the Autonomous Data Guard role was switched for the standby Autonomous Database.
* `time_disaster_recovery_role_changed` - The date and time the Disaster Recovery role was switched for the standby Autonomous Database.
-* `standby_whitelisted_ips` - The client IP access control list (ACL). This feature is available for [Autonomous Database Serverless] (https://docs.oracle.com/en/cloud/paas/autonomous-database/index.html) and on Exadata Cloud@Customer. Only clients connecting from an IP address included in the ACL may access the Autonomous Database instance.
+* `standby_whitelisted_ips` - The client IP access control list (ACL). This feature is available for autonomous databases on [shared Exadata infrastructure](https://docs.oracle.com/en/cloud/paas/autonomous-database/index.html) and on Exadata Cloud@Customer. Only clients connecting from an IP address included in the ACL may access the Autonomous Database instance.
- For Autonomous Database Serverless, this is an array of CIDR (classless inter-domain routing) notations for a subnet or VCN OCID (virtual cloud network Oracle Cloud ID). Use a semicolon (;) as a deliminator between the VCN-specific subnets or IPs. Example: `["1.1.1.1","1.1.1.0/24","ocid1.vcn.oc1.sea.","ocid1.vcn.oc1.sea.;1.1.1.1","ocid1.vcn.oc1.sea.;1.1.0.0/16"]` For Exadata Cloud@Customer, this is an array of IP addresses or CIDR notations. Example: `["1.1.1.1","1.1.1.0/24","1.1.2.25"]`
+ For shared Exadata infrastructure, this is an array of CIDR (Classless Inter-Domain Routing) notations for a subnet or VCN OCID. Use a semicolon (;) as a deliminator between the VCN-specific subnets or IPs. Example: `["1.1.1.1","1.1.1.0/24","ocid1.vcn.oc1.sea.","ocid1.vcn.oc1.sea.;1.1.1.1","ocid1.vcn.oc1.sea.;1.1.0.0/16"]` For Exadata Cloud@Customer, this is an array of IP addresses or CIDR (Classless Inter-Domain Routing) notations. Example: `["1.1.1.1","1.1.1.0/24","1.1.2.25"]`
For an update operation, if you want to delete all the IPs in the ACL, use an array with a single empty string entry.
@@ -465,9 +462,9 @@ The following attributes are exported:
* `used_data_storage_size_in_gbs` - The storage space consumed by Autonomous Database in GBs.
* `used_data_storage_size_in_tbs` - The amount of storage that has been used, in terabytes.
* `vault_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the Oracle Cloud Infrastructure [vault](https://docs.cloud.oracle.com/iaas/Content/KeyManagement/Concepts/keyoverview.htm#concepts).
-* `whitelisted_ips` - The client IP access control list (ACL). This feature is available for [Autonomous Database Serverless] (https://docs.oracle.com/en/cloud/paas/autonomous-database/index.html) and on Exadata Cloud@Customer. Only clients connecting from an IP address included in the ACL may access the Autonomous Database instance.
+* `whitelisted_ips` - The client IP access control list (ACL). This feature is available for autonomous databases on [shared Exadata infrastructure](https://docs.oracle.com/en/cloud/paas/autonomous-database/index.html) and on Exadata Cloud@Customer. Only clients connecting from an IP address included in the ACL may access the Autonomous Database instance.
- For Autonomous Database Serverless, this is an array of CIDR (classless inter-domain routing) notations for a subnet or VCN OCID (virtual cloud network Oracle Cloud ID). Use a semicolon (;) as a deliminator between the VCN-specific subnets or IPs. Example: `["1.1.1.1","1.1.1.0/24","ocid1.vcn.oc1.sea.","ocid1.vcn.oc1.sea.;1.1.1.1","ocid1.vcn.oc1.sea.;1.1.0.0/16"]` For Exadata Cloud@Customer, this is an array of IP addresses or CIDR notations. Example: `["1.1.1.1","1.1.1.0/24","1.1.2.25"]`
+ For shared Exadata infrastructure, this is an array of CIDR (Classless Inter-Domain Routing) notations for a subnet or VCN OCID. Use a semicolon (;) as a deliminator between the VCN-specific subnets or IPs. Example: `["1.1.1.1","1.1.1.0/24","ocid1.vcn.oc1.sea.","ocid1.vcn.oc1.sea.;1.1.1.1","ocid1.vcn.oc1.sea.;1.1.0.0/16"]` For Exadata Cloud@Customer, this is an array of IP addresses or CIDR (Classless Inter-Domain Routing) notations. Example: `["1.1.1.1","1.1.1.0/24","1.1.2.25"]`
For an update operation, if you want to delete all the IPs in the ACL, use an array with a single empty string entry.
diff --git a/website/docs/r/database_cloud_autonomous_vm_cluster.html.markdown b/website/docs/r/database_cloud_autonomous_vm_cluster.html.markdown
index 8d5fe6ce548..9bd0ef0c1a3 100644
--- a/website/docs/r/database_cloud_autonomous_vm_cluster.html.markdown
+++ b/website/docs/r/database_cloud_autonomous_vm_cluster.html.markdown
@@ -177,7 +177,7 @@ The following attributes are exported:
* `reserved_cpus` - The number of CPUs reserved in an Autonomous VM Cluster.
* `scan_listener_port_non_tls` - The SCAN Listener Non TLS port. Default is 1521.
* `scan_listener_port_tls` - The SCAN Listenenr TLS port. Default is 2484.
-* `shape` - The model name of the Exadata hardware running the cloud Autonomous VM cluster.
+* `shape` - The model name of the Exadata hardware running the cloud Autonomous VM cluster.
* `state` - The current state of the cloud Autonomous VM cluster.
* `subnet_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the subnet the cloud Autonomous VM Cluster is associated with.
@@ -205,4 +205,4 @@ CloudAutonomousVmClusters can be imported using the `id`, e.g.
```
$ terraform import oci_database_cloud_autonomous_vm_cluster.test_cloud_autonomous_vm_cluster "id"
-```
+```
\ No newline at end of file
diff --git a/website/docs/r/database_database.html.markdown b/website/docs/r/database_database.html.markdown
index 98cba4431c4..a20d0d21c4a 100644
--- a/website/docs/r/database_database.html.markdown
+++ b/website/docs/r/database_database.html.markdown
@@ -55,6 +55,7 @@ resource "oci_database_database" "test_database" {
kms_key_version_id = oci_kms_key_version.test_key_version.id
ncharacter_set = var.database_database_ncharacter_set
pdb_name = var.database_database_pdb_name
+ pluggable_databases = var.database_database_pluggable_databases
sid_prefix = var.database_database_sid_prefix
tde_wallet_password = var.database_database_tde_wallet_password
vault_id = oci_kms_vault.test_vault.id
@@ -106,6 +107,7 @@ The following arguments are supported:
* `kms_key_version_id` - (Applicable when source=NONE) The OCID of the key container version that is used in database transparent data encryption (TDE) operations KMS Key can have multiple key versions. If none is specified, the current key version (latest) of the Key Id is used for the operation.
* `ncharacter_set` - (Applicable when source=NONE) The national character set for the database. The default is AL16UTF16. Allowed values are: AL16UTF16 or UTF8.
* `pdb_name` - (Applicable when source=NONE) The name of the pluggable database. The name must begin with an alphabetic character and can contain a maximum of thirty alphanumeric characters. Special characters are not permitted. Pluggable database should not be same as database name.
+ * `pluggable_databases` - (Applicable when source=DB_BACKUP) The list of pluggable databases that needs to be restored into new database.
* `sid_prefix` - (Optional) Specifies a prefix for the `Oracle SID` of the database to be created.
* `tde_wallet_password` - (Applicable when source=NONE) The optional password to open the TDE wallet. The password must be at least nine characters and contain at least two uppercase, two lowercase, two numeric, and two special characters. The special characters must be _, \#, or -.
* `vault_id` - (Applicable when source=NONE) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the Oracle Cloud Infrastructure [vault](https://docs.cloud.oracle.com/iaas/Content/KeyManagement/Concepts/keyoverview.htm#concepts).
diff --git a/website/docs/r/database_db_home.html.markdown b/website/docs/r/database_db_home.html.markdown
index fc8a6015c5f..a9dc8850e5b 100644
--- a/website/docs/r/database_db_home.html.markdown
+++ b/website/docs/r/database_db_home.html.markdown
@@ -60,6 +60,7 @@ resource "oci_database_db_home" "test_db_home" {
kms_key_version_id = oci_kms_key_version.test_key_version.id
ncharacter_set = var.db_home_database_ncharacter_set
pdb_name = var.db_home_database_pdb_name
+ pluggable_databases = var.db_home_database_pluggable_databases
sid_prefix = var.db_home_database_sid_prefix
tde_wallet_password = var.db_home_database_tde_wallet_password
time_stamp_for_point_in_time_recovery = var.db_home_database_time_stamp_for_point_in_time_recovery
@@ -119,6 +120,7 @@ The following arguments are supported:
* `kms_key_version_id` - (Applicable when source=NONE | VM_CLUSTER_NEW) The OCID of the key container version that is used in database transparent data encryption (TDE) operations KMS Key can have multiple key versions. If none is specified, the current key version (latest) of the Key Id is used for the operation.
* `ncharacter_set` - (Applicable when source=NONE | VM_CLUSTER_NEW) The national character set for the database. The default is AL16UTF16. Allowed values are: AL16UTF16 or UTF8.
* `pdb_name` - (Applicable when source=NONE | VM_CLUSTER_NEW) The name of the pluggable database. The name must begin with an alphabetic character and can contain a maximum of thirty alphanumeric characters. Special characters are not permitted. Pluggable database should not be same as database name.
+ * `pluggable_databases` - (Applicable when source=DATABASE | DB_BACKUP | VM_CLUSTER_BACKUP) The list of pluggable databases that needs to be restored into new database.
* `sid_prefix` - (Applicable when source=DB_BACKUP | NONE | VM_CLUSTER_BACKUP | VM_CLUSTER_NEW) Specifies a prefix for the `Oracle SID` of the database to be created.
* `tde_wallet_password` - (Applicable when source=NONE | VM_CLUSTER_NEW) The optional password to open the TDE wallet. The password must be at least nine characters and contain at least two uppercase, two lowercase, two numeric, and two special characters. The special characters must be _, \#, or -.
* `time_stamp_for_point_in_time_recovery` - (Applicable when source=DATABASE) The point in time of the original database from which the new database is created. If not specifed, the latest backup is used to create the database.
diff --git a/website/docs/r/database_db_system.html.markdown b/website/docs/r/database_db_system.html.markdown
index 0543dc86c34..7d4d7f1f98d 100644
--- a/website/docs/r/database_db_system.html.markdown
+++ b/website/docs/r/database_db_system.html.markdown
@@ -70,6 +70,7 @@ resource "oci_database_db_system" "test_db_system" {
kms_key_version_id = oci_kms_key_version.test_key_version.id
ncharacter_set = var.db_system_db_home_database_ncharacter_set
pdb_name = var.db_system_db_home_database_pdb_name
+ pluggable_databases = var.db_system_db_home_database_pluggable_databases
sid_prefix = var.db_system_db_home_database_sid_prefix
tde_wallet_password = var.db_system_db_home_database_tde_wallet_password
time_stamp_for_point_in_time_recovery = var.db_system_db_home_database_time_stamp_for_point_in_time_recovery
@@ -218,6 +219,7 @@ The following arguments are supported:
* `kms_key_version_id` - (Applicable when source=NONE) The OCID of the key container version that is used in database transparent data encryption (TDE) operations KMS Key can have multiple key versions. If none is specified, the current key version (latest) of the Key Id is used for the operation.
* `ncharacter_set` - (Applicable when source=NONE) The national character set for the database. The default is AL16UTF16. Allowed values are: AL16UTF16 or UTF8.
* `pdb_name` - (Applicable when source=NONE) The name of the pluggable database. The name must begin with an alphabetic character and can contain a maximum of thirty alphanumeric characters. Special characters are not permitted. Pluggable database should not be same as database name.
+ * `pluggable_databases` - (Applicable when source=DATABASE | DB_BACKUP) The list of pluggable databases that needs to be restored into new database.
* `sid_prefix` - (Applicable when source=DB_BACKUP | NONE) Specifies a prefix for the `Oracle SID` of the database to be created.
* `tde_wallet_password` - (Applicable when source=NONE) The optional password to open the TDE wallet. The password must be at least nine characters and contain at least two uppercase, two lowercase, two numeric, and two special characters. The special characters must be _, \#, or -.
* `time_stamp_for_point_in_time_recovery` - (Applicable when source=DATABASE) The point in time of the original database from which the new database is created. If not specifed, the latest backup is used to create the database.
diff --git a/website/docs/r/database_pluggable_database.html.markdown b/website/docs/r/database_pluggable_database.html.markdown
index fd590fd5384..4c068fcf752 100644
--- a/website/docs/r/database_pluggable_database.html.markdown
+++ b/website/docs/r/database_pluggable_database.html.markdown
@@ -11,6 +11,7 @@ description: |-
This resource provides the Pluggable Database resource in Oracle Cloud Infrastructure Database service.
Creates and starts a pluggable database in the specified container database.
+Pluggable Database can be created using different operations (e.g. LocalClone, RemoteClone, Relocate ) with this API.
Use the [StartPluggableDatabase](https://docs.cloud.oracle.com/iaas/api/#/en/database/latest/PluggableDatabase/StartPluggableDatabase) and [StopPluggableDatabase](https://docs.cloud.oracle.com/iaas/api/#/en/database/latest/PluggableDatabase/StopPluggableDatabase) APIs to start and stop the pluggable database.
@@ -23,9 +24,26 @@ resource "oci_database_pluggable_database" "test_pluggable_database" {
pdb_name = var.pluggable_database_pdb_name
#Optional
+ container_database_admin_password = var.pluggable_database_container_database_admin_password
defined_tags = var.pluggable_database_defined_tags
freeform_tags = {"Department"= "Finance"}
pdb_admin_password = var.pluggable_database_pdb_admin_password
+ pdb_creation_type_details {
+ #Required
+ creation_type = var.pluggable_database_pdb_creation_type_details_creation_type
+ source_pluggable_database_id = oci_database_pluggable_database.test_pluggable_database.id
+
+ #Optional
+ dblink_user_password = var.pluggable_database_pdb_creation_type_details_dblink_user_password
+ dblink_username = var.pluggable_database_pdb_creation_type_details_dblink_username
+ refreshable_clone_details {
+
+ #Optional
+ is_refreshable_clone = var.pluggable_database_pdb_creation_type_details_refreshable_clone_details_is_refreshable_clone
+ }
+ source_container_database_admin_password = var.pluggable_database_pdb_creation_type_details_source_container_database_admin_password
+ }
+ should_create_pdb_backup = var.pluggable_database_should_create_pdb_backup
should_pdb_admin_account_be_locked = var.pluggable_database_should_pdb_admin_account_be_locked
tde_wallet_password = var.pluggable_database_tde_wallet_password
}
@@ -35,13 +53,27 @@ resource "oci_database_pluggable_database" "test_pluggable_database" {
The following arguments are supported:
+* `container_database_admin_password` - (Optional) The DB system administrator password of the Container Database.
* `container_database_id` - (Required) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the CDB
* `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).
* `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"}`
* `pdb_admin_password` - (Optional) A strong password for PDB Admin. The password must be at least nine characters and contain at least two uppercase, two lowercase, two numbers, and two special characters. The special characters must be _, \#, or -.
+* `pdb_creation_type_details` - (Optional) The Pluggable Database creation type. Use `LOCAL_CLONE_PDB` for creating a new PDB using Local Clone on Source Pluggable Database. This will Clone and starts a pluggable database (PDB) in the same database (CDB) as the source PDB. The source PDB must be in the `READ_WRITE` openMode to perform the clone operation. Use `REMOTE_CLONE_PDB` for creating a new PDB using Remote Clone on Source Pluggable Database. This will Clone a pluggable database (PDB) to a different database from the source PDB. The cloned PDB will be started upon completion of the clone operation. The source PDB must be in the `READ_WRITE` openMode when performing the clone. For Exadata Cloud@Customer instances, the source pluggable database (PDB) must be on the same Exadata Infrastructure as the target container database (CDB) to create a remote clone.
+
+ Use `RELOCATE_PDB` for relocating the Pluggable Database from Source CDB and creating it in target CDB. This will relocate a pluggable database (PDB) to a different database from the source PDB. The source PDB must be in the `READ_WRITE` openMode when performing the relocate.
+ * `creation_type` - (Required) The Pluggable Database creation type.
+ * `dblink_user_password` - (Applicable when creation_type=RELOCATE_PDB | REMOTE_CLONE_PDB) The DB link user password.
+ * `dblink_username` - (Applicable when creation_type=RELOCATE_PDB | REMOTE_CLONE_PDB) The name of the DB link user.
+ * `refreshable_clone_details` - (Applicable when creation_type=REMOTE_CLONE_PDB) Parameters for creating Pluggable Database Refreshable Clone. **Warning:** Oracle recommends that you avoid using any confidential information when you supply string values using the API.
+ * `is_refreshable_clone` - (Applicable when creation_type=REMOTE_CLONE_PDB) Indicates whether Pluggable Database is a refreshable clone.
+ * `source_container_database_admin_password` - (Required when creation_type=RELOCATE_PDB | REMOTE_CLONE_PDB) The DB system administrator password of the source Container Database.
+ * `source_pluggable_database_id` - (Required) The OCID of the Source Pluggable Database.
* `pdb_name` - (Required) The name for the pluggable database (PDB). The name is unique in the context of a [container database](https://docs.cloud.oracle.com/iaas/api/#/en/database/latest/Database/). The name must begin with an alphabetic character and can contain a maximum of thirty alphanumeric characters. Special characters are not permitted. The pluggable database name should not be same as the container database name.
+* `should_create_pdb_backup` - (Optional) Indicates whether to take Pluggable Database Backup after the operation.
* `should_pdb_admin_account_be_locked` - (Optional) The locked mode of the pluggable database admin account. If false, the user needs to provide the PDB Admin Password to connect to it. If true, the pluggable database will be locked and user cannot login to it.
* `tde_wallet_password` - (Optional) The existing TDE wallet password of the CDB.
+* `convert_to_regular_trigger` - (Optional) (Updatable) An optional property when incremented triggers Convert To Regular. Could be set to any integer value.
+* `refresh_trigger` - (Optional) (Updatable) An optional property when incremented triggers Refresh. Could be set to any integer value.
* `rotate_key_trigger` - (Optional) (Updatable) An optional property when incremented triggers Rotate Key. Could be set to any integer value.
@@ -63,10 +95,15 @@ The following attributes are exported:
* `id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the pluggable database.
* `is_restricted` - The restricted mode of the pluggable database. If a pluggable database is opened in restricted mode, the user needs both create a session and have restricted session privileges to connect to it.
* `lifecycle_details` - Detailed message for the lifecycle state.
-* `open_mode` - The mode that pluggable database is in. Open mode can only be changed to READ_ONLY or MIGRATE directly from the backend (within the Oracle Database software).
+* `open_mode` - **Deprecated.** Use [PluggableDatabaseNodeLevelDetails](https://docs.cloud.oracle.com/iaas/api/#/en/database/latest/datatypes/PluggableDatabaseNodeLevelDetails) for OpenMode details. The mode that pluggable database is in. Open mode can only be changed to READ_ONLY or MIGRATE directly from the backend (within the Oracle Database software).
* `pdb_name` - The name for the pluggable database (PDB). The name is unique in the context of a [container database](https://docs.cloud.oracle.com/iaas/api/#/en/database/latest/Database/). The name must begin with an alphabetic character and can contain a maximum of thirty alphanumeric characters. Special characters are not permitted. The pluggable database name should not be same as the container database name.
+* `pdb_node_level_details` - Pluggable Database Node Level Details. Example: [{"nodeName" : "node1", "openMode" : "READ_WRITE"}, {"nodeName" : "node2", "openMode" : "READ_ONLY"}]
+ * `node_name` - The Node name of the Database Instance.
+ * `open_mode` - The mode that pluggable database is in. Open mode can only be changed to READ_ONLY or MIGRATE directly from the backend (within the Oracle Database software).
* `pluggable_database_management_config` - The configuration of the Pluggable Database Management service.
* `management_status` - The status of the Pluggable Database Management service.
+* `refreshable_clone_config` - Pluggable Database Refreshable Clone Configuration.
+ * `is_refreshable_clone` - Indicates whether the Pluggable Database is a refreshable clone.
* `state` - The current state of the pluggable database.
* `time_created` - The date and time the pluggable database was created.
diff --git a/website/docs/r/database_pluggable_database_pluggabledatabasemanagements_management.html.markdown b/website/docs/r/database_pluggable_database_pluggabledatabasemanagements_management.html.markdown
index 225da12b6eb..88d2c2c6403 100644
--- a/website/docs/r/database_pluggable_database_pluggabledatabasemanagements_management.html.markdown
+++ b/website/docs/r/database_pluggable_database_pluggabledatabasemanagements_management.html.markdown
@@ -71,10 +71,15 @@ The following attributes are exported:
* `id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the pluggable database.
* `is_restricted` - The restricted mode of the pluggable database. If a pluggable database is opened in restricted mode, the user needs both create a session and have restricted session privileges to connect to it.
* `lifecycle_details` - Detailed message for the lifecycle state.
-* `open_mode` - The mode that pluggable database is in. Open mode can only be changed to READ_ONLY or MIGRATE directly from the backend (within the Oracle Database software).
+* `open_mode` - **Deprecated.** Use [PluggableDatabaseNodeLevelDetails](https://docs.cloud.oracle.com/iaas/api/#/en/database/latest/datatypes/PluggableDatabaseNodeLevelDetails) for OpenMode details. The mode that pluggable database is in. Open mode can only be changed to READ_ONLY or MIGRATE directly from the backend (within the Oracle Database software).
* `pdb_name` - The name for the pluggable database (PDB). The name is unique in the context of a [container database](https://docs.cloud.oracle.com/iaas/api/#/en/database/latest/Database/). The name must begin with an alphabetic character and can contain a maximum of thirty alphanumeric characters. Special characters are not permitted. The pluggable database name should not be same as the container database name.
+* `pdb_node_level_details` - Pluggable Database Node Level Details. Example: [{"nodeName" : "node1", "openMode" : "READ_WRITE"}, {"nodeName" : "node2", "openMode" : "READ_ONLY"}]
+ * `node_name` - The Node name of the Database Instance.
+ * `open_mode` - The mode that pluggable database is in. Open mode can only be changed to READ_ONLY or MIGRATE directly from the backend (within the Oracle Database software).
* `pluggable_database_management_config` - The configuration of the Pluggable Database Management service.
* `management_status` - The status of the Pluggable Database Management service.
+* `refreshable_clone_config` - Pluggable Database Refreshable Clone Configuration.
+ * `is_refreshable_clone` - Indicates whether the Pluggable Database is a refreshable clone.
* `state` - The current state of the pluggable database.
* `time_created` - The date and time the pluggable database was created.
diff --git a/website/docs/r/database_pluggable_databases_local_clone.html.markdown b/website/docs/r/database_pluggable_databases_local_clone.html.markdown
index 8cf382a1a3c..7b6c991c16b 100644
--- a/website/docs/r/database_pluggable_databases_local_clone.html.markdown
+++ b/website/docs/r/database_pluggable_databases_local_clone.html.markdown
@@ -10,6 +10,7 @@ description: |-
# oci_database_pluggable_databases_local_clone
This resource provides the Pluggable Databases Local Clone resource in Oracle Cloud Infrastructure Database service. Although pluggable databases(PDB) belong to a container database(CDB), there is no change to the parent(CDB) as a result of this operation.
+**Deprecated.** Use [CreatePluggableDatabase](https://docs.cloud.oracle.com/iaas/api/#/en/database/latest/PluggableDatabase/CreatePluggableDatabase) for Pluggable Database LocalClone Operation.
Clones and starts a pluggable database (PDB) in the same database (CDB) as the source PDB. The source PDB must be in the `READ_WRITE` openMode to perform the clone operation.
@@ -57,10 +58,15 @@ The following attributes are exported:
* `id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the pluggable database.
* `is_restricted` - The restricted mode of the pluggable database. If a pluggable database is opened in restricted mode, the user needs both create a session and have restricted session privileges to connect to it.
* `lifecycle_details` - Detailed message for the lifecycle state.
-* `open_mode` - The mode that pluggable database is in. Open mode can only be changed to READ_ONLY or MIGRATE directly from the backend (within the Oracle Database software).
+* `open_mode` - **Deprecated.** Use [PluggableDatabaseNodeLevelDetails](https://docs.cloud.oracle.com/iaas/api/#/en/database/latest/datatypes/PluggableDatabaseNodeLevelDetails) for OpenMode details. The mode that pluggable database is in. Open mode can only be changed to READ_ONLY or MIGRATE directly from the backend (within the Oracle Database software).
* `pdb_name` - The name for the pluggable database (PDB). The name is unique in the context of a [container database](https://docs.cloud.oracle.com/iaas/api/#/en/database/latest/Database/). The name must begin with an alphabetic character and can contain a maximum of thirty alphanumeric characters. Special characters are not permitted. The pluggable database name should not be same as the container database name.
+* `pdb_node_level_details` - Pluggable Database Node Level Details. Example: [{"nodeName" : "node1", "openMode" : "READ_WRITE"}, {"nodeName" : "node2", "openMode" : "READ_ONLY"}]
+ * `node_name` - The Node name of the Database Instance.
+ * `open_mode` - The mode that pluggable database is in. Open mode can only be changed to READ_ONLY or MIGRATE directly from the backend (within the Oracle Database software).
* `pluggable_database_management_config` - The configuration of the Pluggable Database Management service.
* `management_status` - The status of the Pluggable Database Management service.
+* `refreshable_clone_config` - Pluggable Database Refreshable Clone Configuration.
+ * `is_refreshable_clone` - Indicates whether the Pluggable Database is a refreshable clone.
* `state` - The current state of the pluggable database.
* `time_created` - The date and time the pluggable database was created.
diff --git a/website/docs/r/database_pluggable_databases_remote_clone.html.markdown b/website/docs/r/database_pluggable_databases_remote_clone.html.markdown
index 8863dfd7a48..7d09a6d26aa 100644
--- a/website/docs/r/database_pluggable_databases_remote_clone.html.markdown
+++ b/website/docs/r/database_pluggable_databases_remote_clone.html.markdown
@@ -10,6 +10,7 @@ description: |-
# oci_database_pluggable_databases_remote_clone
This resource provides the Pluggable Databases Remote Clone resource in Oracle Cloud Infrastructure Database service.
+**Deprecated.** Use [CreatePluggableDatabase](https://docs.cloud.oracle.com/iaas/api/#/en/database/latest/PluggableDatabase/CreatePluggableDatabase) for Pluggable Database RemoteClone Operation.
Clones a pluggable database (PDB) to a different database from the source PDB. The cloned PDB will be started upon completion of the clone operation. The source PDB must be in the `READ_WRITE` openMode when performing the clone.
For Exadata Cloud@Customer instances, the source pluggable database (PDB) must be on the same Exadata Infrastructure as the target container database (CDB) to create a remote clone.
@@ -62,10 +63,15 @@ The following attributes are exported:
* `id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the pluggable database.
* `is_restricted` - The restricted mode of the pluggable database. If a pluggable database is opened in restricted mode, the user needs both create a session and have restricted session privileges to connect to it.
* `lifecycle_details` - Detailed message for the lifecycle state.
-* `open_mode` - The mode that pluggable database is in. Open mode can only be changed to READ_ONLY or MIGRATE directly from the backend (within the Oracle Database software).
+* `open_mode` - **Deprecated.** Use [PluggableDatabaseNodeLevelDetails](https://docs.cloud.oracle.com/iaas/api/#/en/database/latest/datatypes/PluggableDatabaseNodeLevelDetails) for OpenMode details. The mode that pluggable database is in. Open mode can only be changed to READ_ONLY or MIGRATE directly from the backend (within the Oracle Database software).
* `pdb_name` - The name for the pluggable database (PDB). The name is unique in the context of a [container database](https://docs.cloud.oracle.com/iaas/api/#/en/database/latest/Database/). The name must begin with an alphabetic character and can contain a maximum of thirty alphanumeric characters. Special characters are not permitted. The pluggable database name should not be same as the container database name.
+* `pdb_node_level_details` - Pluggable Database Node Level Details. Example: [{"nodeName" : "node1", "openMode" : "READ_WRITE"}, {"nodeName" : "node2", "openMode" : "READ_ONLY"}]
+ * `node_name` - The Node name of the Database Instance.
+ * `open_mode` - The mode that pluggable database is in. Open mode can only be changed to READ_ONLY or MIGRATE directly from the backend (within the Oracle Database software).
* `pluggable_database_management_config` - The configuration of the Pluggable Database Management service.
* `management_status` - The status of the Pluggable Database Management service.
+* `refreshable_clone_config` - Pluggable Database Refreshable Clone Configuration.
+ * `is_refreshable_clone` - Indicates whether the Pluggable Database is a refreshable clone.
* `state` - The current state of the pluggable database.
* `time_created` - The date and time the pluggable database was created.
diff --git a/website/docs/r/dataintegration_workspace_export_request.html.markdown b/website/docs/r/dataintegration_workspace_export_request.html.markdown
new file mode 100644
index 00000000000..6997a001733
--- /dev/null
+++ b/website/docs/r/dataintegration_workspace_export_request.html.markdown
@@ -0,0 +1,98 @@
+---
+subcategory: "Data Integration"
+layout: "oci"
+page_title: "Oracle Cloud Infrastructure: oci_dataintegration_workspace_export_request"
+sidebar_current: "docs-oci-resource-dataintegration-workspace_export_request"
+description: |-
+ Provides the Workspace Export Request resource in Oracle Cloud Infrastructure Data Integration service
+---
+
+# oci_dataintegration_workspace_export_request
+This resource provides the Workspace Export Request resource in Oracle Cloud Infrastructure Data Integration service.
+
+Export Metadata Object
+
+## Example Usage
+
+```hcl
+resource "oci_dataintegration_workspace_export_request" "test_workspace_export_request" {
+ #Required
+ bucket = var.workspace_export_request_bucket
+ workspace_id = oci_dataintegration_workspace.test_workspace.id
+
+ #Optional
+ are_references_included = var.workspace_export_request_are_references_included
+ file_name = var.workspace_export_request_file_name
+ filters = var.workspace_export_request_filters
+ is_object_overwrite_enabled = var.workspace_export_request_is_object_overwrite_enabled
+ object_keys = var.workspace_export_request_object_keys
+ object_storage_region = var.workspace_export_request_object_storage_region
+ object_storage_tenancy_id = oci_identity_tenancy.test_tenancy.id
+}
+```
+
+## Argument Reference
+
+The following arguments are supported:
+
+* `are_references_included` - (Optional) This field controls if the references will be exported along with the objects
+* `bucket` - (Required) Name of the Object Storage bucket where the object will be exported.
+* `file_name` - (Optional) Name of the exported zip file.
+* `filters` - (Optional) Filters for exported objects
+* `is_object_overwrite_enabled` - (Optional) Flag to control whether to overwrite the object if it is already present at the provided object storage location.
+* `object_keys` - (Optional) Field is used to specify which object keys to export
+* `object_storage_region` - (Optional) Region of the object storage (if using object storage of different region)
+* `object_storage_tenancy_id` - (Optional) Optional parameter to point to object storage tenancy (if using Object Storage of different tenancy)
+* `workspace_id` - (Required) The workspace ID.
+
+
+** 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:
+
+* `are_references_included` - Controls if the references will be exported along with the objects
+* `bucket` - The name of the Object Storage Bucket where the objects will be exported to
+* `created_by` - Name of the user who initiated export request.
+* `error_messages` - Contains key of the error
+* `exported_items` - The array of exported object details.
+ * `aggregator_key` - Aggregator key
+ * `identifier` - Object identifier
+ * `key` - Key of the object
+ * `name` - Name of the object
+ * `name_path` - Object name path
+ * `object_type` - Object type
+ * `object_version` - Object version
+ * `time_updated_in_millis` - time at which this object was last updated.
+* `file_name` - Name of the exported zip file.
+* `filters` - Export multiple objects based on filters.
+* `is_object_overwrite_enabled` - Flag to control whether to overwrite the object if it is already present at the provided object storage location.
+* `key` - Export object request key
+* `name` - Name of the export request.
+* `object_keys` - The list of the objects to be exported
+* `object_storage_region` - Region of the object storage (if using object storage of different region)
+* `object_storage_tenancy_id` - Optional parameter to point to object storage tenancy (if using Object Storage of different tenancy)
+* `referenced_items` - The array of exported referenced objects.
+* `status` - Export Objects request status.
+* `time_ended_in_millis` - Time at which the request was completely processed.
+* `time_started_in_millis` - Time at which the request started getting processed.
+* `total_exported_object_count` - Number of objects that are exported.
+
+## 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 Workspace Export Request
+ * `update` - (Defaults to 20 minutes), when updating the Workspace Export Request
+ * `delete` - (Defaults to 20 minutes), when destroying the Workspace Export Request
+
+
+## Import
+
+WorkspaceExportRequests can be imported using the `id`, e.g.
+
+```
+$ terraform import oci_dataintegration_workspace_export_request.test_workspace_export_request "workspaces/{workspaceId}/exportRequests/{exportRequestKey}"
+```
+
diff --git a/website/docs/r/dataintegration_workspace_import_request.html.markdown b/website/docs/r/dataintegration_workspace_import_request.html.markdown
new file mode 100644
index 00000000000..ff7a5b965a9
--- /dev/null
+++ b/website/docs/r/dataintegration_workspace_import_request.html.markdown
@@ -0,0 +1,106 @@
+---
+subcategory: "Data Integration"
+layout: "oci"
+page_title: "Oracle Cloud Infrastructure: oci_dataintegration_workspace_import_request"
+sidebar_current: "docs-oci-resource-dataintegration-workspace_import_request"
+description: |-
+ Provides the Workspace Import Request resource in Oracle Cloud Infrastructure Data Integration service
+---
+
+# oci_dataintegration_workspace_import_request
+This resource provides the Workspace Import Request resource in Oracle Cloud Infrastructure Data Integration service.
+
+Import Metadata Object
+
+## Example Usage
+
+```hcl
+resource "oci_dataintegration_workspace_import_request" "test_workspace_import_request" {
+ #Required
+ bucket = var.workspace_import_request_bucket
+ file_name = var.workspace_import_request_file_name
+ workspace_id = oci_dataintegration_workspace.test_workspace.id
+
+ #Optional
+ import_conflict_resolution {
+ #Required
+ import_conflict_resolution_type = var.workspace_import_request_import_conflict_resolution_import_conflict_resolution_type
+
+ #Optional
+ duplicate_prefix = var.workspace_import_request_import_conflict_resolution_duplicate_prefix
+ duplicate_suffix = var.workspace_import_request_import_conflict_resolution_duplicate_suffix
+ }
+ object_key_for_import = var.workspace_import_request_object_key_for_import
+ object_storage_region = var.workspace_import_request_object_storage_region
+ object_storage_tenancy_id = oci_identity_tenancy.test_tenancy.id
+}
+```
+
+## Argument Reference
+
+The following arguments are supported:
+
+* `bucket` - (Required) Name of the Object Storage bucket where the object will be imported from.
+* `file_name` - (Required) Name of the zip file to be imported.
+* `import_conflict_resolution` - (Optional) Import Objects Conflict resolution.
+ * `duplicate_prefix` - (Optional) In case of DUPLICATE mode, prefix will be used to disambiguate the object.
+ * `duplicate_suffix` - (Optional) In case of DUPLICATE mode, suffix will be used to disambiguate the object.
+ * `import_conflict_resolution_type` - (Required) Import Objects Conflict resolution Type (RETAIN/DUPLICATE/REPLACE).
+* `object_key_for_import` - (Optional) Key of the object inside which all the objects will be imported
+* `object_storage_region` - (Optional) Region of the object storage (if using object storage of different region)
+* `object_storage_tenancy_id` - (Optional) Optional parameter to point to object storage tenancy (if using Object Storage of different tenancy)
+* `workspace_id` - (Required) The workspace ID.
+
+
+** 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:
+
+* `bucket` - The name of the Object Storage Bucket where the objects will be imported from
+* `created_by` - Name of the user who initiated import request.
+* `error_messages` - Contains key of the error
+* `file_name` - Name of the zip file from which objects will be imported.
+* `import_conflict_resolution` - Import Objects Conflict resolution.
+ * `duplicate_prefix` - In case of DUPLICATE mode, prefix will be used to disambiguate the object.
+ * `duplicate_suffix` - In case of DUPLICATE mode, suffix will be used to disambiguate the object.
+ * `import_conflict_resolution_type` - Import Objects Conflict resolution Type (RETAIN/DUPLICATE/REPLACE).
+* `imported_objects` - The array of imported object details.
+ * `aggregator_key` - Aggregator key
+ * `identifier` - Object identifier
+ * `name` - Name of the object
+ * `name_path` - Object name path
+ * `new_key` - New key of the object
+ * `object_type` - Object type
+ * `object_version` - Object version
+ * `old_key` - Old key of the object
+ * `resolution_action` - Object resolution action
+ * `time_updated_in_millis` - time at which this object was last updated.
+* `key` - Import object request key
+* `name` - Name of the import request.
+* `object_key_for_import` - Key of the object inside which all the objects will be imported
+* `object_storage_region` - Region of the object storage (if using object storage of different region)
+* `object_storage_tenancy_id` - Optional parameter to point to object storage tenancy (if using Object Storage of different tenancy)
+* `status` - Import Objects request status.
+* `time_ended_in_millis` - Time at which the request was completely processed.
+* `time_started_in_millis` - Time at which the request started getting processed.
+* `total_imported_object_count` - Number of objects that are imported.
+
+## 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 Workspace Import Request
+ * `update` - (Defaults to 20 minutes), when updating the Workspace Import Request
+ * `delete` - (Defaults to 20 minutes), when destroying the Workspace Import Request
+
+
+## Import
+
+WorkspaceImportRequests can be imported using the `id`, e.g.
+
+```
+$ terraform import oci_dataintegration_workspace_import_request.test_workspace_import_request "workspaces/{workspaceId}/importRequests/{importRequestKey}"
+```
+
diff --git a/website/docs/r/ocvp_esxi_host.html.markdown b/website/docs/r/ocvp_esxi_host.html.markdown
index 01250722c90..2e27879c0fe 100644
--- a/website/docs/r/ocvp_esxi_host.html.markdown
+++ b/website/docs/r/ocvp_esxi_host.html.markdown
@@ -45,23 +45,23 @@ resource "oci_ocvp_esxi_host" "test_esxi_host" {
The following arguments are supported:
-* `billing_donor_host_id` - (Optional) (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the deleted ESXi Host with LeftOver billing cycle.
+* `billing_donor_host_id` - (**Deprecated**) (Optional) (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the deleted ESXi Host with LeftOver billing cycle.
* `capacity_reservation_id` - (Optional) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the Capacity Reservation.
* `compute_availability_domain` - (Optional) The availability domain to create the ESXi host in. If keep empty, for AD-specific SDDC, new ESXi host will be created in the same availability domain; for multi-AD SDDC, new ESXi host will be auto assigned to the next availability domain following evenly distribution strategy.
-* `current_sku` - (Optional) The billing option currently used by the ESXi host. It is only effective during resource creation. Changes to its value after creation will be ignored. [ListSupportedSkus](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/SupportedSkuSummary/ListSupportedSkus).
+* `current_sku` - (**Deprecated**) (Optional) The billing option currently used by the ESXi host. It is only effective during resource creation. Changes to its value after creation will be ignored. [ListSupportedSkus](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/SupportedSkuSummary/ListSupportedSkus).
* `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 descriptive name for the ESXi host. It's changeable. Esxi Host name requirements are 1-16 character length limit, Must start with a letter, Must be English letters, numbers, - only, No repeating hyphens, Must be unique within the SDDC.
If this attribute is not specified, the SDDC's `instanceDisplayNamePrefix` attribute is used to name and incrementally number the ESXi host. For example, if you're creating the fourth ESXi host in the SDDC, and `instanceDisplayNamePrefix` is `MySDDC`, the host's display name is `MySDDC-4`.
Avoid entering confidential information.
-* `failed_esxi_host_id` - (Optional) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the ESXi host that is failed. This is an optional parameter. If this parameter is specified, a new ESXi host will be created to replace the failed one, and the `failedEsxiHostId` field will be updated in the newly created Esxi host.
+* `failed_esxi_host_id` - (**Deprecated**) (Optional) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the ESXi host that is failed. This is an optional parameter. If this parameter is specified, a new ESXi host will be created to replace the failed one, and the `failedEsxiHostId` field will be updated in the newly created Esxi host.
* `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"}`
* `host_ocpu_count` - (Optional) The OCPU count of the ESXi host.
* `host_shape_name` - (Optional) The compute shape name of the ESXi host. [ListSupportedHostShapes](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/SupportedHostShapes/ListSupportedHostShapes).
-* `next_sku` - (Optional) (Updatable) The billing option to switch to after the existing billing cycle ends. If `nextSku` is null or empty, `currentSku` continues to the next billing cycle. In case of [SwapBilling](https://docs.oracle.com/en-us/iaas/api/#/en/vmware/20200501/EsxiHost/SwapBilling) which is not supported by Terraform, its value may be swapped with the other ESXi host. In this case, `next_sku` needs to be updated manually for both ESXi hosts in Terraform config to match the updated values. [ListSupportedSkus](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/SupportedSkuSummary/ListSupportedSkus).
-* `non_upgraded_esxi_host_id` - (Optional) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the ESXi host that will be upgraded. This is an optional parameter. If this parameter is specified, an ESXi host with the new software version is created to replace the original one, and the `nonUpgradedEsxiHostId` field is updated in the newly created Esxi host. See [Upgrading VMware Software](https://docs.cloud.oracle.com/iaas/Content/VMware/Concepts/upgrade.htm) for more information.
-* `sddc_id` - (Required) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the SDDC to add the ESXi host to.
+* `next_sku` - (**Deprecated**) (Optional) (Updatable) The billing option to switch to after the existing billing cycle ends. If `nextSku` is null or empty, `currentSku` continues to the next billing cycle. In case of [SwapBilling](https://docs.oracle.com/en-us/iaas/api/#/en/vmware/20200501/EsxiHost/SwapBilling) which is not supported by Terraform, its value may be swapped with the other ESXi host. In this case, `next_sku` needs to be updated manually for both ESXi hosts in Terraform config to match the updated values. [ListSupportedSkus](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/SupportedSkuSummary/ListSupportedSkus).
+* `non_upgraded_esxi_host_id` - (**Deprecated**) (Optional) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the ESXi host that will be upgraded. This is an optional parameter. If this parameter is specified, an ESXi host with the new software version is created to replace the original one, and the `nonUpgradedEsxiHostId` field is updated in the newly created Esxi host. See [Upgrading VMware Software](https://docs.cloud.oracle.com/iaas/Content/VMware/Concepts/upgrade.htm) for more information.
+* `sddc_id` - (**Deprecated**) (Optional) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the SDDC to add the ESXi host to. This field has been deprecated. Please use `cluster_id` instead. Either `sddc_id` or `cluster_id` must be configured for `oci_ocvp_esxi_host` resource.
** IMPORTANT **
@@ -77,7 +77,7 @@ The following attributes are exported:
* `compartment_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment that contains the SDDC.
* `compute_availability_domain` - The availability domain of the ESXi host.
* `compute_instance_id` - In terms of implementation, an ESXi host is a Compute instance that is configured with the chosen bundle of VMware software. The `computeInstanceId` is the [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of that Compute instance.
-* `current_sku` - The billing option currently used by the ESXi host. [ListSupportedSkus](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/SupportedSkuSummary/ListSupportedSkus).
+* `current_sku` - (**Deprecated**) The billing option currently used by the ESXi host. [ListSupportedSkus](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/SupportedSkuSummary/ListSupportedSkus). This field is deprecated, please use `current_commitment` instead.
* `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 descriptive name for the ESXi host. Does not have to be unique, and it's changeable. Avoid entering confidential information.
* `failed_esxi_host_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the ESXi host that failed.
@@ -88,10 +88,10 @@ The following attributes are exported:
* `id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the ESXi host.
* `is_billing_continuation_in_progress` - Indicates whether this host is in the progress of billing continuation.
* `is_billing_swapping_in_progress` - Indicates whether this host is in the progress of swapping billing.
-* `next_sku` - The billing option to switch to after the current billing cycle ends. If `nextSku` is null or empty, `currentSku` continues to the next billing cycle. [ListSupportedSkus](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/SupportedSkuSummary/ListSupportedSkus).
+* `next_sku` - (**Deprecated**) The billing option to switch to after the current billing cycle ends. If `nextSku` is null or empty, `currentSku` continues to the next billing cycle. [ListSupportedSkus](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/SupportedSkuSummary/ListSupportedSkus). This field is deprecated, please use `next_commitment` instead.
* `non_upgraded_esxi_host_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the ESXi host that will be upgraded.
* `replacement_esxi_host_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the esxi host that is newly created to replace the failed node.
-* `sddc_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the SDDC that the ESXi host belongs to.
+* `sddc_id` - (**Deprecated**) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the SDDC that the ESXi host belongs to. This field is deprecated, please use `cluster_id` instead.
* `state` - The current state of the ESXi host.
* `swap_billing_host_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the active ESXi Host to swap billing with current host.
* `time_created` - The date and time the ESXi host 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/ocvp_sddc.html.markdown b/website/docs/r/ocvp_sddc.html.markdown
index 41190002415..49e168678d2 100644
--- a/website/docs/r/ocvp_sddc.html.markdown
+++ b/website/docs/r/ocvp_sddc.html.markdown
@@ -68,46 +68,46 @@ resource "oci_ocvp_sddc" "test_sddc" {
The following arguments are supported:
-* `capacity_reservation_id` - (Optional) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the Capacity Reservation.
+* `capacity_reservation_id` - (**Deprecated**) (Optional) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the Capacity Reservation.
* `compartment_id` - (Required) (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment to contain the SDDC.
-* `compute_availability_domain` - (Required) The availability domain to create the SDDC's ESXi hosts in. For multi-AD SDDC deployment, set to `multi-AD`.
-* `datastores` - (Optional) A list of datastore info for the SDDC. This value is required only when `initialHostShapeName` is a standard shape.
+* `compute_availability_domain` - (**Deprecated**) (Required) The availability domain to create the SDDC's ESXi hosts in. For multi-AD SDDC deployment, set to `multi-AD`.
+* `datastores` - (**Deprecated**) (Optional) A list of datastore info for the SDDC. This value is required only when `initialHostShapeName` is a standard shape.
* `block_volume_ids` - (Required) A list of [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm)s of Block Storage Volumes.
* `datastore_type` - (Required) Type of the datastore.
* `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 descriptive name for the SDDC. SDDC name requirements are 1-16 character length limit, Must start with a letter, Must be English letters, numbers, - only, No repeating hyphens, Must be unique within the region. Avoid entering confidential information.
-* `esxi_hosts_count` - (Required) The number of ESXi hosts to create in the SDDC. You can add more hosts later (see [CreateEsxiHost](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/EsxiHost/CreateEsxiHost)). Creating a SDDC with a ESXi host count of 1 will be considered a single ESXi host SDDC.
+* `esxi_hosts_count` - (**Deprecated**) (Required) The number of ESXi hosts to create in the SDDC. You can add more hosts later (see [CreateEsxiHost](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/EsxiHost/CreateEsxiHost)). Creating a SDDC with a ESXi host count of 1 will be considered a single ESXi host SDDC.
**Note:** If you later delete EXSi hosts from a production SDDC to total less than 3, you are still billed for the 3 minimum recommended ESXi hosts. Also, you cannot add more VMware workloads to the SDDC until it again has at least 3 ESXi hosts.
* `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"}`
* `hcx_action` - (Optional) (Updatable) The action to be performed upon HCX licenses. "UPGRADE" will upgrade the SDDC from HCX Advanced to HCX Enterprise. "DOWNGRADE" will downgrade the SDDC from HCX Enterprise to HCX Advanced after current HCX Enterprise billing cycle end date. "CANCEL_DOWNGRADE" will cancel the pending downgrade of HCX licenses. The action will only be performed when its value is changed. This field can also be used to enable HCX Enterprise during SDDC creation. If "UPGRADE" is set during SDDC creation, the SDDC will be created with HCX Enterprise enable. Supported actions during update: UPGRADE, DOWNGRADE, CANCEL_DOWNGRADE. Supported actions during creation: UPGRADE.
-* `hcx_vlan_id` - (Optional) (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN to use for the HCX component of the VMware environment. This value is required only when `isHcxEnabled` is true.
-* `initial_host_ocpu_count` - (Optional) The initial OCPU count of the SDDC's ESXi hosts.
-* `initial_host_shape_name` - (Optional) The initial compute shape of the SDDC's ESXi hosts. [ListSupportedHostShapes](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/SupportedHostShapes/ListSupportedHostShapes).
-* `initial_sku` - (Optional) The billing option selected during SDDC creation. [ListSupportedSkus](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/SupportedSkuSummary/ListSupportedSkus).
+* `hcx_vlan_id` - (**Deprecated**) (Optional) (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN to use for the HCX component of the VMware environment. This value is required only when `isHcxEnabled` is true.
+* `initial_host_ocpu_count` - (**Deprecated**) (Optional) The initial OCPU count of the SDDC's ESXi hosts.
+* `initial_host_shape_name` - (**Deprecated**) (Optional) The initial compute shape of the SDDC's ESXi hosts. [ListSupportedHostShapes](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/SupportedHostShapes/ListSupportedHostShapes).
+* `initial_sku` - (**Deprecated**) (Optional) The billing option selected during SDDC creation. [ListSupportedSkus](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/SupportedSkuSummary/ListSupportedSkus).
* `instance_display_name_prefix` - (Optional) A prefix used in the name of each ESXi host and Compute instance in the SDDC. If this isn't set, the SDDC's `displayName` is used as the prefix.
For example, if the value is `mySDDC`, the ESXi hosts are named `mySDDC-1`, `mySDDC-2`, and so on.
-* `is_hcx_enabled` - (Optional) For SDDC with dense compute shapes, this parameter indicates whether to enable HCX Advanced for this SDDC. For SDDC with standard compute shapes, this parameter is equivalent to `isHcxEnterpriseEnabled`.
-* `is_shielded_instance_enabled` - (Optional) Indicates whether shielded instance is enabled for this SDDC.
+* `is_hcx_enabled` - (**Deprecated**) (Optional) For SDDC with dense compute shapes, this parameter indicates whether to enable HCX Advanced for this SDDC. For SDDC with standard compute shapes, this parameter is equivalent to `isHcxEnterpriseEnabled`.
+* `is_shielded_instance_enabled` - (**Deprecated**) (Optional) Indicates whether shielded instance is enabled for this SDDC.
* `is_single_host_sddc` - (Optional) Indicates whether this SDDC is designated for only single ESXi host.
-* `nsx_edge_uplink1vlan_id` - (Required) (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN to use for the NSX Edge Uplink 1 component of the VMware environment.
-* `nsx_edge_uplink2vlan_id` - (Required) (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN to use for the NSX Edge Uplink 2 component of the VMware environment.
+* `nsx_edge_uplink1vlan_id` - (**Deprecated**) (Required) (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN to use for the NSX Edge Uplink 1 component of the VMware environment.
+* `nsx_edge_uplink2vlan_id` - (**Deprecated**) (Required) (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN to use for the NSX Edge Uplink 2 component of the VMware environment.
**Note:** This VLAN is reserved for future use to deploy public-facing applications on the VMware SDDC.
-* `nsx_edge_vtep_vlan_id` - (Required) (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN to use for the NSX Edge VTEP component of the VMware environment.
-* `nsx_vtep_vlan_id` - (Required) (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN to use for the NSX VTEP component of the VMware environment.
-* `provisioning_subnet_id` - (Required) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the management subnet to use for provisioning the SDDC.
-* `provisioning_vlan_id` - (Optional) (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the Provisioning component of the VMware environment.
+* `nsx_edge_vtep_vlan_id` - (**Deprecated**) (Required) (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN to use for the NSX Edge VTEP component of the VMware environment.
+* `nsx_vtep_vlan_id` - (**Deprecated**) (Required) (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN to use for the NSX VTEP component of the VMware environment.
+* `provisioning_subnet_id` - (**Deprecated**) (Required) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the management subnet to use for provisioning the SDDC.
+* `provisioning_vlan_id` - (**Deprecated**) (Optional) (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the Provisioning component of the VMware environment.
* `refresh_hcx_license_status` - (Optional) (Updatable) HCX on-premise licenses status will be refreshed whenever the value of this field is changed.
-* `replication_vlan_id` - (Optional) (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the vSphere Replication component of the VMware environment.
+* `replication_vlan_id` - (**Deprecated**) (Optional) (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the vSphere Replication component of the VMware environment.
* `reserving_hcx_on_premise_license_keys` - (Optional) (Updatable) The HCX on-premise licenses to be reserved when downgrade from HCX Enterprise to HCX Advanced. It should not be provided during resource creation. It is required and can only be set when the hcx_action is "DOWNGRADE". Its value can only be changed when hcx_action is updated.
* `ssh_authorized_keys` - (Required) (Updatable) One or more public SSH keys to be included in the `~/.ssh/authorized_keys` file for the default user on each ESXi host. Use a newline character to separate multiple keys. The SSH keys must be in the format required for the `authorized_keys` file
-* `vmotion_vlan_id` - (Required) (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN to use for the vMotion component of the VMware environment.
+* `vmotion_vlan_id` - (**Deprecated**) (Required) (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN to use for the vMotion component of the VMware environment.
* `vmware_software_version` - (Required) (Updatable) The VMware software bundle to install on the ESXi hosts in the SDDC. To get a list of the available versions, use [ListSupportedVmwareSoftwareVersions](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/SupportedVmwareSoftwareVersionSummary/ListSupportedVmwareSoftwareVersions).
-* `vsan_vlan_id` - (Required) (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN to use for the vSAN component of the VMware environment.
-* `vsphere_vlan_id` - (Required) (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN to use for the vSphere component of the VMware environment.
-* `workload_network_cidr` - (Optional) The CIDR block for the IP addresses that VMware VMs in the SDDC use to run application workloads.
+* `vsan_vlan_id` - (**Deprecated**) (Required) (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN to use for the vSAN component of the VMware environment.
+* `vsphere_vlan_id` - (**Deprecated**) (Required) (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN to use for the vSphere component of the VMware environment.
+* `workload_network_cidr` - (**Deprecated**) (Optional) The CIDR block for the IP addresses that VMware VMs in the SDDC use to run application workloads.
** IMPORTANT **
@@ -117,73 +117,73 @@ Any change to a property that does not support update will force the destruction
The following attributes are exported:
-* `capacity_reservation_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the Capacity Reservation.
+* `capacity_reservation_id` - (**Deprecated**) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the Capacity Reservation.
* `compartment_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment that contains the SDDC.
-* `compute_availability_domain` - The availability domain the ESXi hosts are running in. For Multi-AD SDDC, it is `multi-AD`. Example: `Uocm:PHX-AD-1`, `multi-AD`
-* `datastores` - Datastores used for the Sddc.
+* `compute_availability_domain` - (**Deprecated**) The availability domain the ESXi hosts are running in. For Multi-AD SDDC, it is `multi-AD`. Example: `Uocm:PHX-AD-1`, `multi-AD`
+* `datastores` - (**Deprecated**) Datastores used for the Sddc.
* `block_volume_ids` - A list of [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm)s of Block Storage Volumes.
* `capacity` - Size of the Block Storage Volume in GB.
* `datastore_type` - Type of the datastore.
* `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 descriptive name for the SDDC. It must be unique, start with a letter, and contain only letters, digits, whitespaces, dashes and underscores. Avoid entering confidential information.
-* `esxi_hosts_count` - The number of ESXi hosts in the SDDC.
-* `actual_esxi_hosts_count` - The number of actual ESXi hosts in the SDDC on the cloud. This attribute will be different when esxi Host is added to an existing SDDC.
+* `esxi_hosts_count` - (**Deprecated**) The number of ESXi hosts in the SDDC.
+* `actual_esxi_hosts_count` - (**Deprecated**) The number of actual ESXi hosts in the SDDC on the cloud. This attribute will be different when esxi Host is added to an existing SDDC.
* `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"}`
* `hcx_action` - The action to be performed upon HCX licenses.
* `hcx_fqdn` - The FQDN for HCX Manager. Example: `hcx-my-sddc.sddc.us-phoenix-1.oraclecloud.com`
-* `hcx_initial_password` - The SDDC includes an administrator username and initial password for HCX Manager. Make sure to change this initial HCX Manager password to a different value.
-* `hcx_on_prem_key` - The activation keys to use on the on-premises HCX Enterprise appliances you site pair with HCX Manager in your VMware Solution. The number of keys provided depends on the HCX license type. HCX Advanced provides 3 activation keys. HCX Enterprise provides 10 activation keys.
+* `hcx_initial_password` - (**Deprecated**) The SDDC includes an administrator username and initial password for HCX Manager. Make sure to change this initial HCX Manager password to a different value.
+* `hcx_on_prem_key` - (**Deprecated**) The activation keys to use on the on-premises HCX Enterprise appliances you site pair with HCX Manager in your VMware Solution. The number of keys provided depends on the HCX license type. HCX Advanced provides 3 activation keys. HCX Enterprise provides 10 activation keys.
* `hcx_on_prem_licenses` - The activation licenses to use on the on-premises HCX Enterprise appliance you site pair with HCX Manager in your VMware Solution.
* `activation_key` - HCX on-premise license key value.
* `status` - status of HCX on-premise license.
* `system_name` - Name of the system that consumed the HCX on-premise license
* `hcx_private_ip_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the `PrivateIp` object that is the virtual IP (VIP) for HCX Manager. For information about `PrivateIp` objects, see the Core Services API.
-* `hcx_vlan_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the HCX component of the VMware environment.
+* `hcx_vlan_id` - (**Deprecated**) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the HCX component of the VMware environment.
This attribute is not guaranteed to reflect the HCX VLAN currently used by the ESXi hosts in the SDDC. The purpose of this attribute is to show the HCX VLAN that the Oracle Cloud VMware Solution will use for any new ESXi hosts that you *add to this SDDC in the future* with [CreateEsxiHost](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/EsxiHost/CreateEsxiHost).
Therefore, if you change the existing ESXi hosts in the SDDC to use a different VLAN for the HCX component of the VMware environment, you should use [UpdateSddc](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/Sddc/UpdateSddc) to update the SDDC's `hcxVlanId` with that new VLAN's OCID.
* `id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the SDDC.
-* `initial_host_ocpu_count` - The initial OCPU count of the SDDC's ESXi hosts.
-* `initial_host_shape_name` - The initial compute shape of the SDDC's ESXi hosts. [ListSupportedHostShapes](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/SupportedHostShapes/ListSupportedHostShapes).
-* `initial_sku` - The billing option selected during SDDC creation. [ListSupportedSkus](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/SupportedSkuSummary/ListSupportedSkus).
-* `instance_display_name_prefix` - A prefix used in the name of each ESXi host and Compute instance in the SDDC. If this isn't set, the SDDC's `displayName` is used as the prefix.
+* `initial_host_ocpu_count` - (**Deprecated**) The initial OCPU count of the SDDC's ESXi hosts.
+* `initial_host_shape_name` - (**Deprecated**) The initial compute shape of the SDDC's ESXi hosts. [ListSupportedHostShapes](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/SupportedHostShapes/ListSupportedHostShapes).
+* `initial_sku` - (**Deprecated**) The billing option selected during SDDC creation. [ListSupportedSkus](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/SupportedSkuSummary/ListSupportedSkus).
+* `instance_display_name_prefix` - (**Deprecated**) A prefix used in the name of each ESXi host and Compute instance in the SDDC. If this isn't set, the SDDC's `displayName` is used as the prefix.
For example, if the value is `MySDDC`, the ESXi hosts are named `MySDDC-1`, `MySDDC-2`, and so on.
-* `is_hcx_enabled` - Indicates whether HCX is enabled for this SDDC.
-* `is_hcx_enterprise_enabled` - Indicates whether HCX Enterprise is enabled for this SDDC.
+* `is_hcx_enabled` - (**Deprecated**) Indicates whether HCX is enabled for this SDDC.
+* `is_hcx_enterprise_enabled` - (**Deprecated**) Indicates whether HCX Enterprise is enabled for this SDDC.
* `is_hcx_pending_downgrade` - Indicates whether SDDC is pending downgrade from HCX Enterprise to HCX Advanced.
-* `is_shielded_instance_enabled` - Indicates whether shielded instance is enabled at the SDDC level.
+* `is_shielded_instance_enabled` - (**Deprecated**) Indicates whether shielded instance is enabled at the SDDC level.
* `is_single_host_sddc` - Indicates whether this SDDC is designated for only single ESXi host.
-* `nsx_edge_uplink1vlan_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the NSX Edge Uplink 1 component of the VMware environment.
+* `nsx_edge_uplink1vlan_id` - (**Deprecated**) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the NSX Edge Uplink 1 component of the VMware environment.
This attribute is not guaranteed to reflect the NSX Edge Uplink 1 VLAN currently used by the ESXi hosts in the SDDC. The purpose of this attribute is to show the NSX Edge Uplink 1 VLAN that the Oracle Cloud VMware Solution will use for any new ESXi hosts that you *add to this SDDC in the future* with [CreateEsxiHost](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/EsxiHost/CreateEsxiHost).
Therefore, if you change the existing ESXi hosts in the SDDC to use a different VLAN for the NSX Edge Uplink 1 component of the VMware environment, you should use [UpdateSddc](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/Sddc/UpdateSddc) to update the SDDC's `nsxEdgeUplink1VlanId` with that new VLAN's OCID.
-* `nsx_edge_uplink2vlan_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the NSX Edge Uplink 2 component of the VMware environment.
+* `nsx_edge_uplink2vlan_id` - (**Deprecated**) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the NSX Edge Uplink 2 component of the VMware environment.
This attribute is not guaranteed to reflect the NSX Edge Uplink 2 VLAN currently used by the ESXi hosts in the SDDC. The purpose of this attribute is to show the NSX Edge Uplink 2 VLAN that the Oracle Cloud VMware Solution will use for any new ESXi hosts that you *add to this SDDC in the future* with [CreateEsxiHost](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/EsxiHost/CreateEsxiHost).
Therefore, if you change the existing ESXi hosts in the SDDC to use a different VLAN for the NSX Edge Uplink 2 component of the VMware environment, you should use [UpdateSddc](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/Sddc/UpdateSddc) to update the SDDC's `nsxEdgeUplink2VlanId` with that new VLAN's OCID.
-* `nsx_edge_uplink_ip_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the `PrivateIp` object that is the virtual IP (VIP) for the NSX Edge Uplink. Use this OCID as the route target for route table rules when setting up connectivity between the SDDC and other networks. For information about `PrivateIp` objects, see the Core Services API.
-* `nsx_edge_vtep_vlan_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the NSX Edge VTEP component of the VMware environment.
+* `nsx_edge_uplink_ip_id` - (**Deprecated**) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the `PrivateIp` object that is the virtual IP (VIP) for the NSX Edge Uplink. Use this OCID as the route target for route table rules when setting up connectivity between the SDDC and other networks. For information about `PrivateIp` objects, see the Core Services API.
+* `nsx_edge_vtep_vlan_id` - (**Deprecated**) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the NSX Edge VTEP component of the VMware environment.
This attribute is not guaranteed to reflect the NSX Edge VTEP VLAN currently used by the ESXi hosts in the SDDC. The purpose of this attribute is to show the NSX Edge VTEP VLAN that the Oracle Cloud VMware Solution will use for any new ESXi hosts that you *add to this SDDC in the future* with [CreateEsxiHost](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/EsxiHost/CreateEsxiHost).
Therefore, if you change the existing ESXi hosts in the SDDC to use a different VLAN for the NSX Edge VTEP component of the VMware environment, you should use [UpdateSddc](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/Sddc/UpdateSddc) to update the SDDC's `nsxEdgeVTepVlanId` with that new VLAN's OCID.
* `nsx_manager_fqdn` - The FQDN for NSX Manager. Example: `nsx-my-sddc.sddc.us-phoenix-1.oraclecloud.com`
-* `nsx_manager_initial_password` - The SDDC includes an administrator username and initial password for NSX Manager. Make sure to change this initial NSX Manager password to a different value.
+* `nsx_manager_initial_password` - (**Deprecated**) The SDDC includes an administrator username and initial password for NSX Manager. Make sure to change this initial NSX Manager password to a different value.
* `nsx_manager_private_ip_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the `PrivateIp` object that is the virtual IP (VIP) for NSX Manager. For information about `PrivateIp` objects, see the Core Services API.
* `nsx_manager_username` - The SDDC includes an administrator username and initial password for NSX Manager. You can change this initial username to a different value in NSX Manager.
-* `nsx_overlay_segment_name` - The VMware NSX overlay workload segment to host your application. Connect to workload portgroup in vCenter to access this overlay segment.
-* `nsx_vtep_vlan_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the NSX VTEP component of the VMware environment.
+* `nsx_overlay_segment_name` - (**Deprecated**) The VMware NSX overlay workload segment to host your application. Connect to workload portgroup in vCenter to access this overlay segment.
+* `nsx_vtep_vlan_id` - (**Deprecated**) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the NSX VTEP component of the VMware environment.
This attribute is not guaranteed to reflect the NSX VTEP VLAN currently used by the ESXi hosts in the SDDC. The purpose of this attribute is to show the NSX VTEP VLAN that the Oracle Cloud VMware Solution will use for any new ESXi hosts that you *add to this SDDC in the future* with [CreateEsxiHost](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/EsxiHost/CreateEsxiHost).
Therefore, if you change the existing ESXi hosts in the SDDC to use a different VLAN for the NSX VTEP component of the VMware environment, you should use [UpdateSddc](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/Sddc/UpdateSddc) to update the SDDC's `nsxVTepVlanId` with that new VLAN's OCID.
-* `provisioning_subnet_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the management subnet used to provision the SDDC.
-* `provisioning_vlan_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the Provisioning component of the VMware environment.
-* `replication_vlan_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the vSphere Replication component of the VMware environment.
+* `provisioning_subnet_id` - (**Deprecated**) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the management subnet used to provision the SDDC.
+* `provisioning_vlan_id` - (**Deprecated**) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the Provisioning component of the VMware environment.
+* `replication_vlan_id` - (**Deprecated**) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the vSphere Replication component of the VMware environment.
* `reserving_hcx_on_premise_license_keys` - The HCX on-premise licenses to be reserved when downgrade from HCX Enterprise to HCX Advanced.
* `ssh_authorized_keys` - One or more public SSH keys to be included in the `~/.ssh/authorized_keys` file for the default user on each ESXi host. Use a newline character to separate multiple keys. The SSH keys must be in the format required for the `authorized_keys` file.
@@ -195,14 +195,14 @@ The following attributes are exported:
* `time_hcx_billing_cycle_end` - The date and time current HCX Enterprise billing cycle ends, in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). Example: `2016-08-25T21:10:29.600Z`
* `time_hcx_license_status_updated` - The date and time the SDDC's HCX on-premise license status was updated, in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). Example: `2016-08-25T21:10:29.600Z`
* `time_updated` - The date and time the SDDC was updated, in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339).
-* `upgrade_licenses` - The vSphere licenses to use when upgrading the SDDC.
+* `upgrade_licenses` - (**Deprecated**) The vSphere licenses to use when upgrading the SDDC.
* `license_key` - vSphere license key value.
* `license_type` - vSphere license type.
* `vcenter_fqdn` - The FQDN for vCenter. Example: `vcenter-my-sddc.sddc.us-phoenix-1.oraclecloud.com`
-* `vcenter_initial_password` - The SDDC includes an administrator username and initial password for vCenter. Make sure to change this initial vCenter password to a different value.
+* `vcenter_initial_password` - (**Deprecated**) The SDDC includes an administrator username and initial password for vCenter. Make sure to change this initial vCenter password to a different value.
* `vcenter_private_ip_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the `PrivateIp` object that is the virtual IP (VIP) for vCenter. For information about `PrivateIp` objects, see the Core Services API.
* `vcenter_username` - The SDDC includes an administrator username and initial password for vCenter. You can change this initial username to a different value in vCenter.
-* `vmotion_vlan_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the vMotion component of the VMware environment.
+* `vmotion_vlan_id` - (**Deprecated**) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the vMotion component of the VMware environment.
This attribute is not guaranteed to reflect the vMotion VLAN currently used by the ESXi hosts in the SDDC. The purpose of this attribute is to show the vMotion VLAN that the Oracle Cloud VMware Solution will use for any new ESXi hosts that you *add to this SDDC in the future* with [CreateEsxiHost](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/EsxiHost/CreateEsxiHost).
@@ -212,21 +212,21 @@ The following attributes are exported:
This attribute is not guaranteed to reflect the version of software currently installed on the ESXi hosts in the SDDC. The purpose of this attribute is to show the version of software that the Oracle Cloud VMware Solution will install on any new ESXi hosts that you *add to this SDDC in the future* with [CreateEsxiHost](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/EsxiHost/CreateEsxiHost).
Therefore, if you upgrade the existing ESXi hosts in the SDDC to use a newer version of bundled VMware software supported by the Oracle Cloud VMware Solution, you should use [UpdateSddc](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/Sddc/UpdateSddc) to update the SDDC's `vmwareSoftwareVersion` with that new version.
-* `vsan_vlan_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the vSAN component of the VMware environment.
+* `vsan_vlan_id` - (**Deprecated**) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the vSAN component of the VMware environment.
This attribute is not guaranteed to reflect the vSAN VLAN currently used by the ESXi hosts in the SDDC. The purpose of this attribute is to show the vSAN VLAN that the Oracle Cloud VMware Solution will use for any new ESXi hosts that you *add to this SDDC in the future* with [CreateEsxiHost](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/EsxiHost/CreateEsxiHost).
Therefore, if you change the existing ESXi hosts in the SDDC to use a different VLAN for the vSAN component of the VMware environment, you should use [UpdateSddc](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/Sddc/UpdateSddc) to update the SDDC's `vsanVlanId` with that new VLAN's OCID.
-* `vsphere_upgrade_guide` - The link to guidance for upgrading vSphere.
-* `vsphere_upgrade_objects` - The links to binary objects needed to upgrade vSphere.
+* `vsphere_upgrade_guide` - (**Deprecated**) The link to guidance for upgrading vSphere.
+* `vsphere_upgrade_objects` - (**Deprecated**) The links to binary objects needed to upgrade vSphere.
* `download_link` - Binary object download link.
* `link_description` - Binary object description.
-* `vsphere_vlan_id` - The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the vSphere component of the VMware environment.
+* `vsphere_vlan_id` - (**Deprecated**) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN used by the SDDC for the vSphere component of the VMware environment.
This attribute is not guaranteed to reflect the vSphere VLAN currently used by the ESXi hosts in the SDDC. The purpose of this attribute is to show the vSphere VLAN that the Oracle Cloud VMware Solution will use for any new ESXi hosts that you *add to this SDDC in the future* with [CreateEsxiHost](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/EsxiHost/CreateEsxiHost).
Therefore, if you change the existing ESXi hosts in the SDDC to use a different VLAN for the vSphere component of the VMware environment, you should use [UpdateSddc](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/Sddc/UpdateSddc) to update the SDDC's `vsphereVlanId` with that new VLAN's OCID.
-* `workload_network_cidr` - The CIDR block for the IP addresses that VMware VMs in the SDDC use to run application workloads.
+* `workload_network_cidr` - (**Deprecated**) The CIDR block for the IP addresses that VMware VMs in the SDDC use to run application workloads.
## Timeouts
diff --git a/website/oci.erb b/website/oci.erb
index 9ea3ff46881..577d4b36de6 100644
--- a/website/oci.erb
+++ b/website/oci.erb
@@ -2149,12 +2149,24 @@
oci_dataintegration_workspace_applications
+
+ oci_dataintegration_workspace_export_request
+
+
+ oci_dataintegration_workspace_export_requests
+
oci_dataintegration_workspace_folder
oci_dataintegration_workspace_folders
+
+ oci_dataintegration_workspace_import_request
+
+
+ oci_dataintegration_workspace_import_requests
+
oci_dataintegration_workspace_project
@@ -2175,9 +2187,15 @@
oci_dataintegration_workspace_application
+
+ oci_dataintegration_workspace_export_request
+
oci_dataintegration_workspace_folder
+
+ oci_dataintegration_workspace_import_request
+
oci_dataintegration_workspace_project
@@ -2791,6 +2809,12 @@
oci_database_autonomous_vm_cluster
+
+ oci_database_autonomous_vm_cluster_acd_resource_usages
+
+
+ oci_database_autonomous_vm_cluster_resource_usage
+
oci_database_autonomous_vm_clusters